class Geo AtlasMesh

This is the documentation for Enlighten.

class Geo AtlasMesh

class Geo::AtlasMesh

The AtlasMesh implementation used for the packer and anything else that needs not to know whether we have one mesh or several.

Functions

Name

Description

Name

Description

AreChartsIndependent()

Report on the independence of the charts, that is whether no vertex belongs to more than one chart.

Create(const AtlasMeshVertices *, const AtlasMeshTriangles *)

Create a new instance of an AtlasMesh, instantiating it with a copy of the vertex and triangle list.

DeepCopy(const AtlasMesh *)

Create a clone of an AtlasMesh.

DetectCharts(const AtlasMeshChartingFlags &)

Chart Dependency.

GetCharacteristicVertex(s32)

A mesh can have a number of vertices which whilst topologically distinct have exactly the same 3D and UV coordinates.

GetChart(s32)

Obtain access to one of the mesh charts.

GetChartCount()

The number of charts that the mesh is composed of.

GetChartingFlags()

Return the flags used to chart this mesh.

GetEdgeToEdgeAdjacencyMap()

The adjacency data is a list of edges that map to their neighbours.

GetTriangle(s32)

Obtain a mesh triangle.

GetTriangleCount()

Obtain the number of triangles in the mesh.

GetTrianglePartitioning()

Return an array that specifies which triangle is in which chart.

GetTriangles()

Obtain the list of triangles.

GetVertex(s32)

Obtain a vertex.

GetVertexCount()

Obtain the number of vertices in the mesh.

GetVertices()

Obtain a copy of the vertices in the mesh.

IsChartTriangleDegenerate(Geo::s32, Geo::s32)

Degeneracy testing.

MakeChartsIndependent(GeoArray< AtlasMeshVertexSplitResult > *)

Make the charts independent by duplicating vertices which are shared by more than one chart, and relinking any triangles to the new vertices as necessary.

Release()

Release the mesh after it is finished with.

RepackCharts(const AtlasMeshPackingFlags &, IGeoProgressProxy *)

Pack the charts into the single square in UV space spanned by (0,0) - (1,1).

SerializeFromFile(FILE *)

Serialize this mesh from file - note that this does not include any of the charting information.

SetVertexUV(s32, float, float)

Update the UV coordinate of a vertex.



bool Geo::AtlasMesh::AreChartsIndependent


public: bool AreChartsIndependent() const


Report on the independence of the charts, that is whether no vertex belongs to more than one chart.

Outputs problem cases to LOG_INFO.

Returns

True if the charts are independent, or false otherwise.

 



static AtlasMesh* Geo::AtlasMesh::Create


public: AtlasMesh * Create
(
    const AtlasMeshVertices * vertices,
    const AtlasMeshTriangles * triangles
)