Kanzi  3.9.9
Kanzi Engine C++ API
kanzi::GatherNearestLightsRenderPass::NearestLightRange Class Reference

Nearest light range is an extension to light range that returns the lights in distance order to caller. More...

#include <kanzi/core.ui/graphics3d/gather_nearest_lights_render_pass.hpp>

Inheritance diagram for kanzi::GatherNearestLightsRenderPass::NearestLightRange:
[legend]

Classes

class  NearestLightRangeLocation
 Light range location implementation. More...
 

Public Member Functions

bool isOrderDirty () const
 Indicates whether the light order is dirty and needs recalculation. More...
 
void setOrderDirty ()
 Queue notification for the light range. More...
 
 ~NearestLightRange ()
 Destructor. More...
 
- Public Member Functions inherited from kanzi::TypedValueRange< LightDistanceInfo >
iterator begin ()
 Gets an iterator to the beginning of the range. More...
 
const_iterator begin () const
 Gets an iterator to the beginning of the range. More...
 
const_iterator cbegin () const
 Gets an iterator to the beginning of the range. More...
 
const_iterator cend () const
 Gets an iterator to the end of the range. More...
 
void clear ()
 Clears all values from internal storage. More...
 
iterator end ()
 Gets an iterator to the end of the range. More...
 
const_iterator end () const
 Gets an iterator to the end of the range. More...
 
vector< LightDistanceInfo >::reference operator[] (size_t index)
 Access operator. More...
 
vector< LightDistanceInfo >::const_reference operator[] (size_t index) const
 Const access operator. More...
 
void push_back (const LightDistanceInfo &value)
 Appends a value to the end of internal storage. More...
 
void push_back (LightDistanceInfo &&value)
 Appends a value to the end of internal storage. More...
 
void setValue (size_t index, const LightDistanceInfo &value)
 Sets a value to the internal storage index. More...
 
size_t size () const
 Tells the number of elements in the range. More...
 
- Public Member Functions inherited from kanzi::AbstractIndexedRange
PropertyObjectSharedPtr getPropertyObjectByIndex (size_t index)
 Gets a property object by index. More...
 
bool getPropertyValueByIndex (size_t index, AbstractPropertyType propertyType, Variant &value)
 Access a property in a property object at an index. More...
 
size_t getSize ()
 Gets the size of the indexed range. More...
 
bool getValueByIndex (size_t index, Variant &value)
 Reads a value by index and writes it to a variant. More...
 
- Public Member Functions inherited from kanzi::AbstractRange
bool adaptView (AbstractRange &potentialViewRange, size_t length)
 Attempts to reuse a view over this range. More...
 
AbstractRangeIterator beginIteration ()
 Gets an iterator to the beginning of this range. More...
 
AbstractRangeSharedPtr createView (size_t length)
 Creates a view over this range. More...
 
AbstractRangeSharedPtr evaluate ()
 Evaluate the abstract range. More...
 
AbstractRangeLocationPtr locationBegin ()
 Gets an iteratable location to beginning of the range. More...
 
virtual ~AbstractRange ()=default
 Destructor. More...
 

Static Public Member Functions

static shared_ptr< NearestLightRangecreate (LightRangeSharedPtr lightRange, Node3DSharedPtr referenceNode)
 Creates a new nearest light range. More...
 
static shared_ptr< NearestLightRangecreate (LightRangeSharedPtr lightRange)
 Creates a new nearest light range. More...
 
- Static Public Member Functions inherited from kanzi::TypedValueRange< LightDistanceInfo >
static shared_ptr< TypedValueRangecreate ()
 Creates a new typed value range. More...
 

Protected Member Functions

 NearestLightRange (LightRangeSharedPtr lightRange, Node3DSharedPtr referenceNode)
 Default Constructor. More...
 
void sortLights ()
 Sort the lights according to the already-stored distance. More...
 
- Protected Member Functions inherited from kanzi::TypedValueRange< LightDistanceInfo >
PropertyObjectSharedPtr getPropertyObjectByIndexOverride (size_t index) override
 AbstractIndexedRange::getPropertyObjectByIndexOverride() implementation. More...
 
bool getPropertyValueByIndexOverride (size_t index, AbstractPropertyType propertyType, Variant &value) override
 AbstractIndexedRange::getPropertyValueByIndexOverride() implementation. More...
 
size_t getSizeOverride () override
 AbstractIndexedRange::getSizeOverride() implementation. More...
 
bool getValueByIndexOverride (size_t index, Variant &value) override
 AbstractIndexedRange::getValueByIndexOverride() implementation. More...
 
AbstractRangeLocationPtr locationBeginOverride () override
 AbstractRange::locationBeginOverride() implementation. More...
 
 TypedValueRange ()=default
 Default constructor. More...
 
- Protected Member Functions inherited from kanzi::AbstractIndexedRange
bool adaptViewOverride (AbstractRange &potentialViewRange, size_t length) override
 AbstractRange::adaptViewOverride() implementation. More...
 
AbstractRangeSharedPtr createViewOverride (size_t length) override
 AbstractRange::createViewOverride() implementation. More...
 
- Protected Member Functions inherited from kanzi::AbstractRange
 AbstractRange ()=default
 Constructor. More...
 
virtual AbstractRangeSharedPtr evaluateOverride ()
 Implementation-dependent evaluation of the range. More...
 

Protected Attributes

LightRangeWeakPtr m_lightRange
 Source light range. More...
 
bool m_orderDirty
 Flag for indicating whether or not the ordering in this light range is dirty. More...
 
Node3DWeakPtr m_referenceNode
 Reference to a node. More...
 
- Protected Attributes inherited from kanzi::TypedValueRange< LightDistanceInfo >
vector< LightDistanceInfo > m_values
 Container for single type of value. More...
 

Additional Inherited Members

- Public Types inherited from kanzi::TypedValueRange< LightDistanceInfo >
using const_iterator = typename vector< LightDistanceInfo >::const_iterator
 Const iterator type for values. More...
 
using iterator = typename vector< LightDistanceInfo >::iterator
 Iterator type for values. More...
 

Detailed Description

Nearest light range is an extension to light range that returns the lights in distance order to caller.

Constructor & Destructor Documentation

kanzi::GatherNearestLightsRenderPass::NearestLightRange::~NearestLightRange ( )

Destructor.

kanzi::GatherNearestLightsRenderPass::NearestLightRange::NearestLightRange ( LightRangeSharedPtr  lightRange,
Node3DSharedPtr  referenceNode 
)
explicitprotected

Default Constructor.

Parameters
lightRangeLight range referenced.
referenceNodeReference node for the sorting.

Member Function Documentation

static shared_ptr<NearestLightRange> kanzi::GatherNearestLightsRenderPass::NearestLightRange::create ( LightRangeSharedPtr  lightRange,
Node3DSharedPtr  referenceNode 
)
static

Creates a new nearest light range.

Parameters
lightRangeLight range referenced.
referenceNodeReference node for the sorting.
static shared_ptr<NearestLightRange> kanzi::GatherNearestLightsRenderPass::NearestLightRange::create ( LightRangeSharedPtr  lightRange)
inlinestatic

Creates a new nearest light range.

Parameters
lightRangeLight range referenced.
bool kanzi::GatherNearestLightsRenderPass::NearestLightRange::isOrderDirty ( ) const
inline

Indicates whether the light order is dirty and needs recalculation.

Returns
If the ordering is dirty, true, false otherwise.
void kanzi::GatherNearestLightsRenderPass::NearestLightRange::setOrderDirty ( )
inline

Queue notification for the light range.

When you call this function, the next execution of the Gather Nearest Lights Render Pass notifies the range.

void kanzi::GatherNearestLightsRenderPass::NearestLightRange::sortLights ( )
protected

Sort the lights according to the already-stored distance.

This function does nothing if the order is not dirty or if the

Member Data Documentation

LightRangeWeakPtr kanzi::GatherNearestLightsRenderPass::NearestLightRange::m_lightRange
protected

Source light range.

Node3DWeakPtr kanzi::GatherNearestLightsRenderPass::NearestLightRange::m_referenceNode
protected

Reference to a node.

bool kanzi::GatherNearestLightsRenderPass::NearestLightRange::m_orderDirty
protected

Flag for indicating whether or not the ordering in this light range is dirty.


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