#include
<MPxGeometryIterator.h>
List of all
members.
Detailed Description
Base class for user defined geometry iterators.
This is the base class for user defined geometry iterators.
Geometry iterator allow iterating over components in geometry in a
geometry independent manner. This base class defines the interface
to be used by maya when a generic component iteration is
required.
This class is used in conjunction with MPxSurfaceShape to
provide an iterator for components in a user defined shape. Also
this method can is used by
MPxGeometryData to provide an iterator over geometry that is
passed through DG connections.
The main methods to override in this class are point and
setPoint. The reset, isDone, and next methods have a default
implementation and should only be overridden if the component being
iterator on is not a single indexed component type.
The iterator works in two modes, over components or over all
elements in some geometry. If the components passed into the
constructors are null or empty then the iteration is meant to be
over the entire object.
Constructor & Destructor Documentation
MPxGeometryIterator::MPxGeometryIterator |
( |
void * |
userGeometry, |
|
|
MObjectArray & |
components |
|
|
) |
|
|
|
Class constructor.
The components can be NULL if the iteration is to be over all
elements in the geometry.
- Parameters:
-
[in] |
userGeometry |
the geometry that will be iterated over |
[in] |
components |
the (optional) list of components to iterate over |
MPxGeometryIterator::MPxGeometryIterator |
( |
void * |
userGeometry, |
|
|
MObject & |
components |
|
|
) |
|
|
|
Class constructor.
The components can be NULL if the iteration is to be over all
elements in the geometry.
- Parameters:
-
[in] |
userGeometry |
the geometry that will be iterated over |
[in] |
components |
the (optional) components to iterate over |
MPxGeometryIterator::~MPxGeometryIterator |
( |
|
) |
[virtual] |
Member Function Documentation
bool MPxGeometryIterator::isDone |
( |
|
) |
const [virtual] |
Indicates if all the items have been traversed yet.
- Returns:
-
- true the iterator has no more elements to traverse
- false the iterator is not finished traversing
void MPxGeometryIterator::next |
( |
|
) |
[virtual] |
Advances to the next component.
void MPxGeometryIterator::reset |
( |
|
) |
[virtual] |
Resets the iterator to the start of the components so that
another pass over them may be made.
void MPxGeometryIterator::component |
( |
MObject & |
component |
) |
[virtual] |
Returns a component for the current item in the iteration.
- Parameters:
-
[out] |
component |
storage for the returned component |
bool MPxGeometryIterator::hasPoints |
( |
|
) |
const [virtual] |
Indicates whether the underlying geometry has point data.
- Returns:
-
- true the geometry has point data
- false the geometry does not have point data
int MPxGeometryIterator::iteratorCount |
( |
|
) |
const [virtual] |
Returns an estimate of how many items will be iterated over.
- Returns:
- The iterator count
MPoint MPxGeometryIterator::point |
( |
|
) |
const [virtual] |
Returns the current component's positional data.
- Returns:
- The current point being iterated over
void MPxGeometryIterator::setPoint |
( |
const MPoint & |
point |
) |
const [virtual] |
Sets the current component's positional data.
- Parameters:
-
[in] |
point |
the new positional value to set |
int MPxGeometryIterator::setPointGetNext |
( |
MPoint & |
point |
) |
[virtual] |
Sets the current component's positional data, gets the next
point.
- Parameters:
-
[in] |
point |
the positional value to set |
- Returns:
- The next index value
int MPxGeometryIterator::index |
( |
|
) |
const [virtual] |
Returns a unique index for the current item in the iteration. If
the iteration is over the whole geometry then this index is the
same as current point. If the iteration is over some elements of
the geometry specified by a component then this index is the index
in your geometry.
- Returns:
- The index of the current element
bool MPxGeometryIterator::hasNormals |
( |
|
) |
const [virtual] |
Indicates whether the underlying geometry has normals.
- Returns:
-
- true this geometry has normals
- false this geometry has no normals
int MPxGeometryIterator::indexUnsimplified |
( |
|
) |
const [virtual] |
Returns a unique index for the current item in the iteration
Rather than being the iterator index this is the index for the
actual item when simplification is skipping items. This index will
be equal to
index() if no simplification, otherwise it will be larger.
- Returns:
- The unsimplified index
int MPxGeometryIterator::currentPoint |
( |
|
) |
const |
Returns the index that is being iterated on. This value is used
when iterating over all elements of your geometry, i.e. when there
are no components specified.
- Returns:
- The current point index
void MPxGeometryIterator::setCurrentPoint |
( |
int |
index |
) |
|
Set the current index of the iteration. This value is used when
iterating over all elements of your geometry, i.e. when there are
no components specified.
- Parameters:
-
[in] |
index |
the current point in the iteration |
int MPxGeometryIterator::maxPoints |
( |
|
) |
const |
Returns the largest index that will be iterated over. This value
is used when iterating over all elements of your geometry, i.e.
when there are no components specified.
- Returns:
- The max index
void MPxGeometryIterator::setMaxPoints |
( |
int |
index |
) |
|
Sets the largest index that will be iterated over. This value is
used when iterating over all elements of your geometry, i.e. when
there are no components specified.
- Parameters:
-
[in] |
index |
the maximum index value |
Optional method to set a shape object to iterate over to allow
tweaking of the shape's history (input geometry).
- Parameters:
-
[in] |
shape |
a user defined shape object |
void * MPxGeometryIterator::geometry |
( |
|
) |
const |
Returns a pointer to the geometry that this iterator is
iterating over.