Blender  V3.3
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | List of all members
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, 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 123 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 127 of file scene/object.h.

Constructor & Destructor Documentation

◆ ObjectManager()

ObjectManager::ObjectManager ( )

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

References need_flags_update, and UPDATE_ALL.

◆ ~ObjectManager()

ObjectManager::~ObjectManager ( )

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

Member Function Documentation

◆ apply_static_transforms()

void ObjectManager::apply_static_transforms ( DeviceScene dscene,
Scene scene,
Progress progress 
)

◆ device_free()

void ObjectManager::device_free ( Device device,
DeviceScene dscene,
bool  force_free 
)

◆ device_update()

void ObjectManager::device_update ( Device device,
DeviceScene dscene,
Scene scene,
Progress progress 
)

◆ device_update_flags()

void ObjectManager::device_update_flags ( Device device,
DeviceScene dscene,
Scene scene,
Progress progress,
bool  bounds_valid = true 
)

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

References need_flags_update, need_update(), scene, time, and Scene::update_stats.

Referenced by Scene::device_update().

◆ device_update_geom_offsets()

void ObjectManager::device_update_geom_offsets ( Device device,
DeviceScene dscene,
Scene scene 
)

◆ device_update_object_transform()

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

Definition at line 399 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::color, Object::color, color, KernelObject::cryptomatte_asset, KernelObject::cryptomatte_object, Object::data, KernelObject::dupli_generated, KernelObject::dupli_uv, AttributeSet::find(), float(), Geometry::geometry_type, Geometry::HAIR, Object::index, Geometry::is_volume(), KernelObject::itfm, KernelObject::lightgroup, Object::lightgroup, LIGHTGROUP_NONE, Scene::lightgroups, Geometry::MESH, mesh, Scene::MOTION_BLUR, KernelObject::motion_offset, Scene::MOTION_PASS, Node::name, PointCloud::num_points(), KernelObject::numkeys, KernelObject::numsteps, KernelObject::numverts, OBJECT_MOTION_PASS_SIZE, object_volume_density(), particle_index(), KernelObject::particle_index, KernelObject::pass_id, KernelObject::patch_map_offset, Geometry::POINTCLOUD, KernelObject::primitive_type, Geometry::primitive_type(), KernelObject::random_number, scene, 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, KernelObject::shadow_terminator_geometry_offset, KernelObject::shadow_terminator_shading_offset, Mesh::size, state, KernelObject::tfm, transform_inverse(), transform_motion_decompose(), Object::update_motion(), Object::use_motion(), util_hash_to_float(), util_murmur_hash3(), KernelObject::velocity_scale, KernelObject::visibility, Object::visibility_for_tracing(), Geometry::VOLUME, and KernelObject::volume_density.

◆ device_update_object_transform_pop_work()

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

◆ device_update_object_transform_task()

void ObjectManager::device_update_object_transform_task ( UpdateObjectTransformState state)
protected

◆ device_update_prim_offsets()

void ObjectManager::device_update_prim_offsets ( Device device,
DeviceScene dscene,
Scene scene 
)

◆ device_update_transforms()

void ObjectManager::device_update_transforms ( DeviceScene dscene,
Scene scene,
Progress progress 
)

◆ get_cryptomatte_assets()

string ObjectManager::get_cryptomatte_assets ( Scene scene)

◆ get_cryptomatte_objects()

string ObjectManager::get_cryptomatte_objects ( Scene scene)

◆ need_update()

bool ObjectManager::need_update ( ) const

◆ tag_update()

void ObjectManager::tag_update ( Scene scene,
uint32_t  flag 
)

Member Data Documentation

◆ need_flags_update

bool ObjectManager::need_flags_update

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

Referenced by device_update_flags(), ObjectManager(), and Shader::tag_update().


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