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

#include <MItCurveCV.h>

List of all members.


Detailed Description

Iterator for NURBS curve CVs.

This class is the iterator class for NURBS curve control vertices (CVs). The iteration can be for a given curve or for a group of CVs.

Example: Translates the CVs for a curve in the X direction (world space).

    MItCurveCV* cvIter = new MItCurveCV( curve, &stat );
    MVector vector(1.0,0.0,0.0);

    if ( MStatus::kSuccess == stat ) {
        for ( ; !cvIter->isDone(); cvIter->next() )
        {
            cvIter->translateBy( vector, MSpace::kWorld );
        }
        cvIter->updateCurve();  // Tell curve is has been changed
    }
    else {
        cerr << "Error creating iterator!" << endl;
    }
Examples:

cvPosCmd.cpp, lassoTool.cpp, moveCurveCVsCmd.cpp, moveTool.cpp, and translateCmd.cpp.


Public Member Functions

 MItCurveCV (MObject &curve, MStatus *ReturnStatus=NULL)
 MItCurveCV (const MDagPath &curve, MObject &component=MObject::kNullObj, MStatus *ReturnStatus=NULL)
virtual ~MItCurveCV ()
bool isDone (MStatus *ReturnStatus=NULL) const
MStatus next ()
MStatus reset ()
MStatus reset (MObject &curve)
MStatus reset (const MDagPath &curve, MObject &component=MObject::kNullObj)
MPoint position (MSpace::Space space=MSpace::kObject, MStatus *ReturnStatus=NULL) const
MStatus setPosition (const MPoint &pt, MSpace::Space space=MSpace::kObject)
MStatus translateBy (const MVector &vec, MSpace::Space space=MSpace::kObject)
int index (MStatus *ReturnStatus=NULL) const
MObject cv (MStatus *ReturnStatus=NULL) const
 This method is obsolete.
MObject currentItem (MStatus *ReturnStatus=NULL) const
bool hasHistoryOnCreate (MStatus *ReturnStatus=NULL) const
MStatus updateCurve ()

Constructor & Destructor Documentation

MItCurveCV::MItCurveCV ( MObject curve,
MStatus ReturnStatus = NULL 
)

Constructor. This constructor is used when iterating over an entire curve.

Parameters:
[in] curve The curve for the iteration
[out] ReturnStatus Status code
Status Codes:

MItCurveCV::MItCurveCV ( const MDagPath curve,
MObject component = MObject::kNullObj,
MStatus ReturnStatus = NULL 
)

Constructor. This constructor is used when iterating over a group of CVs. If the component is not given then the iteration will be for the whole curve.

Parameters:
[in] curve Dag path to the curve for the iteration
[in] component A group of CVs to be iterated on
[out] ReturnStatus Status code
Status Codes:

MItCurveCV::~MItCurveCV (  )  [virtual]

Class destructor. Deallocates memory used by this iterator.


Member Function Documentation

bool MItCurveCV::isDone ( MStatus ReturnStatus = NULL  )  const

Returns true if the iteration is finished, i.e. there are no more CVs to iterate on.

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean value: true if there are no more CVs to iterate on, false otherwise.
Status Codes:

MStatus MItCurveCV::next (  ) 

Advance to the next CV in the iteration. If the iterator is already at the last CV then this method has no effect. Use isDone to determine if the iterator is at the last CV.

Returns:
Status code
Status Codes:

MStatus MItCurveCV::reset (  ) 

Reset the iterator to the first CV.

Returns:
Status code
Status Codes:

MStatus MItCurveCV::reset ( MObject curve  ) 

Reset the iterator to the specified curve.

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

MStatus MItCurveCV::reset ( const MDagPath curve,
MObject component = MObject::kNullObj 
)

Reset the iterator to the specified curve and component. The component is a group of CVs belonging to the specified curve. The component defaults to MObject::kNullObj. If a component is not given then the iterator will be reset for the whole curve.

Parameters:
[in] curve Dag path to the curve for the iteration
[in] component A group of CVs to be iterated on
Returns:
Status code
Status Codes:

MPoint MItCurveCV::position ( MSpace::Space  space = MSpace::kObject,
MStatus ReturnStatus = NULL 
) const

Return the position of the current CV.

Parameters:
[in] space the co-oordinate system for the returned point
[out] ReturnStatus Status code
Returns:
Status code
Status Codes:

MStatus MItCurveCV::setPosition ( const MPoint pt,
MSpace::Space  space = MSpace::kObject 
)

Set the position of the current CV to the specified point.

Parameters:
[in] space the co-ordinate system for this transformation.
Returns:
Status code
Status Codes:

MStatus MItCurveCV::translateBy ( const MVector vec,
MSpace::Space  space = MSpace::kObject 
)

Translates the current CV by the amount sepcified in vec.

Parameters:
[in] space the co-oordinate system for this transformation.
Returns:
Status code
Status Codes:

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

This method returns the index of the current CV in the CV array for this curve.

Parameters:
[out] ReturnStatus Status code
Returns:
The index of the current CV
Status Codes:

MObject MItCurveCV::cv ( MStatus ReturnStatus = NULL  )  const

This method is obsolete.

Deprecated:
Use the MItCurveCV::currentItem method.
This method returns the current CV as an MObject.

Parameters:
[out] ReturnStatus Status code
Returns:
A handle to the CV requested
Status Codes:

MObject MItCurveCV::currentItem ( MStatus ReturnStatus = NULL  )  const

This method returns the current CV as an MObject.

Parameters:
[out] ReturnStatus Status code
Returns:
A handle to the CV requested
Status Codes:

bool MItCurveCV::hasHistoryOnCreate ( MStatus ReturnStatus = NULL  )  const

This method determines if the shape was created with history.

If the object that this iterator is attached to is not a shape then this method will fail.

Parameters:
[out] ReturnStatus 
Returns:
Boolean value: true if shape has history, false otherwise.
Status Codes:

MStatus MItCurveCV::updateCurve (  ) 

This method is used to signal the curve that it has been changed and needs to redraw itself.

When modifying a large number of CVs, it is most efficient to call this method after all of the CVs have been modified.

  • Status code
Status Codes:


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