Changeset View
Changeset View
Standalone View
Standalone View
source/blender/depsgraph/intern/depsgraph_query_iter.cc
| Show First 20 Lines • Show All 187 Lines • ▼ Show 20 Lines | if (pointcloud != nullptr) { | ||||
| temp_object->type = OB_POINTCLOUD; | temp_object->type = OB_POINTCLOUD; | ||||
| temp_object->data = (void *)pointcloud; | temp_object->data = (void *)pointcloud; | ||||
| temp_object->runtime.select_id = data->geometry_component_owner->runtime.select_id; | temp_object->runtime.select_id = data->geometry_component_owner->runtime.select_id; | ||||
| iter->current = temp_object; | iter->current = temp_object; | ||||
| return true; | return true; | ||||
| } | } | ||||
| } | } | ||||
| /* The volume component. */ | |||||
| if (data->geometry_component_id == 2) { | |||||
| data->geometry_component_id++; | |||||
| /* Don't use a temporary object for this component, when the owner is a volume object. */ | |||||
| if (data->geometry_component_owner->type == OB_VOLUME) { | |||||
| iter->current = data->geometry_component_owner; | |||||
| return true; | |||||
| } | |||||
| const VolumeComponent *component = geometry_set->get_component_for_read<VolumeComponent>(); | |||||
| if (component != nullptr) { | |||||
| const Volume *volume = component->get_for_read(); | |||||
| Object *temp_object = &data->temp_geometry_component_object; | |||||
| *temp_object = *data->geometry_component_owner; | |||||
| temp_object->type = OB_VOLUME; | |||||
| temp_object->data = (void *)volume; | |||||
| temp_object->runtime.select_id = data->geometry_component_owner->runtime.select_id; | |||||
| iter->current = temp_object; | |||||
| return true; | |||||
| } | |||||
| } | |||||
| data->geometry_component_owner = nullptr; | data->geometry_component_owner = nullptr; | ||||
| return false; | return false; | ||||
| } | } | ||||
| void deg_iterator_duplis_init(DEGObjectIterData *data, Object *object) | void deg_iterator_duplis_init(DEGObjectIterData *data, Object *object) | ||||
| { | { | ||||
| if ((data->flag & DEG_ITER_OBJECT_FLAG_DUPLI) && | if ((data->flag & DEG_ITER_OBJECT_FLAG_DUPLI) && | ||||
| ((object->transflag & OB_DUPLI) || object->runtime.geometry_set_eval != nullptr)) { | ((object->transflag & OB_DUPLI) || object->runtime.geometry_set_eval != nullptr)) { | ||||
| ▲ Show 20 Lines • Show All 266 Lines • Show Last 20 Lines | |||||