Public Member Functions | Static Public Member Functions

MDrawRequest Class Reference

This reference page is linked to from the following overview topics: 描画とリフレッシュ, ハードウェア シェーディング ノード プラグインの概要.


Search for all occurrences

Detailed Description

A draw reqeust used in the draw methods of MPxSurfaceShapeUI.

This class encapsulates all the information needed to fulfill a request to draw an object or part of an object. This class is used by the draw methods of MPxSurfaceShapeUI derived objects.

The draw request should be created in the overridden MPxSurfaceShapeUI::getDrawRequests method. Once created the appropriate "set" methods of this class should be used to define what is being requested. Then the request should be placed on the draw reqeust queue using MDrawRequestQueue::add.

When your request gets processed by maya, your overriden MPxSurfaceShape::draw method will get called with your request. Use the query methods of this class to determine what to draw.

You create a draw request using the method MDrawInfo::getPrototype. A draw request automatically picks up certain information (listed below) upon its creation. So you don't have to set any of this information unless you want to change it.

Information automatically set by MDrawInfo::getPrototype :

The draw token is an integer value which you can use to specify what is to be drawn. This is object specific and so you should define an enum with the information you require to decide what is being drawn in your MPxSurfaceShapeUI::draw method.

Here is an example of draw token values for a polygonal mesh object as defined in an MPxSurfaceShapeUI derived class.

    // Draw Tokens
    //
    enum {
        kDrawVertices, // component token
        kDrawWireframe,
        kDrawWireframeOnShaded,
        kDrawSmoothShaded,
        kDrawFlatShaded,
        kLastToken
    };
Examples:

apiMeshShapeUI.cpp, apiMeshShapeUI.h, apiSimpleShapeUI.cpp, apiSimpleShapeUI.h, blindDataShader.cpp, blindDataShader.h, hwAnisotropicShader_NV20.cpp, hwAnisotropicShader_NV20.h, hwColorPerVertexShader.cpp, hwDecalBumpShader_NV20.cpp, hwDecalBumpShader_NV20.h, hwPhongShader.cpp, hwPhongShader.h, hwReflectBumpShader_NV20.cpp, hwReflectBumpShader_NV20.h, hwRefractReflectShader_NV20.cpp, hwRefractReflectShader_NV20.h, hwToonShader_NV20.cpp, hwToonShader_NV20.h, hwUnlitShader.cpp, hwUnlitShader.h, pnTrianglesNode.cpp, pnTrianglesNode.h, and quadricShape.cpp.

#include <MDrawRequest.h>

List of all members.

Public Member Functions

  MDrawRequest ()
  Constructor.
  MDrawRequest (const MDrawRequest &in)
  Copy constructor.
  ~MDrawRequest ()
  Destructor.
M3dView  view () const
  Returns the view where drawing will be done.
void  setView (M3dView &)
  Sets the view where drawing will be done.
const MDagPath  multiPath () const
  Returns the path to the object to be drawn.
void  setMultiPath (const MDagPath &)
  Sets the path to the object to be drawn.
MObject  component () const
  An optional component.
void  setComponent (MObject &)
  Set a component to be drawn.
MDrawData  drawData () const
  Returns the object specific draw data.
void  setDrawData (MDrawData &)
  Set the object specific draw data.
M3dView::DisplayStatus  displayStatus () const
  Return the state of object (active, dormant, etc.).
void  setDisplayStatus (M3dView::DisplayStatus)
  Set the state of object (active, dormant, etc.).
bool  displayCulling () const
  Returns the state of the culling flag for the object.
void  setDisplayCulling (bool)
  Sets the state of the culling flag for the object.
bool  displayCullOpposite () const
  Returns the state of the culling flag for the object.
void  setDisplayCullOpposite (bool)
  Sets the state of the culling flag for the object.
M3dView::DisplayStyle  displayStyle () const
  Returns how the object should be drawn (wireframe, shaded, etc.).
void  setDisplayStyle (M3dView::DisplayStyle)
  Sets how the object should be drawn (wireframe, shaded, etc.).
int  color (M3dView::ColorTable table) const
  Returns the wireframe display color.
void  setColor (int, M3dView::ColorTable table)
  Sets the wireframe display color.
MMaterial  material () const
  Returns the shaded material.
void  setMaterial (MMaterial &)
  Returns the shaded material.
bool  isTransparent () const
  Returns the transparency state of the object.
void  setIsTransparent (bool)
  Sets the transparency state of the object.
bool  drawLast () const
  Returns the order in which this object will be drawn.
void  setDrawLast (bool)
  Specifies the order in which this object will be drawn.
int  token () const
  Returns the user-defined draw token for this request.
void  setToken (int)
  Set the user-defined draw token for this request.
const MMatrix matrix () const
  Returns the draw matrix.
void  setMatrix (const MMatrix &)
  Set the draw matrix.
MDrawRequest operator= (const MDrawRequest &other)
  Assignment operator.

Static Public Member Functions

static const char *  className ()
  Returns the name of this class.

Constructor & Destructor Documentation

MDrawRequest ( const MDrawRequest other )

Copy constructor.

Parameters:
[in] other value to copy

Member Function Documentation

MObject component ( ) const

An optional component.

If set draw the components that are specified, otherwise draw all components of this type for the object.

Examples:
apiMeshShapeUI.cpp, and apiSimpleShapeUI.cpp.
void setComponent ( MObject comp )

Set a component to be drawn.

Parameters:
[in] comp component to be drawn
Examples:
apiMeshShapeUI.cpp, and apiSimpleShapeUI.cpp.
void setDrawData ( MDrawData data )

Set the object specific draw data.

Parameters:
[in] data draw data
Examples:
apiMeshShapeUI.cpp, apiSimpleShapeUI.cpp, and quadricShape.cpp.
void setDisplayStatus ( M3dView::DisplayStatus  status )

Set the state of object (active, dormant, etc.).

Parameters:
[in] status display status
void setDisplayCulling ( bool  value )

Sets the state of the culling flag for the object.

Parameters:
[in] value culling value to be set
void setDisplayCullOpposite ( bool  value )

Sets the state of the culling flag for the object.

Parameters:
[in] value culling value to be set
void setDisplayStyle ( M3dView::DisplayStyle  style )

Sets how the object should be drawn (wireframe, shaded, etc.).

Parameters:
[in] style display style to set
Examples:
apiMeshShapeUI.cpp, apiSimpleShapeUI.cpp, and quadricShape.cpp.
int color ( M3dView::ColorTable  table ) const

Returns the wireframe display color.

The color table specifies which of the 4 color planes to use. This table can be active, dormant, template, or background.

Parameters:
[in] table color table
void setColor ( int  value,
M3dView::ColorTable  table 
)

Sets the wireframe display color.

The color table specifies which of the 4 color planes to use. This table can be active, dormant, template, or background.

Parameters:
[in] value index into the color table
[in] table color table
Examples:
apiMeshShapeUI.cpp, apiSimpleShapeUI.cpp, and quadricShape.cpp.
void setMaterial ( MMaterial material )

Returns the shaded material.

Parameters:
[in] material the material to set
Examples:
apiMeshShapeUI.cpp, apiSimpleShapeUI.cpp, and quadricShape.cpp.
void setIsTransparent ( bool  value )

Sets the transparency state of the object.

Parameters:
[in] value the transparency value
Examples:
apiMeshShapeUI.cpp, apiSimpleShapeUI.cpp, and quadricShape.cpp.
void setDrawLast ( bool  value )

Specifies the order in which this object will be drawn.

Parameters:
[in] value draw last flag
int token ( ) const

Returns the user-defined draw token for this request.

The token is used to identify a particular part of an object to draw. It is also used to distinguish draw requests generated by derived UI objects from those generated by base classes. It some cases, it provides a way of indicating that a component should be displayed without creating a component MObject.

Examples:
apiMeshShapeUI.cpp, apiSimpleShapeUI.cpp, and quadricShape.cpp.
void setToken ( int  value )

Set the user-defined draw token for this request.

The token is used to identify a particular part of an object to draw. It is also used to distinguish draw requests generated by derived UI objects from those generated by base classes. It some cases, it provides a way of indicating that a component should be displayed without creating a component MObject.

Examples:
apiMeshShapeUI.cpp, apiSimpleShapeUI.cpp, and quadricShape.cpp.
const MMatrix & matrix ( ) const

Returns the draw matrix.

This is typically the world matrix of the object, filled in by MDrawInfo::getPrototype(). Commonly this will be equal to multiPath().inclusiveMatrix() but in some circumstances will be a modified matrix, for example, when animation ghosts are being drawn.

Returns:
The matrix associated with this draw request.
void setMatrix ( const MMatrix value )

Set the draw matrix.

Parameters:
[in] value The matrix to set.
MDrawRequest & operator= ( const MDrawRequest other )

Assignment operator.

Parameters:
[in] other MDrawRequest object to copy from.
const char * className ( ) [static]

Returns the name of this class.

Returns:
Name of this class.

MDrawRequest MDrawRequest MDrawRequest MDrawRequest MDrawRequest MDrawRequest MDrawRequest MDrawRequest MDrawRequest MDrawRequest
MDrawRequest MDrawRequest MDrawRequest MDrawRequest MDrawRequest MDrawRequest MDrawRequest MDrawRequest MDrawRequest MDrawRequest