Public Member Functions | Static Public Member Functions

MItMeshFaceVertex Class Reference

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] polyObject The surface to iterate over
[out] ReturnStatus Status 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] polyObject The surface to iterate over
[in] component The polygons of the polyObject to iterate over
[out] ReturnStatus Status 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] ReturnStatus Status 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] polyObject The 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] polyObject The surface to iterate over
[in] component The 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] ReturnStatus Status code
Returns:
The index of the current face vertex.
Status Codes:
int faceId ( MStatus ReturnStatus = NULL ) const

Returns the current face index.

Parameters:
[out] ReturnStatus Status 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] ReturnStatus Status 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] ReturnStatus Status 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] ReturnStatus Status 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] space The coordinate system for this operation
[out] ReturnStatus Status code
Returns:
The vertex position
Status Codes:
MStatus getNormal ( MVector normal,
MSpace::Space  space = MSpace::kObject 
) const

Return the face vertex normal.

Parameters:
[out] normal Storage for the normal
[in] space The 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] ReturnStatus Status 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] ReturnStatus Status 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] space The transformation space.
[in] uvSet The 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] space The transformation space
[in] uvSet The 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] ReturnStatus Status 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] uvSet UV set to work with
[in] ReturnStatus Status 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] uvPoint Storage for u and v values
[in] uvSet UV 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] index Storage for the texture coordinate index of the current face vertex
[in] uvSet UV 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] 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:
bool hasColor ( MStatus ReturnStatus = NULL ) const

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

Parameters:
[out] ReturnStatus Status 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] color Current face vertex color
[in] colorSetName Name 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] colorIndex Storage for the color index
[in] colorSetName Name 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] faceIndex Index of desired face to access.
[in] faceVertIndex Face-relative index of desired vertex to access.
[out] prevFaceId Index of the face which was current before the change.
[out] prevVertId Face-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