#include <MItMeshVertex.h>
Polygon vertex iterator.
This class is the iterator for polygonal vertices.
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 vertices for the polygon. When a component is given this iterator will iterate over the vertices specified in the component. When iterating over components a DAG path to the surface must also be supplied.
Public Member Functions  
MItMeshVertex (MObject &polyObject, MStatus *ReturnStatus=NULL)  
Constructor. More...  
MItMeshVertex (const MDagPath &polyObject, MObject &component=MObject::kNullObj, MStatus *ReturnStatus=NULL)  
Constructor. More...  
virtual  ~MItMeshVertex () 
Destructor. More...  
bool  isDone (MStatus *ReturnStatus=NULL) 
Indicates if all of the vertices have been traversed yet. More...  
MStatus  next () 
Advance to the next vertex in the iteration. More...  
MStatus  reset () 
Reset the iterator to the first vertex. More...  
MStatus  reset (MObject &polyObject) 
Reset the iterator to the first vertex in the supplied polygon. More...  
MStatus  reset (const MDagPath &polyObject, MObject &component=MObject::kNullObj) 
Reset the iterator with the given polygon and component. More...  
int  count (MStatus *ReturnStatus=NULL) 
Return the number of vertices in the iteration. More...  
int  index (MStatus *ReturnStatus=NULL) 
Returns the index of the current vertex in the vertex list for this polygonal object. More...  
MObject  vertex (MStatus *ReturnStatus=NULL) 
This method is obsolete. More...  
MObject  currentItem (MStatus *ReturnStatus=NULL) 
Get the current vertex in the iteration as a component. More...  
MPoint  position (MSpace::Space space=MSpace::kObject, MStatus *ReturnStatus=NULL) 
Return the position of the current vertex in the specified space. More...  
MStatus  setPosition (const MPoint &point, MSpace::Space space=MSpace::kObject) 
Set the position of the current vertex in the given space. More...  
MStatus  translateBy (const MVector &vector, MSpace::Space space=MSpace::kObject) 
Translate the current vertex by the amount specified by the given vector. More...  
MStatus  getNormal (MVector &vector, MSpace::Space space=MSpace::kObject) 
Return the normal or averaged normal if unshared of the current vertex. More...  
MStatus  getNormal (MVector &vector, int faceIndex, MSpace::Space space=MSpace::kObject) 
Return the normal of the current vertex in the specified face. More...  
MStatus  getNormals (MVectorArray &vectorArray, MSpace::Space space=MSpace::kObject) 
Return the normals of the current vertex for all faces. More...  
MStatus  getNormalIndices (MIntArray &normalIndices) const 
This method returns the normal indices of the face/vertex associated with the current vertex. More...  
MStatus  numUVs (int &count, const MString *uvSet=NULL) 
This method returns the number of unique UVs mapped on this vertex. More...  
MStatus  setUV (float2 &uvPoint, const MString *uvSet=NULL) 
Set the shared UV value at this vertex. More...  
MStatus  getUV (float2 &uvPoint, const MString *uvSet=NULL) 
Get the shared UV value at this vertex. More...  
MStatus  setUV (int faceId, float2 &uvPoint, const MString *uvSet=NULL) 
Set the UV value for the given face at the current vertex. More...  
MStatus  getUV (int faceId, float2 &uvPoint, const MString *uvSet=NULL) const 
Get the UV value for the give facen at the current vertex. More...  
MStatus  setUVs (MFloatArray &uArray, MFloatArray &vArray, MIntArray &faceIds, const MString *uvSet=NULL) 
Set the UV value for the specified faces at the current vertex. More...  
MStatus  getUVs (MFloatArray &uArray, MFloatArray &vArray, MIntArray &faceIds, const MString *uvSet=NULL) const 
Get the UV values for all mapped faces at the current vertex. More...  
MStatus  getUVIndices (MIntArray &uvIndices, const MString *uvSet=NULL) const 
This method returns the uv indices into the normal array see MFnMesh::getUVs() of the current vertex. More...  
MStatus  updateSurface () 
Signal that this polygonal surface has changed and needs to redraw itself. More...  
MStatus  geomChanged () 
Reset the geom pointer in the MItMeshVertex. More...  
MStatus  setIndex (int index, int &prevIndex) 
This method sets the index of the current vertex to be accessed. More...  
MStatus  getConnectedFaces (MIntArray &faceList) 
This method gets the indices of the faces connected to the current vertex. More...  
MStatus  getConnectedEdges (MIntArray &edgeList) 
This method gets the indices of the edges connected to the current vertex. More...  
MStatus  getConnectedVertices (MIntArray &vertexList) 
This method gets the indices of the vertices surrounding the current vertex. More...  
MStatus  numConnectedFaces (int &faceCount) const 
This Method checks for the number of Connected Faces. More...  
MStatus  numConnectedEdges (int &edgeCount) const 
This Method checks for the number of connected Edges on this vertex. More...  
bool  connectedToFace (int faceIndex, MStatus *ReturnStatus=NULL) 
This method determines whether the given face contains the current vertex. More...  
bool  connectedToEdge (int edgeIndex, MStatus *ReturnStatus=NULL) 
This method determines whether the given edge contains the current vertex. More...  
MStatus  getOppositeVertex (int &vertexId, int edgeId) 
This gets the other vertex of the given edge. More...  
bool  onBoundary (MStatus *ReturnStatus=NULL) 
This method determines whether the current vertex is on a Boundary. More...  
bool  hasColor (MStatus *ReturnStatus=NULL) const 
This method determines whether the current Vertex has a color set for one or more faces. More...  
bool  hasColor (int faceIndex, MStatus *ReturnStatus=NULL) const 
This method determines whether the given face has a color set for the current vertex. More...  
MStatus  getColor (MColor &color, int faceIndex, const MString *colorSetName=NULL) const 
This method gets the color of the current vertex in the specified face. More...  
MStatus  getColor (MColor &color, const MString *colorSetName=NULL) const 
This method gets the average color of the vertex. More...  
MStatus  getColors (MColorArray &colors, const MString *colorSetName=NULL) const 
This method gets the colors of the current vertex for each face it belongs to. More...  
MStatus  getColorIndices (MIntArray &colorIndex, const MString *colorSetName=NULL) const 
This method returns the colorIndices into the color array see MFnMesh::getColors() of the current vertex. More...  
Static Public Member Functions  
static const char *  className () 
Returns the name of this class. More...  
MItMeshVertex  (  MObject &  polyObject, 
MStatus *  ReturnStatus = NULL 

) 
Constructor.
Creates an iterator for all vertices of the given surface.
[in]  polyObject  The surface to iterate over 
[out]  ReturnStatus  Status code 
MItMeshVertex  (  const MDagPath &  polyObject, 
MObject &  component = MObject::kNullObj , 

MStatus *  ReturnStatus = NULL 

) 
Constructor.
Creates an iterator for the vertices of the given component. If no component is specified then the iteration will be for all vertices of the given polygon.
[in]  polyObject  The surface to iterate over 
[in]  component  The vertices of the polyObject to iterate over 
[out]  ReturnStatus  Status code 

virtual 
Destructor.
Frees up storage used by the iterator.
bool isDone  (  MStatus *  ReturnStatus = NULL  ) 
Indicates if all of the vertices have been traversed yet.
[out]  ReturnStatus  Status code 
MStatus next  (  ) 
Advance to the next vertex in the iteration.
MStatus reset  (  ) 
Reset the iterator to the first vertex.
Reset the iterator to the first vertex in the supplied polygon.
[in]  polyObject  The polygon for the iteration 
MStatus reset  (  const MDagPath &  polyObject, 
MObject &  component = MObject::kNullObj 

) 
Reset the iterator with the given polygon and component.
If component is null then the iteration will be for all vertices in the given polygon.
[in]  polyObject  The surface to iterate over 
[in]  component  The vertices of the polyObject to iterate over 
int count  (  MStatus *  ReturnStatus = NULL  ) 
Return the number of vertices in the iteration.
[out]  ReturnStatus  Status code 
int index  (  MStatus *  ReturnStatus = NULL  ) 
Returns the index of the current vertex in the vertex list for this polygonal object.
Polygonal objects contain a list of vertices. Faces and edges are specified as indicies from this list, in this way vertices can be shared amoung faces and edges.
[out]  ReturnStatus  Status code 
This method is obsolete.
Get the current vertex in the iteration as a component.
Components are used to specify one or more vertices and are usefull in operating on groups of noncontiguous vertices 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.
[out]  ReturnStatus  Status code 
Get the current vertex in the iteration as a component.
Components are used to specify one or more vertices and are usefull in operating on groups of noncontiguous vertices 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.
[out]  ReturnStatus  Status code 
MPoint position  (  MSpace::Space  space = MSpace::kObject , 
MStatus *  ReturnStatus = NULL 

) 
Return the position of the current vertex in the specified space.
Object space ignores all transformations for the polygon, world space includes all such transformations.
[in]  space  The transformation space 
[out]  ReturnStatus  Status code 
MStatus setPosition  (  const MPoint &  point, 
MSpace::Space  space = MSpace::kObject 

) 
Set the position of the current vertex in the given space.
[in]  point  The new position for the current vertex 
[in]  space  Transformation space 
MStatus translateBy  (  const MVector &  vector, 
MSpace::Space  space = MSpace::kObject 

) 
Translate the current vertex by the amount specified by the given vector.
[in]  vector  The amount of translation 
[in]  space  The transformation space 
MStatus getNormal  (  MVector &  vector, 
MSpace::Space  space = MSpace::kObject 

) 
Return the normal or averaged normal if unshared of the current vertex.
[out]  vector  The normal. 
[in]  space  The transformation space. 
MStatus getNormal  (  MVector &  vector, 
int  faceIndex,  
MSpace::Space  space = MSpace::kObject 

) 
Return the normal of the current vertex in the specified face.
[out]  vector  The normal. 
[in]  faceIndex  face index to get normal for 
[in]  space  The transformation space 
MStatus getNormals  (  MVectorArray &  normalArray, 
MSpace::Space  space = MSpace::kObject 

) 
Return the normals of the current vertex for all faces.
[out]  normalArray  The normals. 
[in]  space  The transformation space. 
This method returns the normal indices of the face/vertex associated with the current vertex.
[out]  normalIndices  The normal indices. 
This method returns the number of unique UVs mapped on this vertex.
[out]  uvCount  The UV count 
[in]  uvSet  Name of the uv set to work with 
Set the shared UV value at this vertex.
[in]  uvPoint  The UV value to set. 
[in]  uvSet  Name of the UV set to work with 
Get the shared UV value at this vertex.
[out]  uvPoint  UV value. 
[in]  uvSet  Name of the uv set to work with. 
Set the UV value for the given face at the current vertex.
[in]  faceId  Index of required face 
[in]  uvPoint  Value of the UV point 
[in]  uvSet  Name of the uv set to work with 
Get the UV value for the give facen at the current vertex.
[in]  faceId  Index of the required face 
[out]  uvPoint  UV value. 
[in]  uvSet  Name of the uv set to work with 
MStatus setUVs  (  MFloatArray &  uArray, 
MFloatArray &  vArray,  
MIntArray &  faceIds,  
const MString *  uvSet = NULL 

) 
Set the UV value for the specified faces at the current vertex.
If the face is not already mapped, the value will not be set. If at least ne face was previously mapped, the method should succeed. If no faces were mapped, the method will fail.
[in]  uArray  All the U values  in local face order 
[in]  vArray  The corresponding V values 
[in]  faceIds  The corresponding face Ids 
[in]  uvSet  Name of the uv set to work with 
MStatus getUVs  (  MFloatArray &  uArray, 
MFloatArray &  vArray,  
MIntArray &  faceIds,  
const MString *  uvSet = NULL 

)  const 
Get the UV values for all mapped faces at the current vertex.
If at least one face was mapped the method will succeed.
[out]  uArray  U values in local face order. 
[out]  vArray  V values in local face order. 
[out]  faceIds  The corresponding face Ids 
[in]  uvSet  Name of the uv set to work with 
This method returns the uv indices into the normal array see MFnMesh::getUVs() of the current vertex.
[out]  uvIndices  UV indices. 
[in]  uvSet  Name of the uv set. 
MStatus updateSurface  (  ) 
Signal that this polygonal surface has changed and needs to redraw itself.
MStatus geomChanged  (  ) 
Reset the geom pointer in the MItMeshVertex.
If you're using MFnMesh to update Normals or Color per vertex while iterating, you must call geomChanged on the iteratior immediately after the MFnMesh call to make sure that your geometry is up to date. A crash may result if this method is not called. A similar approach must be taken for updating upstream vertex tweaks with an MPlug. After the update, call this method.
MStatus setIndex  (  int  index, 
int &  prevIndex  
) 
This method sets the index of the current vertex to be accessed.
The current vertex will no longer be in sync with any previous iteration.
[in]  index  Index of desired vertex to access. 
[out]  prevIndex  Index of vertex which was current before the change. 
This method gets the indices of the faces connected to the current vertex.
[out]  faces  Face indices. 
This method gets the indices of the edges connected to the current vertex.
[out]  edges  Edge indices. 
This method gets the indices of the vertices surrounding the current vertex.
[out]  vertices  Indices of connected vertices. 
MStatus numConnectedFaces  (  int &  faceCount  )  const 
This Method checks for the number of Connected Faces.
[in]  faceCount  The number of connected faces. 
MStatus numConnectedEdges  (  int &  edgeCount  )  const 
This Method checks for the number of connected Edges on this vertex.
[in]  edgeCount  The number of connected edges. 
bool connectedToFace  (  int  index, 
MStatus *  ReturnStatus = NULL 

) 
This method determines whether the given face contains the current vertex.
[in]  index  Index of face to check. 
[out]  ReturnStatus  Status code 
bool connectedToEdge  (  int  index, 
MStatus *  ReturnStatus = NULL 

) 
This method determines whether the given edge contains the current vertex.
[in]  index  Index of edge to check. 
[out]  ReturnStatus  Status code 
MStatus getOppositeVertex  (  int &  vertexId, 
int  edgeId  
) 
This gets the other vertex of the given edge.
[out]  vertexId  Id of the given edge's opposite vertex. 
[in]  edgeId  The edge to get the other vertex for 
bool onBoundary  (  MStatus *  ReturnStatus = NULL  ) 
This method determines whether the current vertex is on a Boundary.
[out]  ReturnStatus  Status code 
bool hasColor  (  MStatus *  ReturnStatus = NULL  )  const 
This method determines whether the current Vertex has a color set for one or more faces.
[out]  ReturnStatus  Status code 
bool hasColor  (  int  index, 
MStatus *  ReturnStatus = NULL 

)  const 
This method determines whether the given face has a color set for the current vertex.
[in]  index  Index of face to check. 
[out]  ReturnStatus  Status code 
This method gets the color of the current vertex in the specified face.
[out]  color  Color. 
[in]  faceIndex  The face to get the color for this vertex for 
[in]  colorSetName  Name of the color set. 
This method gets the average color of the vertex.
[out]  color  The average color 
[in]  colorSetName  Name of the color set. 
MStatus getColors  (  MColorArray &  colors, 
const MString *  colorSetName = NULL 

)  const 
This method gets the colors of the current vertex for each face it belongs to.
If no colors are assigned to the vertex at all, the return values will be (1 1 1 1). If some but not all of the vertex/face colors have been explicitly set, the ones that have not been set will be (0, 0, 0, 1).
[out]  colors  Colors. 
[in]  colorSetName  Name of the color set. 
This method returns the colorIndices into the color array see MFnMesh::getColors() of the current vertex.
[out]  colorIndices  Color indices. 
[in]  colorSetName  Name of the color set. 

static 
Returns the name of this class.