Blender V4.3
LightTreeNode Struct Reference

#include <light_tree.h>

Classes

struct  Inner
 
struct  Instance
 
struct  Leaf
 

Public Member Functions

 LightTreeNode (const LightTreeMeasure &measure, const uint &bit_trial)
 
 ~LightTreeNode ()=default
 
__forceinline void add (const LightTreeEmitter &emitter)
 
__forceinline Leafget_leaf ()
 
__forceinline const Leafget_leaf () const
 
__forceinline Innerget_inner ()
 
__forceinline const Innerget_inner () const
 
__forceinline Instanceget_instance ()
 
__forceinline const Instanceget_instance () const
 
void make_leaf (const int first_emitter_index, const int num_emitters)
 
void make_distant (const int first_emitter_index, const int num_emitters)
 
void make_instance (LightTreeNode *reference, const int object_id)
 
LightTreeNodeget_reference ()
 
__forceinline bool is_instance () const
 
__forceinline bool is_leaf () const
 
__forceinline bool is_inner () const
 
__forceinline bool is_distant () const
 

Public Attributes

LightTreeMeasure measure
 
LightTreeLightLink light_link
 
uint bit_trail
 
int object_id
 
int type
 
std::variant< Leaf, Inner, Instancevariant_type
 

Detailed Description

Definition at line 241 of file light_tree.h.

Constructor & Destructor Documentation

◆ LightTreeNode()

LightTreeNode::LightTreeNode ( const LightTreeMeasure & measure,
const uint & bit_trial )
inline

Definition at line 269 of file light_tree.h.

References LIGHT_TREE_INNER.

◆ ~LightTreeNode()

LightTreeNode::~LightTreeNode ( )
default

Member Function Documentation

◆ add()

◆ get_inner() [1/2]

__forceinline Inner & LightTreeNode::get_inner ( )
inline

Definition at line 293 of file light_tree.h.

References variant_type.

Referenced by light_tree_specialize_nodes_flatten().

◆ get_inner() [2/2]

__forceinline const Inner & LightTreeNode::get_inner ( ) const
inline

Definition at line 298 of file light_tree.h.

References variant_type.

◆ get_instance() [1/2]

__forceinline Instance & LightTreeNode::get_instance ( )
inline

Definition at line 303 of file light_tree.h.

References variant_type.

Referenced by get_reference(), and make_instance().

◆ get_instance() [2/2]

__forceinline const Instance & LightTreeNode::get_instance ( ) const
inline

Definition at line 308 of file light_tree.h.

References variant_type.

◆ get_leaf() [1/2]

__forceinline Leaf & LightTreeNode::get_leaf ( )
inline

Definition at line 283 of file light_tree.h.

References variant_type.

Referenced by make_distant(), and make_leaf().

◆ get_leaf() [2/2]

__forceinline const Leaf & LightTreeNode::get_leaf ( ) const
inline

Definition at line 288 of file light_tree.h.

References variant_type.

◆ get_reference()

LightTreeNode * LightTreeNode::get_reference ( )
inline

◆ is_distant()

__forceinline bool LightTreeNode::is_distant ( ) const
inline

Definition at line 367 of file light_tree.h.

References LIGHT_TREE_DISTANT.

◆ is_inner()

__forceinline bool LightTreeNode::is_inner ( ) const
inline

Definition at line 362 of file light_tree.h.

References LIGHT_TREE_INNER.

Referenced by light_tree_specialize_nodes_flatten().

◆ is_instance()

__forceinline bool LightTreeNode::is_instance ( ) const
inline

Definition at line 352 of file light_tree.h.

References LIGHT_TREE_INSTANCE.

Referenced by get_reference().

◆ is_leaf()

__forceinline bool LightTreeNode::is_leaf ( ) const
inline

Definition at line 357 of file light_tree.h.

References LIGHT_TREE_LEAF.

◆ make_distant()

void LightTreeNode::make_distant ( const int first_emitter_index,
const int num_emitters )
inline

◆ make_instance()

void LightTreeNode::make_instance ( LightTreeNode * reference,
const int object_id )
inline

Definition at line 333 of file light_tree.h.

References get_instance(), LIGHT_TREE_INSTANCE, object_id, and variant_type.

◆ make_leaf()

void LightTreeNode::make_leaf ( const int first_emitter_index,
const int num_emitters )
inline

Member Data Documentation

◆ bit_trail

uint LightTreeNode::bit_trail

Definition at line 244 of file light_tree.h.

◆ light_link

LightTreeLightLink LightTreeNode::light_link

Definition at line 243 of file light_tree.h.

Referenced by add(), and light_tree_specialize_nodes_flatten().

◆ measure

LightTreeMeasure LightTreeNode::measure

Definition at line 242 of file light_tree.h.

Referenced by add(), and light_tree_specialize_nodes_flatten().

◆ object_id

int LightTreeNode::object_id

Definition at line 245 of file light_tree.h.

Referenced by make_instance().

◆ type

int LightTreeNode::type

Definition at line 249 of file light_tree.h.

Referenced by light_tree_leaf_emitters_copy_and_flatten().

◆ variant_type


The documentation for this struct was generated from the following file: