Blender V4.5
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 249 of file light_tree.h.

Constructor & Destructor Documentation

◆ LightTreeNode()

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

Definition at line 277 of file light_tree.h.

References LIGHT_TREE_INNER, and type.

◆ ~LightTreeNode()

LightTreeNode::~LightTreeNode ( )
default

Member Function Documentation

◆ add()

◆ get_inner() [1/2]

__forceinline Inner & LightTreeNode::get_inner ( )
inline

◆ get_inner() [2/2]

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

Definition at line 306 of file light_tree.h.

References variant_type.

◆ get_instance() [1/2]

__forceinline Instance & LightTreeNode::get_instance ( )
inline

Definition at line 311 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 316 of file light_tree.h.

References variant_type.

◆ get_leaf() [1/2]

__forceinline Leaf & LightTreeNode::get_leaf ( )
inline

Definition at line 291 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 296 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 375 of file light_tree.h.

References LIGHT_TREE_DISTANT, and type.

◆ is_inner()

__forceinline bool LightTreeNode::is_inner ( ) const
inline

Definition at line 370 of file light_tree.h.

References LIGHT_TREE_INNER, and type.

Referenced by light_tree_specialize_nodes_flatten().

◆ is_instance()

__forceinline bool LightTreeNode::is_instance ( ) const
inline

Definition at line 360 of file light_tree.h.

References LIGHT_TREE_INSTANCE, and type.

Referenced by get_reference().

◆ is_leaf()

__forceinline bool LightTreeNode::is_leaf ( ) const
inline

Definition at line 365 of file light_tree.h.

References LIGHT_TREE_LEAF, and type.

◆ 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

◆ 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 252 of file light_tree.h.

◆ light_link

LightTreeLightLink LightTreeNode::light_link

Definition at line 251 of file light_tree.h.

Referenced by add(), and light_tree_specialize_nodes_flatten().

◆ measure

LightTreeMeasure LightTreeNode::measure

Definition at line 250 of file light_tree.h.

Referenced by add(), LightTree::build(), and light_tree_specialize_nodes_flatten().

◆ object_id

int LightTreeNode::object_id

Definition at line 253 of file light_tree.h.

Referenced by make_instance().

◆ type

◆ variant_type


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