MPx3dModelView Class Reference
[OpenMayaUI - API module for user interfaceProxy classes]

#include <MPx3dModelView.h>

List of all members.


Detailed Description

3d Model View

MPx3dModelView is the class for user defined model views. The MPx3dModelView class works with the MPxModelEditorCommand class to create a user defined model editor that may be used in a window or in a scripted panel. When registering the model editor with the MFnPlugin::registerModelEditorCommand() method, an appropriate MPx3dModelView::creator() method is required. This class works for interactive Maya views and is not designed for rendering.

One of the interesting uses of a MPx3dModelView is that it allows multiple cameras to be drawn into the same window. Like a normal model view, this view has a main camera associated with it. This camera is obtained with the getCamera() method and is the camera used for manipulations and selection.

To setup a multiple camera draw, first the number of passes must be set by an overloaded multipleDrawPassCount() method. The preMultipleDraw() method allows any setup to be performed. The preMultipleDrawPass(unsigned int) is called for each pass, with the argument indicating which pass is currently being used. The camera for the specific pass may be set with the setCameraInDraw() method. The postMultipleDrawPass(unsigned int) method is called after the drawing for the indicated pass is complete. Finally any cleanup may be done with the postMultipleDraw() method.

During the drawing, a filter exists to determine which items should be drawn. The okForMultipleDraw(MdagPath &) allows filtering of what should be drawn. Another approach which is faster is to tuen on the view selected mode (setViewSelected()) and use the setObjectsToView() or viewSelectedSet() to specify which items should be drawn. These values may be set per pass so that each camera has control over what gets drawn.

Examples:

narrowPolyViewer.cpp, narrowPolyViewer.h, narrowPolyViewerCmd.cpp, and narrowPolyViewerCmd.h.


Public Types

enum  LightingMode {
  kLightAll, kLightSelected, kLightActive, kLightDefault,
  kLightNone, kLightQuality
}
 Lighting mode used in this view. More...
enum  FogSource { kFogFragment, kFogCoordinate }
 Fog computation modes. More...
enum  FogMode { kFogLinear, kFogExponential, kFogExponentialSquared }
 Drop-off modes for fog. More...

Public Member Functions

 MPx3dModelView ()
virtual ~MPx3dModelView ()
MString name (MStatus *ReturnStatus=NULL) const
virtual MString viewType () const
virtual void preMultipleDraw ()
virtual void postMultipleDraw ()
virtual void preMultipleDrawPass (unsigned int index)
virtual void postMultipleDrawPass (unsigned int index)
virtual bool okForMultipleDraw (const MDagPath &)
virtual unsigned int multipleDrawPassCount ()
bool multipleDrawEnabled () const
void setMultipleDrawEnable (bool enable)
bool destroyOnPanelDestruction () const
void setDestroyOnPanelDestruction (bool how)
MStatus updateViewingParameters ()
virtual void removingCamera (MDagPath &cameraPath)
MStatus setDoUpdateOnMove (bool value)
bool doUpdateOnMove (MStatus *ReturnStatus=NULL) const
MStatus refresh (bool all=false, bool force=false)
MStatus drawText (const MString &text, const MPoint position, M3dView::TextPosition textPosition=M3dView::kLeft)
MStatus beginGL ()
MStatus endGL ()
MStatus setCameraInDraw (MDagPath &camera)
MStatus setCamera (MDagPath &camera)
MStatus getCamera (MDagPath &camera)
virtual MString getCameraHUDName ()
MStatus setDisplayHUD (bool display)
bool displayHUD (MStatus *ReturnStatus=NULL) const
MStatus drawHUDNow ()
MStatus setDrawAdornments (bool display)
bool drawAdornments (MStatus *ReturnStatus=NULL)
MStatus drawAdornmentsNow ()
MStatus setDisplayAxis (bool display)
bool displayAxisOn (MStatus *ReturnStatus=NULL) const
MStatus setDisplayAxisAtOrigin (bool display)
bool displayAxisAtOriginOn (MStatus *ReturnStatus=NULL) const
MStatus setDisplayCameraAnnotation (bool display)
bool displayCameraAnnotationOn (MStatus *ReturnStatus=NULL) const
bool isVisible (MStatus *ReturnStatus=NULL) const
M3dView::DisplayStyle displayStyle (MStatus *ReturnStatus=NULL) const
bool isShadeActiveOnly (MStatus *ReturnStatus=NULL) const
MStatus setDisplayStyle (M3dView::DisplayStyle style, bool activeOnly=false)
int portWidth (MStatus *ReturnStatus=NULL)
int portHeight (MStatus *ReturnStatus=NULL)
MStatus beginOverlayDrawing ()
MStatus endOverlayDrawing ()
MStatus clearOverlayPlane ()
MStatus setDrawColor (unsigned int index, M3dView::ColorTable table=M3dView::kActiveColors)
 //!//!//!//!//!/
MStatus setDrawColor (const MColor &color)
bool isColorIndexMode (MStatus *ReturnStatus=NULL)
MStatus setColorIndexMode (bool state)
unsigned int numDormantColors (MStatus *ReturnStatus=NULL)
unsigned int numActiveColors (MStatus *ReturnStatus=NULL)
unsigned int numUserDefinedColors (MStatus *ReturnStatus=NULL)
MStatus setUserDefinedColor (unsigned int index, const MColor &color)
unsigned int userDefinedColorIndex (unsigned int index, MStatus *ReturnStatus=NULL)
MColor templateColor (MStatus *ReturnStatus=NULL)
MColor backgroundColor (MStatus *ReturnStatus=NULL)
MColor colorAtIndex (unsigned int index, M3dView::ColorTable table=M3dView::kActiveColors, MStatus *ReturnStatus=NULL)
MStatus getColorIndexAndTable (unsigned int glindex, unsigned int &index, M3dView::ColorTable &table) const
MStatus viewToWorld (short x_pos, short y_pos, MPoint &worldPt, MVector &worldVector) const
MStatus viewToWorld (short x_pos, short y_pos, MPoint &nearClipPt, MPoint &farClipPt) const
MStatus viewToObjectSpace (short x_pos, short y_pos, const MMatrix &localMatrixInverse, MPoint &oPt, MVector &oVector) const
bool worldToView (const MPoint &worldPt, short &x_pos, short &y_pos, MStatus *ReturnStatus=NULL) const
MStatus setObjectDisplay (M3dView::DisplayObjects, bool)
bool objectDisplay (M3dView::DisplayObjects, MStatus *ReturnStatus=NULL)
MStatus setBackfaceCulling (bool cull)
bool isBackfaceCulling (MStatus *ReturnStatus=NULL) const
MStatus setWireframeOnShaded (bool on)
bool isWireframeOnShaded (MStatus *ReturnStatus=NULL) const
MStatus setXrayEnabled (bool xray)
bool isXrayEnabled (MStatus *ReturnStatus=NULL) const
MStatus setTextureDisplayEnabled (bool texture)
bool isTextureDisplayEnabled (MStatus *ReturnStatus=NULL) const
MStatus setTwoSidedLighting (bool twoSided)
bool isTwoSidedLighting (MStatus *ReturnStatus=NULL) const
MStatus setLightingMode (MPx3dModelView::LightingMode)
MPx3dModelView::LightingMode lightingMode (MStatus *ReturnStatus=NULL) const
MStatus setFogEnabled (bool state)
bool isFogEnabled (MStatus *ReturnStatus=NULL) const
MPx3dModelView::FogSource fogSource (MStatus *ReturnStatus=NULL) const
MStatus setFogSource (MPx3dModelView::FogSource)
MPx3dModelView::FogMode fogMode (MStatus *ReturnStatus=NULL) const
MStatus setFogMode (MPx3dModelView::FogMode)
double fogDensity (MStatus *ReturnStatus=NULL) const
MStatus setFogDensity (double)
double fogStart (MStatus *ReturnStatus=NULL) const
MStatus setFogStart (double)
double fogEnd (MStatus *ReturnStatus=NULL) const
MStatus setFogEnd (double)
MColor fogColor (MStatus *ReturnStatus=NULL) const
MStatus setFogColor (const MColor &)
bool isBackgroundFogEnabled (MStatus *ReturnStatus=NULL) const
MStatus setBackgroundFogEnabled (bool enable)
MString viewSelectedPrefix (MStatus *ReturnStatus) const
MStatus setViewSelectedPrefix (const MString &prefix)
bool viewSelected (MStatus *ReturnStatus=NULL) const
MStatus setViewSelected (bool viewSelected)
MObject viewSelectedSet (MStatus *ReturnStatus=NULL) const
MStatus setViewSelectedSet (MObject &set)
MStatus getObjectsToView (MSelectionList &list) const
MStatus setObjectsToView (const MSelectionList &list)
bool hasStereoBufferSupport () const
MStatus getAsM3dView (M3dView &view)
virtual bool wantStereoGLBuffer () const
MStatus setInStereoDrawMode (bool flag)

Static Public Member Functions

static MPx3dModelViewgetModelView (const MString &name, MStatus *ReturnStatus=NULL)

Member Enumeration Documentation

Lighting mode used in this view.

Enumerator:
kLightAll  Use all lights.
kLightSelected  Selected lights only.
kLightActive  Active lights only.
kLightDefault  Default light only.
kLightNone  Use no lights.
kLightQuality  Use per pixel lighting.

Fog computation modes.

Enumerator:
kFogFragment  Computed per pixel (default).
kFogCoordinate  Computed by specified vertex fog coordinates.

Drop-off modes for fog.

Enumerator:
kFogLinear  Linear drop off.
kFogExponential  Exponential drop-off.
kFogExponentialSquared  Squared exponential drop-off.


Constructor & Destructor Documentation

MPx3dModelView::MPx3dModelView (  ) 

class constructor

MPx3dModelView::~MPx3dModelView (  )  [virtual]

class destructor


Member Function Documentation

MString MPx3dModelView::name ( MStatus ReturnStatus = NULL  )  const

Returns the name of the view.

Parameters:
[out] ReturnStatus status
Returns:
The name of the view.
Status Codes:

MString MPx3dModelView::viewType (  )  const [virtual]

Returns a string specifying the view type. The view type should be a different string for every class derived from MPx3dModelView. The default type is "MPx3dModelView".

Returns:
The view type
Examples:

void MPx3dModelView::preMultipleDraw (  )  [virtual]

This method is called before any drawing is performed in the model view. It should control any setting required for every pass that will be drawn.

Examples:

void MPx3dModelView::postMultipleDraw (  )  [virtual]

This method is called after the drawing is finished. Any cleanup should be done by this method.

Examples:

void MPx3dModelView::preMultipleDrawPass ( unsigned int  index  )  [virtual]

This method is called immediately before a specific pass is about to be drawn. The unsigned int argument indictates which pass is about to be drawn.

Typically the camera (set with the setCameraInDraw method) and any pass specific settings would be made here.

Parameters:
[in] index A number indicating which pass is about to be drawn.
Examples:

void MPx3dModelView::postMultipleDrawPass ( unsigned int  index  )  [virtual]

This method is called when a specified pass is finshed.

Parameters:
[in] index A number indicating which pass was just drawn.
Examples:

bool MPx3dModelView::okForMultipleDraw ( const MDagPath dp  )  [virtual]

This method provides some filter capabilities as to what is drawn. When ever a draw operation during the multiple camera drawing, this method will get called. If true is returned, then the object will be drawn.

This method is useful for filtering out multiple occurances of manipulators and ground planes.

To reduce the number of objects queried, look at the setViewSelected() method along with the setObjectsToView() method.

Parameters:
[in] dp A MDagPath of the object that may be drawn.
Returns:
true if it is OK to draw the passed object.
Examples:

unsigned int MPx3dModelView::multipleDrawPassCount (  )  [virtual]

This method returns the number of multiple draw passes that are going to be made. By default a 1 is returned.

Returns:
The number of multiple draw passes that will be made.
Status Codes:
Examples:

bool MPx3dModelView::multipleDrawEnabled (  )  const

This method returns the multiple draw enable state for this view.

Returns:
true if multiple draw is enabled.

void MPx3dModelView::setMultipleDrawEnable ( bool  enable  ) 

This method turns enables/disables multiple camera drawing for this view. If multiple draw is disabled, then this view will behave like a normal Maya view.

Parameters:
[in] enable If true, then multiple draw is enabled.

bool MPx3dModelView::destroyOnPanelDestruction (  )  const

This method queries the destruction setting for this MPx3dModelView which is employed when the panel associated with this view is destroyed.

By choosing to have the MPx3dModelView destroyed along with the panel, you are guaranteed that a new MPx3dModelView will be created the next time the editor is displayed.

Returns:
true if this MPx3dModelView gets destroyed when its panel is destroyed (such as closing a torn-off window), and false if it is not to be destroyed.

void MPx3dModelView::setDestroyOnPanelDestruction ( bool  how  ) 

This method enables/disables destruction of the MPx3dModelView object when the panel is destroyed. By default, Maya does not destroy the MPx3dModelView when the panel is destroyed. Example cases of destroying a panel are when you tear off a panel, or close a torn-off panel.

By choosing to have the MPx3dModelView destroyed along with the panel, you are guaranteed that a new MPx3dModelView will be created the next time the editor is displayed.

Parameters:
[in] how If true, destroy the MPx3dModelView when the panel is destroyed. If false (the default behaviour), the editor is retained.

MStatus MPx3dModelView::updateViewingParameters (  ) 

This method tells the camera to set the view's transformation matrix.

Returns:
Status code

void MPx3dModelView::removingCamera ( MDagPath cameraPath  )  [virtual]

This method should be overloaded in MPx3dModelView derived classes. It will get called whenever a camera that was used with this MPx3dModelView is deleted. The MPx3dModelView should then remove any reference to the deleted camera.

Parameters:
[in] cameraPath The MDagPath for the camera that is about to be deleted.
Examples:

MStatus MPx3dModelView::setDoUpdateOnMove ( bool  value  ) 

Some viewports require a refresh when the user has moved the top level window. This flag enables this custom view to trigger a refresh event when the top level window of the view is moved to a new location.

The default value for this flag is false.

Parameters:
[in] value The state of the doUpdateOnMove flag.
Returns:
  • Status code
Status Codes:

bool MPx3dModelView::doUpdateOnMove ( MStatus ReturnStatus = NULL  )  const

Returns the state of the doUpdateOnMove flag. This flag tells the refresh architecture if it is necessary to refresh your view when the user moves the control window for this viewport. If this flag is true, then refresh will be triggered on window move.

Parameters:
[in] ReturnStatus return status of the check
Returns:
  • the state of the doUpdateOnMove flag
Status Codes:

MStatus MPx3dModelView::refresh ( bool  all = false,
bool  force = false 
)

Refresh the this view. If all is set to true then all of the 3d-view will be refreshed.

If force is set to true, then the views will be refreshed even if they do not require it. This option should be used with extreme care because extra refreshes will greatly degrade application performance. In almost all cases it is better to use the default behavior where the view is only refreshed if it is required.

Parameters:
[in] all If true then refresh all views, otherwise refresh this view.
[in] force If true then force views to refresh even if they do not require it.
Returns:
Status code
Status Codes:

MStatus MPx3dModelView::drawText ( const MString text,
const MPoint  position,
M3dView::TextPosition  textPosition = M3dView::kLeft 
)

Draws the given text at the given spot in the default font. This method is provided as a convienient way to draw OpenGL text.

Parameters:
[in] text Text to draw
[in] position Position in space to draw at
[in] textPosition Text position relative to the point
Returns:
Status code
Status Codes:

MStatus MPx3dModelView::beginGL (  ) 

Setup port for native OpenGL drawing calls. Only make openGL calls between the beginGL() and endGL() methods. M3dView and MPx3dModelView calls should not be made betwen beginGL() and endGL() calls.

This should only be used if there is not a M3dView or MPx3dModelView method that performs the required task.

Returns:
Status code
Status Codes:

MStatus MPx3dModelView::endGL (  ) 

End OpenGL drawing.

Returns:
Status code
Status Codes:

MStatus MPx3dModelView::setCameraInDraw ( MDagPath camera  ) 

Sets the camera during a draw. If the normal setCamera() method is used, then that camera will not get its parameters loaded during the draw.

Parameters:
[in] camera Dag path of the camera
Returns:
Status code
Status Codes:

MStatus MPx3dModelView::setCamera ( MDagPath camera  ) 

Set the camera for this view.

Parameters:
[in] camera Dag path of the camera for this view
Returns:
Status code
Status Codes:

MStatus MPx3dModelView::getCamera ( MDagPath camera  ) 

Get the camera for this view.

Parameters:
[out] camera Dag path for the camera (allocated by caller)
Returns:
Status code
Status Codes:

MString MPx3dModelView::getCameraHUDName (  )  [virtual]

Return the name to use for the camera in the heads up display.

Returns:
The name of the camera
Examples:

MStatus MPx3dModelView::setDisplayHUD ( bool  enable  ) 

Enables or disables the drawing the heads up display in this view. This method only affects this view and will stop all heads up display elements from being drawn in this view.

Parameters:
[in] enable The enable state of the heads up display in this view.
Returns:
Status
Status Codes:

bool MPx3dModelView::displayHUD ( MStatus ReturnStatus = NULL  )  const

Returns the heads up display state for this view.

Parameters:
[out] ReturnStatus the return status
Returns:
The enable state for the HUD
Status Codes:

MStatus MPx3dModelView::drawHUDNow (  ) 

Forces the HUD viewport elements to be drawn immediately. This should only be called when setDrawAdornments has been set to false. And this method should only be called in the postMultiple* draw methods. This allows the drawing of display elements during a specific pass while attached to a specific camera.

Returns:

MStatus MPx3dModelView::setDrawAdornments ( bool  display  ) 

Toggles the control of how adornments are drawn in the view. Adornments are objects that are drawn in the viewport that are not scene entities. This includes the origin axis and the camera decorations like film gate and resolution gate. These items are usually drawn last and outside of the multiple refresh loop. You can choose to disable the drawing of the adornments by specifying false here, and you can control the drawing of the feature within their display loop calling displayAdornmentsNow() method on this class. By default this flag is true; so adornments are always drawn unless explicitly disabled by you.

Parameters:
[in] display toggle to control the display of the adornments.
Returns:
Status code
Status Codes:

bool MPx3dModelView::drawAdornments ( MStatus ReturnStatus = NULL  ) 

Returns the state of the adornment drawing for this view. See setDrawAdornments for more information on adornment drawing.

Parameters:
[out] ReturnStatus Status code.

MStatus MPx3dModelView::drawAdornmentsNow (  ) 

Forces the adornment viewport elements to be drawn immediately. This should only be called when setDrawAdornments has been set to false. And this method should only be called in the postMultiple* draw methods. This allows you to draw camera adornments during a specific pass while attached to a specific camera.

Returns:

MStatus MPx3dModelView::setDisplayAxis ( bool  enable  ) 

Sets the axis display in the MPx3dModelView.

Parameters:
[in] enable If true, then the axis is displayed.
Returns:
Return status
Status Codes:

bool MPx3dModelView::displayAxisOn ( MStatus ReturnStatus = NULL  )  const

Returns the axis display state for this MPx3dModelView.

Parameters:
[out] ReturnStatus The return status.
Returns:
true if the axis is displayed.
Status Codes:

MStatus MPx3dModelView::setDisplayAxisAtOrigin ( bool  enable  ) 

Sets the origin axis display in the MPx3dModelView.

Parameters:
[in] enable If true, then the origin axis is displayed.
Returns:
Return status
Status Codes:

bool MPx3dModelView::displayAxisAtOriginOn ( MStatus ReturnStatus = NULL  )  const

Returns the origin axis display state for this MPx3dModelView.

Parameters:
[out] ReturnStatus The return status.
Returns:
true if the origin axis is displayed.
Status Codes:

MStatus MPx3dModelView::setDisplayCameraAnnotation ( bool  enable  ) 

Sets the camera annotation display in the MPx3dModelView.

Parameters:
[in] enable If true, then the camera annotation is displayed.
Returns:
Return status
Status Codes:

bool MPx3dModelView::displayCameraAnnotationOn ( MStatus ReturnStatus = NULL  )  const

Returns the camera annotation display state for this MPx3dModelView.

Parameters:
[out] ReturnStatus The return status.
Returns:
true if the camera annotation is displayed.
Status Codes:

bool MPx3dModelView::isVisible ( MStatus ReturnStatus = NULL  )  const

This method returns true if this view is visible, otherwise false is returned.

Parameters:
[out] ReturnStatus The return status.
Returns:
true if the view is visible, otherwise false is returned.
Status Codes:

M3dView::DisplayStyle MPx3dModelView::displayStyle ( MStatus ReturnStatus = NULL  )  const

Return the display style for this 3d view. The display style can be wireframe, flat-shaded, or smooth-shaded.

Parameters:
[out] ReturnStatus Status code
Returns:
The display style for this view
Status Codes:

bool MPx3dModelView::isShadeActiveOnly ( MStatus ReturnStatus = NULL  )  const

Returns true if this view's display style is shaded for objects that are active and wireframe otherwise.

Parameters:
[out] ReturnStatus Status code
Returns:
  • true Only active objects are shaded if this view is in shaded mode
  • false All objects are shaded if this view is in shaded mode
Status Codes:

MStatus MPx3dModelView::setDisplayStyle ( M3dView::DisplayStyle  style,
bool  activeOnly = false 
)

Sets the display style for this view. The display style can be wireframe, flat-shaded, or smooth-shaded.

Parameters:
[in] style The display style to be set for this view
[in] activeOnly Specifies whether only active objects are to be shaded in shaded mode.
Returns:
Status code
Status Codes:

int MPx3dModelView::portWidth ( MStatus ReturnStatus = NULL  ) 

Returns the width of the current viewport.

Parameters:
[out] ReturnStatus Status Code
Returns:
The width of this viewport
Status Codes:

int MPx3dModelView::portHeight ( MStatus ReturnStatus = NULL  ) 

Returns the height of the current viewport.

Parameters:
[out] ReturnStatus Status Code
Returns:
The height of this viewport
Status Codes:

MStatus MPx3dModelView::beginOverlayDrawing (  ) 

Setup the OpenGL context for drawing on the overlay plane.

The overlay plane is commonly used for drawing guidelines for tools.

Returns:
Status code
Status Codes:

MStatus MPx3dModelView::endOverlayDrawing (  ) 

Set the OpenGL context to for normal screen drawing.

Returns:
Status code
Status Codes:

MStatus MPx3dModelView::clearOverlayPlane (  ) 

Clear the overlay plane.

Returns:
Status code
Status Codes:

MStatus MPx3dModelView::setDrawColor ( unsigned int  index,
M3dView::ColorTable  table = M3dView::kActiveColors 
)

//!//!//!//!//!/

//!//!//!//!//!/

Set the color to draw in. The index argument is an index into the application's color tables. Valid values range between zero and the size of the table minus one. The size of the active and dormant color tables can be found using methods of this class. The background and template color tables are both of size one.

These indices do not directly correspond to those of the underlying OpenGL color index mode. Using the glIndex call directly is not recommended and may cause unpredictable results. This method should be used instead.

Note that this method will work in either RGBA mode or color index mode.

Parameters:
[in] index index of the color to draw in
[in] table color table to index into
Returns:
Status code
Status Codes:

MStatus MPx3dModelView::setDrawColor ( const MColor color  ) 

Set the color to draw in. This method should only be used in RGBA mode. It is a convenient replacement for glColor.

Parameters:
[in] color color to draw in
Returns:
Status code
Status Codes:

bool MPx3dModelView::isColorIndexMode ( MStatus ReturnStatus = NULL  ) 

Returns true if this view is currently in the OpenGL color index mode. A false return means that it is in RGBA mode.

Parameters:
[out] ReturnStatus Status code
Returns:
Boolean indicating if color index mode is in use
Status Codes:

MStatus MPx3dModelView::setColorIndexMode ( bool  colorIndexOn  ) 

Sets color index mode - swaps buffers!

Parameters:
[in] colorIndexOn Color index mode.
Returns:
Status code
Status Codes:

unsigned int MPx3dModelView::numDormantColors ( MStatus ReturnStatus = NULL  ) 

Returns the number of dormant object colors in the internal application color table.

Parameters:
[out] ReturnStatus Status code
Returns:
The number of dormant colors
Status Codes:

unsigned int MPx3dModelView::numActiveColors ( MStatus ReturnStatus = NULL  ) 

Returns the number of active object colors in the internal application color table.

Parameters:
[out] ReturnStatus Status code
Returns:
The number of active colors
Status Codes:

unsigned int MPx3dModelView::numUserDefinedColors ( MStatus ReturnStatus = NULL  ) 

Returns the number of user defined colors in the internal application color table. These colors may be changed by the user and assigned to specific objects. See the methods of MFnDagNode for information on assigning user defined colors to individual objects.

The user defined colors are not a color table of their own. They exist in the active and dormant color tables.

Parameters:
[out] ReturnStatus Status code
Returns:
The number of user defined colors
Status Codes:

MStatus MPx3dModelView::setUserDefinedColor ( unsigned int  index,
const MColor color 
)

Sets the user defined color at the given index. Valid indices range between zero and the number of user defined colors.

Parameters:
[in] index index into the user defined color
[in] color color to set to
Returns:
An index into the application's color table
Status Codes:

unsigned int MPx3dModelView::userDefinedColorIndex ( unsigned int  index,
MStatus ReturnStatus = NULL 
)

Returns the index for the given user-defined color. Valid values for the index argument range between zero and the number of user-defined colors minus one.

The index returned gives the location of the specified color inside the active and dormant color tables (the index is the same in both tables).

Parameters:
[in] index Index into user-defined colors
[out] ReturnStatus Status code
Returns:
Index of user-defined color into the active and dormant tables
Status Codes:

MColor MPx3dModelView::templateColor ( MStatus ReturnStatus = NULL  ) 

Returns the RGB values of the template color.

Parameters:
[out] ReturnStatus Status code
Returns:
The template color
Status Codes:

MColor MPx3dModelView::backgroundColor ( MStatus ReturnStatus = NULL  ) 

Returns the RGB values of the active template color.

Parameters:
[out] ReturnStatus Status code
Returns:
The template color
Status Codes:

MColor MPx3dModelView::colorAtIndex ( unsigned int  index,
M3dView::ColorTable  table = M3dView::kActiveColors,
MStatus ReturnStatus = NULL 
)

Returns the RGB values of the color at the given index in the application's color table.

Parameters:
[in] index Index of the color to retrieve
[in] table Table to index into
[out] ReturnStatus Status code
Returns:
The color
Status Codes:

MStatus MPx3dModelView::getColorIndexAndTable ( unsigned int  glindex,
unsigned int &  index,
M3dView::ColorTable table 
) const

Returns the color table and index representing the given OpenGL color-index value. This method is useful when converting color indices obtained from glReadPixels(GL_COLOR_INDEX) to Maya color-index values suitable for use with the colorAtIndex and setDrawColor methods.

Parameters:
[in] glindex Value of the OpenGL color-index to retrieve
[out] index Returned ColorTable index
[out] table Returned ColorTable
Returns:
StatusCode
Status Codes:

MStatus MPx3dModelView::viewToWorld ( short  x_pos,
short  y_pos,
MPoint worldPt,
MVector worldVector 
) const

Takes a point in port coordinates and returns a corresponding ray in world coordinates.

Parameters:
[in] x_pos the x position of the point in port coordinates
[in] y_pos the y position of the point in port coordinates
[out] worldPt (returned) the source of the ray
[out] worldVector (returned) the direction of the ray
Returns:
Status Code
Status Codes:

MStatus MPx3dModelView::viewToWorld ( short  x_pos,
short  y_pos,
MPoint nearClipPt,
MPoint farClipPt 
) const

Takes a point in port coordinates and returns a point on the near and far clipping planes.

Parameters:
[in] x_pos the x position of the point in port coordinates
[in] y_pos the y position of the point in port coordinates
[out] nearClipPt (returned) point on near clipping plane
[out] farClipPt (returned) point on far clipping plane
Returns:
Status Code
Status Codes:

MStatus MPx3dModelView::viewToObjectSpace ( short  x_pos,
short  y_pos,
const MMatrix localMatrixInverse,
MPoint oPt,
MVector oVector 
) const

Takes a point in port coordinates and returns a corresponding ray in object coordinates.

Parameters:
[in] x_pos the x position of the point in port coordinates
[in] y_pos the y position of the point in port coordinates
[in] localMatrixInverse the inclusive matrix inverse of the object in question
[out] oPt (returned) the source of the ray in object space
[out] oVector (returned) the direction of the ray in object space
Returns:
Status Code
Status Codes:

bool MPx3dModelView::worldToView ( const MPoint worldPt,
short &  x_pos,
short &  y_pos,
MStatus ReturnStatus = NULL 
) const

converts a point in world space to port space. The return value indicates if the point is not clipped.

Parameters:
[in] worldPt the point to world space
[out] x_pos the x position of the point in port coordinates
[out] y_pos the y position of the point in port coordinates
[out] ReturnStatus Status code
Returns:
  • true point is not clipped
  • false point is undefined or outside frustum
Status Codes:

MStatus MPx3dModelView::setObjectDisplay ( M3dView::DisplayObjects  displayType,
bool  display 
)

Sets the display option for various types of objects. By default everything is displayed.

Parameters:
[in] displayType The type of object to display
[in] display Should the object type be displayed?
Returns:
The return status
Status Codes:

bool MPx3dModelView::objectDisplay ( M3dView::DisplayObjects  dispObjs,
MStatus ReturnStatus = NULL 
)

Returns true is the passed flag is set.

Parameters:
[out] ReturnStatus the return status
Returns:
true is the flag is set.
Status Codes:

MStatus MPx3dModelView::setBackfaceCulling ( bool  culling  ) 

Sets backface culling.

Parameters:
[in] culling sets the backface culling state
Returns:
Status
Status Codes:

bool MPx3dModelView::isBackfaceCulling ( MStatus ReturnStatus = NULL  )  const

Returns the state of backface culling.

Parameters:
[out] ReturnStatus return status
Returns:
true if backface culling is enabled.
Status Codes:

MStatus MPx3dModelView::setWireframeOnShaded ( bool  onShaded  ) 

Displays as wireframe on shaded.

Parameters:
[in] onShaded sets the wireframe on shaded state
Returns:
Status
Status Codes:

bool MPx3dModelView::isWireframeOnShaded ( MStatus ReturnStatus = NULL  )  const

Returns the state of wireframe on shaded.

Parameters:
[out] ReturnStatus return status
Returns:
true if backface onShaded is enabled.
Status Codes:

MStatus MPx3dModelView::setXrayEnabled ( bool  xray  ) 

Sets xray display state.

Parameters:
[in] xray sets the xray display state
Returns:
Status
Status Codes:

bool MPx3dModelView::isXrayEnabled ( MStatus ReturnStatus = NULL  )  const

Returns the state of xray display.

Parameters:
[out] ReturnStatus return status
Returns:
true if xray is enabled.
Status Codes:

MStatus MPx3dModelView::setTextureDisplayEnabled ( bool  textureDisplay  ) 

Enables texture display

Parameters:
[in] textureDisplay sets the texture display state
Returns:
Status
Status Codes:

bool MPx3dModelView::isTextureDisplayEnabled ( MStatus ReturnStatus = NULL  )  const

Returns the enable state of texture display.

Parameters:
[out] ReturnStatus return status
Returns:
true if texture display is enabled.
Status Codes:

MStatus MPx3dModelView::setTwoSidedLighting ( bool  twoSided  ) 

Enables two sided lighting.

Parameters:
[in] twoSided sets the two sided lighting state
Returns:
Status
Status Codes:

bool MPx3dModelView::isTwoSidedLighting ( MStatus ReturnStatus = NULL  )  const

Returns the state of two sided lighting.

Parameters:
[out] ReturnStatus return status
Returns:
true if two sided lighting is enabled.
Status Codes:

MStatus MPx3dModelView::setLightingMode ( MPx3dModelView::LightingMode  lightingMode  ) 

Sets the lighting mode.

Parameters:
[in] lightingMode sets the lighting mode
Returns:
Status
Status Codes:

MPx3dModelView::LightingMode MPx3dModelView::lightingMode ( MStatus ReturnStatus = NULL  )  const

Returns the lighting mode.

Parameters:
[out] ReturnStatus return status
Returns:
The lighting mode.
Status Codes:

MStatus MPx3dModelView::setFogEnabled ( bool  state  ) 

Enables and disables fog. If fog is enabled for one pass and disabled for another, the background fog will not be drawn. To display background fog in that configuration, use the MPx3dModelView::setBackgroundFogEnabled() call.

Parameters:
[in] state true is fog should be on.
Returns:
Status
Status Codes:

bool MPx3dModelView::isFogEnabled ( MStatus ReturnStatus = NULL  )  const

Returns true if fog is enabled.

Parameters:
[out] ReturnStatus status
Returns:
true is fog is enabled.
Status Codes:

MPx3dModelView::FogSource MPx3dModelView::fogSource ( MStatus ReturnStatus = NULL  )  const

Returns the algorithm used to compute fog. See MPx3dModelView::setFogSource for a description.

Parameters:
[out] ReturnStatus status
Returns:
The algorithm used to compute fog.
Status Codes:

MStatus MPx3dModelView::setFogSource ( MPx3dModelView::FogSource  source  ) 

Sets the type of fog algorithm to use. If the source argument is kFogFragment (default) then fog is computed per pixel. If the argument is kFogCoordinate then if the geometry has specified vertex fog coordinates, and the OpenGL extension for vertex fog is supported by the graphics system, then fog is computed per vertex.

Parameters:
[in] source The type of algorithm to use.
Returns:
Status
Status Codes:

MPx3dModelView::FogMode MPx3dModelView::fogMode ( MStatus ReturnStatus = NULL  )  const

Return the type of drop off used with fog. See MPx3dModelView::setFogMode for description of the drop off types.

Parameters:
[out] ReturnStatus status
Returns:
The type of drop off used with fog.
Status Codes:

MStatus MPx3dModelView::setFogMode ( MPx3dModelView::FogMode  mode  ) 

Sets the drop-off mode for fog. The possibilities are:

  • kFogLinear linear drop-off
  • kFogExponential exponential drop-off
  • kFogExponentialSquared squared exponential drop-off
Parameters:
[in] mode The type of drop off to use with fog.
Returns:
Status
Status Codes:

double MPx3dModelView::fogDensity ( MStatus ReturnStatus = NULL  )  const

Returns the fog density.

Parameters:
[out] ReturnStatus status
Returns:
The fog density.
Status Codes:

MStatus MPx3dModelView::setFogDensity ( double  density  ) 

Determines the density of hardware fogging. This is meaniful for kFogExponential and kFogExponentialSquared drop off types (set by the MPx3dModelView::setFogMode() method).

Parameters:
[in] density 
Returns:
Status
Status Codes:

double MPx3dModelView::fogStart ( MStatus ReturnStatus = NULL  )  const

Returns the fog start position.

Parameters:
[out] ReturnStatus status
Returns:
The fog start position.
Status Codes:

MStatus MPx3dModelView::setFogStart ( double  start  ) 

Determines the start location of hardware fogging. This is meaniful for kFogLinear drop off type (set by the MPx3dModelView::setFogMode() method).

Parameters:
[in] start 
Returns:
Status
Status Codes:

double MPx3dModelView::fogEnd ( MStatus ReturnStatus = NULL  )  const

Returns the fog end position.

Parameters:
[out] ReturnStatus status
Returns:
The fog end location.
Status Codes:

MStatus MPx3dModelView::setFogEnd ( double  end  ) 

Determines the end location of hardware fogging. This is meaniful for kFogLinear drop off type (set by the MPx3dModelView::setFogMode() method).

Parameters:
[in] end 
Returns:
Status
Status Codes:

MColor MPx3dModelView::fogColor ( MStatus ReturnStatus = NULL  )  const

Returns the fog color.

Parameters:
[out] ReturnStatus status
Returns:
The fog color.
Status Codes:

MStatus MPx3dModelView::setFogColor ( const MColor color  ) 

Sets the color used for hardware fogging.

Parameters:
[in] color The color used by hardware fogging.
Returns:
Status
Status Codes:

bool MPx3dModelView::isBackgroundFogEnabled ( MStatus ReturnStatus = NULL  )  const

Returns true if the background fog is enabled.

Parameters:
[out] ReturnStatus status
Returns:
true, if the background fog is enabled, otherwise false.
Status Codes:

MStatus MPx3dModelView::setBackgroundFogEnabled ( bool  state  ) 

Enables and disables background fog.

Parameters:
[in] state true if background fog should be enabled.
Returns:
Status
Status Codes:

MString MPx3dModelView::viewSelectedPrefix ( MStatus ReturnStatus  )  const

Returns the prefix used when displaying the camera name in the heads up display when view selected in on.

Parameters:
[out] ReturnStatus the return status
Returns:
The prefix.
Status Codes:

MStatus MPx3dModelView::setViewSelectedPrefix ( const MString prefix  ) 

Sets the prefix for the camera name as displayed in the heads up display when view selected is enabled. The prefix is concatenated with the camera name.

The default value is "isolate: "

Parameters:
[in] prefix The prefix to use.
Returns:
Status
Status Codes:

bool MPx3dModelView::viewSelected ( MStatus ReturnStatus = NULL  )  const

Returns the state of view selected for this view.

Parameters:
[out] ReturnStatus return status
Returns:
true if view selected is enabled.
Status Codes:

MStatus MPx3dModelView::setViewSelected ( bool  enable  ) 

Enables the view selected mode.

Parameters:
[in] enable enable or disable view selected mode.
Returns:
Status
Status Codes:

MObject MPx3dModelView::viewSelectedSet ( MStatus ReturnStatus = NULL  )  const

Returns an MObject for the set used by view selected. If there is not a set associated with this view, then an invalid MObject will be returned. Check the isNull() method of the MObject to see if a valid set was found.

Parameters:
[out] ReturnStatus return status
Returns:
The MObject
Status Codes:

MStatus MPx3dModelView::setViewSelectedSet ( MObject set  ) 

Returns a set that contains the memebers used by view selected.

Parameters:
[in] set The set used by view selected.
Returns:
Return status
Status Codes:

MStatus MPx3dModelView::getObjectsToView ( MSelectionList list  )  const

Returns a selection list containing all of the objects on the view selected list.

Parameters:
[in] list The list of objects used by view selected.
Returns:
Return status
Status Codes:

MStatus MPx3dModelView::setObjectsToView ( const MSelectionList list  ) 

Sets the list of objects used by view selected as a selection list. View selected must be turned on for this to have an effect.

Parameters:
[in] list The objects to view with view selected.
Returns:
Return status
Status Codes:

bool MPx3dModelView::hasStereoBufferSupport (  )  const

Returns true if this 3dModelView is running in stereo buffer mode. This should be used in cases where the API developer has requested to create stereo buffer enabled view. See wantStereoGLBuffer()

MStatus MPx3dModelView::getAsM3dView ( M3dView view  ) 

Get this MPx3dModelView as a M3dView.

Parameters:
[in] view The M3dView to set as this MPx3dModelView
Returns:
Return status
Status Codes:

MPx3dModelView * MPx3dModelView::getModelView ( const MString name,
MStatus ReturnStatus = NULL 
) [static]

Returns a pointer to a MPx3dModelView that has the passed name with the specified type (the same typed when registering the control). If one does not exist, then a NULL pointer is returned.

Parameters:
[in] name The name to find
[out] ReturnStatus the return status
Returns:
A pointer to the MPx3dModelView.
Status Codes:

bool MPx3dModelView::wantStereoGLBuffer (  )  const [virtual]

Users should override this method if they want a stereo buffer enabled MPx3dModelView. You must have a graphics card that can support stereo mode. If your graphics card does not support stereo mode, a non-stereo buffer is created.

Returns:
true, if you want to create a stereo buffered view

MStatus MPx3dModelView::setInStereoDrawMode ( bool  flag  ) 

Derived classes should call this method to indicate to Maya whether the view is currently drawing in stereo.

One place where this is useful to know is for playblast which will check the view to see if it is in stereo mode, and enforce rendering of left and right stereo pairs versus mono rendering.

Parameters:
[in] flag Flag telling if drawing in stereo mode.
Status Codes:


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