128 PARTICLE_MODIFIED = (1 << 0),
129 GEOMETRY_MANAGER = (1 << 1),
130 MOTION_BLUR_MODIFIED = (1 << 2),
131 OBJECT_ADDED = (1 << 3),
132 OBJECT_REMOVED = (1 << 4),
133 OBJECT_MODIFIED = (1 << 5),
134 HOLDOUT_MODIFIED = (1 << 6),
135 TRANSFORM_MODIFIED = (1 << 7),
136 VISIBILITY_MODIFIED = (1 << 8),
153 void device_update_flags(
Device *device,
157 bool bounds_valid =
true);
164 bool need_update()
const;
void device_update_object_transform_task(UpdateObjectTransformState *state)
bool device_update_object_transform_pop_work(UpdateObjectTransformState *state, int *start_index, int *num_objects)
#define CCL_NAMESPACE_END
#define NODE_SOCKET_API_ARRAY(type_, name)
ccl_device_inline uint particle_index(KernelGlobals kg, int particle)
void compute_bounds(bool motion_blur)
int motion_step(float time) const
NODE_DECLARE BoundBox bounds
NODE_SOCKET_API(ParticleSystem *, particle_system)
vector< ParamValue > attributes
int get_device_index() const
void apply_transform(bool apply_to_motion)
friend class ObjectManager
float compute_volume_step_size() const
static const uint MAX_MOTION_STEPS
bool is_traceable() const
uint visibility_for_tracing() const
void tag_update(Scene *scene)
float motion_time(int step) const
struct LightgroupMembership * lightgroup