Public Member Functions | Static Public Member Functions

MItMeshFaceVertex Class Reference

This reference page is linked to from the following overview topics: The five basic polygonal API classes.


Search for all occurrences

Detailed 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.

#include <MItMeshFaceVertex.h>

List of all members.

Public Member Functions

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

Static Public Member Functions

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

Constructor & Destructor Documentation

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:
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:
~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:
MStatus next ( )

Advance to the next face vertext in the iteration.

Returns:
Status code
Status Codes:
MStatus reset ( )

Reset the iterator to the first face vertex.

Returns:
Status code
Status Codes:
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:
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:
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:
int faceId ( MStatus ReturnStatus = NULL) const

Returns the current face index.

Parameters:
[out]ReturnStatusStatus code
Returns:
The index of the current face.
Status Codes:
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:
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:
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:
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:
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:
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:
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 tangnet for the current vertex
Status Codes:
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:
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:
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:
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:
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:
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:
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:
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:
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 MItMeshFaceVertex.

Returns:
Status code
Status Codes:
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:
const char * className ( ) [static]

Returns the name of this class.

Returns:
The name of this class.

MItMeshFaceVertex MItMeshFaceVertex MItMeshFaceVertex MItMeshFaceVertex MItMeshFaceVertex MItMeshFaceVertex MItMeshFaceVertex MItMeshFaceVertex MItMeshFaceVertex MItMeshFaceVertex
MItMeshFaceVertex MItMeshFaceVertex MItMeshFaceVertex MItMeshFaceVertex MItMeshFaceVertex MItMeshFaceVertex MItMeshFaceVertex MItMeshFaceVertex MItMeshFaceVertex MItMeshFaceVertex