MItMeshFaceVertex Class Reference

#include <MItMeshFaceVertex.h>

Class Description

Face vertex iterator.

This class is the iterator for face vertices on polygonal surfaces.

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 specified in the component. When iterating over components a DAG path to the surface must also be supplied.

Public Member Functions

 MItMeshFaceVertex (const MObject &polyObject, MStatus *ReturnStatus=NULL)
 Constructor. More...
 
 MItMeshFaceVertex (const MDagPath &polyObject, MObject &component=MObject::kNullObj, MStatus *ReturnStatus=NULL)
 Constructor. More...
 
virtual ~MItMeshFaceVertex ()
 Destructor. More...
 
bool isDone (MStatus *ReturnStatus=NULL)
 Indicates if all of the face vertices have been traversed. More...
 
MStatus next ()
 Advance to the next face vertext in the iteration. More...
 
MStatus reset ()
 Reset the iterator to the first face vertex. More...
 
MStatus reset (const MObject &polyObject)
 Reset the iterator to the first polygon in the supplied surface. More...
 
MStatus reset (const MDagPath &polyObject, MObject &component=MObject::kNullObj)
 Reset the iterator with the given surface and component. More...
 
int vertId (MStatus *ReturnStatus=NULL) const
 Returns the index of the current face vertex. More...
 
int faceId (MStatus *ReturnStatus=NULL) const
 Returns the current face index. More...
 
int faceVertId (MStatus *ReturnStatus=NULL) const
 Returns the relative index of the vertex within the current face. More...
 
MObject faceVertex (MStatus *ReturnStatus=NULL) const
 This method is obsolete. More...
 
MObject currentItem (MStatus *ReturnStatus=NULL) const
 Returns the double componet index of the vertex and face. More...
 
MPoint position (MSpace::Space space=MSpace::kObject, MStatus *ReturnStatus=NULL)
 Return the position of the current face vertex. More...
 
MStatus getNormal (MVector &normal, MSpace::Space space=MSpace::kObject) const
 Return the face vertex normal. More...
 
int normalId (MStatus *ReturnStatus=NULL) const
 Returns the normal index for the specified vertex. More...
 
int tangentId (MStatus *ReturnStatus=NULL) const
 Returns the tangent (or binormal) index for the specified vertex. More...
 
MVector getTangent (MSpace::Space space=MSpace::kObject, const MString *uvSet=NULL, MStatus *ReturnStatus=NULL) const
 Return the face vertex tangent associated with the given UV set. More...
 
MVector getBinormal (MSpace::Space space=MSpace::kObject, const MString *uvSet=NULL, MStatus *ReturnStatus=NULL) const
 Return the face vertex binormal associated with the UV set. More...
 
bool hasUVs (MStatus *ReturnStatus=NULL) const
 Does this face vertex has UV's mapped or not. More...
 
bool hasUVs (const MString &uvSet, MStatus *ReturnStatus=NULL) const
 Does this face vertex has UV's mapped or not in a given uv set. More...
 
MStatus getUV (float2 &uvPoint, const MString *uvSet=NULL) const
 Return the texture coordinate for the current face vertex. More...
 
MStatus getUVIndex (int &index, const MString *uvSet=NULL)
 Returns the index of the texture coordinate for the current face vertex. More...
 
MStatus getUVIndex (int &index, float &u, float &v, const MString *uvSet=NULL)
 Return the index of the texture coordinate for the current face vertex. More...
 
bool hasColor (MStatus *ReturnStatus=NULL) const
 This method determines whether the current face vertex has color-per-vertex set. More...
 
MStatus getColor (MColor &color, const MString *colorSetName=NULL)
 Return a color of the current face vertex. More...
 
MStatus getColorIndex (int &colorIndex, const MString *colorSetName=NULL)
 Return a color index of the current face 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 MItMeshFaceVertex. More...
 
MStatus setIndex (int faceId, int vertFaceId, int &prevFaceId, int &prevVertId)
 This method sets the index of the current face vertex to be accessed. More...
 

Static Public Member Functions

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

Constructor & Destructor Documentation

OPENMAYA_MAJOR_NAMESPACE_OPEN MItMeshFaceVertex ( const MObject polyObject,
MStatus ReturnStatus = NULL 
)

Constructor.

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

Parameters
[in]polyObjectThe surface to iterate over
[out]ReturnStatusStatus code
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
MItMeshFaceVertex ( const MDagPath polyObject,
MObject component = MObject::kNullObj,
MStatus ReturnStatus = NULL 
)

Constructor.

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

Parameters
[in]polyObjectThe surface to iterate over
[in]componentThe polygons of the polyObject to iterate over
[out]ReturnStatusStatus code
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
~MItMeshFaceVertex ( )
virtual

Destructor.

Frees up storage used by the iterator.

Member Function Documentation

bool isDone ( MStatus ReturnStatus = NULL)

Indicates if all of the face vertices have been traversed.

Parameters
[out]ReturnStatusStatus code
Returns
Boolean value: true All face vertices have been traversed, false otherwise.
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
MStatus next ( )

Advance to the next face vertext in the iteration.

Returns
Status code
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
MStatus reset ( )

Reset the iterator to the first face vertex.

Returns
Status code
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
MStatus reset ( const MObject polyObject)

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

Parameters
[in]polyObjectThe polygonal object for the iteration
Returns
Status code
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
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 face vertices in the given surface.

Parameters
[in]polyObjectThe surface to iterate over
[in]componentThe polygons of the polyObject to iterate over
Returns
Status code
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
int vertId ( MStatus ReturnStatus = NULL) const

Returns the index of the current face vertex.

Parameters
[out]ReturnStatusStatus code
Returns
The index of the current face vertex.
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
int faceId ( MStatus ReturnStatus = NULL) const

Returns the current face index.

Parameters
[out]ReturnStatusStatus code
Returns
The index of the current face.
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
  • MS::kInvalidParameter Invalid index given.
int faceVertId ( MStatus ReturnStatus = NULL) const

Returns the relative index of the vertex within the current face.

This index together with the faceId can be used for a fast access to get various info stored per vertex (normals, uvs, colors).

Parameters
[out]ReturnStatusStatus code
Returns
The relative index of the current vertex.
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
  • MS::kInvalidParameter Invalid index given.
MObject faceVertex ( MStatus ReturnStatus = NULL) const

This method is obsolete.

Deprecated:
Use the MItMeshFaceVertex::currentItem method.

Returns the double componet index of the vertex and face.

Parameters
[out]ReturnStatusStatus code
Returns
An MObject containing the double index.
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
  • MS::kInvalidParameter Invalid index given.
MObject currentItem ( MStatus ReturnStatus = NULL) const

Returns the double componet index of the vertex and face.

Parameters
[out]ReturnStatusStatus code
Returns
An MObject containing the double index.
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
  • MS::kInvalidParameter Invalid index given.
MPoint position ( MSpace::Space  space = MSpace::kObject,
MStatus ReturnStatus = NULL 
)

Return the position of the current face vertex.

Parameters
[in]spaceThe coordinate system for this operation
[out]ReturnStatusStatus code
Returns
The vertex position
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
MStatus getNormal ( MVector normal,
MSpace::Space  space = MSpace::kObject 
) const

Return the face vertex normal.

Parameters
[out]normalStorage for the normal
[in]spaceThe transformation space
Returns
Status code
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
  • MS::kInvalidParameter Unable to do world space transfromation.
int normalId ( 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
[out]ReturnStatusStatus code
Returns
The index of the normal for the current vertex
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
  • MS::kInvalidParameter Invalid index given.
int tangentId ( 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
[out]ReturnStatusStatus code
Returns
The index of the tangent for the current vertex
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
MVector getTangent ( MSpace::Space  space = MSpace::kObject,
const MString uvSet = NULL,
MStatus ReturnStatus = NULL 
) const

Return the face vertex tangent associated with the given UV set.

The tangent is defined as the surface tangent of the polygon running in the U direction.

Parameters
[in]spaceThe transformation space.
[in]uvSetThe name of the uv set.
[out]ReturnStatus
Returns
The normalized tangent vector. A null vector will be returned if the tangent can't be found.
MVector getBinormal ( MSpace::Space  space = MSpace::kObject,
const MString uvSet = NULL,
MStatus ReturnStatus = NULL 
) const

Return the face vertex binormal associated with the UV set.

Parameters
[in]spaceThe transformation space
[in]uvSetThe name of the associated UV set.
[out]ReturnStatus
Returns
The normalized binormal vector. A null vector will be returned if the tangent can't be found.
bool hasUVs ( MStatus ReturnStatus = NULL) const

Does this face vertex has UV's mapped or not.

Parameters
[in]ReturnStatusStatus Code
Returns
Boolean value: true if the face vertex has UV's mapped, false otherwise.
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
bool hasUVs ( const MString uvSet,
MStatus ReturnStatus = NULL 
) const

Does this face vertex has UV's mapped or not in a given uv set.

Parameters
[in]uvSetUV set to work with
[in]ReturnStatusStatus Code
Returns
Boolean value: true if the face vertex has UV's mapped, false otherwise.
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
MStatus getUV ( float2 &  uvPoint,
const MString uvSet = NULL 
) const

Return the texture coordinate for the current face vertex.

Parameters
[out]uvPointStorage for u and v values
[in]uvSetUV set to work with
Returns
Status code
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
  • MS::kInvalidParameter Invalid vertex index given. The vertex index must be less than polygonVertexCount();
MStatus getUVIndex ( int &  index,
const MString uvSet = NULL 
)

Returns the index of the texture coordinate for the current face vertex.

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

Parameters
[out]indexStorage for the texture coordinate index of the current face vertex
[in]uvSetUV set to work with
Returns
Status code
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
  • MS::kInvalidParameter Invalid vertex index given. The vertex index must be less than polygonVertexCount();
MStatus getUVIndex ( int &  index,
float &  u,
float &  v,
const MString uvSet = NULL 
)

Return the index of the texture coordinate for the current face vertex.

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

Parameters
[out]indexStorage for the texture coordinate index of the specified vertex
[out]uStorage for u value
[out]vStorage for v value
[in]uvSetUV set to work with
Returns
Status code
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
  • MS::kInvalidParameter Invalid vertex index given. The vertex index must be less than polygonVertexCount();
bool hasColor ( MStatus ReturnStatus = NULL) const

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

Parameters
[out]ReturnStatusStatus code
Returns
Boolean value: true if at least one vertex has color, false otherwise.
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
  • MS::kInvalidParameter Invalid index given.
MStatus getColor ( MColor color,
const MString colorSetName = NULL 
)

Return a color of the current face vertex.

Parameters
[out]colorCurrent face vertex color
[in]colorSetNameName of the color set.
Returns
Status code
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
  • MS::kInvalidParameter Invalid index given.
MStatus getColorIndex ( int &  colorIndex,
const MString colorSetName = NULL 
)

Return a color index of the current face vertex.

Parameters
[out]colorIndexStorage for the color index
[in]colorSetNameName of the color set.
Returns
Status code
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
  • MS::kInvalidParameter Invalid index given.
MStatus updateSurface ( )

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

Returns
Status code
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
MStatus geomChanged ( )

Reset the geom pointer in the MItMeshFaceVertex.

Returns
Status code
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
MStatus setIndex ( int  faceIndex,
int  faceVertIndex,
int &  prevFaceId,
int &  prevVertId 
)

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

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

Parameters
[in]faceIndexIndex of desired face to access.
[in]faceVertIndexFace-relative index of desired vertex to access.
[out]prevFaceIdIndex of the face which was current before the change.
[out]prevVertIdFace-relative index of the vertex which was current before the change.
Returns
Status code
Status Codes:
  • MS::kSuccess The method was successful.
  • MS::kFailure An object error has occurred.
  • MS::kInvalidParameter Invalid index given.
const char * className ( )
static

Returns the name of this class.

Returns
The name of this class.

The documentation for this class was generated from the following files:
  • MItMeshFaceVertex.h
  • MItMeshFaceVertex.cpp