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

#include <MItMeshEdge.h>

List of all members.


Detailed Description

Polygon edge iterator.

This class is the edge iterator for 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 edges for the polygon. When a component is given this iterator will iterate over the edges specified in the component. When iterating over components a DAG path to the polygon must also be supplied.

Examples:

convertEdgesToFacesCmd.cpp, convertVerticesToEdgesCmd.cpp, lassoTool.cpp, meshMapUtils.cpp, meshOpFtyAction.cpp, and objExport.cpp.


Public Member Functions

  MItMeshEdge (MObject &polyObject, MStatus *ReturnStatus=NULL)
  MItMeshEdge (MObject &polyObject, MObject &component, MStatus *ReturnStatus=NULL)
  MItMeshEdge (const MDagPath &polyObject, MObject &component=MObject::kNullObj, MStatus *ReturnStatus=NULL)
virtual  ~MItMeshEdge ()
bool  isDone (MStatus *ReturnStatus=NULL)
MStatus  next ()
MStatus  reset ()
MStatus  reset (MObject &polyObject, MObject &component=MObject::kNullObj)
MStatus  reset (const MDagPath &polyObject, MObject &component=MObject::kNullObj)
int  count (MStatus *ReturnStatus=NULL)
MPoint  center (MSpace::Space space=MSpace::kObject, MStatus *ReturnStatus=NULL)
MPoint  point (int index, MSpace::Space space=MSpace::kObject, MStatus *ReturnStatus=NULL)
MStatus  setPoint (const MPoint &point, unsigned int index, MSpace::Space space=MSpace::kObject)
bool  isSmooth (MStatus *ReturnStatus=NULL) const
MStatus  setSmoothing (bool smooth=true)
MStatus  cleanupSmoothing ()
  This method is obsolete.
int  index (int index, MStatus *ReturnStatus=NULL)
int  index (MStatus *ReturnStatus=NULL) const
MObject  edge (MStatus *ReturnStatus=NULL)
  This method is obsolete.
MObject  currentItem (MStatus *ReturnStatus=NULL)
MStatus  updateSurface ()
MStatus  geomChanged ()
MStatus  setIndex (int index, int &prevIndex)
int  getConnectedFaces (MIntArray &faceList, MStatus *ReturnStatus=NULL) const
int  getConnectedEdges (MIntArray &edgeList, MStatus *ReturnStatus=NULL) const
MStatus  numConnectedFaces (int &faceCount) const
MStatus  numConnectedEdges (int &edgeCount) const
bool  connectedToFace (int index, MStatus *ReturnStatus=NULL)
bool  connectedToEdge (int index, MStatus *ReturnStatus=NULL)
bool  onBoundary (MStatus *ReturnStatus=NULL)
MStatus  getLength (double &length, MSpace::Space space=MSpace::kObject)

Constructor & Destructor Documentation

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

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

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

MItMeshEdge::MItMeshEdge ( MObject polyObject,
MObject component,
MStatus ReturnStatus = NULL  
)

Constructor. Creates an iterator for the edges of a given surface. The returned edges are connected to the component object. This component may be a vertex or a face or an edge component. If no component is specified then the iteration will be for all edges of the given polygon.

Parameters:
[in]  polyObject  The surface to iterate over
[in]  component  The component that determines which edges to iterate over
[out]  ReturnStatus  Status code
Status Codes:

MItMeshEdge::MItMeshEdge ( const MDagPath polyObject,
MObject component = MObject::kNullObj,
MStatus ReturnStatus = NULL  
)

Constructor. Creates an iterator for the edges of a given surface. The returned edges are connected to the component object. This component may be a vertex or a face or an edge component. If no component is specified then the iteration will be for all edges of the given polygon.

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

MItMeshEdge::~MItMeshEdge (  )  [virtual]

Destructor. Frees up storage used by the iterator.


Member Function Documentation

bool MItMeshEdge::isDone ( MStatus ReturnStatus = NULL  ) 

Indicates if all of the edges have been traversed yet.

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

MStatus MItMeshEdge::next (  ) 

Advance to the next edge in the iteration.

Returns:
Status code
Status Codes:

MStatus MItMeshEdge::reset (  ) 

Reset the iterator to the first edge.

Returns:
Status code
Status Codes:

MStatus MItMeshEdge::reset ( MObject polyObject,
MObject component = MObject::kNullObj  
)

Reset the iterator to the first edge in the supplied mesh. Uses the edges constrained by the given component. If component is null then the iteration will be for all edges in the given polygon.

Parameters:
[in]  polyObject  The mesh object for the iteration
[in]  component  The constraint object. May be a vertex, a face or an edge component
Returns:
Status code
Status Codes:

MStatus MItMeshEdge::reset ( const MDagPath polyObject,
MObject component = MObject::kNullObj  
)

Reset the iterator to the first edge in the supplied mesh. Uses the edges constrained by the given component. If component is null then the iteration will be for all edges in the given polygon.

Parameters:
[in]  polyObject  The surface to iterate over
[in]  component  The constraint object. May be a vertex, a face or an edge component
Returns:
Status code
Status Codes:

int MItMeshEdge::count ( MStatus ReturnStatus = NULL  ) 

Return the number of edges in this iteration.

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

MPoint MItMeshEdge::center ( MSpace::Space  space = MSpace::kObject,
MStatus ReturnStatus = NULL  
)

Returns the center of the current edge.

Parameters:
[out]  ReturnStatus  Status code
Returns:
The center of the current edge
Status Codes:

MPoint MItMeshEdge::point ( int  index,
MSpace::Space  space = MSpace::kObject,
MStatus ReturnStatus = NULL  
)

Return the position of the specified vertex of the current edge.

Parameters:
[in]  index  The vertex of the edge we wish to examine (0 or 1)
[in]  space  The coordinate system for this operation
[out]  ReturnStatus  Status code
Returns:
The position of the edge vertex for the given index
Status Codes:

MStatus MItMeshEdge::setPoint ( const MPoint point,
unsigned int  index,
MSpace::Space  space = MSpace::kObject  
)

Set the specified vertex of the current edge to the given value.

Parameters:
[in]  point  The new value for the edge
[in]  index  The vertex index of the current edge we wish to set (0 or 1)
[in]  space  The coordinate system for this operation
Returns:
Status code
Status Codes:

bool MItMeshEdge::isSmooth ( MStatus ReturnStatus = NULL  )  const

This method determines if the current edge in the iteration is smooth (soft).

Parameters:
[out]  ReturnStatus  Status code
Returns:
Boolean value: true if the edge is smooth (soft), false if the edge is hard.
Status Codes:

MStatus MItMeshEdge::setSmoothing ( bool  smooth = true  ) 

This method sets the current edge to be hard or smooth (soft). The cleanupSmoothing method is no longer required to be called after setSmoothing in Maya3.0 and later versions.

Parameters:
[in]  smooth  if true the edge will be smooth (soft), otherwise the edge will be hard.
Returns:
Status code
Status Codes:

MStatus MItMeshEdge::cleanupSmoothing (  ) 

This method is obsolete.

Deprecated:
This method is no longer required in Maya3.0 and later versions. (In previous versions, this method was needed to clean up the geometry after setSmoothing has been done on one or more edges).
Returns:
Status code
Status Codes:

int MItMeshEdge::index ( int  index,
MStatus ReturnStatus = NULL  
)

This method returns a vertex index for the current edge based upon the specified index. The index can be either 0 or 1 since an edge is made up of exactly two vertices.

Parameters:
[in]  index  The vertex index in current edge (0 or 1)
[out]  ReturnStatus  Status code
Returns:
The index in the vertex list of the edge vertex requested
Status Codes:

int MItMeshEdge::index ( MStatus ReturnStatus = NULL  )  const

This method returns the index of the current edge in the iteration.

Parameters:
[out]  ReturnStatus  Status code
Returns:
The index of the current edge in the iteration
Status Codes:

MObject MItMeshEdge::edge ( MStatus ReturnStatus = NULL  ) 

This method is obsolete.

Deprecated:
Use the MItMeshEdge::currentItem method.
Get the current edge in the iteration as a component.

Components are used to specify one or more edges and are usefull in operating on groups of non-contiguous edges 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 edge in the interation
Status Codes:

MObject MItMeshEdge::currentItem ( MStatus ReturnStatus = NULL  ) 

Get the current edge in the iteration as a component.

Components are used to specify one or more edges and are usefull in operating on groups of non-contiguous edges 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 edge in the interation
Status Codes:

MStatus MItMeshEdge::updateSurface (  ) 

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

Returns:
Status code
Status Codes:

MStatus MItMeshEdge::geomChanged (  ) 

Reset the geom pointer in the MItMeshEdge. If you're using MFnMesh to update Normals or Color per vertex while iterating, you must call geomChanged on the iterator 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.

Returns:
Status code
Status Codes:

MStatus MItMeshEdge::setIndex ( int  index,
int &  prevIndex  
)

This method sets the index of the current edge to be accessed. The current edge will no longer be in sync with any previous iteration. two vertices.

Parameters:
[in]  index  The index of desired edge to access.
Returns:
The index of the current edge in the iteration
Status Codes:

int MItMeshEdge::getConnectedFaces ( MIntArray faces,
MStatus ReturnStatus = NULL  
) const

This method returns a list of faces (with 1 or 2 faces) connected to teh current edge.

Parameters:
[out]  ReturnStatus  Status code
Returns:
Number of connected faces
Status Codes:

int MItMeshEdge::getConnectedEdges ( MIntArray edges,
MStatus ReturnStatus = NULL  
) const

This method returns a list of edges connected to the current edge.

Parameters:
[out]  ReturnStatus  Status code
Returns:
Number of connected edges
Status Codes:

MStatus MItMeshEdge::numConnectedFaces ( int &  faceCount  )  const

This method returns the number of faces (1 or 2 ) connected to the current edge.

Parameters:
[in]  faceCount  Number of connected faces
Returns:
Status code
Status Codes:

MStatus MItMeshEdge::numConnectedEdges ( int &  edgeCount  )  const

This method returns the number of edges connected to the current edge.

Returns:
Status code
Status Codes:

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

This method determines whether the given face contains the current edge

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

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

This method determines whether the given edge is connected to the current edge

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

bool MItMeshEdge::onBoundary ( MStatus ReturnStatus = NULL  ) 

This method checks to see if the current edge is a border edge.

NOTE: it is possible to turn all edges into boundaries by extracting faces. In this case, onBoundary() will always return true even though it appears that there are internal edges.

Parameters:
[out]  ReturnStatus  Status code
Returns:
Boolean value: true if it's a border edge, false otherwise.
Status Codes:

MStatus MItMeshEdge::getLength ( double &  length,
MSpace::Space  space = MSpace::kObject  
)

This method returns the length of the current edge.

Parameters:
[in]  length  length of edge
Returns:
Status code
Status Codes:

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