This is the documentation for Enlighten.

class Enlighten IClusteringOutput

class Enlighten::IClusteringOutput

    └>Geo::IGeoSerialisable
        └>Geo::IGeoReleasable

An interface for diagnosing the quality and any issues with the clustering process in EnlightenPrecomp2.

In particular, it contains the clustered geometry, used during the precompute. This can be helpful to debug clustering related problems and is the interface GeoRadiosity uses in it's clustering render mode. If you are just interested in debugging a problem, you may be best off simply using these debugging modes in GeoRadiosity.

Functions

Name Description
Create()

Creates a new IClusteringOutput.

GetClusterAncestor(const Geo::s32, const Geo::s32)

The index of the ancestor at a particular level of a cluster in the tree.

GetClusterForest()

Returns the entire tree structure for the clustering.

GetClusterTriList(Geo::s32)

Returns a collection of triangles that make up the mesh for cluster.

GetDusterPoints(Geo::s32)

Returns a collection of duster points within this cluster.

GetNumLeafClusters()

Returns the number of leaves in the clustering.

GetPreClusterIndex(Geo::s32)

The index of a cluster in the pre-clustering.

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.


static IClusteringOutput* Enlighten::IClusteringOutput::Create


public: IClusteringOutput * Create()


Creates a new IClusteringOutput.


virtual Geo::s32 Enlighten::IClusteringOutput::GetClusterAncestor


public: Geo::s32 GetClusterAncestor
(
    const Geo::s32 level,
    const Geo::s32 clusterTreeIdx
) const


The index of the ancestor at a particular level of a cluster in the tree.

Parameters
level

The level in the tree to view. Root is level 0, and we count up from there towards the leaves.

clusterTreeIdx

The index of the cluster. Should be from 0 to GetNumLeafClusters().

Returns

The ClusterTreeIdx, should be passed to GeoClusterNodeTree::FindNode() to get the cluster data.

Note

Advanced functionality for internal debugging of the Clustering precompute tasks.


virtual const GeoClusterNodeForest* Enlighten::IClusteringOutput::GetClusterForest


public: const GeoClusterNodeForest * GetClusterForest() const


Returns the entire tree structure for the clustering.

Note

Advanced functionality for internal debugging of the Clustering precompute tasks.


virtual const GeoTriangleList* Enlighten::IClusteringOutput::GetClusterTriList


public: const GeoTriangleList * GetClusterTriList
(
    Geo::s32 clusterIdx
) const


Returns a collection of triangles that make up the mesh for cluster.

Parameters
clusterIdx

The index of the cluster. Should be from 0 to GetNumLeafClusters().

Returns

A collection of triangles making up the cluster.


virtual const GeoDirectionalPointList* Enlighten::IClusteringOutput::GetDusterPoints


public: const GeoDirectionalPointList * GetDusterPoints
(
    Geo::s32 clusterIdx
) const


Returns a collection of duster points within this cluster.

Note

This class contains a complete list of the duster points, but not in exactly the same order as the points in the InputWorkspace. The main use of these points is to see the duster locations prior to being compression for the InputWorkspace. This data is available "just in case" and is not expected to be used in production. You should prefer the points and normals in the InputWorkspace for general usage.

Parameters
clusterIdx

The index of the cluster. Should be from 0 to GetNumLeafClusters().

Returns

A collection of points with direction, that correspond to the duster points (see note!)


virtual Geo::s32 Enlighten::IClusteringOutput::GetNumLeafClusters


public: Geo::s32 GetNumLeafClusters() const


Returns the number of leaves in the clustering.


virtual Geo::s32 Enlighten::IClusteringOutput::GetPreClusterIndex


public: Geo::s32 GetPreClusterIndex
(
    Geo::s32 clusterTreeIdx
) const


The index of a cluster in the pre-clustering.

All leaves will exist in this preClustering, other nodes will not.

Parameters
clusterTreeIdx

The index of the cluster within the tree. Will be from 0 to the total number of clusters, at all levels.

Note

Advanced functionality for internal debugging of the Clustering precompute tasks.


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.


Geo::NonCopyable::NonCopyable


public: NonCopyable
(
    NonCopyable &&
)


Defaulted to allow move.


NonCopyable& Geo::NonCopyable::operator=


public: NonCopyable & operator=
(
    NonCopyable &&
)


Defaulted to allow move.


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.