Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

NameDescription
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.

Release()

Free this object that was created within the Enlighten libraries.

Save(IGeoStream &, Geo::u32)

Save an instance of this class to an IGeoStream.


Anchor
ae01705abba5730bbf56e4a6145ba550a
ae01705abba5730bbf56e4a6145ba550a

static IClusteringOutput* Enlighten::IClusteringOutput::Create

...

public: IClusteringOutput * Create()

...

Creates a new IClusteringOutput.


Anchor
a402e07aeb44a4f0b7254ff300f81157f
a402e07aeb44a4f0b7254ff300f81157f

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
titleNote

Advanced functionality for internal debugging of the Clustering precompute tasks.


Anchor
a4dac84ed46540cc1f1d273579c1e8ac3
a4dac84ed46540cc1f1d273579c1e8ac3

virtual const GeoClusterNodeForest* Enlighten::IClusteringOutput::GetClusterForest

...

public: const GeoClusterNodeForest * GetClusterForest() const

...

Returns the entire tree structure for the clustering.

Note
titleNote

Advanced functionality for internal debugging of the Clustering precompute tasks.


Anchor
a7129153e63a1358245a2af39dc7dfad6
a7129153e63a1358245a2af39dc7dfad6

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.


Anchor
aaea21e3360dc2d1814e4965fa3935db2
aaea21e3360dc2d1814e4965fa3935db2

virtual const GeoDirectionalPointList* Enlighten::IClusteringOutput::GetDusterPoints

...

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

...

Returns a collection of duster points within this cluster.

Note
titleNote

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


Anchor
a4299846b7fd7b4bba89ecc9972999fa9
a4299846b7fd7b4bba89ecc9972999fa9

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

...

public: Geo::s32 GetNumLeafClusters() const

...

Returns the number of leaves in the clustering.


Anchor
a13d063775b36a0ddde96dcc236398aee
a13d063775b36a0ddde96dcc236398aee

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
titleNote

Advanced functionality for internal debugging of the Clustering precompute tasks.


Anchor
ae5fb810c8f4470cb3c9fcb16c6f7f7fe
ae5fb810c8f4470cb3c9fcb16c6f7f7fe

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
af6bdf30b42adde386c428e9dc2821eb9
af6bdf30b42adde386c428e9dc2821eb9

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
a5b03439626a3dac9b9c27feb1a3978d3
a5b03439626a3dac9b9c27feb1a3978d3

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.