Public Member Functions | Static Public Member Functions

MItMeshPolygon Class Reference

Search for all occurrences

Detailed Description

Polygon iterator.

This class is the iterator for polygonal surfaces (meshes).

The iterator functions in two modes depending on whether a component is specified. When a component is not given or is NULL the iteration will be over all polygons for the surface. When a component is given this iterator will iterate over the polygons (faces) specified in the component. When iterating over components a DAG path to the surface must also be supplied.

Examples:

cleanPerFaceAssignmentCmd.cpp, convertEdgesToFacesCmd.cpp, convertVerticesToFacesCmd.cpp, cvColorShader.cpp, findTexturesPerPolygonCmd.cpp, getPointAndNormal.cpp, lassoTool.cpp, meshMapUtils.cpp, meshOpFtyAction.cpp, meshRemapCmd.cpp, meshRemapTool.cpp, meshReorderCmd.cpp, narrowPolyViewer.cpp, objExport.cpp, peltOverlapCmd.cpp, polyWriter.cpp, splitUVCmd.cpp, and splitUVFtyAction.cpp.

#include <MItMeshPolygon.h>

List of all members.

Public Member Functions

  MItMeshPolygon (const MObject &polyObject, MStatus *ReturnStatus=NULL)
  Constructor.
  MItMeshPolygon (const MDagPath &polyObject, MObject &component=MObject::kNullObj, MStatus *ReturnStatus=NULL)
  Constructor.
virtual  ~MItMeshPolygon ()
  Destructor.
bool  isDone (MStatus *ReturnStatus=NULL)
  Indicates if all of the polygons have been traversed yet.
MStatus  next ()
  Advance to the next polygon in the iteration.
MStatus  reset ()
  Reset the iterator to the first polygon.
MStatus  reset (const MObject &polyObject)
  Reset the iterator to the first polygon in the supplied surface.
MStatus  reset (const MDagPath &polyObject, MObject &component=MObject::kNullObj)
  Reset the iterator with the given surface and component.
unsigned int  count (MStatus *ReturnStatus=NULL)
  Return the number of polygons in the iteration.
unsigned int  polygonVertexCount (MStatus *ReturnStatus=NULL)
  Return the number of vertices for the current polygon.
MPoint  center (MSpace::Space space=MSpace::kObject, MStatus *ReturnStatus=NULL)
  Return the position of the center of the current polygon.
MObject  polygon (MStatus *ReturnStatus=NULL)
  This method is obsolete.
MObject  currentItem (MStatus *ReturnStatus=NULL)
  Get the current polygon in the iteration as a component.
unsigned int  index (MStatus *ReturnStatus=NULL)
  Returns the index of the current polygon.
MStatus  setIndex (int index, int &prevIndex)
  This method sets the index of the current face to be accessed.
unsigned int  vertexIndex (int index, MStatus *ReturnStatus=NULL)
  Returns the object-relative index of the specified vertex of the current polygon.
MStatus  getVertices (MIntArray &vertices)
  This method gets the indices of the vertices of the current face.
MPoint  point (int index, MSpace::Space space=MSpace::kObject, MStatus *ReturnStatus=NULL)
  Return the position of the vertex at index in the current polygon.
void  getPoints (MPointArray &pointArray, MSpace::Space space=MSpace::kObject, MStatus *ReturnStatus=NULL)
  Retrieves the positions of the vertices on the current face/polygon that the iterator is pointing to.
MStatus  setPoint (const MPoint &point, unsigned int index, MSpace::Space space=MSpace::kObject)
  Set the vertex at the given index in the current polygon.
MStatus  setPoints (MPointArray &pointArray, MSpace::Space space=MSpace::kObject)
  Sets new locations for vertices of the current polygon that the iterator is pointing to.
unsigned int  normalIndex (int vertex, MStatus *ReturnStatus=NULL) const
  Returns the normal index for the specified vertex.
MStatus  getNormal (MVector &normal, MSpace::Space space=MSpace::kObject) const
  Return the face normal of the current polygon.
MStatus  getNormal (unsigned int Vertexindex, MVector &normal, MSpace::Space space=MSpace::kObject) const
  Returns the vertex-face normal for the vertex in the current polygon.
MStatus  getNormals (MVectorArray &vectorArray, MSpace::Space space=MSpace::kObject) const
  Returns the normals for all vertices in the current face.
unsigned int  tangentIndex (int vertex, MStatus *ReturnStatus=NULL) const
  Returns the tangent (or binormal) index for the specified vertex.
bool  hasUVs (MStatus *ReturnStatus=NULL) const
  Tests whether this face has UV's mapped or not (either all the vertices for a face should have UV's, or none of them do, so the UV count for a face is either 0, or equal to the number of vertices).
bool  hasUVs (const MString &uvSet, MStatus *ReturnStatus=NULL) const
  Tests whether this face has UV's mapped or not (either all the vertices for a face should have UV's, or none of them do, so the UV count for a face is either 0, or equal to the number of vertices).
MStatus  setUV (int vertexId, float2 &uvPoint, const MString *uvSet=NULL)
  Modify the UV value for the given vertex in the current face.
MStatus  getUV (int vertexId, float2 &uvPoint, const MString *uvSet=NULL) const
  Return the texture coordinate for the given vertex.
MStatus  setUVs (MFloatArray &uArray, MFloatArray &vArray, const MString *uvSet=NULL)
  Modify the UV value for all vertices in the current face.
MStatus  getUVs (MFloatArray &uArray, MFloatArray &vArray, const MString *uvSet=NULL) const
  Return the all the texture coordinates for the vertices of this face (in local vertex order).
MStatus  getPointAtUV (MPoint &pt, float2 &uvPoint, MSpace::Space space=MSpace::kObject, const MString *uvSet=NULL, float tolerance=0.0)
  Return the position of the point at the given UV value in the current polygon.
MStatus  getUVAtPoint (MPoint &pt, float2 &uvPoint, MSpace::Space space=MSpace::kObject, const MString *uvSet=NULL)
  Find the point closest to the given point in the current polygon, and return the UV value at that point.
MStatus  getUVIndex (int vertex, int &index, const MString *uvSet=NULL)
  Returns the index of the texture coordinate for the given vertex.
MStatus  getUVIndex (int vertex, int &index, float &u, float &v, const MString *uvSet=NULL)
  Return the index of the texture coordinate for the given vertex.
MStatus  getUVSetNames (MStringArray &setNames) const
  This method is used to find the UV set names mapped to the current face.
bool  hasColor (MStatus *ReturnStatus=NULL) const
  This method determines whether the current face has color-per-vertex set for any vertex.
bool  hasColor (int localVertexIndex, MStatus *ReturnStatus=NULL)
  This method determines whether the current face has color-per-vertex set for the given vertex.
MStatus  getColor (MColor &color, const MString *colorSetName=NULL)
  This method gets the average color of the all the vertices in this face.
MStatus  getColor (MColor &color, int vertexIndex)
  This method gets the color of the specifed vertex in this face.
MStatus  getColors (MColorArray &colors, const MString *colorSetName=NULL)
  This method gets the color of the each vertex in the current face.
MStatus  numColors (int &count, const MString *colorSetName=NULL)
  This method checks for the number of colors on vertices in this face.
MStatus  getColorIndex (int vertexIndex, int &colorIndex, const MString *colorSetName=NULL)
  This method returns the colorIndex for a vertex of the current face.
MStatus  getColorIndices (MIntArray &colorIndex, const MString *colorSetName=NULL)
  This method returns the colorIndices for each vertex on the face.
bool  hasValidTriangulation (MStatus *ReturnStatus=NULL) const
  This method checks if the face has a valid triangulation.
MStatus  numTriangles (int &count) const
  This Method checks for the number of triangles in this face in the current triangulation.
MStatus  getTriangle (int localTriIndex, MPointArray &points, MIntArray &vertexList, MSpace::Space space=MSpace::kObject) const
  Get the vertices and vertex positions of the given triangle in the current face's triangulation.
MStatus  getTriangles (MPointArray &points, MIntArray &vertexList, MSpace::Space space=MSpace::kObject) const
  Get the vertices and vertex positions of all the triangles in the current face's triangulation.
MStatus  updateSurface ()
  Signal that this polygonal surface has changed and needs to redraw itself.
MStatus  geomChanged ()
  Reset the geom pointer in the MItMeshPolygon.
MStatus  getEdges (MIntArray &edges)
  This method gets the indices of the edges contained in the current face.
MStatus  getConnectedFaces (MIntArray &faces)
  This method gets the indices of the faces connected to the current face.
MStatus  getConnectedEdges (MIntArray &edges)
  This method gets the indices of the edges connected to the vertices of the current face, but DOES not include the edges contained in the current face.
MStatus  getConnectedVertices (MIntArray &vertices)
  This method gets the object-relative indices of the vertices surrounding the vertices of the current face, but does not include the vertices of the current face.
bool  isConnectedToFace (int index, MStatus *ReturnStatus=NULL)
  This method determines whether the given face is adjacent to the current face.
bool  isConnectedToEdge (int index, MStatus *ReturnStatus=NULL)
  This method determines whether the given edge is connected to a vertex in the current face.
bool  isConnectedToVertex (int index, MStatus *ReturnStatus=NULL)
  This method determines whether the given vertex shares an edge with a vertex in the current face.
MStatus  numConnectedFaces (int &faceCount) const
  This method checks for the number of connected faces.
MStatus  numConnectedEdges (int &edgeCount) const
  This method checks for the number of connected edges on the vertices of this face.
bool  onBoundary (MStatus *ReturnStatus=NULL)
  This method determines whether the current face is on a boundary.
MStatus  getArea (double &area, MSpace::Space space=MSpace::kObject)
  This method gets the area of the face.
bool  zeroArea (MStatus *ReturnStatus=NULL)
  This method checks if its a zero area face.
MStatus  getUVArea (double &area, const MString *uvSet=NULL)
  This method gets the UV area of the face.
bool  zeroUVArea (MStatus *ReturnStatus=NULL)
  This method checks if the UV area of the face is zero.
bool  zeroUVArea (const MString &uvSet, MStatus *ReturnStatus=NULL)
  This method checks if the UV area of the face is zero.
bool  isConvex (MStatus *ReturnStatus=NULL)
  This method checks if the face is convex.
bool  isStarlike (MStatus *ReturnStatus=NULL)
  This method checks if the face is starlike.
bool  isLamina (MStatus *ReturnStatus=NULL)
  This method checks if the face is a lamina (the face is folded over onto itself).
bool  isHoled (MStatus *ReturnStatus=NULL)
  This method checks if the face has any holes.
bool  isPlanar (MStatus *ReturnStatus=NULL)
  This method checks if the face is planar.

Static Public Member Functions

static const char *  className ()
  Returns the name of this class.

Constructor & Destructor Documentation

MItMeshPolygon ( const MObject polyObject,
MStatus ReturnStatus = NULL 
)

Constructor.

Creates an iterator for all polygons of the given surface.

Parameters:
[in] polyObject The surface to iterate over
[out] ReturnStatus Status code
Status Codes:
MItMeshPolygon ( const MDagPath polyObject,
MObject component = MObject::kNullObj,
MStatus ReturnStatus = NULL 
)

Constructor.

Creates an iterator for the polygons of the given component. If no component is specified then the iteration will be for all polygons of the given surface.

Parameters:
[in] polyObject The surface (mesh) to iterate over
[in] component The polygons of the polyObject to iterate over
[out] ReturnStatus Status code
Status Codes:
~MItMeshPolygon ( ) [virtual]

Destructor.

Frees up storage used by the iterator.


Member Function Documentation

bool isDone ( MStatus ReturnStatus = NULL )

Indicates if all of the polygons have been traversed yet.

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true if all polygons have been traversed, false otherwise.
Status Codes:
Examples:
cleanPerFaceAssignmentCmd.cpp, and splitUVFtyAction.cpp.
MStatus next ( )

Advance to the next polygon in the iteration.

Returns:
Status code
Status Codes:
Examples:
cleanPerFaceAssignmentCmd.cpp, meshRemapCmd.cpp, meshReorderCmd.cpp, and splitUVFtyAction.cpp.
MStatus reset ( )

Reset the iterator to the first polygon.

Returns:
Status code
Status Codes:
Examples:
cleanPerFaceAssignmentCmd.cpp, getPointAndNormal.cpp, and splitUVFtyAction.cpp.
MStatus reset ( const MObject polyObject )

Reset the iterator to the first polygon in the supplied surface.

Parameters:
[in] polyObject The polygon for the iteration
Returns:
Status code
Status Codes:
MStatus reset ( const MDagPath polyObject,
MObject component = MObject::kNullObj 
)

Reset the iterator with the given surface and component.

If component is null then the iteration will be for all polygons in the given surface.

Parameters:
[in] polyObject The surface (mesh) to iterate over
[in] component The polygons (faces) of the polyObject to iterate over
Returns:
Status code
Status Codes:
unsigned int count ( MStatus ReturnStatus = NULL )

Return the number of polygons in the iteration.

Parameters:
[out] ReturnStatus Status code
Returns:
The number of polygons in the iteration
Status Codes:
Examples:
cleanPerFaceAssignmentCmd.cpp.
unsigned int polygonVertexCount ( MStatus ReturnStatus = NULL )

Return the number of vertices for the current polygon.

Parameters:
[out] ReturnStatus Status code
Returns:
The number of vertices for the current polygon
Status Codes:
Examples:
splitUVFtyAction.cpp.
MPoint center ( MSpace::Space  space = MSpace::kObject,
MStatus ReturnStatus = NULL 
)

Return the position of the center of the current polygon.

Parameters:
[in] space The coordinate system for this operation
[out] ReturnStatus Status code
Returns:
The center of the current polygon
Status Codes:
MObject polygon ( MStatus ReturnStatus = NULL )

This method is obsolete.

Deprecated:
Use the MItMeshPolygon::currentItem method.

Get the current polygon in the iteration as a component.

Components are used to specify one or more polygons and are usefull in operating on groups of non-contiguous polygons for a surface. Components do not contain any information about the surface that they refer to so an MDagPath must be specified when dealing with components.

Parameters:
[out] ReturnStatus Status code
Returns:
The current polygon in the interation
Status Codes:
MObject currentItem ( MStatus ReturnStatus = NULL )

Get the current polygon in the iteration as a component.

Components are used to specify one or more polygons and are usefull in operating on groups of non-contiguous polygons for a surface. Components do not contain any information about the surface that they refer to so an MDagPath must be specified when dealing with components.

Parameters:
[out] ReturnStatus Status code
Returns:
The current polygon in the interation
Status Codes:
unsigned int index ( MStatus ReturnStatus = NULL )

Returns the index of the current polygon.

Parameters:
[out] ReturnStatus Status code
Returns:
The index of the current polygon
Status Codes:
Examples:
cleanPerFaceAssignmentCmd.cpp, meshReorderCmd.cpp, and splitUVFtyAction.cpp.
MStatus setIndex ( int  index,
int &  prevIndex 
)

This method sets the index of the current face to be accessed.

The current face will no longer be in sync with any previous iteration.

Parameters:
[in] index The index of desired face to access.
[in] prevIndex The index of the current face in the iteration
Returns:
Status code
Status Codes:
Examples:
getPointAndNormal.cpp.
unsigned int vertexIndex ( int  index,
MStatus ReturnStatus = NULL 
)

Returns the object-relative index of the specified vertex of the current polygon.

The index returned may be used to refer to an element in the vertex list returned by MFnMesh::getPoints.

Parameters:
[in] index The face-relative index of the vertex in the polygon
[out] ReturnStatus Status code
Returns:
The index in the polygon array of the given vertex
Status Codes:
Examples:
meshReorderCmd.cpp.
MStatus getVertices ( MIntArray vertices )

This method gets the indices of the vertices of the current face.

Parameters:
[out] vertices An array to place all the vertex indices into
Returns:
Status code
Status Codes:
MPoint point ( int  index,
MSpace::Space  space = MSpace::kObject,
MStatus ReturnStatus = NULL 
)

Return the position of the vertex at index in the current polygon.

Parameters:
[in] index The face-relative index of the vertex in the current polygon
[in] space The coordinate system for this operation
[out] ReturnStatus Status code
Returns:
The vertex position
Status Codes:
void getPoints ( MPointArray pointArray,
MSpace::Space  space = MSpace::kObject,
MStatus ReturnStatus = NULL 
)

Retrieves the positions of the vertices on the current face/polygon that the iterator is pointing to.

Vertex positions will be inserted into the given array and will be indexed using face-relative vertex IDs (ie. ordered from 0 to (vertexCount of the face) - 1), which should not be confused with the vertexIDs of each vertex in relation to the entire mesh object.

Parameters:
[out] pointArray The array where the vertex positions will be stored
[in] space The coordinate system for this operation
[out] ReturnStatus Status code
Status Codes:
MStatus setPoint ( const MPoint point,
unsigned int  index,
MSpace::Space  space = MSpace::kObject 
)

Set the vertex at the given index in the current polygon.

Parameters:
[in] point The new position for the vertex
[in] index The face-relative index of the vertex in the current polygon
[in] space The coordinate system for this operation
Returns:
Status code
Status Codes:
MStatus setPoints ( MPointArray pointArray,
MSpace::Space  space = MSpace::kObject 
)

Sets new locations for vertices of the current polygon that the iterator is pointing to.

Parameters:
[in] pointArray The new positions for the vertices.
[in] space The coordinate system for this operation.
Returns:
Status code
Status Codes:
unsigned int normalIndex ( int  localVertexIndex,
MStatus ReturnStatus = NULL 
) const

Returns the normal index for the specified vertex.

This index refers to an element in the normal array returned by MFnMesh::getNormals. These normals are per-polygon per-vertex normals. See the MFnMesh description for more information on normals.

Parameters:
[in] localVertexIndex The face-relative index of the vertex to examine for the current polygon
[out] ReturnStatus Status code
Returns:
The index of the normal for the specified vertex
Status Codes:
MStatus getNormal ( MVector normal,
MSpace::Space  space = MSpace::kObject 
) const

Return the face normal of the current polygon.

Parameters:
[out] normal Storage for the normal
[in] space The transformation space
Returns:
Status code
Status Codes:
MStatus getNormal ( unsigned int  index,
MVector normal,
MSpace::Space  space = MSpace::kObject 
) const

Returns the vertex-face normal for the vertex in the current polygon.

Parameters:
[in] index face-relative vertex index of the vertex whose normal to retrieve
[out] normal Storage for the normal
[in] space The transformation space
Returns:
Status code
Status Codes:
MStatus getNormals ( MVectorArray normalArray,
MSpace::Space  space = MSpace::kObject 
) const

Returns the normals for all vertices in the current face.

Parameters:
[out] normalArray Storage for the normals
[in] space The transformation space
Returns:
Status code
Status Codes:
unsigned int tangentIndex ( int  localVertexIndex,
MStatus ReturnStatus = NULL 
) const

Returns the tangent (or binormal) index for the specified vertex.

This index refers to an element in the normal array returned by MFnMesh::getTangents. These tangent or binormals are per-polygon per-vertex. See the MFnMesh description for more information on tangents and binormals.

Parameters:
[in] localVertexIndex The face-relative index of the vertex to examine for the current polygon
[out] ReturnStatus Status code
Returns:
The index of the tangent for the specified vertex
Status Codes:
bool hasUVs ( MStatus ReturnStatus = NULL ) const

Tests whether this face has UV's mapped or not (either all the vertices for a face should have UV's, or none of them do, so the UV count for a face is either 0, or equal to the number of vertices).

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true if the face has UV's mapped, false otherwise
Status Codes:
Examples:
splitUVFtyAction.cpp.
bool hasUVs ( const MString uvSet,
MStatus ReturnStatus = NULL 
) const

Tests whether this face has UV's mapped or not (either all the vertices for a face should have UV's, or none of them do, so the UV count for a face is either 0, or equal to the number of vertices).

Parameters:
[in] uvSet UV set to work with
[out] ReturnStatus Status code
Returns:
Boolean value: true if the face has UV's mapped, false otherwise
Status Codes:
MStatus setUV ( int  vertexId,
float2 &  uvPoint,
const MString uvSet = NULL 
)

Modify the UV value for the given vertex in the current face.

If the face is not already mapped, this method will fail.

Parameters:
[in] vertexId face-relative index of the vertex to set UV for.
[in] uvPoint The UV values to set it to
[in] uvSet UV set to work with
Returns:
Status code
Status Codes:
MStatus getUV ( int  vertex,
float2 &  uvPoint,
const MString uvSet = NULL 
) const

Return the texture coordinate for the given vertex.

Parameters:
[in] vertex The face-relative vertex index to get UV for
[out] uvPoint Storage for u and v values
[in] uvSet UV set to work with
Returns:
Status code
Status Codes:
MStatus setUVs ( MFloatArray uArray,
MFloatArray vArray,
const MString uvSet = NULL 
)

Modify the UV value for all vertices in the current face.

If the face has not already been mapped, this method will fail.

Parameters:
[in] uArray All the U values - in local face order
[in] vArray The corresponding V values
[in] uvSet UV set to work with
Returns:
Status code
Status Codes:
MStatus getUVs ( MFloatArray uArray,
MFloatArray vArray,
const MString uvSet = NULL 
) const

Return the all the texture coordinates for the vertices of this face (in local vertex order).

Parameters:
[out] uArray Storage for u values
[out] vArray Storage for v values
[in] uvSet UV set to work with
Returns:
Status code
Status Codes:
Examples:
getPointAndNormal.cpp.
MStatus getPointAtUV ( MPoint pt,
float2 &  uvPoint,
MSpace::Space  space = MSpace::kObject,
const MString uvSet = NULL,
float  tolerance = 0.0 
)

Return the position of the point at the given UV value in the current polygon.

Parameters:
[out] pt Space for the point
[in] uvPoint The UV value to try to locate
[in] space The coordinate system for this operation
[in] uvSet UV set to work with
[in] tolerance tolerance value to compare float data type
Returns:
Status code
Status Codes:
Examples:
getPointAndNormal.cpp.
MStatus getUVAtPoint ( MPoint pt,
float2 &  uvPoint,
MSpace::Space  space = MSpace::kObject,
const MString uvSet = NULL 
)

Find the point closest to the given point in the current polygon, and return the UV value at that point.

Parameters:
[in] pt The point to try to get UV for
[out] uvPoint Storage for the UV value
[in] space The coordinate system for this operation
[in] uvSet UV set to work with
Returns:
Status code
Status Codes:
MStatus getUVIndex ( int  vertex,
int &  index,
const MString uvSet = NULL 
)

Returns the index of the texture coordinate for the given vertex.

This index refers to an element of the texture coordinate array for the polygonal object returned by MFnMesh::getUVs.

Parameters:
[in] vertex The face-relative vertex index of the current polygon
[out] index Storage for the texture coordinate index of the specified vertex
[in] uvSet UV set to work with
Returns:
Status code
Status Codes:
Examples:
splitUVFtyAction.cpp.
MStatus getUVIndex ( int  vertex,
int &  index,
float &  u,
float &  v,
const MString uvSet = NULL 
)

Return the index of the texture coordinate for the given vertex.

This index refers to an element of the texture coordinate array for the polygonal object returned by MFnMesh::getUVs.

Parameters:
[in] vertex The face-relative vertex index of the current polygon
[out] index Storage for the texture coordinate index of the specified vertex
[out] u Storage for u value
[out] v Storage for v value
[in] uvSet UV set to work with
Returns:
Status code
Status Codes:
MStatus getUVSetNames ( MStringArray setNames ) const

This method is used to find the UV set names mapped to the current face.

Parameters:
[out] setNames The string array to return the UV sets names in
Returns:
Status code
Status Codes:
bool hasColor ( MStatus ReturnStatus = NULL ) const

This method determines whether the current face has color-per-vertex set for any vertex.

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true if at least one vertex has color, false otherwise.
Status Codes:
bool hasColor ( int  vertexIndex,
MStatus ReturnStatus = NULL 
)

This method determines whether the current face has color-per-vertex set for the given vertex.

Parameters:
[in] vertexIndex face-relative vertex index to check for color on
[out] ReturnStatus Status code
Returns:
Boolean value: true if the given vertex has color, false otherwise.
Status Codes:
MStatus getColor ( MColor color,
const MString colorSetName = NULL 
)

This method gets the average color of the all the vertices in this face.

Parameters:
[out] color The average color
[in] colorSetName Name of the color set.
Returns:
Status code
Status Codes:
MStatus getColor ( MColor color,
int  index 
)

This method gets the color of the specifed vertex in this face.

Parameters:
[out] color The color to get
[in] index The face-relative vertex index on this face
Returns:
Status code
Status Codes:
MStatus getColors ( MColorArray colors,
const MString colorSetName = NULL 
)

This method gets the color of the each vertex in the current face.

Parameters:
[out] colors Storage for the colors of the vertice in this face
[in] colorSetName Name of the color set.
Returns:
Status code
Status Codes:
MStatus numColors ( int &  colorCount,
const MString colorSetName = NULL 
)

This method checks for the number of colors on vertices in this face.

Parameters:
[out] colorCount Storage for the color count
[in] colorSetName Name of the color set.
Returns:
Status code
Status Codes:
MStatus getColorIndex ( int  vertexIndex,
int &  colorIndex,
const MString colorSetName = NULL 
)

This method returns the colorIndex for a vertex of the current face.

Parameters:
[in] vertexIndex Face-relative index of vertex.
[out] colorIndex Color index filled in this function.
[in] colorSetName Name of the color set.
Returns:
Status code
Status Codes:
MStatus getColorIndices ( MIntArray colorIndices,
const MString colorSetName = NULL 
)

This method returns the colorIndices for each vertex on the face.

Parameters:
[out] colorIndices Color index filled in this function.
[in] colorSetName Name of the color set.
Returns:
Status code
Status Codes:
bool hasValidTriangulation ( MStatus ReturnStatus = NULL ) const

This method checks if the face has a valid triangulation.

If it doesn't, then the face was bad geometry: it may gave degenerate points or cross over itself.

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true the face has a valid triangulation false otherwise.
Status Codes:
MStatus numTriangles ( int &  triCount ) const

This Method checks for the number of triangles in this face in the current triangulation.

Parameters:
[out] triCount Storage for the triangle count
Returns:
Status code
Status Codes:
MStatus getTriangle ( int  localTriIndex,
MPointArray points,
MIntArray vertexList,
MSpace::Space  space = MSpace::kObject 
) const

Get the vertices and vertex positions of the given triangle in the current face's triangulation.

Parameters:
[in] localTriIndex Local index of the desired triangle in this face
[out] points Storage for all the vertex points
[out] vertexList Storage for all the vertex indices
[in] space World Space or Object Space
Returns:
Status code
Status Codes:
MStatus getTriangles ( MPointArray points,
MIntArray vertexList,
MSpace::Space  space = MSpace::kObject 
) const

Get the vertices and vertex positions of all the triangles in the current face's triangulation.

Parameters:
[out] points Storage for all the vertex points
[out] vertexList Storage for all the vertex indices
[in] space World Space or Object Space
Returns:
Status code
Status Codes:
MStatus updateSurface ( )

Signal that this polygonal surface has changed and needs to redraw itself.

Returns:
Status code
Status Codes:
MStatus geomChanged ( )

Reset the geom pointer in the MItMeshPolygon.

This is now being handled automatically inside the iterator, and users should no longer need to call this method directly to sync up the iterator to changes made by MFnMesh

Returns:
Status code
Status Codes:
MStatus getEdges ( MIntArray edges )

This method gets the indices of the edges contained in the current face.

Parameters:
[out] edges An array to place all the edge indices into
Returns:
Status code
Status Codes:
MStatus getConnectedFaces ( MIntArray faces )

This method gets the indices of the faces connected to the current face.

Parameters:
[out] faces An array to place all the face indices into
Returns:
Status code
Status Codes:
MStatus getConnectedEdges ( MIntArray edges )

This method gets the indices of the edges connected to the vertices of the current face, but DOES not include the edges contained in the current face.

Parameters:
[out] edges An array to place all the edge indices into
Returns:
Status code
Status Codes:
MStatus getConnectedVertices ( MIntArray vertices )

This method gets the object-relative indices of the vertices surrounding the vertices of the current face, but does not include the vertices of the current face.

Parameters:
[out] vertices An array to stuff all the vertex indices into
Returns:
Status code
Status Codes:
bool isConnectedToFace ( int  index,
MStatus ReturnStatus = NULL 
)

This method determines whether the given face is adjacent to the current face.

Parameters:
[in] index Index of the face to be tested for
[out] ReturnStatus Status code
Returns:
true if connected, false otherwise.
Status Codes:
bool isConnectedToEdge ( int  index,
MStatus ReturnStatus = NULL 
)

This method determines whether the given edge is connected to a vertex in the current face.

Parameters:
[in] index Index of the edge to be tested for
[out] ReturnStatus Status code
Returns:
Boolean value: true if connected, false otherwise.
Status Codes:
bool isConnectedToVertex ( int  index,
MStatus ReturnStatus = NULL 
)

This method determines whether the given vertex shares an edge with a vertex in the current face.

Parameters:
[in] index Index of the vertex to be tested for
[out] ReturnStatus Status code
Returns:
Boolean value: true if connected, false otherwise.
Status Codes:
MStatus numConnectedFaces ( int &  faceCount ) const

This method checks for the number of connected faces.

Parameters:
[out] faceCount Storage for the face count
Returns:
Status code
Status Codes:
MStatus numConnectedEdges ( int &  edgeCount ) const

This method checks for the number of connected edges on the vertices of this face.

Parameters:
[out] edgeCount Storage for the edge count
Returns:
Status code
Status Codes:
bool onBoundary ( MStatus ReturnStatus = NULL )

This method determines whether the current face is on a boundary.

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true if on a boundary, false otherwise.
Status Codes:
MStatus getArea ( double &  area,
MSpace::Space  space = MSpace::kObject 
)

This method gets the area of the face.

Parameters:
[out] area The area
[in] space World Space or Object Space
Returns:
Status code
Status Codes:
bool zeroArea ( MStatus ReturnStatus = NULL )

This method checks if its a zero area face.

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true if the face has zero area, false otherwise.
Status Codes:
MStatus getUVArea ( double &  area,
const MString uvSet = NULL 
)

This method gets the UV area of the face.

Parameters:
[out] area The uv area
[in] uvSet UV set to work with
Returns:
Status code
Status Codes:
bool zeroUVArea ( MStatus ReturnStatus = NULL )

This method checks if the UV area of the face is zero.

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true if the face has zero UV area, false otherwise.
Status Codes:
bool zeroUVArea ( const MString uvSet,
MStatus ReturnStatus = NULL 
)

This method checks if the UV area of the face is zero.

Parameters:
[in] uvSet UV set to work with
[out] ReturnStatus Status code
Returns:
  • true if the face has zero UV area
  • false otherwise.
Status Codes:
bool isConvex ( MStatus ReturnStatus = NULL )

This method checks if the face is convex.

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true if the face is convex, false otherwise.
Status Codes:
bool isStarlike ( MStatus ReturnStatus = NULL )

This method checks if the face is starlike.

That is, a line from the centre to any vertex lies entirely within the face.

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true if the face is starlike, false otherwise.
Status Codes:
bool isLamina ( MStatus ReturnStatus = NULL )

This method checks if the face is a lamina (the face is folded over onto itself).

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true if the face is a lamina, false otherwise.
Status Codes:
bool isHoled ( MStatus ReturnStatus = NULL )

This method checks if the face has any holes.

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true the face has one or more holes, false otherwise.
Status Codes:
bool isPlanar ( MStatus ReturnStatus = NULL )

This method checks if the face is planar.

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true the face is planar, false otherwise.
Status Codes:
const char * className ( ) [static]

Returns the name of this class.

Returns:
The name of this class.

MItMeshPolygon MItMeshPolygon MItMeshPolygon MItMeshPolygon MItMeshPolygon MItMeshPolygon MItMeshPolygon MItMeshPolygon MItMeshPolygon MItMeshPolygon
MItMeshPolygon MItMeshPolygon MItMeshPolygon MItMeshPolygon MItMeshPolygon MItMeshPolygon MItMeshPolygon MItMeshPolygon MItMeshPolygon MItMeshPolygon