Changeset View
Changeset View
Standalone View
Standalone View
source/blender/depsgraph/intern/builder/deg_builder_rna.cc
| Show First 20 Lines • Show All 274 Lines • ▼ Show 20 Lines | RNANodeIdentifier RNANodeQuery::construct_node_identifier(const PointerRNA *ptr, | ||||
| } | } | ||||
| else if (RNA_struct_is_a(ptr->type, &RNA_Mesh) || RNA_struct_is_a(ptr->type, &RNA_Modifier) || | else if (RNA_struct_is_a(ptr->type, &RNA_Mesh) || RNA_struct_is_a(ptr->type, &RNA_Modifier) || | ||||
| RNA_struct_is_a(ptr->type, &RNA_GpencilModifier) || | RNA_struct_is_a(ptr->type, &RNA_GpencilModifier) || | ||||
| RNA_struct_is_a(ptr->type, &RNA_Spline) || RNA_struct_is_a(ptr->type, &RNA_TextBox) || | RNA_struct_is_a(ptr->type, &RNA_Spline) || RNA_struct_is_a(ptr->type, &RNA_TextBox) || | ||||
| RNA_struct_is_a(ptr->type, &RNA_GPencilLayer) || | RNA_struct_is_a(ptr->type, &RNA_GPencilLayer) || | ||||
| RNA_struct_is_a(ptr->type, &RNA_LatticePoint) || | RNA_struct_is_a(ptr->type, &RNA_LatticePoint) || | ||||
| RNA_struct_is_a(ptr->type, &RNA_MeshUVLoop) || | RNA_struct_is_a(ptr->type, &RNA_MeshUVLoop) || | ||||
| RNA_struct_is_a(ptr->type, &RNA_MeshLoopColor) || | RNA_struct_is_a(ptr->type, &RNA_MeshLoopColor) || | ||||
| RNA_struct_is_a(ptr->type, &RNA_VertexGroupElement)) { | RNA_struct_is_a(ptr->type, &RNA_VertexGroupElement) || | ||||
| ELEM(ptr->type, | |||||
| &RNA_CollisionSettings, | |||||
| &RNA_SoftBodySettings, | |||||
| &RNA_ClothSettings, | |||||
| &RNA_ClothCollisionSettings, | |||||
| &RNA_DynamicPaintSurface, | |||||
| &RNA_DynamicPaintCanvasSettings, | |||||
| &RNA_DynamicPaintBrushSettings)) { | |||||
| /* When modifier is used as FROM operation this is likely referencing to | /* When modifier is used as FROM operation this is likely referencing to | ||||
| * the property (for example, modifier's influence). | * the property (for example, modifier's influence). | ||||
| * But when it's used as TO operation, this is geometry component. */ | * But when it's used as TO operation, this is geometry component. */ | ||||
| switch (source) { | switch (source) { | ||||
| case RNAPointerSource::ENTRY: | case RNAPointerSource::ENTRY: | ||||
| node_identifier.type = NodeType::GEOMETRY; | node_identifier.type = NodeType::GEOMETRY; | ||||
| break; | break; | ||||
| case RNAPointerSource::EXIT: | case RNAPointerSource::EXIT: | ||||
| ▲ Show 20 Lines • Show All 84 Lines • ▼ Show 20 Lines | if (GS(node_identifier.id->name) == ID_NT) { | ||||
| node_identifier.operation_code = OperationCode::IMAGE_ANIMATION; | node_identifier.operation_code = OperationCode::IMAGE_ANIMATION; | ||||
| return node_identifier; | return node_identifier; | ||||
| } | } | ||||
| } | } | ||||
| else if (ELEM(ptr->type, &RNA_MeshVertex, &RNA_MeshEdge, &RNA_MeshLoop, &RNA_MeshPolygon)) { | else if (ELEM(ptr->type, &RNA_MeshVertex, &RNA_MeshEdge, &RNA_MeshLoop, &RNA_MeshPolygon)) { | ||||
| node_identifier.type = NodeType::GEOMETRY; | node_identifier.type = NodeType::GEOMETRY; | ||||
| return node_identifier; | return node_identifier; | ||||
| } | } | ||||
| else if (GS(node_identifier.id->name) == ID_PA && | |||||
| ELEM(ptr->type, &RNA_EffectorWeights, &RNA_FieldSettings, &RNA_ParticleSettings)) { | |||||
| node_identifier.type = NodeType::PARTICLE_SETTINGS; | |||||
| return node_identifier; | |||||
| } | |||||
| else if (GS(node_identifier.id->name) == ID_SCE && | |||||
| ELEM(ptr->type, &RNA_EffectorWeights, &RNA_RigidBodyWorld)) { | |||||
| node_identifier.type = NodeType::TRANSFORM; | |||||
| return node_identifier; | |||||
| } | |||||
| else if (ELEM(ptr->type, &RNA_FieldSettings)) { | |||||
| node_identifier.type = NodeType::TRANSFORM; | |||||
| return node_identifier; | |||||
| } | |||||
| if (prop != nullptr) { | if (prop != nullptr) { | ||||
| /* All unknown data effectively falls under "parameter evaluation". */ | /* All unknown data effectively falls under "parameter evaluation". */ | ||||
| node_identifier.type = NodeType::PARAMETERS; | node_identifier.type = NodeType::PARAMETERS; | ||||
| node_identifier.operation_code = OperationCode::PARAMETERS_EVAL; | node_identifier.operation_code = OperationCode::PARAMETERS_EVAL; | ||||
| node_identifier.operation_name = ""; | node_identifier.operation_name = ""; | ||||
| node_identifier.operation_name_tag = -1; | node_identifier.operation_name_tag = -1; | ||||
| return node_identifier; | return node_identifier; | ||||
| } | } | ||||
| Show All 11 Lines | |||||