157 if (
ptr->type ==
nullptr) {
158 return node_identifier;
161 node_identifier.
id =
ptr->owner_id;
180 return node_identifier;
182 if (
ptr->type == &RNA_PoseBone) {
188 if (prop !=
nullptr) {
193 if (
builder_->check_pchan_has_bbone_segments(
object, pchan)) {
201 else if (
STR_ELEM(prop_name,
"head",
"tail",
"length") ||
STRPREFIX(prop_name,
"matrix")) {
211 return node_identifier;
213 if (
ptr->type == &RNA_Bone) {
223 node_identifier.
id = (
ID *)((
Object *)node_identifier.
id)->data;
225 return node_identifier;
232 const Object *
object =
reinterpret_cast<const Object *
>(
ptr->owner_id);
240 if (pchan ==
nullptr) {
249 return node_identifier;
251 if (
ELEM(
ptr->type, &RNA_ConstraintTarget, &RNA_ConstraintTargetBone)) {
257 if (con !=
nullptr) {
258 if (pchan !=
nullptr) {
267 return node_identifier;
271 (
contains(prop_identifier,
"show_viewport") ||
272 contains(prop_identifier,
"show_render")))
276 return node_identifier;
299 return node_identifier;
301 else if (
ptr->type == &RNA_Object) {
303 if (prop !=
nullptr) {
305 if (
contains(prop_identifier,
"location") ||
contains(prop_identifier,
"matrix_basis") ||
306 contains(prop_identifier,
"matrix_channel") ||
307 contains(prop_identifier,
"matrix_inverse") ||
308 contains(prop_identifier,
"matrix_local") ||
309 contains(prop_identifier,
"matrix_parent_inverse") ||
310 contains(prop_identifier,
"matrix_world") ||
311 contains(prop_identifier,
"rotation_axis_angle") ||
312 contains(prop_identifier,
"rotation_euler") ||
313 contains(prop_identifier,
"rotation_mode") ||
314 contains(prop_identifier,
"rotation_quaternion") ||
contains(prop_identifier,
"scale") ||
315 contains(prop_identifier,
"delta_location") ||
316 contains(prop_identifier,
"delta_rotation_euler") ||
317 contains(prop_identifier,
"delta_rotation_quaternion") ||
318 contains(prop_identifier,
"delta_scale"))
321 return node_identifier;
323 if (
contains(prop_identifier,
"data")) {
327 return node_identifier;
329 if (
STR_ELEM(prop_identifier,
"hide_viewport",
"hide_render")) {
331 return node_identifier;
333 if (
STREQ(prop_identifier,
"dimensions")) {
336 return node_identifier;
340 else if (
ptr->type == &RNA_ShapeKey) {
342 node_identifier.
id =
ptr->owner_id;
346 return node_identifier;
348 else if (
ptr->type == &RNA_Key) {
349 node_identifier.
id =
ptr->owner_id;
351 return node_identifier;
356 return node_identifier;
360 return node_identifier;
364 return node_identifier;
366 else if (
ELEM(
ptr->type, &RNA_Curve, &RNA_TextCurve)) {
367 node_identifier.
id =
ptr->owner_id;
369 return node_identifier;
371 else if (
ELEM(
ptr->type, &RNA_BezierSplinePoint, &RNA_SplinePoint)) {
372 node_identifier.
id =
ptr->owner_id;
374 return node_identifier;
380 return node_identifier;
383 else if (
ELEM(
ptr->type, &RNA_MeshVertex, &RNA_MeshEdge, &RNA_MeshLoop, &RNA_MeshPolygon)) {
385 return node_identifier;
387 if (prop !=
nullptr) {
393 return node_identifier;
395 return node_identifier;