Public Types | Public Member Functions | Static Public Member Functions

MPx3dModelView Class Reference

This reference page is linked to from the following overview topics: Rendering Overrides, Transition Guide, 3.6 Render Loop Overrides, Example Scripted Plug-ins.


Search for all occurrences

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.

#include <MPx3dModelView.h>

List of all members.

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 ()
 class constructor
virtual ~MPx3dModelView ()
 class destructor
MString name (MStatus *ReturnStatus=NULL) const
 Returns the name of the view.
virtual MString viewType () const
 Returns a string specifying the view type.
virtual void preMultipleDraw ()
 This method is called before any drawing is performed in the model view.
virtual void postMultipleDraw ()
 This method is called after the drawing is finished.
virtual void preMultipleDrawPass (unsigned int index)
 This method is called immediately before a specific pass is about to be drawn.
virtual void postMultipleDrawPass (unsigned int index)
 This method is called when a specified pass is finshed.
virtual bool okForMultipleDraw (const MDagPath &)
 This method provides some filter capabilities as to what is drawn.
virtual unsigned int multipleDrawPassCount ()
 This method returns the number of multiple draw passes that are going to be made.
bool multipleDrawEnabled () const
 This method returns the multiple draw enable state for this view.
void setMultipleDrawEnable (bool enable)
 This method turns enables/disables multiple camera drawing for this view.
bool destroyOnPanelDestruction () const
 This method queries the destruction setting for this MPx3dModelView which is employed when the panel associated with this view is destroyed.
void setDestroyOnPanelDestruction (bool how)
 This method enables/disables destruction of the MPx3dModelView object when the panel is destroyed.
MStatus updateViewingParameters ()
 This method tells the camera to set the view's transformation matrix.
virtual void removingCamera (MDagPath &cameraPath)
 This method should be overloaded in MPx3dModelView derived classes.
MStatus setDoUpdateOnMove (bool value)
 Some viewports require a refresh when the user has moved the top level window.
bool doUpdateOnMove (MStatus *ReturnStatus=NULL) const
 Returns the state of the doUpdateOnMove flag.
MStatus refresh (bool all=false, bool force=false)
 Refresh the this view.
MStatus drawText (const MString &text, const MPoint position, M3dView::TextPosition textPosition=M3dView::kLeft)
 Draws the given text at the given spot in the default font.
MStatus beginGL ()
 Setup port for native OpenGL drawing calls.
MStatus endGL ()
 End OpenGL drawing.
MStatus setCameraInDraw (MDagPath &camera)
 Sets the camera during a draw.
MStatus setDrawCameraOverride (const MMatrix &worldMatrix, const MMatrix &projectionMatrix, double left, double right, double bottom, double top, double nearpt, double farpt, bool isOrtho=false)
 Sets the camera during a draw.
MStatus setDrawCameraOverride (const MMatrix &worldMatrix, const MMatrix &projectionMatrix, const MPointArray &frustum)
 Sets the camera during a draw.
MStatus setCamera (MDagPath &camera)
 Set the camera for this view.
MStatus getCamera (MDagPath &camera)
 Get the camera for this view.
MStatus setCameraSet (MObject &cameraSet)
 Set the cameraSet for this view.
MStatus getCameraSet (MObject &cameraSet)
 Get the cameraSet for this view.
MStatus setCurrentCameraSetCamera (const MString &cameraName)
 Set a camera used by the currently specified cameraSet as the controlled camera for this view.
MStatus getCurrentCameraSetCamera (MString &cameraName)
 Get the cameraSet for this view.
virtual MString getCameraHUDName ()
 Return the name to use for the camera in the heads up display.
MStatus setDisplayHUD (bool display)
 Enables or disables the drawing the heads up display in this view.
bool displayHUD (MStatus *ReturnStatus=NULL) const
 Returns the heads up display state for this view.
MStatus drawHUDNow ()
 Forces the HUD viewport elements to be drawn immediately.
MStatus setDrawAdornments (bool display)
 Toggles the control of how adornments are drawn in the view.
bool drawAdornments (MStatus *ReturnStatus=NULL)
 Returns the state of the adornment drawing for this view.
MStatus drawAdornmentsNow ()
 Forces the adornment viewport elements to be drawn immediately.
MStatus setDisplayAxis (bool display)
 Sets the axis display in the MPx3dModelView.
bool displayAxisOn (MStatus *ReturnStatus=NULL) const
 Returns the axis display state for this MPx3dModelView.
MStatus setDisplayAxisAtOrigin (bool display)
 Sets the origin axis display in the MPx3dModelView.
bool displayAxisAtOriginOn (MStatus *ReturnStatus=NULL) const
 Returns the origin axis display state for this MPx3dModelView.
MStatus setDisplayCameraAnnotation (bool display)
 Sets the camera annotation display in the MPx3dModelView.
bool displayCameraAnnotationOn (MStatus *ReturnStatus=NULL) const
 Returns the camera annotation display state for this MPx3dModelView.
bool isVisible (MStatus *ReturnStatus=NULL) const
 This method returns true if this view is visible, otherwise false is returned.
M3dView::DisplayStyle displayStyle (MStatus *ReturnStatus=NULL) const
 Return the display style for this 3d view.
bool isShadeActiveOnly (MStatus *ReturnStatus=NULL) const
 Returns true if this view's display style is shaded for objects that are active and wireframe otherwise.
MStatus setDisplayStyle (M3dView::DisplayStyle style, bool activeOnly=false)
 Sets the display style for this view.
int portWidth (MStatus *ReturnStatus=NULL)
 Returns the width of the current viewport.
int portHeight (MStatus *ReturnStatus=NULL)
 Returns the height of the current viewport.
MStatus beginXorDrawing (bool drawOrthographic=true, bool disableDepthTesting=true, float lineWidth=1.0f, M3dView::LineStipplePattern stipplePattern=M3dView::kStippleNone, const MColor &lineColor=MColor(1, 1, 1))
 Setup the context for exclusive-or (XOR) drawing.
MStatus endXorDrawing ()
 Reset the context to non-exclusive-or (non-XOR) screen drawing.
MStatus setDrawColor (unsigned int index, M3dView::ColorTable table=M3dView::kActiveColors)
 Set the color to draw in.
MStatus setDrawColor (const MColor &color)
 Set the color to draw in.
unsigned int numDormantColors (MStatus *ReturnStatus=NULL)
 Returns the number of dormant object colors in the internal application color table.
unsigned int numActiveColors (MStatus *ReturnStatus=NULL)
 Returns the number of active object colors in the internal application color table.
unsigned int numUserDefinedColors (MStatus *ReturnStatus=NULL)
 Returns the number of user defined colors in the internal application color table.
MStatus setUserDefinedColor (unsigned int index, const MColor &color)
 Sets the user defined color at the given index.
unsigned int userDefinedColorIndex (unsigned int index, MStatus *ReturnStatus=NULL)
 Returns the index for the given user-defined color.
bool isBackgroundGradient (MStatus *ReturnStatus=NULL)
 Returns whether a gradient is being used as the background color.
MColor templateColor (MStatus *ReturnStatus=NULL)
 Returns the value of the template color.
MColor backgroundColor (MStatus *ReturnStatus=NULL)
 Returns the value of the background color.
MColor backgroundColorTop (MStatus *ReturnStatus=NULL)
 Returns the value of the background gradient top color.
MColor backgroundColorBottom (MStatus *ReturnStatus=NULL)
 Returns the value of the background gradient bottom color.
MColor colorAtIndex (unsigned int index, M3dView::ColorTable table=M3dView::kActiveColors, MStatus *ReturnStatus=NULL)
 Returns the value of the color at the given index in the application's color table.
MStatus getColorIndexAndTable (unsigned int glindex, unsigned int &index, M3dView::ColorTable &table) const
 Returns the color table and index representing the given OpenGL color-index value.
MStatus 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.
MStatus 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.
MStatus 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.
bool worldToView (const MPoint &worldPt, short &x_pos, short &y_pos, MStatus *ReturnStatus=NULL) const
 converts a point in world space to port space.
MStatus setObjectDisplay (M3dView::DisplayObjects, bool)
 Sets the display option for various types of objects.
bool objectDisplay (M3dView::DisplayObjects, MStatus *ReturnStatus=NULL)
 Test whether specific types of objects are to be displayed.
MStatus setBackfaceCulling (bool cull)
 Sets backface culling.
bool isBackfaceCulling (MStatus *ReturnStatus=NULL) const
 Returns the state of backface culling.
MStatus setWireframeOnShaded (bool on)
 Displays as wireframe on shaded.
bool isWireframeOnShaded (MStatus *ReturnStatus=NULL) const
 Returns the state of wireframe on shaded.
MStatus setXrayEnabled (bool xray)
 Sets xray display state.
bool isXrayEnabled (MStatus *ReturnStatus=NULL) const
 Returns the state of xray display.
MStatus setTextureDisplayEnabled (bool texture)
 Enables texture display.
bool isTextureDisplayEnabled (MStatus *ReturnStatus=NULL) const
 Returns the enable state of texture display.
MStatus setTwoSidedLighting (bool twoSided)
 Enables two sided lighting.
bool isTwoSidedLighting (MStatus *ReturnStatus=NULL) const
 Returns the state of two sided lighting.
MStatus setLightingMode (MPx3dModelView::LightingMode)
 Sets the lighting mode.
MPx3dModelView::LightingMode lightingMode (MStatus *ReturnStatus=NULL) const
 Returns the lighting mode.
MStatus setFogEnabled (bool state)
 Enables and disables fog.
bool isFogEnabled (MStatus *ReturnStatus=NULL) const
 Returns true if fog is enabled.
MPx3dModelView::FogSource fogSource (MStatus *ReturnStatus=NULL) const
 Returns the algorithm used to compute fog.
MStatus setFogSource (MPx3dModelView::FogSource)
 Sets the type of fog algorithm to use.
MPx3dModelView::FogMode fogMode (MStatus *ReturnStatus=NULL) const
 Return the type of drop off used with fog.
MStatus setFogMode (MPx3dModelView::FogMode)
 Sets the drop-off mode for fog.
double fogDensity (MStatus *ReturnStatus=NULL) const
 Returns the fog density.
MStatus setFogDensity (double)
 Determines the density of hardware fogging.
double fogStart (MStatus *ReturnStatus=NULL) const
 Returns the fog start position.
MStatus setFogStart (double)
 Determines the start location of hardware fogging.
double fogEnd (MStatus *ReturnStatus=NULL) const
 Returns the fog end position.
MStatus setFogEnd (double)
 Determines the end location of hardware fogging.
MColor fogColor (MStatus *ReturnStatus=NULL) const
 Returns the fog color.
MStatus setFogColor (const MColor &)
 Sets the color used for hardware fogging.
bool isBackgroundFogEnabled (MStatus *ReturnStatus=NULL) const
 Returns true if the background fog is enabled.
MStatus setBackgroundFogEnabled (bool enable)
 Enables and disables background fog.
MString viewSelectedPrefix (MStatus *ReturnStatus) const
 Returns the prefix used when displaying the camera name in the heads up display when view selected in on.
MStatus setViewSelectedPrefix (const MString &prefix)
 Sets the prefix for the camera name as displayed in the heads up display when view selected is enabled.
bool viewSelected (MStatus *ReturnStatus=NULL) const
 Returns the state of view selected for this view.
MStatus setViewSelected (bool viewSelected)
 Enables the view selected mode.
MObject viewSelectedSet (MStatus *ReturnStatus=NULL) const
 Returns an MObject for the set used by view selected.
MStatus setViewSelectedSet (const MObject &set)
 Sets the list of objects used by view selected as an object set.
MStatus getObjectsToView (MSelectionList &list) const
 Returns a selection list containing all of the objects on the view selected list.
MStatus setObjectsToView (const MSelectionList &list)
 Sets the list of objects used by view selected as a selection list.
bool viewIsFiltered (MStatus *ReturnStatus=NULL) const
 Returns the state of view filtering for this view.
MStatus filteredObjectList (MSelectionList &list) const
 Returns a selection list containing all of the objects that remain after filtering is applied to the view.
bool hasStereoBufferSupport () const
 Returns true if this 3dModelView is running in stereo buffer mode.
MStatus getAsM3dView (M3dView &view)
 Get this MPx3dModelView as a M3dView.
virtual bool wantStereoGLBuffer () const
 Users should override this method if they want a stereo buffer enabled MPx3dModelView.
MStatus setInStereoDrawMode (bool flag)
 Derived classes should call this method to indicate to Maya whether the view is currently drawing in stereo.
virtual bool requestOkForDraw (const MDrawRequest &)
 This method provides some filter capabilities as to what is drawn.

Static Public Member Functions

static MPx3dModelViewgetModelView (const MString &name, MStatus *ReturnStatus=NULL)
 Returns a pointer to a MPx3dModelView that has the passed name with the specified type (the same typed when registering the control).
static const char * className ()
 Returns the name of this class.

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.

enum FogSource

Fog computation modes.

Enumerator:
kFogFragment 

Computed per pixel (default).

kFogCoordinate 

Computed by specified vertex fog coordinates.

enum FogMode

Drop-off modes for fog.

Enumerator:
kFogLinear 

Linear drop off.

kFogExponential 

Exponential drop-off.

kFogExponentialSquared 

Squared exponential drop-off.


Member Function Documentation

MString name ( MStatus ReturnStatus = NULL) const

Returns the name of the view.

Parameters:
[out]ReturnStatusstatus
Returns:
The name of the view.
Status Codes:
MString 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:
narrowPolyViewer.h, and narrowPolyViewerCmd.cpp.
void 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:
narrowPolyViewer.h.
void postMultipleDraw ( ) [virtual]

This method is called after the drawing is finished.

Any cleanup should be done by this method.

Examples:
narrowPolyViewer.h.
void 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]indexA number indicating which pass is about to be drawn.
Examples:
narrowPolyViewer.h.
void postMultipleDrawPass ( unsigned int  index) [virtual]

This method is called when a specified pass is finshed.

Parameters:
[in]indexA number indicating which pass was just drawn.
Examples:
narrowPolyViewer.h.
bool 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]dpA MDagPath of the object that may be drawn.
Returns:
true if it is OK to draw the passed object.
Examples:
narrowPolyViewer.h.
unsigned int 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:
narrowPolyViewer.h.
bool multipleDrawEnabled ( ) const

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

Returns:
true if multiple draw is enabled.
void 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]enableIf true, then multiple draw is enabled.
bool 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 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]howIf true, destroy the MPx3dModelView when the panel is destroyed. If false (the default behaviour), the editor is retained.
MStatus updateViewingParameters ( )

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

Returns:
Status code
void 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]cameraPathThe MDagPath for the camera that is about to be deleted.
Examples:
narrowPolyViewer.h.
MStatus 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]valueThe state of the doUpdateOnMove flag.
Returns:
  • Status code
Status Codes:
bool 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]ReturnStatusreturn status of the check
Returns:
  • the state of the doUpdateOnMove flag
Status Codes:
MStatus 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]allIf true then refresh all views, otherwise refresh this view.
[in]forceIf true then force views to refresh even if they do not require it.
Returns:
Status code
Status Codes:
MStatus 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]textText to draw
[in]positionPosition in space to draw at
[in]textPositionText position relative to the point
Returns:
Status code
Status Codes:
MStatus 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 endGL ( )

End OpenGL drawing.

Returns:
Status code
Status Codes:
MStatus 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]cameraDag path of the camera
Returns:
Status code
Status Codes:
MStatus setDrawCameraOverride ( const MMatrix worldMatrix,
const MMatrix projectionMatrix,
double  left,
double  right,
double  bottom,
double  top,
double  nearpt,
double  farpt,
bool  isOrtho = false 
)

Sets the camera during a draw.

Users must supply all of the parameters of the cameras. This only affects the draw matrices.

Maya uses view frustum culling to remove objects from the draw loop. To override the draw camera, you must also provide the frustum left, right, bottom, top parameters.

Parameters:
[in]worldMatrixthe worldMatrix of the camera. This will be used to construct the view matrix.
[in]projectionMatrixprojection matrix of the camera.
[in]leftthe left edge of the frustum.
[in]rightthe right edge of the frustum.
[in]bottomthe bottom edge of the frustum.
[in]topthe top edge of the frustum.
[in]nearptthe near pt of the frustum.
[in]farptthe far pt of the frustum.
[in]isOrthoindicates if the frustum pts correspond to an ortho camera (default is false).
MStatus setDrawCameraOverride ( const MMatrix worldMatrix,
const MMatrix projectionMatrix,
const MPointArray frustum 
)

Sets the camera during a draw.

Users must supply all of the parameters of the cameras. This only affects the draw matrices.

Maya uses view frustum culling to remove objects from the draw loop. To override the draw camera, you must also provide the frustum points so that objects and be appropriately culled from the scene.

Parameters:
[in]worldMatrixthe worldMatrix of the camera. This will be used to construct the view matrix.
[in]projectionMatrixprojection matrix of the camera.
[in]frustumThe 8 frustum points in the following order nearBottomLeft, nearBottomRight, nearTopLeft, nearTopRight, farBottomLeft, farBottomRight, farTopLeft, farTopRight
MStatus setCamera ( MDagPath camera)

Set the camera for this view.

Parameters:
[in]cameraDag path of the camera for this view
Returns:
Status code
Status Codes:
MStatus getCamera ( MDagPath camera)

Get the camera for this view.

Parameters:
[out]cameraDag path for the camera (allocated by caller)
Returns:
Status code
Status Codes:
MStatus setCameraSet ( MObject cameraSet)

Set the cameraSet for this view.

Parameters:
[in]cameraSetcameraSet object for this view
Returns:
Status code
Status Codes:
MStatus getCameraSet ( MObject cameraSet)

Get the cameraSet for this view.

Parameters:
[out]cameraSetdependency node object for the cameraSet (allocated by caller)
Returns:
Status code
Status Codes:
MStatus setCurrentCameraSetCamera ( const MString cameraName)

Set a camera used by the currently specified cameraSet as the controlled camera for this view.

Parameters:
[in]cameraNamecamera layer camera name for this view
Returns:
Status code
Status Codes:
MStatus getCurrentCameraSetCamera ( MString cameraName)

Get the cameraSet for this view.

Parameters:
[out]cameraNamedependency node object for the cameraSet (allocated by caller)
Returns:
Status code
Status Codes:
MString getCameraHUDName ( ) [virtual]

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

Returns:
The name of the camera
Examples:
narrowPolyViewer.h.
MStatus 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]enableThe enable state of the heads up display in this view.
Returns:
Status
Status Codes:
bool displayHUD ( MStatus ReturnStatus = NULL) const

Returns the heads up display state for this view.

Parameters:
[out]ReturnStatusthe return status
Returns:
The enable state for the HUD
Status Codes:
MStatus 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 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]displaytoggle to control the display of the adornments.
Returns:
Status code
Status Codes:
bool drawAdornments ( MStatus ReturnStatus = NULL)

Returns the state of the adornment drawing for this view.

See setDrawAdornments for more information on adornment drawing.

Parameters:
[out]ReturnStatusStatus code.
MStatus 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 setDisplayAxis ( bool  enable)

Sets the axis display in the MPx3dModelView.

Parameters:
[in]enableIf true, then the axis is displayed.
Returns:
Return status
Status Codes:
bool displayAxisOn ( MStatus ReturnStatus = NULL) const

Returns the axis display state for this MPx3dModelView.

Parameters:
[out]ReturnStatusThe return status.
Returns:
true if the axis is displayed.
Status Codes:
MStatus setDisplayAxisAtOrigin ( bool  enable)

Sets the origin axis display in the MPx3dModelView.

Parameters:
[in]enableIf true, then the origin axis is displayed.
Returns:
Return status
Status Codes:
bool displayAxisAtOriginOn ( MStatus ReturnStatus = NULL) const

Returns the origin axis display state for this MPx3dModelView.

Parameters:
[out]ReturnStatusThe return status.
Returns:
true if the origin axis is displayed.
Status Codes:
MStatus setDisplayCameraAnnotation ( bool  enable)

Sets the camera annotation display in the MPx3dModelView.

Parameters:
[in]enableIf true, then the camera annotation is displayed.
Returns:
Return status
Status Codes:
bool displayCameraAnnotationOn ( MStatus ReturnStatus = NULL) const

Returns the camera annotation display state for this MPx3dModelView.

Parameters:
[out]ReturnStatusThe return status.
Returns:
true if the camera annotation is displayed.
Status Codes:
bool isVisible ( MStatus ReturnStatus = NULL) const

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

Parameters:
[out]ReturnStatusThe return status.
Returns:
true if the view is visible, otherwise false is returned.
Status Codes:
M3dView::DisplayStyle 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]ReturnStatusStatus code
Returns:
The display style for this view
Status Codes:
bool 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]ReturnStatusStatus 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 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]styleThe display style to be set for this view
[in]activeOnlySpecifies whether only active objects are to be shaded in shaded mode.
Returns:
Status code
Status Codes:
int portWidth ( MStatus ReturnStatus = NULL)

Returns the width of the current viewport.

Parameters:
[out]ReturnStatusStatus Code
Returns:
The width of this viewport
Status Codes:
int portHeight ( MStatus ReturnStatus = NULL)

Returns the height of the current viewport.

Parameters:
[out]ReturnStatusStatus Code
Returns:
The height of this viewport
Status Codes:
MStatus beginXorDrawing ( bool  drawOrthographic = true,
bool  disableDepthTesting = true,
float  lineWidth = 1.0f,
M3dView::LineStipplePattern  stipplePattern = M3dView::kStippleNone,
const MColor lineColor = MColor(1, 1, 1) 
)

Setup the context for exclusive-or (XOR) drawing.

In XOR drawing the color values of the pixels being drawn is exclusive-ored with the color values already present in the view. The advantage of this is that exclusive-oring the same pixels with the same color values a second time will restore the pixels to their original colors, making it possible to temporarily display and erase lines without having to redraw the entire view. This makes XOR drawing particularly useful for drawing guidelines for tools.

One disadvantage of XOR drawing is that the final color after the exclusive-or will not match your drawing color, except when the original color of the pixel was black. For example, XORing a white line across a red background will result in a cyan line and XORing it across a changing background will result in a line of changing colors. However in most situations where you would use XOR drawing the color of the lines is irrelevant just so long as they are visible.

It is an error to call beginXorDrawing() again before calling endXorDrawing() first.

Parameters:
[in]drawOrthographicDraw using orthographic projection. Default is true.
[in]disableDepthTestingDisable depth testing during draw. Default is true.
[in]lineWidthSet up line width. Default is 1.
[in]stipplePatternLine stipple pattern. Default is M3dView::kStippleNone.
[in]lineColorLine color. Default is white (1,1,1).
Returns:
Status code
Status Codes:
MStatus endXorDrawing ( )

Reset the context to non-exclusive-or (non-XOR) screen drawing.

If endXorDrawing() is called without first calling beginXorDrawing() an error will result.

Returns:
Status code
Status Codes:
MStatus 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]indexindex of the color to draw in
[in]tablecolor table to index into
Returns:
Status code
Status Codes:
MStatus 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]colorcolor to draw in
Returns:
Status code
Status Codes:
unsigned int numDormantColors ( MStatus ReturnStatus = NULL)

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

Parameters:
[out]ReturnStatusStatus code
Returns:
The number of dormant colors
Status Codes:
unsigned int numActiveColors ( MStatus ReturnStatus = NULL)

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

Parameters:
[out]ReturnStatusStatus code
Returns:
The number of active colors
Status Codes:
unsigned int 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]ReturnStatusStatus code
Returns:
The number of user defined colors
Status Codes:
MStatus 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]indexindex into the user defined color
[in]colorcolor to set to
Returns:
An index into the application's color table
Status Codes:
unsigned int 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]indexIndex into user-defined colors
[out]ReturnStatusStatus code
Returns:
Index of user-defined color into the active and dormant tables
Status Codes:
bool isBackgroundGradient ( MStatus ReturnStatus = NULL)

Returns whether a gradient is being used as the background color.

Parameters:
[out]ReturnStatusStatus code
Returns:
  • true background is a color gradient
  • false background is a solid color
Status Codes:
MColor templateColor ( MStatus ReturnStatus = NULL)

Returns the value of the template color.

Parameters:
[out]ReturnStatusStatus code
Returns:
The template color
Status Codes:
MColor backgroundColor ( MStatus ReturnStatus = NULL)

Returns the value of the background color.

Parameters:
[out]ReturnStatusStatus code
Returns:
The background color
Status Codes:
MColor backgroundColorTop ( MStatus ReturnStatus = NULL)

Returns the value of the background gradient top color.

Parameters:
[out]ReturnStatusStatus code
Returns:
The background gradient top color
Status Codes:
MColor backgroundColorBottom ( MStatus ReturnStatus = NULL)

Returns the value of the background gradient bottom color.

Parameters:
[out]ReturnStatusStatus code
Returns:
The background gradient bottom color
Status Codes:
MColor colorAtIndex ( unsigned int  index,
M3dView::ColorTable  table = M3dView::kActiveColors,
MStatus ReturnStatus = NULL 
)

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

Parameters:
[in]indexIndex of the color to retrieve
[in]tableTable to index into
[out]ReturnStatusStatus code
Returns:
The color
Status Codes:
MStatus 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]glindexValue of the OpenGL color-index to retrieve
[out]indexReturned ColorTable index
[out]tableReturned ColorTable
Returns:
StatusCode
Status Codes:
MStatus 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_posthe x position of the point in port coordinates
[in]y_posthe 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 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_posthe x position of the point in port coordinates
[in]y_posthe 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 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_posthe x position of the point in port coordinates
[in]y_posthe y position of the point in port coordinates
[in]localMatrixInversethe 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 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]worldPtthe point to world space
[out]x_posthe x position of the point in port coordinates
[out]y_posthe y position of the point in port coordinates
[out]ReturnStatusStatus code
Returns:
  • true point is not clipped
  • false point is undefined or outside frustum
Status Codes:
MStatus setObjectDisplay ( M3dView::DisplayObjects  displayType,
bool  display 
)

Sets the display option for various types of objects.

By default everything is displayed.

Parameters:
[in]displayTypeThe type of object to display
[in]displayShould the object type be displayed?
Returns:
The return status
Status Codes:
bool objectDisplay ( M3dView::DisplayObjects  dispObjs,
MStatus ReturnStatus = NULL 
)

Test whether specific types of objects are to be displayed.

Parameters:
[in]dispObjsBit mask of object display flags to be tested.
[out]ReturnStatusStatus code.
Returns:
True if any of the object types specified by dispObjs are set to be displayed.
Status Codes:
MStatus setBackfaceCulling ( bool  culling)

Sets backface culling.

Parameters:
[in]cullingsets the backface culling state
Returns:
Status
Status Codes:
bool isBackfaceCulling ( MStatus ReturnStatus = NULL) const

Returns the state of backface culling.

Parameters:
[out]ReturnStatusreturn status
Returns:
true if backface culling is enabled.
Status Codes:
MStatus setWireframeOnShaded ( bool  onShaded)

Displays as wireframe on shaded.

Parameters:
[in]onShadedsets the wireframe on shaded state
Returns:
Status
Status Codes:
bool isWireframeOnShaded ( MStatus ReturnStatus = NULL) const

Returns the state of wireframe on shaded.

Parameters:
[out]ReturnStatusreturn status
Returns:
true if backface onShaded is enabled.
Status Codes:
MStatus setXrayEnabled ( bool  xray)

Sets xray display state.

Parameters:
[in]xraysets the xray display state
Returns:
Status
Status Codes:
bool isXrayEnabled ( MStatus ReturnStatus = NULL) const

Returns the state of xray display.

Parameters:
[out]ReturnStatusreturn status
Returns:
true if xray is enabled.
Status Codes:
MStatus setTextureDisplayEnabled ( bool  textureDisplay)

Enables texture display.

Parameters:
[in]textureDisplaysets the texture display state
Returns:
Status
Status Codes:
bool isTextureDisplayEnabled ( MStatus ReturnStatus = NULL) const

Returns the enable state of texture display.

Parameters:
[out]ReturnStatusreturn status
Returns:
true if texture display is enabled.
Status Codes:
MStatus setTwoSidedLighting ( bool  twoSided)

Enables two sided lighting.

Parameters:
[in]twoSidedsets the two sided lighting state
Returns:
Status
Status Codes:
bool isTwoSidedLighting ( MStatus ReturnStatus = NULL) const

Returns the state of two sided lighting.

Parameters:
[out]ReturnStatusreturn status
Returns:
true if two sided lighting is enabled.
Status Codes:
MStatus setLightingMode ( MPx3dModelView::LightingMode  lightingMode)

Sets the lighting mode.

Parameters:
[in]lightingModesets the lighting mode
Returns:
Status
Status Codes:
MPx3dModelView::LightingMode lightingMode ( MStatus ReturnStatus = NULL) const

Returns the lighting mode.

Parameters:
[out]ReturnStatusreturn status
Returns:
The lighting mode.
Status Codes:
MStatus 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]statetrue is fog should be on.
Returns:
Status
Status Codes:
bool isFogEnabled ( MStatus ReturnStatus = NULL) const

Returns true if fog is enabled.

Parameters:
[out]ReturnStatusstatus
Returns:
true is fog is enabled.
Status Codes:
MPx3dModelView::FogSource fogSource ( MStatus ReturnStatus = NULL) const

Returns the algorithm used to compute fog.

See MPx3dModelView::setFogSource for a description.

Parameters:
[out]ReturnStatusstatus
Returns:
The algorithm used to compute fog.
Status Codes:
MStatus 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]sourceThe type of algorithm to use.
Returns:
Status
Status Codes:
MPx3dModelView::FogMode 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]ReturnStatusstatus
Returns:
The type of drop off used with fog.
Status Codes:
MStatus 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]modeThe type of drop off to use with fog.
Returns:
Status
Status Codes:
double fogDensity ( MStatus ReturnStatus = NULL) const

Returns the fog density.

Parameters:
[out]ReturnStatusstatus
Returns:
The fog density.
Status Codes:
MStatus 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 fogStart ( MStatus ReturnStatus = NULL) const

Returns the fog start position.

Parameters:
[out]ReturnStatusstatus
Returns:
The fog start position.
Status Codes:
MStatus 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 fogEnd ( MStatus ReturnStatus = NULL) const

Returns the fog end position.

Parameters:
[out]ReturnStatusstatus
Returns:
The fog end location.
Status Codes:
MStatus 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 fogColor ( MStatus ReturnStatus = NULL) const

Returns the fog color.

Parameters:
[out]ReturnStatusstatus
Returns:
The fog color.
Status Codes:
MStatus setFogColor ( const MColor color)

Sets the color used for hardware fogging.

Parameters:
[in]colorThe color used by hardware fogging.
Returns:
Status
Status Codes:
bool isBackgroundFogEnabled ( MStatus ReturnStatus = NULL) const

Returns true if the background fog is enabled.

Parameters:
[out]ReturnStatusstatus
Returns:
true, if the background fog is enabled, otherwise false.
Status Codes:
MStatus setBackgroundFogEnabled ( bool  state)

Enables and disables background fog.

Parameters:
[in]statetrue if background fog should be enabled.
Returns:
Status
Status Codes:
MString 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]ReturnStatusthe return status
Returns:
The prefix.
Status Codes:
MStatus 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]prefixThe prefix to use.
Returns:
Status
Status Codes:
bool viewSelected ( MStatus ReturnStatus = NULL) const

Returns the state of view selected for this view.

Parameters:
[out]ReturnStatusreturn status
Returns:
true if view selected is enabled.
Status Codes:
MStatus setViewSelected ( bool  enable)

Enables the view selected mode.

Parameters:
[in]enableenable or disable view selected mode.
Returns:
Status
Status Codes:
MObject 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]ReturnStatusreturn status
Returns:
The MObject
Status Codes:
MStatus setViewSelectedSet ( const MObject set)

Sets the list of objects used by view selected as an object set.

View selected must be turned on for this to have an effect.

Parameters:
[in]setThe object set to be used by view selected.
Returns:
Return status
Status Codes:
MStatus getObjectsToView ( MSelectionList list) const

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

Parameters:
[out]listThe list of objects used by view selected.
Returns:
Return status
Status Codes:
MStatus 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]listThe objects to view with view selected.
Returns:
Return status
Status Codes:
bool viewIsFiltered ( MStatus ReturnStatus = NULL) const

Returns the state of view filtering for this view.

This includes both view selected state and additional object list filters.

Parameters:
[out]ReturnStatusreturn status
Returns:
True if the view is filtered.
Status Codes:
MStatus filteredObjectList ( MSelectionList list) const

Returns a selection list containing all of the objects that remain after filtering is applied to the view.

Parameters:
[out]listThe list of objects left after filtering.
Returns:
Return status
Status Codes:
bool 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 getAsM3dView ( M3dView view)

Get this MPx3dModelView as a M3dView.

Parameters:
[in]viewThe M3dView to set as this MPx3dModelView
Returns:
Return status
Status Codes:
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]nameThe name to find
[out]ReturnStatusthe return status
Returns:
A pointer to the MPx3dModelView.
Status Codes:
bool 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 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]flagFlag telling if drawing in stereo mode.
Status Codes:
bool requestOkForDraw ( const MDrawRequest request) [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 excluding types of material from the draw loop.

Parameters:
[in]requestA MDrawRequest of the object that may be drawn.
Returns:
true if it is OK to draw the passed object.
const char * className ( ) [static]

Returns the name of this class.

Returns:
The name of this class.
Examples:
narrowPolyViewer.h.

MPx3dModelView MPx3dModelView MPx3dModelView MPx3dModelView MPx3dModelView MPx3dModelView MPx3dModelView MPx3dModelView MPx3dModelView MPx3dModelView
MPx3dModelView MPx3dModelView MPx3dModelView MPx3dModelView MPx3dModelView MPx3dModelView MPx3dModelView MPx3dModelView MPx3dModelView MPx3dModelView