#include
<MPolyMessage.h>
List of all
members.
Detailed Description
Polygon component id change messages.
This class is used to register callbacks for poly component id
modification messages.
There is 1 add callback method which will add callbacks for the
following messages:
- vertex component id modified
- edge component id modified
- face component id modified
To remove a callback use
MMessage::removeCallback.
All callbacks that are registered by a plug-in must be removed by
that plug-in when it is unloaded. Failure to do so will result in a
fatal error.
|
Public Types
|
enum |
{
kVertexIndex = 0,
kEdgeIndex = 1,
kFaceIndex = 2,
kLastErrorIndex = 3 } |
Static Public Member Functions
|
static MCallbackId |
addPolyComponentIdChangedCallback
(MObject &node,
bool wantIdModifications[], unsigned int count, MMessage::MComponentFunction
func, void *clientData=NULL, MStatus *ReturnStatus=NULL) |
static MCallbackId |
addPolyTopologyChangedCallback
(MObject &node,
MMessage::MNodeFunction
func, void *clientData=NULL, MStatus *ReturnStatus=NULL) |
static unsigned int |
deletedId
(void) |
Member Enumeration Documentation
Values passed in addPolyComponentIdChangeCallback's
"wantIdModifications" array to indicate which component id changes
should trigger the callback.
- Enumerator:
-
kVertexIndex |
vertex component id changed |
kEdgeIndex |
edge component id changed |
kFaceIndex |
face component id changed |
kLastErrorIndex |
|
Member Function Documentation
MCallbackId
MPolyMessage::addPolyComponentIdChangedCallback |
( |
MObject & |
node, |
|
|
bool |
wantIdModifications[], |
|
|
unsigned int |
count, |
|
|
MMessage::MComponentFunction |
func, |
|
|
void * |
clientData = NULL , |
|
|
MStatus * |
ReturnStatus =
NULL |
|
|
) |
|
|
[static] |
This method registers a callback that should be called whenever
a poly component id is modified.
Currently, there are some cases where the component ids for a
polygonal mesh can be modified without generating a callback or
without generating a correct mapping. These cases are outlined
below.
- Polygonal mesh has construction history enabled, and there is
more than one topology changing operation in the history. In this
case, the callback is only called when the component ID mapping
changes for the most recent operation, and performs the mapping
with respect to the input and output meshes for this operation
node.
- Polygonal mesh has construction history enabled, and the most
recent topology changing operation is no longer the most recent
operation. In this case, no id remapping callbacks will be invoked
when the attributes on the operation node are changed in the
history.
- When undo is used to revert a topology changing operation, the
callback will not be invoked. The MEventMessage class can be used to get
notification when undo is performed.
Component id mapping should always work correctly when construction
history is off. It should also work correctly when construction
history is on and only the most recent operation is permitted to be
adjusted (eg. changing the distance parameter for a merge vertex
node, when merge vertices was the most recent operation.) In either
case, undo will not produce a poly message callback.
- Parameters:
-
[in] |
node |
the node callback function should listen to |
[in] |
wantIdModifications |
array of booleans specifying what arrays should be provided to
the callback function when it is invoked. The entries in this array
are kVertexIndex, kEdgeIndex, kFaceIndex for receiving vertex,
edge, and face data in the callback respectively. |
[in] |
count |
the size of the array wantIdModifications |
[in] |
func |
the callback function |
- componentIds an array of component id mappings
- count the size of the array componentIds
- clientData User defined data passed to the callback
function
- Parameters:
-
[in] |
clientData |
User defined data passed to the callback function |
[out] |
ReturnStatus |
status code |
- Returns:
- Identifier used for removing the callback.
- Status Codes:
-
This method registers a callback that will be called when a node
impacting the topology of a meshShape is modified. Because the
callback is invoked before the mesh has evaluated, the new topology
data cannot be queried at the time the callback is received. If you
want to receive a callback at a time when the new mesh data can be
queried, use the following technique:
- Use this method to register a topology-changed callback.
- In the topology-changed callback, add an MNodeMessage::addAttributeChangedCallback
on the mesh shape.
- In the attribute-changed callback, check the inputs for an
MNodeMessage::kAttributeEval
message received by the "outMesh" plug of the mesh.
- Once you have received the eval message on that plug, the
attribute-changed callback can be removed and the mesh topology can
be queried.
- Parameters:
-
[in] |
node |
the node the callback function should listen to |
[in] |
func |
the callback function |
- node the node whose topolgy has changed
- Parameters:
-
[in] |
clientData |
User defined data passed to the callback function |
[out] |
ReturnStatus |
status code |
- Returns:
- Identifier used for removing the callback.
- Status Codes:
-
unsigned int MPolyMessage::deletedId |
( |
void |
|
) |
[static] |
This method returns a constant which is to be used to determine
if a component id has been deleted. Compare component ids returned
by the callback with the value return by this method. If they are
the same then, the component id has been deleted.
- Returns:
- Value of a deleted component id.