MItMeshVertex Class Reference
[OpenMaya - API module for common classes]

#include <MItMeshVertex.h>

List of all members.


Detailed Description

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.

Examples:

blindDataMesh.cpp, convertVerticesToEdgesCmd.cpp, convertVerticesToFacesCmd.cpp, cvColorShader.cpp, cvPosCmd.cpp, lassoTool.cpp, meshMapUtils.cpp, meshRemapTool.cpp, meshReorderTool.cpp, moveTool.cpp, objExport.cpp, shellNode.cpp, surfaceTwist.cpp, surfaceTwistCmd.cpp, and translateCmd.cpp.


Public Member Functions

 MItMeshVertex (MObject &polyObject, MStatus *ReturnStatus=NULL)
 MItMeshVertex (const MDagPath &polyObject, MObject &component=MObject::kNullObj, MStatus *ReturnStatus=NULL)
virtual ~MItMeshVertex ()
bool isDone (MStatus *ReturnStatus=NULL)
MStatus next ()
MStatus reset ()
MStatus reset (MObject &polyObject)
MStatus reset (const MDagPath &polyObject, MObject &component=MObject::kNullObj)
int count (MStatus *ReturnStatus=NULL)
int index (MStatus *ReturnStatus=NULL)
MObject vertex (MStatus *ReturnStatus=NULL)
 This method is obsolete.
MObject currentItem (MStatus *ReturnStatus=NULL)
MPoint position (MSpace::Space space=MSpace::kObject, MStatus *ReturnStatus=NULL)
MStatus setPosition (const MPoint &point, MSpace::Space space=MSpace::kObject)
MStatus translateBy (const MVector &vector, MSpace::Space space=MSpace::kObject)
MStatus getNormal (MVector &vector, MSpace::Space space=MSpace::kObject)
MStatus getNormal (MVector &vector, int faceIndex, MSpace::Space space=MSpace::kObject)
MStatus getNormals (MVectorArray &vectorArray, MSpace::Space space=MSpace::kObject)
MStatus getNormalIndices (MIntArray &normalIndices) const
MStatus numUVs (int &count, const MString *uvSet=NULL)
MStatus setUV (float2 &uvPoint, const MString *uvSet=NULL)
MStatus getUV (float2 &uvPoint, const MString *uvSet=NULL)
MStatus setUV (int faceId, float2 &uvPoint, const MString *uvSet=NULL)
MStatus getUV (int faceId, float2 &uvPoint, const MString *uvSet=NULL) const
MStatus setUVs (MFloatArray &uArray, MFloatArray &vArray, MIntArray &faceIds, const MString *uvSet=NULL)
MStatus getUVs (MFloatArray &uArray, MFloatArray &vArray, MIntArray &faceIds, const MString *uvSet=NULL) const
MStatus getUVIndices (MIntArray &uvIndices, const MString *uvSet=NULL) const
MStatus updateSurface ()
MStatus geomChanged ()
MStatus setIndex (int index, int &prevIndex)
MStatus getConnectedFaces (MIntArray &faceList)
MStatus getConnectedEdges (MIntArray &edgeList)
MStatus getConnectedVertices (MIntArray &vertexList)
MStatus numConnectedFaces (int &faceCount) const
MStatus numConnectedEdges (int &edgeCount) const
bool connectedToFace (int faceIndex, MStatus *ReturnStatus=NULL)
bool connectedToEdge (int edgeIndex, MStatus *ReturnStatus=NULL)
MStatus getOppositeVertex (int &vertexId, int edgeId)
bool onBoundary (MStatus *ReturnStatus=NULL)
bool hasColor (MStatus *ReturnStatus=NULL) const
bool hasColor (int faceIndex, MStatus *ReturnStatus=NULL) const
MStatus getColor (MColor &color, int faceIndex, const MString *colorSetName=NULL) const
MStatus getColor (MColor &color, const MString *colorSetName=NULL) const
MStatus getColors (MColorArray &colors, const MString *colorSetName=NULL) const
MStatus getColorIndices (MIntArray &colorIndex, const MString *colorSetName=NULL) const

Constructor & Destructor Documentation

MItMeshVertex::MItMeshVertex ( MObject polyObject,
MStatus ReturnStatus = NULL 
)

Constructor. Creates an iterator for all vertices of the given surface.

Parameters:
[in] polyObject The surface to iterate over
[out] ReturnStatus Status code
Status Codes:

MItMeshVertex::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.

Parameters:
[in] polyObject The surface to iterate over
[in] component The vertices of the polyObject to iterate over
[out] ReturnStatus Status code
Status Codes:

MItMeshVertex::~MItMeshVertex (  )  [virtual]

Destructor. Frees up storage used by the iterator.


Member Function Documentation

bool MItMeshVertex::isDone ( MStatus ReturnStatus = NULL  ) 

Indicates if all of the vertices have been traversed yet.

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true if all vertices have been traversed, false otherwise.
Status Codes:

MStatus MItMeshVertex::next (  ) 

Advance to the next vertex in the iteration.

Returns:
Status code
Status Codes:

MStatus MItMeshVertex::reset (  ) 

Reset the iterator to the first vertex.

Returns:
Status code
Status Codes:

MStatus MItMeshVertex::reset ( MObject polyObject  ) 

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

Parameters:
[in] polyObject The polygon for the iteration
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::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.

Parameters:
[in] polyObject The surface to iterate over
[in] component The vertices of the polyObject to iterate over
Returns:
Status code
Status Codes:

int MItMeshVertex::count ( MStatus ReturnStatus = NULL  ) 

Return the number of vertices in the iteration.

Parameters:
[out] ReturnStatus Status code
Returns:
The number of vertices in the iteration
Status Codes:

int MItMeshVertex::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.

Parameters:
[out] ReturnStatus Status code
Returns:
The index in the vertex list for the current vertex
Status Codes:

MObject MItMeshVertex::vertex ( MStatus ReturnStatus = NULL  ) 

This method is obsolete.

Deprecated:
Use the MItMeshVertex::currentItem method.
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 non-contiguous 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.

Parameters:
[out] ReturnStatus Status code
Returns:
The current vertex in the interation
Status Codes:

MObject MItMeshVertex::currentItem ( MStatus ReturnStatus = NULL  ) 

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 non-contiguous 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.

Parameters:
[out] ReturnStatus Status code
Returns:
The current vertex in the interation
Status Codes:

MPoint MItMeshVertex::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.

Parameters:
[in] space The transformation space
[out] ReturnStatus Status code
Returns:
The position of the vertex in the specified space
Status Codes:

MStatus MItMeshVertex::setPosition ( const MPoint point,
MSpace::Space  space = MSpace::kObject 
)

Set the position of the current vertex in the given space.

Parameters:
[in] point The new position for the current vertex
[in] space Transformation space
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::translateBy ( const MVector vector,
MSpace::Space  space = MSpace::kObject 
)

Translate the current vertex by the amount specified by the given vector.

Parameters:
[in] vector The amount of translation
[in] space The transformation space
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::getNormal ( MVector vector,
MSpace::Space  space = MSpace::kObject 
)

Return the normal or averaged normal if unshared of the current vertex.

Parameters:
[out] vector The normal.
[in] space The transformation space.
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::getNormal ( MVector vector,
int  faceIndex,
MSpace::Space  space = MSpace::kObject 
)

Return the normal of the current vertex in the specified face

Parameters:
[out] vector The normal.
[in] faceIndex face index to get normal for
[in] space The transformation space
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::getNormals ( MVectorArray normalArray,
MSpace::Space  space = MSpace::kObject 
)

Return the normals of the current vertex for all faces

Parameters:
[out] normalArray The normals.
[in] space The transformation space.
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::getNormalIndices ( MIntArray normalIndices  )  const

This method returns the normal indices of the face/vertex associated with the current vertex.

Parameters:
[out] normalIndices The normal indices.
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::numUVs ( int &  uvCount,
const MString uvSet = NULL 
)

This method returns the number of unique UVs mapped on this vertex

Parameters:
[out] uvCount The UV count
[in] uvSet Name of the uv set to work with
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::setUV ( float2 &  uvPoint,
const MString uvSet = NULL 
)

Set the shared UV value at this vertex

Parameters:
[in] uvPoint The UV value to set.
[in] uvSet Name of the UV set to work with
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::getUV ( float2 &  uvPoint,
const MString uvSet = NULL 
)

Get the shared UV value at this vertex

Parameters:
[out] uvPoint UV value.
[in] uvSet Name of the uv set to work with.
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::setUV ( int  faceId,
float2 &  uvPoint,
const MString uvSet = NULL 
)

Set the UV value for the given face at the current vertex

Parameters:
[in] faceId Index of required face
[in] uvPoint Value of the UV point
[in] uvSet Name of the uv set to work with
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::getUV ( int  faceId,
float2 &  uvPoint,
const MString uvSet = NULL 
) const

Get the UV value for the give facen at the current vertex

Parameters:
[in] faceId Index of the required face
[out] uvPoint UV value.
[in] uvSet Name of the uv set to work with
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::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.

Parameters:
[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
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::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.

Parameters:
[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
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::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.

Parameters:
[out] uvIndices UV indices.
[in] uvSet Name of the uv set.
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::updateSurface (  ) 

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

Returns:
Status code
Status Codes:

MStatus MItMeshVertex::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.

Returns:
Status code
Status Codes:

MStatus MItMeshVertex::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.

Parameters:
[in] index The index of the desired vertex to access.
Returns:
The index of the vertex that was previously current
Status Codes:

MStatus MItMeshVertex::getConnectedFaces ( MIntArray faces  ) 

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

Parameters:
[out] faces Face indices.
Returns:
Status Code
Status Codes:

MStatus MItMeshVertex::getConnectedEdges ( MIntArray edges  ) 

This method gets the indices of the edges connected to the current vertex.

Parameters:
[out] edges Edge indices.
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::getConnectedVertices ( MIntArray vertices  ) 

This method gets the indices of the vertices surrounding the current vertex

Parameters:
[out] vertices Indices of connected vertices.
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::numConnectedFaces ( int &  faceCount  )  const

This Method checks for the number of Connected Faces

Parameters:
[in] faceCount The number of connected faces.
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::numConnectedEdges ( int &  edgeCount  )  const

This Method checks for the number of connected Edges on this vertex

Parameters:
[in] edgeCount The number of connected edges.
Returns:
Status code
Status Codes:

bool MItMeshVertex::connectedToFace ( int  index,
MStatus ReturnStatus = NULL 
)

This method determines whether the given face contains the current vertex

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true if contained, false otherwise.
Status Codes:

bool MItMeshVertex::connectedToEdge ( int  index,
MStatus ReturnStatus = NULL 
)

This method determines whether the given edge contains the current vertex

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true if contained, false otherwise.
Status Codes:

MStatus MItMeshVertex::getOppositeVertex ( int &  vertexId,
int  edgeId 
)

This gets the other vertex of the given edge

Parameters:
[out] vertexId Id of the given edge's opposite vertex.
[in] edgeId The edge to get the other vertex for
Returns:
Status code
Status Codes:

bool MItMeshVertex::onBoundary ( MStatus ReturnStatus = NULL  ) 

This method determines whether the current vertex is on a Boundary

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true if contained, false otherwise.
Status Codes:

bool MItMeshVertex::hasColor ( MStatus ReturnStatus = NULL  )  const

This method determines whether the current Vertex has a color set for one or more faces.

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true if a color is set for at least one face, false otherwise.
Status Codes:

bool MItMeshVertex::hasColor ( int  index,
MStatus ReturnStatus = NULL 
) const

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

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true if a color has been set, false otherwise.
Status Codes:

MStatus MItMeshVertex::getColor ( MColor color,
int  faceIndex,
const MString colorSetName = NULL 
) const

This method gets the color of the current vertex in the specified face

Parameters:
[out] color Color.
[in] faceIndex The face to get the color for this vertex for
[in] colorSetName Name of the color set.
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::getColor ( MColor color,
const MString colorSetName = NULL 
) const

This method gets the average color of the vertex

Parameters:
[out] color The average color
[in] colorSetName Name of the color set.
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::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).

Parameters:
[out] colors Colors.
[in] colorSetName Name of the color set.
Returns:
Status code
Status Codes:

MStatus MItMeshVertex::getColorIndices ( MIntArray colorIndices,
const MString colorSetName = NULL 
) const

This method returns the colorIndices into the color array see MFnMesh::getColors() of the current vertex.

Parameters:
[out] colorIndices Color indices.
[in] colorSetName Name of the color set.
Returns:
Status code
Status Codes:


Autodesk® Maya® 2009 © 1997-2008 Autodesk, Inc. All rights reserved. Generated with doxygen 1.5.6