IFXNeighborMeshUtil |
The IFXNeighborMeshUtil interface provides utility procedures that operate on neighbor meshes and neighbor mesh container classes.
|
Interface Method |
Description |
|
Builds neighbor links in pNeighborMesh according to the geometry in pMeshGroup |
|
|
Sets corner flags to mark edges that exhibit discontinuities |
|
|
Verifies that the mesh links are valid circular linked lists and that edges share the correct vertices |
|
|
Verifies that the vertex map group maps mesh vertices to vertices with the exact same position in space |
Builds neighbor links in pNeighborMesh according to the geometry in pMeshGroup. Assumes that Allocate() has been called on pNeighborMesh and pMeshGroup has been initialized with a mesh.
Parameters:
|
pNeighborMesh |
Pointer to an IFXMeighborMesh |
|
pMeshGroup |
Pointer to an IFXMeshGroup |
|
pVertexMapGroup |
Pointer to an IFXVertexMapGroup |
Comments:
If pVertexMapGroup is NULL, then floating point comparisons of vertex positions are performed to find the coincident vertices. If a pVertexMapGroup is not NULL, then the vertex map is used to determine coincident vertices. Will return IFX_E_OUT_OF_MEMORY if during the process a memory allocation failed. Will return IFX_E_MESH_TO_LARGE if the number of vertices or number of faces exceeds the maximum neighbor mesh indices.
Note: The IFXVertexMapGroup method is much faster because it uses the vertex map created from the process of material partitioning the original mesh vertices. If the original mesh has duplicate vertices (vertices with different indices but same position) then the neighbor mesh will have boundaries on the edges with those vertices. If this is not desired, it is recommended that the user "weld" the vertices in 3D Studio MAX§ before exporting it.
The method using vertex position comparisons has O(n) performance at best (widely distributed points), and O(n^2) worst case (all vertices are the same position). Models tend to have distributed vertex positions.
Sets corner flags to mark edges that exhibit normal discontinuities, texture coordinate discontinuities, or non-manifold surface discontinuities.
Parameters:
|
pMeshGrp |
Pointer to an IFXMeshGroup |
|
pNeighborMesh |
Pointer to an IFXNeighborMesh |
(Debug utility.) Verifies that the mesh links are valid circular linked lists and that edges share the correct vertices.
Parameters:
|
meshGroup |
Pointer to an IFXMeshGroup |
|
pVertexMapGroup |
Pointer to an IFXVertexMapGroup |
Return Values:
None
(Debug utility.) Verifies that the vertex map group maps mesh vertices to vertices with the exact same position in space.
Parameters:
|
pmeshGroup |
Pointer to an IFXMeshGroup |
|
pVertexMapGroup |
Pointer to an IFXVertexMapGroup |
Return Values:
None
§See asterisked (*) statement at Legal Information © 2001 Intel Corporation.