This is the documentation for Enlighten.

class Enlighten ProbeSetManagerOctree

class Enlighten::ProbeSetManagerOctree

    └>Enlighten::IProbeSetManager

An implementation of IProbeSetManager with a fast path for scenes which contain only octree probe sets.

Functions

Name Description
GetInterpolationInputSet(Geo::u32)

Get an interpolation set that corresponds to given index.

GetInterpolationInputSet(Geo::u32)

Get an interpolation set that corresponds to given index - this index needs to be comaptible with ProbeInterpolant::m_ProbeSetIndex filled by the GetProbeInterpolants(...) method.

GetLodRangeProbeInterpolants(Geo::v128 const &, ProbeInterpolant *, Geo::s32, Geo::u8 *, Geo::u32)

Retrieves the probes interpolants for a given point and specified range of LODs.

GetLodRangeProbeInterpolants(const Geo::v128 &, ProbeInterpolant *, Geo::s32, Geo::u8 *, Geo::u32)

Retrieves the probes interpolants for a given point and specified range of LODs.

GetMaxWeightForProbeSet(Geo::GeoGuid const &, float &)

Set a maximum interpolation weight for the given Probe Set.

GetMaxWeightForProbeSet(const Geo::GeoGuid &, float &)

Get a maximum interpolation weight for the given Probe Set.

GetNumProbeSets()

Get the total number of Probe Sets under management.

GetNumProbeSets()

Get the total number of Probe Sets under management.

GetProbeInterpolants(Geo::v128 const &, ProbeInterpolant *, Geo::s32, Geo::s32 &, Geo::u32)

Retrieves the probes interpolants for a given point and specified LOD.

GetProbeInterpolants(Geo::v128 const &, ProbeInterpolant *, Geo::s32, Geo::s32 &)

Retrieves the probes interpolants for a given point.

GetProbeInterpolants(const Geo::v128 &, ProbeInterpolant *, Geo::s32, Geo::s32 &, Geo::u32)

Retrieves the probes interpolants for a given point and specified LOD.

GetProbeInterpolants(const Geo::v128 &, ProbeInterpolant *, Geo::s32, Geo::s32 &)

Retrieves the probes interpolants for a given point.

MarkAllProbeSetsAsUnloaded()

Marks all Interpolation Input Sets as unloaded.

MarkAllProbeSetsAsUnloaded()

Marks all input sets as unloaded.

MarkProbeSetAsLoaded(const InterpolationInputSet &)

Marks given Interpolation Input Set as loaded. Only loaded input sets are used for interpolation.

MarkProbeSetAsLoaded(Enlighten::InterpolationInputSet const &)

Marks given Interpolation Input Set as loaded.

MarkProbeSetAsUnloaded(const Geo::GeoGuid &)

Marks given Interpolation Input Set as unloaded. Unloaded input sets are not used for interpolation.

MarkProbeSetAsUnloaded(Geo::GeoGuid const &)

Marks given Interpolation Input Set as unloaded.

NonCopyable(NonCopyable &&)

Defaulted to allow move.

OnAllLoadedProbeSetsArrayChanged(const InterpolationInputSet *, Geo::s32)

Marks an array of Interpolation Input Set as loaded. All other input sets are considered unloaded.

OnAllLoadedProbeSetsArrayChanged(Enlighten::InterpolationInputSet const *, Geo::s32)

Allows the probe set manager a chance to observe the contiguous memory block in which the runtime stores all loaded input sets.

operator=(NonCopyable &&)

Defaulted to allow move.

SetMaxWeightForProbeSet(const Geo::GeoGuid &, float)

Set a maximum interpolation weight for the given Probe Set.

SetMaxWeightForProbeSet(Geo::GeoGuid const &, float)

Set a maximum interpolation weight for the given Probe Set.


virtual const InterpolationInputSet* Enlighten::ProbeSetManagerOctree::GetInterpolationInputSet


public: virtual const InterpolationInputSet * GetInterpolationInputSet
(
    Geo::u32 index
) const


Get an interpolation set that corresponds to given index.


virtual Enlighten::InterpolationInputSet const* Enlighten::IProbeSetManager::GetInterpolationInputSet


public: Enlighten::InterpolationInputSet const * GetInterpolationInputSet
(
    Geo::u32 index
) const


Get an interpolation set that corresponds to given index - this index needs to be comaptible with ProbeInterpolant::m_ProbeSetIndex filled by the GetProbeInterpolants(...) method.

May return NULL is Probe Set that corresponds to index is unloaded. Note, however that none of the ProbeInterpolant::m_ProbeSetIndex indices returned from GetProbeInterpolants(...) should correspond to an unloaded Probe Sets.

Returns

The InterpolationI Input Set for a given index or NULL if that Probe Set in unloaded.


virtual bool Enlighten::IProbeSetManager::GetLodRangeProbeInterpolants


public: virtual bool GetLodRangeProbeInterpolants
(
    Geo::v128 const & point,
    ProbeInterpolant * interpolants,
    Geo::s32 numMaxInterpolants,
    Geo::u8 * numUsedInterpolants,
    Geo::u32 numLods
) const


Retrieves the probes interpolants for a given point and specified range of LODs.

Only loaded Probe Sets are considered for interpolation. This interface is only supported to enable Transparency and Contributing Probe when using Probe LOD with PPPI.

Parameters
[in] point

Location used for the interpolation.

[out] interpolants

Output probe interpolants array with size numMaxInterpolants * numLods.

[in] numMaxInterpolants

Maximum number of interpolants that may be output for each LOD.

[out] numUsedInterpolants

Array to which is output the number of interpolants used for each LOD.

[in] numLods

The range of LODs [0, numLods) for which interpolants should be returned.

Returns

TRUE if the input to this function is valid and the interpolation is successful, otherwise FALSE.


virtual bool Enlighten::ProbeSetManagerOctree::GetLodRangeProbeInterpolants


public: virtual bool GetLodRangeProbeInterpolants
(
    const Geo::v128 & point,
    ProbeInterpolant * interpolants,
    Geo::s32 maxInterpolantCount,
    Geo::u8 * usedInterpolantCount,
    Geo::u32 numLods
) const


Retrieves the probes interpolants for a given point and specified range of LODs.


virtual bool Enlighten::IProbeSetManager::GetMaxWeightForProbeSet


public: bool GetMaxWeightForProbeSet
(
    Geo::GeoGuid const & probeSet,
    float & maxWeight
) const


Set a maximum interpolation weight for the given Probe Set.

. Needs to perform a search OLog(N). Where N is number of probe sets under management.

Parameters
[in] probeSet

The GUID of the Probe Set.

[out] maxWeight

New maximum interpolation weight.

Returns

TRUE if the Probe Set is under ProbeSetManager management, otherwise FALSE.


virtual bool Enlighten::ProbeSetManagerOctree::GetMaxWeightForProbeSet


public: virtual bool GetMaxWeightForProbeSet
(
    const Geo::GeoGuid & probeSet,
    float & maxWeight
) const


Get a maximum interpolation weight for the given Probe Set.


virtual Geo::s32 Enlighten::IProbeSetManager::GetNumProbeSets


public: Geo::s32 GetNumProbeSets() const


Get the total number of Probe Sets under management.

Returns

the total number of Probe Sets under management.


virtual Geo::s32 Enlighten::ProbeSetManagerOctree::GetNumProbeSets


public: virtual Geo::s32 GetNumProbeSets() const


Get the total number of Probe Sets under management.


virtual bool Enlighten::IProbeSetManager::GetProbeInterpolants


public: bool GetProbeInterpolants
(
    Geo::v128 const & point,
    ProbeInterpolant * interpolants,
    Geo::s32 numMaxInterpolants,
    Geo::s32 & numUsedInterpolants,
    Geo::u32 lod
) const


Retrieves the probes interpolants for a given point and specified LOD.

Only loaded Probe Sets are considered for interpolation. This interface is only supported to enable Transparency and Contributing Probe when using Probe LOD with PPPI.

Parameters
[in] point

Location used for the interpolation.

[out] interpolants

Output probe interpolants.

[in] numMaxInterpolants

Size of the output interpolants array.

[out] numUsedInterpolants

Number of interpolants actually used.

[in] lod

The LOD to select which interpolants should be returned.

Returns

TRUE if the input to this function is valid and the interpolation is successful, otherwise FALSE.


virtual bool Enlighten::IProbeSetManager::GetProbeInterpolants


public: bool GetProbeInterpolants
(
    Geo::v128 const & point,
    ProbeInterpolant * interpolants,
    Geo::s32 numMaxInterpolants,
    Geo::s32 & numUsedInterpolants
) const


Retrieves the probes interpolants for a given point.

Only loaded Probe Sets are considered for interpolation.

Parameters
[in] point

Location used for the interpolation.

[out] interpolants

Output probe interpolants.

[in] numMaxInterpolants

Size of the output interpolants array.

[out] numUsedInterpolants

Number of interpolants actually used.

Returns

TRUE if the input to this function is valid and the interpolation is successful, otherwise FALSE.


virtual bool Enlighten::ProbeSetManagerOctree::GetProbeInterpolants


public: virtual bool GetProbeInterpolants
(
    const Geo::v128 & point,
    ProbeInterpolant * interpolants,
    Geo::s32 maxInterpolantCount,
    Geo::s32 & usedInterpolantCount,
    Geo::u32 lod
) const


Retrieves the probes interpolants for a given point and specified LOD.


virtual bool Enlighten::ProbeSetManagerOctree::GetProbeInterpolants


public: virtual bool GetProbeInterpolants
(
    const Geo::v128 & point,
    ProbeInterpolant * interpolants,
    Geo::s32 maxInterpolantCount,
    Geo::s32 & usedInterpolantCount
) const


Retrieves the probes interpolants for a given point.


virtual bool Enlighten::IProbeSetManager::MarkAllProbeSetsAsUnloaded


public: bool MarkAllProbeSetsAsUnloaded()


Marks all Interpolation Input Sets as unloaded.

Unloaded input sets are not used for interpolation.

Returns

TRUE if the InterpolationInputSet is under ProbeSetManager management and can be marked as unloaded, otherwise FALSE.


virtual bool Enlighten::ProbeSetManagerOctree::MarkAllProbeSetsAsUnloaded


public: virtual bool MarkAllProbeSetsAsUnloaded()


Marks all input sets as unloaded.


virtual bool Enlighten::ProbeSetManagerOctree::MarkProbeSetAsLoaded


public: virtual bool MarkProbeSetAsLoaded
(
    const InterpolationInputSet & loadedProbeSet
)


Marks given Interpolation Input Set as loaded. Only loaded input sets are used for interpolation.


virtual bool Enlighten::IProbeSetManager::MarkProbeSetAsLoaded


public: bool MarkProbeSetAsLoaded
(
    Enlighten::InterpolationInputSet const & loadedProbeSet
)


Marks given Interpolation Input Set as loaded.

Only loaded input sets are used for interpolation.

Parameters
[in] loadedProbeSet

The Interpolation Input Set to be marked as loaded. It has to contain a valid RadProbeSetCore field.

Returns

TRUE if the InterpolationInputSet is under ProbeSetManager management and can be marked as loaded, otherwise FALSE.


virtual bool Enlighten::ProbeSetManagerOctree::MarkProbeSetAsUnloaded


public: virtual bool MarkProbeSetAsUnloaded
(
    const Geo::GeoGuid & unloadedProbeSet
)


Marks given Interpolation Input Set as unloaded. Unloaded input sets are not used for interpolation.


virtual bool Enlighten::IProbeSetManager::MarkProbeSetAsUnloaded


public: bool MarkProbeSetAsUnloaded
(
    Geo::GeoGuid const & unloadedProbeSet
)


Marks given Interpolation Input Set as unloaded.

Unloaded input sets are not used for interpolation.

Parameters
[in] unloadedProbeSet

The GUID of the Probe Set to be marked as unloaded.

Returns

TRUE if the InterpolationInputSet is under ProbeSetManager management and can be marked as unloaded, otherwise FALSE.


Geo::NonCopyable::NonCopyable


public: NonCopyable
(
    NonCopyable &&
)


Defaulted to allow move.


virtual void Enlighten::ProbeSetManagerOctree::OnAllLoadedProbeSetsArrayChanged


public: virtual void OnAllLoadedProbeSetsArrayChanged
(
    const InterpolationInputSet * allLoadedProbeSets,
    Geo::s32 allLoadedProbeSetCount
)


Marks an array of Interpolation Input Set as loaded. All other input sets are considered unloaded.


virtual void Enlighten::IProbeSetManager::OnAllLoadedProbeSetsArrayChanged


public: virtual void OnAllLoadedProbeSetsArrayChanged
(
    Enlighten::InterpolationInputSet const * allLoadedProbeSets,
    Geo::s32 numLoadedProbeSets
)


Allows the probe set manager a chance to observe the contiguous memory block in which the runtime stores all loaded input sets.

The manager can then use this knowledge to speed up other operations as needed (e.g. if the manager's implementation of GetProbeInterpolants() uses the variant of Enlighten::GetProbeInterpolants() supporting multiple probe sets). Note that multiple load and unload notifications (as noted by MarkProbeSetAsLoaded and MarkProbeSetAsUnloaded, respectively) may be batched into a single call to this function.

Parameters
[in] allLoadedProbeSets

Starting address of the input set array managed by the runtime.

[in] numLoadedProbeSets

Size of the input set array.


NonCopyable& Geo::NonCopyable::operator=


public: NonCopyable & operator=
(
    NonCopyable &&
)


Defaulted to allow move.


virtual bool Enlighten::ProbeSetManagerOctree::SetMaxWeightForProbeSet


public: virtual bool SetMaxWeightForProbeSet
(
    const Geo::GeoGuid & probeSet,
    float maxWeight
)


Set a maximum interpolation weight for the given Probe Set.


virtual bool Enlighten::IProbeSetManager::SetMaxWeightForProbeSet


public: bool SetMaxWeightForProbeSet
(
    Geo::GeoGuid const & probeSet,
    float maxWeight
)


Set a maximum interpolation weight for the given Probe Set.

Needs to perform a search OLog(N). Where N is number of probe sets under management.

Parameters
[in] probeSet

The GUID of the Probe Set.

[in] maxWeight

New maximum interpolation weight. Has to be a value between 0.0 and 1.0

Returns

TRUE if the Probe Set is under ProbeSetManager management, otherwise FALSE.