This is the documentation for Enlighten.

class Enlighten InputWorkspaceInternal

class Enlighten::InputWorkspaceInternal

Runtime data about the dusters (internal).

This is the internal implementation of the main RadDataBlock in InputWorkspace in the main api. The data for this class lies immediately after it in memory.

Functions

Name Description
AddCachedValues(InputLightingBuffer *, const InputLightingBuffer *)

Adds lights values from previously cached input.

AddDusterValues(Enlighten::IncidentLightingBuffer *, const Geo::v128 *)

Adds light values laid out in a duster block to the input workspace.

AddDusterValues(InputLightingBuffer *, const Geo::v128 *)

Adds light values laid out in a duster block to the input workspace.

BadMagicNumber()

Sanity check.

Clear(InputLightingBuffer *)

Clears the light values to zero, useful for "starting over".

ConvertEndian(Geo::EConvertEndianMode)

Converts the endian-ness of this block.

End(InputLightingBuffer *)

Generate the rest of the Enlighten input tree from the leaves.

GetClusterBoundsGroupArray()

Access to the leaf cluster bounds array data for cluster groups. Each cluster group stores 'ClusterBoundsGroupSize' clusters (except the last group)

GetDusterBoundsArray()

Access to the leaf cluster bounds array.

GetInputWorkspaceDebugIterator()

Debugging functionality.

GetInputWorkspaceDebugPoint(InputWorkspaceDebugPoint *, Geo::s32)

Debugging functionality.

GetInputWorkspaceLitDebugPoint(InputWorkspaceDebugPoint *, Geo::s32, const InputLightingBuffer *)

Debugging functionality.

GetInputWorkspaceNormalArray(Geo::v128 *)

Fills an array with the normals of all of the input points in an input workspace.

GetInputWorkspacePositionAndNormalArray(Geo::v128 *, Geo::v128 *)

Fills an array with the positions and normals of all of the input points in an input workspace.

GetInputWorkspacePositionArray(Geo::v128 *)

Fills an array with the positions of all of the input points in an input workspace.

GetNonLeafChildCountArray()

Access to the the number of children in the non-leaf clusters.

GetNumChildrenTable()

Returns the table containing the number of children for each internal node.

GetNumClusters()

Gets the number of clusters.

GetNumClustersInTree()

Gets the number of clusters in the tree.

GetNumPoints()

Debugging functionality.

GetPackedDusterData()

Retrieve the packed positions and normals for 4 dusters.

GetPackedDusterData()

Retrieve the packed positions and normals for 4 dusters.

GetQuadIndexClusterArray()

Returns the index of quads per cluster.

GetQuadIndexTableSize()

Returns the size of the quad index table.

GetQuadsInClusterArray()

Returns the number of quads per cluster.

GetRadiosityInputTree()

Returns the internal cluster tree.

GetScaleFactorTable()

Returns the table containing the EndInputWorkspace scale factor for each node (except the final node)

GetScaleFactorTableSize()

Returns the size of the scale factor table.

GetSystemBoundingBox(Geo::GeoBoundingBox &)

Returns the bounding box of the system.

Variables

Name Description
const Geo::u32 ClusterBoundsGroupSize = 32

The number of clusters in each cluster group.

Geo::s32 m_ClusterBoundsGroupOffset

Offset to the leaf cluster group bounds array.

Geo::s32 m_DusterBoundsOffset

Offset to the leaf cluster bounds array.

Geo::s32 m_InputTreeOffset

The cluster tree.

Geo::u32 m_MagicNumber

Bit pattern to check that we have a valid InputWorkspace. TBD??

Geo::s32 m_MaxDusterQuadsInClusterGroup

The maximum number of duster quads in the cluster groups.

Geo::s32 m_NodeDusterIndicesOffset

Offset to u32s storing the quad index for each leaf.

Geo::s32 m_NumClusters

Number of clusters.

Geo::s32 m_NumClustersInTree

Number of clusters in tree.

Geo::s32 m_NumSamples

Number of dusters.

Geo::s32 m_PackedDusterDataOffset

Offset to the packed data for positions and normals.

Geo::s32 m_Padding

Some padding to make it up to 16 byte aligned.

Geo::v128 m_SystemBoundsMax

Size of the system.

Geo::v128 m_SystemBoundsMin

Size of the system.


void Enlighten::InputWorkspaceInternal::AddCachedValues


public: void AddCachedValues
(
    InputLightingBuffer * output,
    const InputLightingBuffer * cachedValues
) const


Adds lights values from previously cached input.


void Enlighten::InputWorkspaceInternal::AddDusterValues


public: void AddDusterValues
(
    Enlighten::IncidentLightingBuffer * output,
    const Geo::v128 * dusterValues
) const


Adds light values laid out in a duster block to the input workspace.


void Enlighten::InputWorkspaceInternal::AddDusterValues


public: void AddDusterValues
(
    InputLightingBuffer * output,
    const Geo::v128 * dusterValues
) const


Adds light values laid out in a duster block to the input workspace.


bool Enlighten::InputWorkspaceInternal::BadMagicNumber


public: bool BadMagicNumber() const


Sanity check.


void Enlighten::InputWorkspaceInternal::Clear


public: void Clear
(
    InputLightingBuffer * output
) const


Clears the light values to zero, useful for "starting over".


void Enlighten::InputWorkspaceInternal::ConvertEndian


public: void ConvertEndian
(
    Geo::EConvertEndianMode mode
)


Converts the endian-ness of this block.


void Enlighten::InputWorkspaceInternal::End


public: void End
(
    InputLightingBuffer * buffer
) const


Generate the rest of the Enlighten input tree from the leaves.

This must be called after input generation has finished.


const Geo::v128* Enlighten::InputWorkspaceInternal::GetClusterBoundsGroupArray


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


Access to the leaf cluster bounds array data for cluster groups. Each cluster group stores 'ClusterBoundsGroupSize' clusters (except the last group)


const Geo::v128* Enlighten::InputWorkspaceInternal::GetDusterBoundsArray


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


Access to the leaf cluster bounds array.


InputWorkspaceDebugIterator Enlighten::InputWorkspaceInternal::GetInputWorkspaceDebugIterator


public: InputWorkspaceDebugIterator GetInputWorkspaceDebugIterator() const


Debugging functionality.


void Enlighten::InputWorkspaceInternal::GetInputWorkspaceDebugPoint


public: void GetInputWorkspaceDebugPoint
(
    InputWorkspaceDebugPoint * debugPoint,
    Geo::s32 index
) const


Debugging functionality.


void Enlighten::InputWorkspaceInternal::GetInputWorkspaceLitDebugPoint


public: void GetInputWorkspaceLitDebugPoint
(
    InputWorkspaceDebugPoint * debugPoint,
    Geo::s32 index,
    const InputLightingBuffer * lightValues
) const


Debugging functionality.


void Enlighten::InputWorkspaceInternal::GetInputWorkspaceNormalArray


public: void GetInputWorkspaceNormalArray
(
    Geo::v128 * normalOut
) const


Fills an array with the normals of all of the input points in an input workspace.


void Enlighten::InputWorkspaceInternal::GetInputWorkspacePositionAndNormalArray


public: void GetInputWorkspacePositionAndNormalArray
(
    Geo::v128 * positionsOut,
    Geo::v128 * normalsOut
) const


Fills an array with the positions and normals of all of the input points in an input workspace.


void Enlighten::InputWorkspaceInternal::GetInputWorkspacePositionArray


public: void GetInputWorkspacePositionArray
(
    Geo::v128 * positionsOut
) const


Fills an array with the positions of all of the input points in an input workspace.


const Geo::u8* Enlighten::InputWorkspaceInternal::GetNonLeafChildCountArray


public: const Geo::u8 * GetNonLeafChildCountArray() const


Access to the the number of children in the non-leaf clusters.


const Geo::u8* Enlighten::InputWorkspaceInternal::GetNumChildrenTable


public: const Geo::u8 * GetNumChildrenTable() const


Returns the table containing the number of children for each internal node.


Geo::s32 Enlighten::InputWorkspaceInternal::GetNumClusters


public: Geo::s32 GetNumClusters() const


Gets the number of clusters.


Geo::s32 Enlighten::InputWorkspaceInternal::GetNumClustersInTree


public: Geo::s32 GetNumClustersInTree() const


Gets the number of clusters in the tree.


Geo::s32 Enlighten::InputWorkspaceInternal::GetNumPoints


public: Geo::s32 GetNumPoints() const


Debugging functionality.


PackedDusterPoint* Enlighten::InputWorkspaceInternal::GetPackedDusterData


public: PackedDusterPoint * GetPackedDusterData()


Retrieve the packed positions and normals for 4 dusters.


const PackedDusterPoint* Enlighten::InputWorkspaceInternal::GetPackedDusterData


public: const PackedDusterPoint * GetPackedDusterData() const


Retrieve the packed positions and normals for 4 dusters.


const Geo::u32* Enlighten::InputWorkspaceInternal::GetQuadIndexClusterArray


public: const Geo::u32 * GetQuadIndexClusterArray() const


Returns the index of quads per cluster.


Geo::s32 Enlighten::InputWorkspaceInternal::GetQuadIndexTableSize


public: Geo::s32 GetQuadIndexTableSize() const


Returns the size of the quad index table.


const Geo::u8* Enlighten::InputWorkspaceInternal::GetQuadsInClusterArray


public: const Geo::u8 * GetQuadsInClusterArray() const


Returns the number of quads per cluster.


const RadiosityInputTree* Enlighten::InputWorkspaceInternal::GetRadiosityInputTree


public: const RadiosityInputTree * GetRadiosityInputTree() const


Returns the internal cluster tree.


const Geo::u8* Enlighten::InputWorkspaceInternal::GetScaleFactorTable


public: const Geo::u8 * GetScaleFactorTable() const


Returns the table containing the EndInputWorkspace scale factor for each node (except the final node)


Geo::s32 Enlighten::InputWorkspaceInternal::GetScaleFactorTableSize


public: Geo::s32 GetScaleFactorTableSize() const


Returns the size of the scale factor table.


void Enlighten::InputWorkspaceInternal::GetSystemBoundingBox


public: void GetSystemBoundingBox
(
    Geo::GeoBoundingBox & bb
) const


Returns the bounding box of the system.