Rhino C++ API  8.13
Public Member Functions | Public Attributes | List of all members
RhinoCheckMeshOutput Class Reference

#include <rhinoSdkMeshUtilities.h>

Public Member Functions

 RhinoCheckMeshOutput ()
 
void ZeroCounts ()
 

Public Attributes

bool m_bAbbreviatedVersion
 If m_bAbbreviatedVersion is set to true then the feedback from ON_Mesh::IsValid is all that will be added to the ON_TextLog. More...
 
bool m_bCheckForBogusNormals
 Default is true. More...
 
bool m_bCheckForDegenerateFaces
 Default is true. More...
 
bool m_bCheckForDegenerateNgons
 Default is true. More...
 
bool m_bCheckForDisjointMeshes
 Default is true. More...
 
bool m_bCheckForDuplicateFaces
 
bool m_bCheckForExtremelyShortEdges
 Default is true. More...
 
bool m_bCheckForNakeEdges
 Default is true. More...
 
bool m_bCheckForNonManifoldEdges
 Default is true. More...
 
bool m_bCheckForRandomFaceNormals
 Default is true. More...
 
bool m_bCheckForSelfIntersection
 
bool m_bCheckForUnusedVertices
 Default is true. More...
 
double m_DistanceToCheck
 Default is 1.0e-12. More...
 
int m_totalClashingPairsCt
 
int m_totalDegenerateFaceCt
 
int m_totalDisjointMeshCt
 
int m_totalDuplicateFaceCt
 
int m_totalExtremelyShortEdgeCt
 
int m_totalInvalidNgonCt
 
int m_totalNakedEdgeCt
 
int m_totalNonManifoldEdgeCt
 
int m_totalNotUnitVectorNormalCt
 
int m_totalRandomFaceNormalCt
 
int m_totalUnusedVertexCt
 
int m_totalVertexFaceNormalDifferCt
 
int m_totalZeroLengthNormalCt
 

Constructor & Destructor Documentation

◆ RhinoCheckMeshOutput()

RhinoCheckMeshOutput::RhinoCheckMeshOutput ( )

Member Function Documentation

◆ ZeroCounts()

void RhinoCheckMeshOutput::ZeroCounts ( )

Member Data Documentation

◆ m_bAbbreviatedVersion

bool RhinoCheckMeshOutput::m_bAbbreviatedVersion

If m_bAbbreviatedVersion is set to true then the feedback from ON_Mesh::IsValid is all that will be added to the ON_TextLog.

Default is false.

◆ m_bCheckForBogusNormals

bool RhinoCheckMeshOutput::m_bCheckForBogusNormals

Default is true.

If m_bCheckForBogusNormals is true then the function will look for vertex normals that are not unit vectors, are zero length or vary greatly from the general direction of the face normals. m_totalNotUnitVectorNormalCt will contain the total count of normals that are not unit vectors for all meshes. m_totalZeroLengthNormalCt will contain the total count of zero length normals for all meshes. m_totalVertexFaceNormalDifferCt will contain the total count of vertex normals that differ greatly from face normals for all meshes.

◆ m_bCheckForDegenerateFaces

bool RhinoCheckMeshOutput::m_bCheckForDegenerateFaces

Default is true.

If m_bCheckForDegenerateFaces is true then the function will look for triangles and quads that have zero area and quads where one sub triangle has zero area. m_totalDegenerateFaceCt will contain the total degenerate face count for all meshes.

◆ m_bCheckForDegenerateNgons

bool RhinoCheckMeshOutput::m_bCheckForDegenerateNgons

Default is true.

If m_bCheckForDegenerateNgons is true then the function will look for ngons that have invalid information. m_totalInvalidNgonCt will contain the total degenerate face count for all meshes.

◆ m_bCheckForDisjointMeshes

bool RhinoCheckMeshOutput::m_bCheckForDisjointMeshes

Default is true.

If m_bCheckForDisjointMeshes is true then the function will look for faces in the mesh that are totally isolated from other faces in the mesh.
ie. an island of faces (or many islands) that have a boundary of naked edges m_totalDisjointMeshCt will contain the total count of disjoint pieces for all meshes.

◆ m_bCheckForDuplicateFaces

bool RhinoCheckMeshOutput::m_bCheckForDuplicateFaces

If m_bCheckForDuplicateFaces is true then the function will look for faces that have vertices (not necessarily vertex indexes) that are identical. m_totalDuplicateFaceCt will contain the total count of duplicate faces for all meshes.

◆ m_bCheckForExtremelyShortEdges

bool RhinoCheckMeshOutput::m_bCheckForExtremelyShortEdges

Default is true.

If m_bCheckForExtremelyShortEdges is true then the function will look for topological edges where the distance between the endpoints is less than m_DistanceToCheck.
m_totalExtremelyShortEdgeCt will contain the total extremely short edge count for all meshes.

◆ m_bCheckForNakeEdges

bool RhinoCheckMeshOutput::m_bCheckForNakeEdges

Default is true.

If m_bCheckForNakeEdges is true then the function will look for topological edges in the mesh topology where the face count is 1.
m_totalNakedEdgeCt will contain the total naked edge count for all meshes. Note: This check is also made if m_bCheckForDuplicateFaces but the output is not shown if m_bCheckForNakeEdges is false

◆ m_bCheckForNonManifoldEdges

bool RhinoCheckMeshOutput::m_bCheckForNonManifoldEdges

Default is true.

If m_bCheckForNonManifoldEdges is true then the function will look for topological edges in the mesh topology where the face count is greater than 2.
m_totalNonManifoldEdgeCt will contain the total naked edge count for all meshes. Note: This check is also made if m_bCheckForDuplicateFaces but the output is not shown if m_bCheckForNonManifoldEdges is false

◆ m_bCheckForRandomFaceNormals

bool RhinoCheckMeshOutput::m_bCheckForRandomFaceNormals

Default is true.

If m_bCheckForRandomFaceNormals is true then the function will look for adjacent faces that have the same edge orientation. This typically means that clockwise/counterclockwise orientation, and face normal are screwed up.
m_totalRandomFaceNormalCt will contain the total count of random face normals for all meshes.
Note: UnifyMeshNormals is a command that may be able to resolve this issue

◆ m_bCheckForSelfIntersection

bool RhinoCheckMeshOutput::m_bCheckForSelfIntersection

◆ m_bCheckForUnusedVertices

bool RhinoCheckMeshOutput::m_bCheckForUnusedVertices

Default is true.

If m_bCheckForUnusedVertices is true then the function will look for vertices that are not referenced by any face in the mesh.
m_totalDisjointMeshCt will contain the total count of unused vertices for all meshes.

◆ m_DistanceToCheck

double RhinoCheckMeshOutput::m_DistanceToCheck

Default is 1.0e-12.

◆ m_totalClashingPairsCt

int RhinoCheckMeshOutput::m_totalClashingPairsCt

◆ m_totalDegenerateFaceCt

int RhinoCheckMeshOutput::m_totalDegenerateFaceCt

◆ m_totalDisjointMeshCt

int RhinoCheckMeshOutput::m_totalDisjointMeshCt

◆ m_totalDuplicateFaceCt

int RhinoCheckMeshOutput::m_totalDuplicateFaceCt

◆ m_totalExtremelyShortEdgeCt

int RhinoCheckMeshOutput::m_totalExtremelyShortEdgeCt

◆ m_totalInvalidNgonCt

int RhinoCheckMeshOutput::m_totalInvalidNgonCt

◆ m_totalNakedEdgeCt

int RhinoCheckMeshOutput::m_totalNakedEdgeCt

◆ m_totalNonManifoldEdgeCt

int RhinoCheckMeshOutput::m_totalNonManifoldEdgeCt

◆ m_totalNotUnitVectorNormalCt

int RhinoCheckMeshOutput::m_totalNotUnitVectorNormalCt

◆ m_totalRandomFaceNormalCt

int RhinoCheckMeshOutput::m_totalRandomFaceNormalCt

◆ m_totalUnusedVertexCt

int RhinoCheckMeshOutput::m_totalUnusedVertexCt

◆ m_totalVertexFaceNormalDifferCt

int RhinoCheckMeshOutput::m_totalVertexFaceNormalDifferCt

◆ m_totalZeroLengthNormalCt

int RhinoCheckMeshOutput::m_totalZeroLengthNormalCt