This is the documentation for Enlighten.

class Enlighten IPrecompInputProbeSet

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.

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.

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.


static IPrecompInputProbeSet* Enlighten::IPrecompInputProbeSet::Create


public: IPrecompInputProbeSet * Create()


Create a new empty IPrecompInputProbeSet.


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.


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.


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.


virtual const Geo::v128& Enlighten::IPrecompInputProbeSet::GetBoundingBoxOrigin


public: const Geo::v128 & GetBoundingBoxOrigin() const


Get the origin of the non-axis aligned bounding box.


virtual IPrecompProbeSetBuildParameters* Enlighten::IPrecompInputProbeSet::GetBuildParameters


public: IPrecompProbeSetBuildParameters * GetBuildParameters()


Edit the build parameters for this probe set.


virtual const IPrecompProbeSetBuildParameters* Enlighten::IPrecompInputProbeSet::GetBuildParameters


public: const IPrecompProbeSetBuildParameters * GetBuildParameters() const


Read only access to the build parameters for this probe set.


virtual Geo::GeoGuid Enlighten::IPrecompInputProbeSet::GetId


public: Geo::GeoGuid GetId() const


Return the unique ID of this light probe set.


virtual const char* Enlighten::IPrecompInputProbeSet::GetName


public: const char * GetName() const


Get the full name.


virtual Geo::s32 Enlighten::IPrecompInputProbeSet::GetNumProbes


public: Geo::s32 GetNumProbes() const


Return the number of probes contained in this probe set.


virtual const Geo::v128* Enlighten::IPrecompInputProbeSet::GetProbePositions


public: const Geo::v128 * GetProbePositions() const


Access the light probe positions.


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.


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.


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.


virtual bool Enlighten::IPrecompInputProbeSet::IsOctree


public: bool IsOctree() const


Returns true if this probe set was generated for a probe octree.


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.


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.


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)'


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.


virtual void Enlighten::IPrecompInputProbeSet::SetId


public: void SetId
(
    Geo::GeoGuid id
)


Set the unique ID of this light probe set.


virtual void Enlighten::IPrecompInputProbeSet::SetName


public: void SetName
(
    const char * name
)


Set a globally unique name.


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.


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.


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


at the basis vector origin.

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.