154 if (
ptr->type ==
nullptr) {
155 return node_identifier;
158 node_identifier.
id =
ptr->owner_id;
176 return node_identifier;
178 if (
ptr->type == &RNA_PoseBone) {
184 if (prop !=
nullptr) {
189 if (
builder_->check_pchan_has_bbone_segments(
object, pchan)) {
197 else if (
STR_ELEM(prop_name,
"head",
"tail",
"length") ||
STRPREFIX(prop_name,
"matrix")) {
207 return node_identifier;
209 if (
ptr->type == &RNA_Bone) {
219 node_identifier.
id = (
ID *)((
Object *)node_identifier.
id)->data;
221 return node_identifier;
228 const Object *
object =
reinterpret_cast<const Object *
>(
ptr->owner_id);
236 if (pchan ==
nullptr) {
245 return node_identifier;
247 if (
ELEM(
ptr->type, &RNA_ConstraintTarget, &RNA_ConstraintTargetBone)) {
253 if (con !=
nullptr) {
254 if (pchan !=
nullptr) {
263 return node_identifier;
267 (
contains(prop_identifier,
"show_viewport") ||
268 contains(prop_identifier,
"show_render")))
272 return node_identifier;
295 return node_identifier;
297 else if (
ptr->type == &RNA_Object) {
299 if (prop !=
nullptr) {
301 if (
contains(prop_identifier,
"location") ||
contains(prop_identifier,
"matrix_basis") ||
302 contains(prop_identifier,
"matrix_channel") ||
303 contains(prop_identifier,
"matrix_inverse") ||
304 contains(prop_identifier,
"matrix_local") ||
305 contains(prop_identifier,
"matrix_parent_inverse") ||
306 contains(prop_identifier,
"matrix_world") ||
307 contains(prop_identifier,
"rotation_axis_angle") ||
308 contains(prop_identifier,
"rotation_euler") ||
309 contains(prop_identifier,
"rotation_mode") ||
310 contains(prop_identifier,
"rotation_quaternion") ||
contains(prop_identifier,
"scale") ||
311 contains(prop_identifier,
"delta_location") ||
312 contains(prop_identifier,
"delta_rotation_euler") ||
313 contains(prop_identifier,
"delta_rotation_quaternion") ||
314 contains(prop_identifier,
"delta_scale"))
317 return node_identifier;
319 if (
contains(prop_identifier,
"data")) {
323 return node_identifier;
325 if (
STR_ELEM(prop_identifier,
"hide_viewport",
"hide_render")) {
327 return node_identifier;
329 if (
STREQ(prop_identifier,
"dimensions")) {
332 return node_identifier;
336 else if (
ptr->type == &RNA_ShapeKey) {
338 node_identifier.
id =
ptr->owner_id;
342 return node_identifier;
344 else if (
ptr->type == &RNA_Key) {
345 node_identifier.
id =
ptr->owner_id;
347 return node_identifier;
352 return node_identifier;
356 return node_identifier;
360 return node_identifier;
362 else if (
ELEM(
ptr->type, &RNA_Curve, &RNA_TextCurve)) {
363 node_identifier.
id =
ptr->owner_id;
365 return node_identifier;
367 else if (
ELEM(
ptr->type, &RNA_BezierSplinePoint, &RNA_SplinePoint)) {
368 node_identifier.
id =
ptr->owner_id;
370 return node_identifier;
376 return node_identifier;
379 else if (
ELEM(
ptr->type, &RNA_MeshVertex, &RNA_MeshEdge, &RNA_MeshLoop, &RNA_MeshPolygon)) {
381 return node_identifier;
383 if (prop !=
nullptr) {
389 return node_identifier;
391 return node_identifier;