└>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.
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. |
GetEmbeddedProbeCount() | Return the number of probes that are embedded in surfaces. |
GetEmbeddedProbePositions() | Return the positions of probes that are embedded in surfaces. |
GetId() | Return the unique ID of this light probe set. |
GetInvalidProbeCount() | Return the number of probes that see invalid faces. |
GetInvalidProbePositions() | Return the positions of probes that see invalid faces. |
GetName() | Get the full name. |
GetNumProbes() | Return the number of probes contained in this probe set. |
GetOctreeLevel() | Returns the level of this probe set within the octree. |
GetOctreeVoxelSize() | Returns the size of a leaf voxel within the octree. |
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. |
public: IPrecompInputProbeSet * Create()
Create a new empty IPrecompInputProbeSet.
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.
public: const Geo::v128 & GetBoundingBoxBasisX() const
Get the first basis vector of the non-axis aligned bounding box.
public: const Geo::v128 & GetBoundingBoxBasisY() const
Get the second basis vector of the non-axis aligned bounding box.
public: const Geo::v128 & GetBoundingBoxBasisZ() const
Get the third basis vector of the non-axis aligned bounding box.
public: const Geo::v128 & GetBoundingBoxOrigin() const
Get the origin of the non-axis aligned bounding box.
public: IPrecompProbeSetBuildParameters * GetBuildParameters()
Edit the build parameters for this probe set.
public: const IPrecompProbeSetBuildParameters * GetBuildParameters() const
Read only access to the build parameters for this probe set.
public: Geo::s32 GetEmbeddedProbeCount() const
Return the number of probes that are embedded in surfaces.
public: const Geo::v128 * GetEmbeddedProbePositions() const
Return the positions of probes that are embedded in surfaces.
public: Geo::GeoGuid GetId() const
Return the unique ID of this light probe set.
public: Geo::s32 GetInvalidProbeCount() const
Return the number of probes that see invalid faces.
public: const Geo::v128 * GetInvalidProbePositions() const
Return the positions of probes that see invalid faces.
public: const char * GetName() const
Get the full name.
public: Geo::s32 GetNumProbes() const
Return the number of probes contained in this probe set.
public: Geo::u32 GetOctreeLevel() const
Returns the level of this probe set within the octree.
public: float GetOctreeVoxelSize() const
Returns the size of a leaf voxel within the octree.
public: const Geo::v128 * GetProbePositions() const
Access the light probe positions.
public: Geo::s32 GetRegularGridResolutionX() const
Get the resolution of the regular grid in the direction of the first bounding box basis vector.
public: Geo::s32 GetRegularGridResolutionY() const
Get the resolution of the regular grid in the direction of the second bounding box basis vector.
public: Geo::s32 GetRegularGridResolutionZ() const
Get the resolution of the regular grid in the direction of the third bounding box basis vector.
public: bool IsOctree() const
Returns true if this probe set was generated for a probe octree.
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.
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.
public: NonCopyable
(
NonCopyable &&
)
Defaulted to allow move.
public: NonCopyable & operator=
(
NonCopyable &&
)
Defaulted to allow move.
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)'
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.
public: void SetId
(
Geo::GeoGuid id
)
Set the unique ID of this light probe set.
public: void SetName
(
const char * name
)
Set a globally unique name.
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.
[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) |
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.
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.
[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. |
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.
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
[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. |
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.