17 bool BlenderSync::sync_dupli_particle(
BL::Object &b_ob,
18 BL::DepsgraphObjectInstance &b_instance,
26 object->set_hide_on_missing_motion(
true);
33 BL::Array<int, OBJECT_PERSISTENT_ID_SIZE> persistent_id = b_instance.persistent_id();
35 if (persistent_id[0] >= b_psys.particles.length())
42 bool first_use = !particle_system_map.
is_used(key);
43 bool need_update = particle_system_map.
add_or_update(&psys, b_ob, b_instance.object(), key);
46 if (!need_update && !object->get_geometry()->
is_modified() &&
60 pa.
index = persistent_id[0];
61 pa.
age = b_scene.frame_current_final() - b_pa.birth_time();
65 pa.
size = b_pa.size();
71 object->set_particle_system(psys);
74 if (object->particle_index_is_modified())
struct ParticleSystem ParticleSystem
void tag_update(Scene *scene, uint32_t flag)
bool add_or_update(T **r_data, const BL::ID &id)
bool is_used(const K &key)
#define CCL_NAMESPACE_END
static float4 get_float4(const BL::Array< float, 4 > &array)
static float3 get_float3(const BL::Array< float, 2 > &array)
void tag_update(Scene *scene)
ObjectManager * object_manager