Blender V5.0
ObjectManager Class Reference

#include <object.h>

Public Types

enum  : uint32_t {
  PARTICLE_MODIFIED = (1 << 0) , GEOMETRY_MANAGER = (1 << 1) , MOTION_BLUR_MODIFIED = (1 << 2) , OBJECT_ADDED = (1 << 3) ,
  OBJECT_REMOVED = (1 << 4) , OBJECT_MODIFIED = (1 << 5) , HOLDOUT_MODIFIED = (1 << 6) , TRANSFORM_MODIFIED = (1 << 7) ,
  VISIBILITY_MODIFIED = (1 << 8) , UPDATE_ALL = ~0u , UPDATE_NONE = 0u
}

Public Member Functions

 ObjectManager ()
 ~ObjectManager ()
void device_update (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress)
void device_update_transforms (DeviceScene *dscene, Scene *scene, Progress &progress)
void device_update_prim_offsets (Device *device, DeviceScene *dscene, Scene *scene)
void device_update_flags (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress, bool bounds_valid=true)
void device_update_geom_offsets (Device *device, DeviceScene *dscene, Scene *scene)
void device_free (Device *device, DeviceScene *dscene, bool force_free)
void tag_update (Scene *scene, const uint32_t flag)
bool need_update () const
void apply_static_transforms (DeviceScene *dscene, Scene *scene, Progress &progress)
string get_cryptomatte_objects (Scene *scene)
string get_cryptomatte_assets (Scene *scene)

Public Attributes

bool need_flags_update

Protected Member Functions

void device_update_object_transform (UpdateObjectTransformState *state, Object *ob, bool update_all, const Scene *scene)
void device_update_object_transform_task (UpdateObjectTransformState *state)
bool device_update_object_transform_pop_work (UpdateObjectTransformState *state, int *start_index, int *num_objects)

Detailed Description

Definition at line 137 of file scene/object.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum : uint32_t
Enumerator
PARTICLE_MODIFIED 
GEOMETRY_MANAGER 
MOTION_BLUR_MODIFIED 
OBJECT_ADDED 
OBJECT_REMOVED 
OBJECT_MODIFIED 
HOLDOUT_MODIFIED 
TRANSFORM_MODIFIED 
VISIBILITY_MODIFIED 
UPDATE_ALL 
UPDATE_NONE 

Definition at line 141 of file scene/object.h.

Constructor & Destructor Documentation

◆ ObjectManager()

ObjectManager::ObjectManager ( )

Definition at line 446 of file scene/object.cpp.

References need_flags_update, and UPDATE_ALL.

◆ ~ObjectManager()

Member Function Documentation

◆ apply_static_transforms()

◆ device_free()

◆ device_update()

◆ device_update_flags()

◆ device_update_geom_offsets()

◆ device_update_object_transform()

void ObjectManager::device_update_object_transform ( UpdateObjectTransformState * state,
Object * ob,
bool update_all,
const Scene * scene )
protected

Definition at line 475 of file scene/object.cpp.

References KernelObject::alpha, KernelObject::ao_distance, ATTR_STD_MOTION_VERTEX_POSITION, ATTR_STD_VOLUME_VELOCITY, KernelObject::attribute_map_offset, Geometry::attributes, KernelObject::blocker_shadow_set, KernelObject::color, Object::color, KernelObject::cryptomatte_asset, KernelObject::cryptomatte_object, Object::data, KernelObject::dupli_generated, KernelObject::dupli_uv, AttributeSet::find(), flag, float, Object::index, Geometry::is_hair(), Geometry::is_mesh(), Geometry::is_pointcloud(), Geometry::is_volume(), KernelObject::itfm, LIGHT_LINK_SET_MAX, KernelObject::light_set_membership, KernelObject::lightgroup, Object::lightgroup, LIGHTGROUP_NONE, Scene::lightgroups, Scene::MOTION_BLUR, KernelObject::motion_offset, Scene::MOTION_PASS, Node::name, KernelObject::num_geom_steps, KernelObject::num_tfm_steps, KernelObject::numverts, OBJECT_MOTION_PASS_SIZE, object_num_motion_verts(), object_volume_density(), KernelObject::particle_index, particle_index(), KernelObject::pass_id, Geometry::primitive_type(), KernelObject::primitive_type, KernelObject::random_number, KernelObject::receiver_light_set, SD_OBJECT_CAUSTICS_CASTER, SD_OBJECT_CAUSTICS_RECEIVER, SD_OBJECT_HAS_VERTEX_MOTION, SD_OBJECT_HAS_VOLUME_MOTION, SD_OBJECT_HOLDOUT_MASK, SD_OBJECT_MOTION, SD_OBJECT_NEGATIVE_SCALE, KernelObject::shadow_set_membership, KernelObject::shadow_terminator_geometry_offset, Object::shadow_terminator_geometry_offset, KernelObject::shadow_terminator_shading_offset, Object::shadow_terminator_shading_offset, state, Mesh::subd_attributes, Mesh::SUBDIVISION_NONE, KernelObject::tfm, transform_inverse(), transform_motion_decompose(), transform_negative_scale(), Object::update_motion(), Object::use_motion(), util_hash_to_float(), util_murmur_hash3(), KernelObject::velocity_scale, KernelObject::visibility, Object::visibility_for_tracing(), KernelObject::volume_density, float3::x, float3::y, and float3::z.

Referenced by ~ObjectManager().

◆ device_update_object_transform_pop_work()

bool ObjectManager::device_update_object_transform_pop_work ( UpdateObjectTransformState * state,
int * start_index,
int * num_objects )
protected

References state.

◆ device_update_object_transform_task()

void ObjectManager::device_update_object_transform_task ( UpdateObjectTransformState * state)
protected

References state.

◆ device_update_prim_offsets()

◆ device_update_transforms()

◆ get_cryptomatte_assets()

string ObjectManager::get_cryptomatte_assets ( Scene * scene)

Definition at line 1129 of file scene/object.cpp.

References Scene::objects, string_printf(), and util_murmur_hash3().

Referenced by ~ObjectManager().

◆ get_cryptomatte_objects()

string ObjectManager::get_cryptomatte_objects ( Scene * scene)

Definition at line 1112 of file scene/object.cpp.

References Node::name, Scene::objects, string_printf(), and util_murmur_hash3().

Referenced by ~ObjectManager().

◆ need_update()

bool ObjectManager::need_update ( ) const

Definition at line 1107 of file scene/object.cpp.

References UPDATE_NONE.

Referenced by device_update(), device_update_flags(), Film::update_passes(), and ~ObjectManager().

◆ tag_update()

Member Data Documentation

◆ need_flags_update

bool ObjectManager::need_flags_update

Definition at line 158 of file scene/object.h.

Referenced by device_update_flags(), and ObjectManager().


The documentation for this class was generated from the following files: