#include
<MPxSurfaceShapeUI.h>
List of all
members.
Detailed Description
drawing and selection for user defined shapes
The base class for the UI portion of all user defined shapes.
|
Public Types
|
enum |
UVSelectionType {
kSelectMeshUVs,
kSelectMeshVerts,
kSelectMeshFaces,
kSelectMeshEdges } |
|
Selection modes for UVs.
More...
|
Public Member Functions
|
|
MPxSurfaceShapeUI () |
virtual |
~MPxSurfaceShapeUI () |
void |
getDrawData (void *geom, MDrawData &) |
virtual void |
getDrawRequests (const MDrawInfo &, bool
objectAndActiveOnly, MDrawRequestQueue
&requests) |
virtual void |
draw (const MDrawRequest &, M3dView &view) const |
virtual bool |
select (MSelectInfo &selectInfo,
MSelectionList
&selectionList, MPointArray
&worldSpaceSelectPts) const |
virtual bool |
canDrawUV () const |
virtual void |
drawUV (M3dView
&view, const MTextureEditorDrawInfo
&) const |
virtual bool |
selectUV (M3dView
&,
UVSelectionType selType, int xmin, int ymin, int xmax, int
ymax, bool singleSelect, MSelectionList &selList)
const |
MPxSurfaceShape * |
surfaceShape () const |
MMaterial |
material (MDagPath &path) const |
Static Public Member Functions
|
static MPxSurfaceShapeUI
* |
surfaceShapeUI (const MDagPath &path, MStatus *ReturnStatus=NULL) |
Friends
|
class |
MDrawRequest |
class |
MDrawInfo |
Member Enumeration Documentation
Selection modes for UVs.
- Enumerator:
-
kSelectMeshUVs |
The UV selection type is UVs. |
kSelectMeshVerts |
The UV selection type is vertices. |
kSelectMeshFaces |
The UV selection type is faces. |
kSelectMeshEdges |
The UV selection type is edges. |
Constructor & Destructor Documentation
MPxSurfaceShapeUI::MPxSurfaceShapeUI |
( |
|
) |
|
MPxSurfaceShapeUI::~MPxSurfaceShapeUI |
( |
|
) |
[virtual] |
Member Function Documentation
void MPxSurfaceShapeUI::getDrawData |
( |
void * |
geom, |
|
|
MDrawData & |
data |
|
|
) |
|
|
|
Sets up draw data for the shape. The draw data is meant to be a
light weight class which can be used to pass geometry data through
draw requests.
- Parameters:
-
[in] |
geom |
the geometry necessary to draw the shape |
[out] |
data |
the draw data to be initialized |
This routine must be overriden if the shape is to be drawn in
the interactive display. This function places drawing requests on
maya's drawing queue and is called whenever the view is refreshed
and the shape needs to be redrawn.
- Parameters:
-
[in] |
info |
the drawing state information |
[in] |
objectAndActiveOnly |
This parameter is used to determine if draw requests for
components need to be supplied. If false, some or all components
are active and draw requests must be built for all components. |
[in] |
queue |
the drawing queue to place the draw request on |
This routine must be overriden if the shape is to be drawn in
the interactive display. Maya will call this routine with requests
that have been previously added to the drawing queue.
- Parameters:
-
[in] |
request |
the drawing request |
[in] |
view |
the interactive 3d view in which to draw |
This routine must be overriden if the shape is to support
interactive object and/or component selection. The implementation
of this method should call selectInfo.addSelection with information
about the selected item and its selection mask. For single click
selection, detected using the selectInfo.singleSection() method,
the hit point should also be passed as an argument to
selectInfo.addSelection.
- Parameters:
-
[in] |
selectInfo |
the selection state information |
[in] |
selectionList |
this list does not need to be modified, but it must be passed
into the MSelectInfo::addSelection
method |
[in] |
worldSpaceSelectPts |
this list does not need to be modified, but it must be passed
into the MSelectInfo::addSelection
method |
- Returns:
-
- true something was selected
- false nothing was selected
bool MPxSurfaceShapeUI::canDrawUV |
( |
|
) |
const [virtual] |
Called by Maya to determine if this surface shape supports UV
drawing.
- Returns:
- true if the shape supports UV drawing, false
otherwise.
This method is called when the surface shape is selected and the
texture view is open. Users should override this method if their
custom shape supports UVs.
- Parameters:
-
[in] |
view |
the texture drawing view |
[in] |
info |
the drawing parameters. |
This method is called when the user performs a selection within
the texture view. The method is called only when the surface shape
is member of the active selection list.
Maya provides the current viewport instance, the type of the
selection, the extents of the selection rectangle (in viewport
coordinates), and if the selection mode is single selection. The
API user is expected to fill the selection list and return a result
of true if 'something was selected'.
To properly use this method, you must make sure that you have a
valid component type that Maya can recognize. Selection tests can
be done using a pick buffer or by spatially determining the
selected objects.
Important Currently Maya does not know how to manipulate
custom UV components. This method only provides the facilities to
visualize what has been selected in the viewport. The API user is
responsible for implementing commands that can manipulate the
currently selected UVs.
- Parameters:
-
[in] |
view |
the texture drawing view |
[in] |
selType |
the selection type |
[in] |
xmin |
minimum x coordinate value of the selection rectangle. |
[in] |
ymin |
minimum y coordinate value of the selection rectangle. |
[in] |
xmax |
maximum x coordinate value of the selection rectangle. |
[in] |
ymax |
maximum y coordinate value of the selection rectangle. |
[in] |
singleSelect |
indicates if the user is in single selection mode. |
[in] |
selList |
the selection list to be populated. |
- Returns:
- true if something was selected, false
otherwise.
Returns the non-ui shape associated with current instance of
this class.
- Returns:
- The non ui shape object
Returns the material associated with this shape. The user must
supply a DAG path as a shape can have several materials if
instanced.
- Parameters:
-
[in] |
path |
the path for which to get the material |
- Returns:
- The material associated with this shape
This is a static method that can be used to find the
corresponding MPxSurfaceShapeUI
for the specified path. If an MPxSurfaceShapeUI
does not exist then one is created.
Important This function can only be used for custom
surface shapes and the function will return NULL if the provided
path is not a custom surface shape.
- Parameters:
-
[in] |
path |
The full path to a surface shape, including the shape. |
[out] |
ReturnStatus |
The return status.
- MS::kSuccess The
method was successful.
- MS::kInvalidObjectType The specified object is not a
custom surface shape.
|
- Returns:
- The pointer to an MPxSurfaceShapeUI
instance.