Changeset View
Changeset View
Standalone View
Standalone View
source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
| Show First 20 Lines • Show All 603 Lines • ▼ Show 20 Lines | void DepsgraphNodeBuilder::build_object(int base_index, | ||||
| * on object's level animation, for example in case of rebuilding | * on object's level animation, for example in case of rebuilding | ||||
| * pose for proxy. */ | * pose for proxy. */ | ||||
| build_animdata(&object->id); | build_animdata(&object->id); | ||||
| /* Particle systems. */ | /* Particle systems. */ | ||||
| if (object->particlesystem.first != NULL) { | if (object->particlesystem.first != NULL) { | ||||
| build_particle_systems(object, is_visible); | build_particle_systems(object, is_visible); | ||||
| } | } | ||||
| /* Proxy object to copy from. */ | /* Proxy object to copy from. */ | ||||
| if (object->proxy_from != NULL) { | build_object_proxy_from(object, is_visible); | ||||
| build_object(-1, object->proxy_from, DEG_ID_LINKED_INDIRECTLY, is_visible); | build_object_proxy_group(object, is_visible); | ||||
| } | |||||
| if (object->proxy_group != NULL) { | |||||
| build_object(-1, object->proxy_group, DEG_ID_LINKED_INDIRECTLY, is_visible); | |||||
| } | |||||
| /* Object dupligroup. */ | /* Object dupligroup. */ | ||||
| if (object->instance_collection != NULL) { | if (object->instance_collection != NULL) { | ||||
| const bool is_current_parent_collection_visible = is_parent_collection_visible_; | const bool is_current_parent_collection_visible = is_parent_collection_visible_; | ||||
| is_parent_collection_visible_ = is_visible; | is_parent_collection_visible_ = is_visible; | ||||
| build_collection(NULL, object->instance_collection); | build_collection(NULL, object->instance_collection); | ||||
| is_parent_collection_visible_ = is_current_parent_collection_visible; | is_parent_collection_visible_ = is_current_parent_collection_visible; | ||||
| add_operation_node(&object->id, NodeType::DUPLI, OperationCode::DUPLI); | add_operation_node(&object->id, NodeType::DUPLI, OperationCode::DUPLI); | ||||
| } | } | ||||
| Show All 22 Lines | add_operation_node(&object->id, | ||||
| _1, | _1, | ||||
| scene_cow, | scene_cow, | ||||
| view_layer_index_, | view_layer_index_, | ||||
| object_cow, | object_cow, | ||||
| base_index, | base_index, | ||||
| is_from_set)); | is_from_set)); | ||||
| } | } | ||||
| void DepsgraphNodeBuilder::build_object_proxy_from(Object *object, bool is_visible) | |||||
| { | |||||
| if (object->proxy_from == NULL) { | |||||
| return; | |||||
| } | |||||
| build_object(-1, object->proxy_from, DEG_ID_LINKED_INDIRECTLY, is_visible); | |||||
| } | |||||
| void DepsgraphNodeBuilder::build_object_proxy_group(Object *object, bool is_visible) | |||||
| { | |||||
| if (object->proxy_group == NULL) { | |||||
| return; | |||||
| } | |||||
| build_object(-1, object->proxy_group, DEG_ID_LINKED_INDIRECTLY, is_visible); | |||||
| } | |||||
| void DepsgraphNodeBuilder::build_object_data(Object *object, bool is_object_visible) | void DepsgraphNodeBuilder::build_object_data(Object *object, bool is_object_visible) | ||||
| { | { | ||||
| if (object->data == NULL) { | if (object->data == NULL) { | ||||
| return; | return; | ||||
| } | } | ||||
| /* type-specific data. */ | /* type-specific data. */ | ||||
| switch (object->type) { | switch (object->type) { | ||||
| case OB_MESH: | case OB_MESH: | ||||
| ▲ Show 20 Lines • Show All 1,046 Lines • Show Last 20 Lines | |||||