Changeset View
Changeset View
Standalone View
Standalone View
source/blender/depsgraph/intern/depsgraph_query_iter.cc
| Show First 20 Lines • Show All 148 Lines • ▼ Show 20 Lines | while (data->dupli_object_next != nullptr) { | ||||
| Object *temp_dupli_object = &data->temp_dupli_object; | Object *temp_dupli_object = &data->temp_dupli_object; | ||||
| *temp_dupli_object = *dob->ob; | *temp_dupli_object = *dob->ob; | ||||
| temp_dupli_object->base_flag = dupli_parent->base_flag | BASE_FROM_DUPLI; | temp_dupli_object->base_flag = dupli_parent->base_flag | BASE_FROM_DUPLI; | ||||
| temp_dupli_object->base_local_view_bits = dupli_parent->base_local_view_bits; | temp_dupli_object->base_local_view_bits = dupli_parent->base_local_view_bits; | ||||
| temp_dupli_object->runtime.local_collections_bits = | temp_dupli_object->runtime.local_collections_bits = | ||||
| dupli_parent->runtime.local_collections_bits; | dupli_parent->runtime.local_collections_bits; | ||||
| temp_dupli_object->dt = MIN2(temp_dupli_object->dt, dupli_parent->dt); | temp_dupli_object->dt = MIN2(temp_dupli_object->dt, dupli_parent->dt); | ||||
| copy_v4_v4(temp_dupli_object->color, dupli_parent->color); | copy_v4_v4(temp_dupli_object->color, dupli_parent->color); | ||||
| temp_dupli_object->runtime.select_id_cow = dupli_parent->runtime.select_id_cow; | |||||
| /* Duplicated elements shouldn't care whether their original collection is visible or not. */ | /* Duplicated elements shouldn't care whether their original collection is visible or not. */ | ||||
| temp_dupli_object->base_flag |= BASE_VISIBLE_DEPSGRAPH; | temp_dupli_object->base_flag |= BASE_VISIBLE_DEPSGRAPH; | ||||
| int ob_visibility = BKE_object_visibility(temp_dupli_object, data->eval_mode); | int ob_visibility = BKE_object_visibility(temp_dupli_object, data->eval_mode); | ||||
| if ((ob_visibility & (OB_VISIBLE_SELF | OB_VISIBLE_PARTICLES)) == 0) { | if ((ob_visibility & (OB_VISIBLE_SELF | OB_VISIBLE_PARTICLES)) == 0) { | ||||
| continue; | continue; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Lines | void deg_iterator_objects_step(BLI_Iterator *iter, deg::IDNode *id_node) | ||||
| if (data->flag & DEG_ITER_OBJECT_FLAG_VISIBLE) { | if (data->flag & DEG_ITER_OBJECT_FLAG_VISIBLE) { | ||||
| ob_visibility = BKE_object_visibility(object, data->eval_mode); | ob_visibility = BKE_object_visibility(object, data->eval_mode); | ||||
| if (object->type != OB_MBALL && deg_object_hide_original(data->eval_mode, object, nullptr)) { | if (object->type != OB_MBALL && deg_object_hide_original(data->eval_mode, object, nullptr)) { | ||||
| return; | return; | ||||
| } | } | ||||
| } | } | ||||
| object->runtime.select_id_cow = DEG_get_original_object(object)->runtime.select_id; | |||||
| if (ob_visibility & OB_VISIBLE_INSTANCES) { | if (ob_visibility & OB_VISIBLE_INSTANCES) { | ||||
| if ((data->flag & DEG_ITER_OBJECT_FLAG_DUPLI) && (object->transflag & OB_DUPLI)) { | if ((data->flag & DEG_ITER_OBJECT_FLAG_DUPLI) && (object->transflag & OB_DUPLI)) { | ||||
| data->dupli_parent = object; | data->dupli_parent = object; | ||||
| data->dupli_list = object_duplilist(data->graph, data->scene, object); | data->dupli_list = object_duplilist(data->graph, data->scene, object); | ||||
| data->dupli_object_next = (DupliObject *)data->dupli_list->first; | data->dupli_object_next = (DupliObject *)data->dupli_list->first; | ||||
| } | } | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 152 Lines • Show Last 20 Lines | |||||