class Enlighten::IPrecompInputProbeSet
└>Geo::IGeoSerialisable
└>Geo::IGeoReleasable
A class representing a set of sample points for which the run-time can generate spherical harmonic representations of the diffuse light incident on each sample point.
Functions
Name | Description |
---|---|
Create() | Create a new empty IPrecompInputProbeSet. |
Create(const IPrecompInputProbeSet *const *, Geo::s32) | Create a new octree IPrecompInputProbeSet as a union of the specified octree probe set objects. |
GetBoundingBoxBasisX() | Get the first basis vector of the non-axis aligned bounding box. |
GetBoundingBoxBasisY() | Get the second basis vector of the non-axis aligned bounding box. |
GetBoundingBoxBasisZ() | Get the third basis vector of the non-axis aligned bounding box. |
GetBoundingBoxOrigin() | Get the origin of the non-axis aligned bounding box. |
GetBuildParameters() | Edit the build parameters for this probe set. |
GetBuildParameters() | Read only access to the build parameters for this probe set. |
GetId() | Return the unique ID of this light probe set. |
GetName() | Get the full name. |
GetNumProbes() | Return the number of probes contained in this probe set. |
GetProbePositions() | Access the light probe positions. |
GetRegularGridResolutionX() | Get the resolution of the regular grid in the direction of the first bounding box basis vector. |
GetRegularGridResolutionY() | Get the resolution of the regular grid in the direction of the second bounding box basis vector. |
GetRegularGridResolutionZ() | Get the resolution of the regular grid in the direction of the third bounding box basis vector. |
IsOctree() | Returns true if this probe set was generated for a probe octree. |
IsRegularGrid() | Returns if this probe set is a probe grid. |
Load(IGeoInputStream &, Geo::u32) | Load an instance of this class from an IGeoInputStream. |
NonCopyable(NonCopyable &&) | Defaulted to allow move. |
operator=(NonCopyable &&) | Defaulted to allow move. |
Release() | Free this object that was created within the Enlighten libraries. |
Save(IGeoStream &, Geo::u32) | Save an instance of this class to an IGeoStream. |
SetId(Geo::GeoGuid) | Set the unique ID of this light probe set. |
SetName(const char *) | Set a globally unique name. |
SetProbePositions(const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 *, const Geo::v128 *) | Copy light probe position values between [begin, end) into this object. |
SetRandomProbePositions(const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::s32, const Geo::s32 &) | Create an random set of light probes within a non axis aligned bounding box. |
SetRegularGridProbePositions(const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::s32, const Geo::s32, const Geo::s32) | Create light probes based on a regular grid. |
Anchor | ||||
---|---|---|---|---|
|
static IPrecompInputProbeSet* Enlighten::IPrecompInputProbeSet::Create
...
public: IPrecompInputProbeSet * Create()
...
Create a new empty IPrecompInputProbeSet.
Anchor | ||||
---|---|---|---|---|
|
static IPrecompInputProbeSet* Enlighten::IPrecompInputProbeSet::Create
...
public: IPrecompInputProbeSet * Create
(
const IPrecompInputProbeSet *const * others,
Geo::s32 count
)
...
Create a new octree IPrecompInputProbeSet as a union of the specified octree probe set objects.
All probe sets must be coincident.
Anchor | ||||
---|---|---|---|---|
|
virtual const Geo::v128& Enlighten::IPrecompInputProbeSet::GetBoundingBoxBasisX
...
public: const Geo::v128 & GetBoundingBoxBasisX() const
...
Get the first basis vector of the non-axis aligned bounding box.
Anchor | ||||
---|---|---|---|---|
|
virtual const Geo::v128& Enlighten::IPrecompInputProbeSet::GetBoundingBoxBasisY
...
public: const Geo::v128 & GetBoundingBoxBasisY() const
...
Get the second basis vector of the non-axis aligned bounding box.
Anchor | ||||
---|---|---|---|---|
|
virtual const Geo::v128& Enlighten::IPrecompInputProbeSet::GetBoundingBoxBasisZ
...
public: const Geo::v128 & GetBoundingBoxBasisZ() const
...
Get the third basis vector of the non-axis aligned bounding box.
Anchor | ||||
---|---|---|---|---|
|
virtual const Geo::v128& Enlighten::IPrecompInputProbeSet::GetBoundingBoxOrigin
...
public: const Geo::v128 & GetBoundingBoxOrigin() const
...
Get the origin of the non-axis aligned bounding box.
Anchor | ||||
---|---|---|---|---|
|
virtual IPrecompProbeSetBuildParameters* Enlighten::IPrecompInputProbeSet::GetBuildParameters
...
public: IPrecompProbeSetBuildParameters * GetBuildParameters()
...
Edit the build parameters for this probe set.
Anchor | ||||
---|---|---|---|---|
|
virtual const IPrecompProbeSetBuildParameters* Enlighten::IPrecompInputProbeSet::GetBuildParameters
...
public: const IPrecompProbeSetBuildParameters * GetBuildParameters() const
...
Read only access to the build parameters for this probe set.
Anchor | ||||
---|---|---|---|---|
|
virtual Geo::GeoGuid Enlighten::IPrecompInputProbeSet::GetId
...
public: Geo::GeoGuid GetId() const
...
Return the unique ID of this light probe set.
Anchor | ||||
---|---|---|---|---|
|
virtual const char* Enlighten::IPrecompInputProbeSet::GetName
...
public: const char * GetName() const
...
Get the full name.
Anchor | ||||
---|---|---|---|---|
|
virtual Geo::s32 Enlighten::IPrecompInputProbeSet::GetNumProbes
...
public: Geo::s32 GetNumProbes() const
...
Return the number of probes contained in this probe set.
Anchor | ||||
---|---|---|---|---|
|
virtual const Geo::v128* Enlighten::IPrecompInputProbeSet::GetProbePositions
...
public: const Geo::v128 * GetProbePositions() const
...
Access the light probe positions.
Anchor | ||||
---|---|---|---|---|
|
virtual Geo::s32 Enlighten::IPrecompInputProbeSet::GetRegularGridResolutionX
...
public: Geo::s32 GetRegularGridResolutionX() const
...
Get the resolution of the regular grid in the direction of the first bounding box basis vector.
Anchor | ||||
---|---|---|---|---|
|
virtual Geo::s32 Enlighten::IPrecompInputProbeSet::GetRegularGridResolutionY
...
public: Geo::s32 GetRegularGridResolutionY() const
...
Get the resolution of the regular grid in the direction of the second bounding box basis vector.
Anchor | ||||
---|---|---|---|---|
|
virtual Geo::s32 Enlighten::IPrecompInputProbeSet::GetRegularGridResolutionZ
...
public: Geo::s32 GetRegularGridResolutionZ() const
...
Get the resolution of the regular grid in the direction of the third bounding box basis vector.
Anchor | ||||
---|---|---|---|---|
|
virtual bool Enlighten::IPrecompInputProbeSet::IsOctree
...
public: bool IsOctree() const
...
Returns true if this probe set was generated for a probe octree.
Anchor | ||||
---|---|---|---|---|
|
virtual bool Enlighten::IPrecompInputProbeSet::IsRegularGrid
...
public: bool IsRegularGrid() const
...
Returns if this probe set is a probe grid.
This is only true if the probe positions form a single fully occupied regular grid and there are no duplicates or probe positions outside of the grid.
Anchor | ||||
---|---|---|---|---|
|
virtual bool Geo::IGeoSerialisable::Load
...
public: bool Load
(
IGeoInputStream & stream,
Geo::u32 section
)
...
Load an instance of this class from an IGeoInputStream.
The stream must be ready to read from. You can load sections of an object by passing a bitmask representing the desired sections rather than Iff::AllSectionsMask, which will load all sections. It is also safe to call this method on an object multiple times with different section arguments to load multiple parts.
Anchor | ||||
---|---|---|---|---|
|
Geo::NonCopyable::NonCopyable
...
public: NonCopyable
(
NonCopyable &&
)
...
Defaulted to allow move.
Anchor | ||||
---|---|---|---|---|
|
NonCopyable& Geo::NonCopyable::operator=
...
public: NonCopyable & operator=
(
NonCopyable &&
)
...
Defaulted to allow move.
Anchor | ||||
---|---|---|---|---|
|
virtual void Geo::IGeoReleasable::Release
...
public: void Release()
...
Free this object that was created within the Enlighten libraries.
Expect this to behave in a similar way to calling 'delete(this)'
Anchor | ||||
---|---|---|---|---|
|
virtual bool Geo::IGeoSerialisable::Save
...
public: bool Save
(
IGeoStream & stream,
Geo::u32 section
) const
...
Save an instance of this class to an IGeoStream.
The stream must be ready to write to. You can save sections of an object by passing a bitmask representing the desired sections rather than Iff::AllSectionsMask, which will save all sections that are available.
Anchor | ||||
---|---|---|---|---|
|
virtual void Enlighten::IPrecompInputProbeSet::SetId
...
public: void SetId
(
Geo::GeoGuid id
)
...
Set the unique ID of this light probe set.
Anchor | ||||
---|---|---|---|---|
|
virtual void Enlighten::IPrecompInputProbeSet::SetName
...
public: void SetName
(
const char * name
)
...
Set a globally unique name.
Anchor | ||||
---|---|---|---|---|
|
virtual bool Enlighten::IPrecompInputProbeSet::SetProbePositions
...
public: bool SetProbePositions
(
const Geo::v128 & origin,
const Geo::v128 & basisX,
const Geo::v128 & basisY,
const Geo::v128 & basisZ,
const Geo::v128 * begin,
const Geo::v128 * end
)
...
Copy light probe position values between [begin, end) into this object.
Previous positions are deleted. The bounding box is defined by a set of orthogonal basis vectors and their origin. The basis vectors are required to be orthogonal. The lengths of the basis vectors define the size of the bounding box.
Parameters
[in] | origin | Origin of the basis vectors. |
[in] | basisX | First basis vector. |
[in] | basisY | Second basis vector. |
[in] | basisZ | third basis vector. |
[in] | begin | A pointer to the first element to be added |
[in] | end | A pointer to an element one past the last entity (as standard STL syntax) |
Returns
True if the operation succeeded, false if there was not enough memory to satisfy the request or if the bounding box either has zero volume or its basis vectors are not orthogonal.
Anchor | ||||
---|---|---|---|---|
|
virtual bool Enlighten::IPrecompInputProbeSet::SetRandomProbePositions
...
public: bool SetRandomProbePositions
(
const Geo::v128 & origin,
const Geo::v128 & basisX,
const Geo::v128 & basisY,
const Geo::v128 & basisZ,
const Geo::s32 numProbes,
const Geo::s32 & seed
)
...
Create an random set of light probes within a non axis aligned bounding box.
Previous positions are deleted. The bounding box is defined by a set of orthogonal basis vectors and their origin. The basis vectors are required to be orthogonal. The lengths of the basis vectors define the size of the bounding box. A defined number of probes in the range [1..65536] are placed randomly within the bounding box.
Parameters
[in] | origin | Origin of the basis vectors. |
[in] | basisX | First basis vector. |
[in] | basisY | Second basis vector. |
[in] | basisZ | Third basis vector. |
[in] | numProbes | Number of probes placed in the bounding box. |
[in] | seed | A seed value to ensure consistency between invocations. |
Returns
True if the operation succeeded, false if there was not enough memory to satisfy the request or if the bounding box either has zero volume or its basis vectors are not orthogonal.
Anchor | ||||
---|---|---|---|---|
|
virtual bool Enlighten::IPrecompInputProbeSet::SetRegularGridProbePositions
...
public: bool SetRegularGridProbePositions
(
const Geo::v128 & origin,
const Geo::v128 & basisX,
const Geo::v128 & basisY,
const Geo::v128 & basisZ,
const Geo::s32 resolutionX,
const Geo::s32 resolutionY,
const Geo::s32 resolutionZ
)
...
Create light probes based on a regular grid.
Previous positions are deleted. The regular grid is defined by a set of orthogonal basis vectors and their origin as well as the resolution in each basis vector direction. The basis vectors are required to be orthogonal and the resolution must be in the range [1..65536] otherwise this function will return false. The lengths of the basis vectors define the size of the regular grid. Based on the resolutions, the regular grid is split up into cells, and at the center of each cell a probe gets placed. This means that a regular grid with a resolution of 1 in each basis vector direction will have its single probe placed in the center of the grid and not
...
Parameters
[in] | origin | Origin of the basis vectors. |
[in] | basisX | First basis vector. |
[in] | basisY | Second basis vector. |
[in] | basisZ | third basis vector. |
[in] | resolutionX | Number of probes in the direction of the first basis vector. |
[in] | resolutionY | Number of probes in the direction of the second basis vector. |
[in] | resolutionZ | Number of probes in the direction of the third basis vector. |
Returns
True if the operation succeeded, false if there was not enough memory to satisfy the request or if the bounding box either has zero volume or its basis vectors are not orthogonal.