This reference page is linked to from the following overview topics: Overview of hardware shading node plug-ins.
A 3-D view.
M3dView provides methods for working with 3D model views. 3D views are based on OpenGL drawing areas.
Maya can operate in two different color modes, RGBA and color index. Color index mode is used to increase performance when shading is not required. Drawing in color index mode is more complicated, but this class provides methods to simplify color selection.
Maya has four color tables that can be used in RGBA, and that must be used in color index mode. These four color tables represent four sets of bit planes that are independent of each other. So, for example, it is possible to clear all active objects from the display and redraw them without redrawing the dormant and templated objects. The active and dormant color tables contain the same colors, but use different bitplanes.
The extra performance of color index mode comes at the cost of a limited number of colors. If this restriction causes difficulty, then it is possible for the user to force all displays into RGBA mode where any color may be used.
When an object is affected by another in the scene, it is drawn in a magenta colour by default. This is denoted in the DisplayStatus enum by kActiveAffected. These objects are drawn in the active planes even though they are dormant for performance reasons.
apiMeshShapeUI.cpp, apiMeshShapeUI.h, apiSimpleShapeUI.cpp, apiSimpleShapeUI.h, blindDataShader.cpp, blindDataShader.h, cgfxShaderCmd.cpp, componentScaleManip.cpp, curvedArrowsNode.cpp, customAttrManip.cpp, cvColorNode.cpp, footPrintManip.cpp, footPrintNode.cpp, helixTool.cpp, hwAnisotropicShader_NV20.cpp, hwAnisotropicShader_NV20.h, hwColorPerVertexShader.cpp, hwDecalBumpShader_NV20.cpp, hwDecalBumpShader_NV20.h, hwPhongShader.cpp, hwPhongShader.h, hwReflectBumpShader_NV20.cpp, hwReflectBumpShader_NV20.h, hwRefractReflectShader_NV20.cpp, hwRefractReflectShader_NV20.h, hwToonShader_NV20.cpp, hwToonShader_NV20.h, hwUnlitShader.cpp, hwUnlitShader.h, lassoTool.cpp, lineManip.cpp, lineManip.h, lineManipContainer.cpp, lineManipContainer.h, marqueeTool.cpp, moveManip.cpp, moveNumericTool.cpp, moveTool.cpp, pnTrianglesNode.cpp, pnTrianglesNode.h, quadricShape.cpp, renderViewRenderCmd.cpp, renderViewRenderRegionCmd.cpp, rotateManip.cpp, simpleEmitter.cpp, simpleEmitter.h, squareScaleManip.cpp, squareScaleManip.h, squareScaleManipContext.cpp, squareScaleManipContext.h, surfaceBumpManip.cpp, swissArmyManip.cpp, torusField.cpp, torusField.h, viewCallbackTest.cpp, and viewCaptureCmd.cpp.
#include <M3dView.h>
Public Types |
|
enum | DisplayStyle
{ kBoundingBox, kFlatShaded, kGouraudShaded, kWireFrame, kPoints } |
Display styles for a 3D view. More... |
|
enum | DisplayStatus
{ kActive, kLive, kDormant, kInvisible, kHilite, kTemplate, kActiveTemplate, kActiveComponent, kLead, kIntermediateObject, kActiveAffected, kNoStatus } |
Drawing modes for individual objects. More... |
|
enum | ColorTable { kActiveColors = kActive, kDormantColors = kDormant, kTemplateColor = kTemplate, kBackgroundColor } |
Reference to color palettes. More... |
|
enum | TextPosition { kLeft, kCenter, kRight } |
Alignment values when drawing text. More... |
|
enum | DisplayObjects
{ kDisplayEverything = ~0, kDisplayNurbsCurves = 1 << 0, kDisplayNurbsSurfaces = 1 << 1, kDisplayMeshes = 1 << 2, kDisplayPlanes = 1 << 3, kDisplayLights = 1 << 4, kDisplayCameras = 1 << 5, kDisplayJoints = 1 << 6, kDisplayIkHandles = 1 << 7, kDisplayDeformers = 1 << 8, kDisplayDynamics = 1 << 9, kDisplayLocators = 1 << 10, kDisplayDimensions = 1 << 11, kDisplaySelectHandles = 1 << 12, kDisplayPivots = 1 << 13, kDisplayTextures = 1 << 14, kDisplayGrid = 1 << 15, kDisplayCVs = 1 << 16, kDisplayHulls = 1 << 17, kDisplayStrokes = 1 << 18, kDisplaySubdivSurfaces = 1 << 19, kDisplayFluids = 1 << 20, kDisplayFollicles = 1 << 21, kDisplayHairSystems = 1 << 22, kDisplayImagePlane = 1 << 23, kDisplayNCloths = 1 << 24, kDisplayNRigids = 1 << 25, kDisplayDynamicConstraints = 1 << 26, kDisplayManipulators = 1 << 27, kDisplayNParticles = 1 << 28 } |
Display modes Bit masks used in combination with the return value of the dirtyMask() method to determine which portions of the geometry are dirty. More... |
|
enum | LightingMode { kLightAll, kLightSelected, kLightActive, kLightDefault } |
Lighting mode used in this 3D view. More... |
|
enum | RendererName { kDefaultQualityRenderer, kHighQualityRenderer, kExternalRenderer } |
Current hardware rendergn engine used in this view. More... |
|
enum | DepthBufferFormat { kDepth_8 = 0, kDepth_Float } |
Possible depth buffer formats to read into. More... |
|
enum | LineStipplePattern { kStippleNone, kStippleDashed } |
Line stipple pattern. More... |
|
Public Member Functions |
|
MGLContext | display (MStatus *ReturnStatus=NULL) |
Mac OS X and Windows. |
|
void | getScreenPosition (int &x, int &y, MStatus *ReturnStatus=NULL) const |
Returns the current position of this view
window in screen coordinates. |
|
QWidget * | widget (MStatus *ReturnStatus=NULL) const |
Returns the view's Qt widget. |
|
MNativeWindowHdl | window (MStatus *ReturnStatus=NULL) |
Returns the native window 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 | pushViewport (unsigned int x, unsigned int y, unsigned int width, unsigned int height) |
Set the current viewport dimensions.
|
|
MStatus | popViewport () |
Pop the current viewport off of the viewport
stack. |
|
MStatus | viewport (unsigned int &x, unsigned int &y, unsigned int &width, unsigned int &height) const |
Get the current viewport dimensions.
|
|
MStatus | beginGL () |
Setup port for native OpenGL drawing calls.
|
|
MStatus | endGL () |
End OpenGL drawing. |
|
void | beginSelect (GLuint *buffer=NULL, GLsizei size=0) |
Start selecting. |
|
GLint | endSelect () |
Finish a selection sequence. |
|
bool | selectMode () const |
Tells if this M3dView is in
selection mode. |
|
bool | textureMode () const |
Tells if this M3dView is in texture
mode. |
|
void | loadName (GLuint name) |
Replace the top of the name stack with the
given name. |
|
void | pushName (GLuint name) |
Push a new name on the name stack. |
|
void | popName () |
Removes the top of the name stack. |
|
void | initNames () |
Reset the name stack. |
|
MStatus | beginXorDrawing (bool drawOrthographic=true, bool disableDepthTesting=true, float lineWidth=1.0f, LineStipplePattern stipplePattern=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, ColorTable table=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. |
|
MColor | templateColor (MStatus *ReturnStatus=NULL) |
Returns the RGB values of the template
color. |
|
MColor | backgroundColor (MStatus *ReturnStatus=NULL) |
Returns the RGB values of the active
template color. |
|
MColor | colorAtIndex (unsigned int index, ColorTable table=kActiveColors, MStatus *ReturnStatus=NULL) |
Returns the RGB values of the color at the
given index in the application's color table. |
|
MStatus | getColorIndexAndTable (unsigned int glindex, unsigned int &index, ColorTable &table) const |
Returns the color table and index
representing the given OpenGL color-index value. |
|
MStatus | colorMask (bool &r, bool &g, bool &b, bool &a) |
Get the current color mask. |
|
MStatus | setColorMask (bool r, bool g, bool b, bool a) |
Set the current color mask. |
|
MStatus | drawText (const MString &text, const MPoint position, TextPosition textPosition=kLeft) |
Draws the given text at the given spot in
the default font. |
|
MStatus | getCamera (MDagPath &camera) |
Get the camera for this view. |
|
MStatus | setCamera (MDagPath &camera) |
Set the camera for this view. |
|
MStatus | refresh (bool all=false, bool force=false) |
Refresh the this view. |
|
MStatus | refresh (bool all, bool force, bool offscreen) |
Refresh the this view. |
|
MStatus | refresh (MPxGlBuffer &buffer) |
Refresh the this view into the GL buffer
buffer. |
|
MStatus | refresh (MPxGlBuffer &buffer, bool offscreen) |
Refresh the this view into the GL buffer
buffer. |
|
MStatus | refresh (MPxGlBuffer &buffer, bool offscreen, const MMatrix &projectionMatrix) |
Refresh the this view into the GL buffer
buffer. |
|
MStatus | getLightCount (unsigned int &count, bool visible=true) |
Get the number of lights for the view.
|
|
MStatus | getLightingMode (LightingMode &mode) |
Get the current lighting mode for the view.
|
|
MStatus | getLightPath (unsigned int lightNumber, MDagPath &light) |
Get the path to a certain light. |
|
MStatus | isLightVisible (unsigned int lightNumber, bool &visible) |
Find out if a light is visible in the view.
|
|
MStatus | getLightIndex (unsigned int lightNumber, unsigned int &lightIndex) |
Get the internal light index for a given
light number. |
|
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 | projectionMatrix (MMatrix &projectionMatrix) const |
Returns the projection matrix currently
being used by OpenGL in the current view. |
|
MStatus | modelViewMatrix (MMatrix &modelViewMatrix) const |
Returns the modelview matrix currently being
used by OpenGL in the current view. |
|
MString | viewSelectedPrefix (MStatus *ReturnStatus) const |
Returns the 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 | showViewSelectedChildren (MStatus *ReturnStatus) const |
Returns turn if view selected shows all of
the children of the obejcts that are flagged for view selected.
|
|
MStatus | setShowViewSelectedChildren (bool) |
This method changes the way that view
selected works. |
|
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 (DisplayStyle style, bool activeOnly=false) |
Sets the display style for this view.
|
|
MStatus | setObjectDisplay (unsigned int displayMask) |
Sets a display object mask that indicates
which object types are drawn in current view. |
|
unsigned int | objectDisplay (MStatus *ReturnStatus=NULL) |
Returns a display object mask that indicates
which object types are drawn in current view. |
|
RendererName | getRendererName (MStatus *ReturnStatus) const |
Get the name of the current renderer being
used for drawing to this view. |
|
MString | rendererString (MStatus *ReturnStatus=NULL) const |
Get the string name of the current renderer
being used for drawing to this view. |
|
bool | wireframeOnlyInShadedMode (MStatus *ReturnStatus) const |
Return whether we are in shaded mode, but
that only non shaded drawing should occur (wireframe). |
|
MStatus | readColorBuffer (MImage &image, bool readRGBA=false) |
Read the RGB values from the frame buffer
for a given view. |
|
MStatus | writeColorBuffer (const MImage &image, signed short x=0, signed short y=0) const |
Overwrite the RGB values for the frame
buffer for a given view. |
|
MStatus | readDepthMap (unsigned short x, unsigned short y, unsigned int width, unsigned int height, unsigned char *bufferPtr, DepthBufferFormat depthMapPrecision) |
Read the depth values from the frame buffer
for a given view. |
|
MStatus | readBufferTo2dTexture (unsigned short x, unsigned short y, unsigned int width, unsigned int height) |
Read the depth values from the frame buffer
for a given view into a predefined OpenGL 2d texture. |
|
bool | usingMipmappedTextures () const |
Returns if the view is using mipmapped
texture display. |
|
bool | usingDefaultMaterial () const |
Returns true if the view is currently
displaying objects using the default material. |
|
MStatus | updateViewingParameters () |
This method tells the camera to set the
view's transformation matrix. |
|
bool | multipleDrawEnabled () const |
This method returns the multiple draw enable
state for this view. |
|
void | setMultipleDrawEnable (bool enable) |
This method enables/disables multiple camera
drawing for this view. |
|
unsigned | multipleDrawPassCount () |
This method returns the number of multiple
draw passes that are going to be made. |
|
void | setMultipleDrawPassCount (unsigned count) |
This method sets the number of multiple draw
passes when multiple draw is enabled. |
|
MStatus | beginProjMatrixOverride (MMatrix &projectionMatrix) |
Begin overriding the projection matrix used
in openGL drawing. |
|
MStatus | endProjMatrixOverride () |
End projection matrix override enabled by
beginProjMatrixOverride().
|
|
MStatus | setRenderOverrideName (MString &name) |
Set the name of a render override (MHWRender::MRenderOverride)
to use. |
|
MString | renderOverrideName (MStatus *ReturnStatus=NULL) const |
Get the current render override name.
|
|
MStatus | setObjectListFilterName (MString &name) |
Note: This method is not yet implemented and
is intended to be used in a future version of Maya. |
|
MString | objectListFilterName (MStatus *ReturnStatus=NULL) const |
Note: This method is not yet implemented and
is intended to be used in a future version of Maya. |
|
MStatus | getRendererString (MString &stringName) const |
NO SCRIPT SUPPORT. |
|
Static Public Member Functions |
|
static M3dView | active3dView (MStatus *ReturnStatus=NULL) |
Returns the active view in the form of a
class (M3dView) that can operate on it. |
|
static unsigned int | numberOf3dViews () |
Returns the number of 3D views currently in
existance. |
|
static MStatus | get3dView (const unsigned int index, M3dView &view) |
Returns the 3D view at the given index.
|
|
static MNativeWindowHdl | applicationShell (MStatus *ReturnStatus=NULL) |
Returns the native handle for Maya's main
window. |
|
static MStatus | getM3dViewFromModelPanel (const MString &modelPaneName, M3dView &view) |
Given the name of a model panel, get the
M3dView used by that panel. |
|
static MStatus | getM3dViewFromModelEditor (const MString &modelPaneName, M3dView &view) |
Given the name of a model editor, get the
M3dView used by that editor. |
|
static const char * | className () |
Returns the name of this class. |
enum DisplayStyle |
Display styles for a 3D view.
enum DisplayStatus |
Drawing modes for individual objects.
enum ColorTable |
Reference to color palettes.
enum TextPosition |
Alignment values when drawing text.
enum DisplayObjects |
Display modes Bit masks used in combination with the return value of the dirtyMask() method to determine which portions of the geometry are dirty.
enum LightingMode |
Lighting mode used in this 3D view.
enum RendererName |
Current hardware rendergn engine used in this view.
enum DepthBufferFormat |
Possible depth buffer formats to read into.
enum LineStipplePattern |
Line stipple pattern.
Returns the active view in the form of a class (M3dView) that can operate on it.
[out] | ReturnStatus |
unsigned int numberOf3dViews | ( | ) | [static] |
Returns the number of 3D views currently in existance.
Returns the 3D view at the given index.
[in] | index | index of the view to get |
[out] | view | storage for the returned view |
MGLContext display | ( | MStatus * | ReturnStatus =
NULL |
) |
Mac OS X and Windows.
Returns the OpenGL context for this view.
[out] | ReturnStatus | Status Code |
MNativeWindowHdl applicationShell | ( | MStatus * | ReturnStatus =
NULL |
) | [static] |
Returns the native handle for Maya's main window.
This is equivalent to MQtUtil::nativeWindow(MQtUtil::mainWindow()).
[out] | ReturnStatus | Status Code |
void getScreenPosition | ( | int & | x, |
int & | y, | ||
MStatus * | ReturnStatus =
NULL |
||
) | const |
Returns the current position of this view window in screen coordinates.
This is useful for finding out the exact location of the window as it appears on the screen. These values are in UI coordinate space so the y value increases from bottom to top.
[out] | x | - x coordinate of the upper-left corner of the view |
[out] | y | - y coordinate of the upper-left corner of the view |
[out] | ReturnStatus | Status Code |
QWidget * widget | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Returns the view's Qt widget.
[out] | ReturnStatus | Status Code |
MNativeWindowHdl window | ( | MStatus * | ReturnStatus =
NULL |
) |
Returns the native window for this view.
This is equivalent to MQtUtil::nativeWindow(view.widget()).
[out] | ReturnStatus | Status Code |
int portWidth | ( | MStatus * | ReturnStatus =
NULL |
) |
Returns the width of the current viewport.
[out] | ReturnStatus | Status Code |
int portHeight | ( | MStatus * | ReturnStatus =
NULL |
) |
Returns the height of the current viewport.
[out] | ReturnStatus | Status Code |
MStatus pushViewport | ( | unsigned int | x, |
unsigned int | y, | ||
unsigned int | width, | ||
unsigned int | height | ||
) |
Set the current viewport dimensions.
Will keep track of the last viewport dimensions on a stack. When finished with this viewport, the current dimensions should be removed from the top of stack using M3dView::popViewport().
[in] | x | Lower left corner of viewport (x coordinate). |
[in] | y | Lower left corner of viewport (y coordinate). |
[in] | width | Width of the viewport. |
[in] | height | Height of the viewport. |
MStatus popViewport | ( | ) |
Pop the current viewport off of the viewport stack.
MStatus viewport | ( | unsigned int & | x, |
unsigned int & | y, | ||
unsigned int & | width, | ||
unsigned int & | height | ||
) | const |
Get the current viewport dimensions.
[out] | x | Lower left corner of viewport (x coordinate). |
[out] | y | Lower left corner of viewport (y coordinate). |
[out] | width | Width of the viewport. |
[out] | height | Height of the viewport. |
MStatus beginGL | ( | ) |
Setup port for native OpenGL drawing calls.
MStatus endGL | ( | ) |
End OpenGL drawing.
void beginSelect | ( | GLuint * | buffer = NULL , |
GLsizei | size = 0 |
||
) |
Start selecting.
The buffer passed is used to record selection hits. A selection hit consists of the following 4 items:
[in] | buffer | OpenGl pick buffer |
[in] | size | Buffer size (number of GLint) |
GLint endSelect | ( | ) |
Finish a selection sequence.
Result is stored in the buffer passed in the beginSelect call.
bool selectMode | ( | ) | const |
Tells if this M3dView is in selection mode.
bool textureMode | ( | ) | const |
Tells if this M3dView is in texture mode.
void loadName | ( | GLuint | name | ) |
Replace the top of the name stack with the given name.
Valid only when beginSelect() has been called.
[in] | name | Name to be loaded onto the top of the stack. |
void pushName | ( | GLuint | name | ) |
Push a new name on the name stack.
Valid only when beginSelect() has been called.
[in] | name | Name to be loaded onto the top of the stack. |
void popName | ( | ) |
Removes the top of the name stack.
Valid only when beginSelect() has been called.
void initNames | ( | ) |
MStatus beginXorDrawing | ( | bool | drawOrthographic =
true , |
bool | disableDepthTesting =
true , |
||
float | lineWidth = 1.0f , |
||
LineStipplePattern | stipplePattern =
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.
[in] | drawOrthographic | Draw using orthographic projection. Default is true. |
[in] | disableDepthTesting | Disable depth testing during draw. Default is true. |
[in] | lineWidth | Set up line width. Default is 1. |
[in] | stipplePattern | Line stipple pattern. Default is kStippleNone. |
[in] | lineColor | Line color. Default is white (1,1,1). |
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.
MStatus setDrawColor | ( | unsigned int | index, |
ColorTable | table =
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.
[in] | index | index of the color to draw in |
[in] | table | color table to index into |
Set the color to draw in.
This method should only be used in RGBA mode. It is a convenient replacement for glColor.
[in] | color | color to draw in |
unsigned int numDormantColors | ( | MStatus * | ReturnStatus =
NULL |
) |
Returns the number of dormant object colors in the internal application color table.
[out] | ReturnStatus | Status code |
unsigned int numActiveColors | ( | MStatus * | ReturnStatus =
NULL |
) |
Returns the number of active object colors in the internal application color table.
[out] | ReturnStatus | Status code |
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.
[out] | ReturnStatus | Status code |
Sets the user defined color at the given index.
Valid indices range between zero and the number of user defined colors.
[in] | index | index into the user defined color |
[in] | color | color to set to |
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).
[in] | index | Index into user-defined colors |
[out] | ReturnStatus | Status code |
Returns the RGB values of the template color.
[out] | ReturnStatus | Status code |
Returns the RGB values of the active template color.
[out] | ReturnStatus | Status code |
MColor colorAtIndex | ( | unsigned int | index, |
ColorTable | table =
kActiveColors , |
||
MStatus * | ReturnStatus =
NULL |
||
) |
Returns the RGB values of the color at the given index in the application's color table.
[in] | index | Index of the color to retrieve |
[in] | table | Table to index into |
[out] | ReturnStatus | Status code |
MStatus getColorIndexAndTable | ( | unsigned int | glindex, |
unsigned int & | index, | ||
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.
[in] | glindex | Value of the OpenGL color-index to retrieve |
[out] | index | Returned ColorTable index |
[out] | table | Returned ColorTable |
MStatus colorMask | ( | bool & | r, |
bool & | g, | ||
bool & | b, | ||
bool & | a | ||
) |
Get the current color mask.
[out] | r | Red color mask flag. |
[out] | g | Green color mask flag. |
[out] | b | Blue color mask flag. |
[out] | a | Alpha color mask flag. |
MStatus setColorMask | ( | bool | r, |
bool | g, | ||
bool | b, | ||
bool | a | ||
) |
Set the current color mask.
[in] | r | Red color mask flag. |
[in] | g | Green color mask flag. |
[in] | b | Blue color mask flag. |
[in] | a | Alpha color mask flag. |
MStatus drawText | ( | const MString & | text, |
const MPoint | position, | ||
M3dView::TextPosition | textPosition =
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.
[in] | text | Text to draw |
[in] | position | Position in space to draw at |
[in] | textPosition | Text position relative to the point |
Get the camera for this view.
[out] | camera | Dag path for the camera (allocated by caller) |
Set the camera for this view.
[in] | camera | Dag path of the camera for this view |
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.
[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. |
MStatus refresh | ( | bool | all, |
bool | force, | ||
bool | offscreen | ||
) |
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.
[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. |
[in] | offscreen | Should the buffer be redrawn if it's offscreen? |
MStatus refresh | ( | MPxGlBuffer & | buffer | ) |
Refresh the this view into the GL buffer buffer.
This refresh function always forces an update and always only draws the this view. The buffer argument should refer to a buffer that has been configured with the correct depth, color, z-buffer, etc. This configuration normally occurs in the constructor of the MPxGlBuffer and the behavior is undefined. If a buffer is configured for one view configuration and then is used for a different configuration. This may occur when Maya switches from wireframe to shaded mode since it also changes from color index to RGB mode.
If the MPxGlBuffer is double buffered, drawing always is done to the back buffer and swapping is left to the user.
[in] | buffer | The MPxGlBuffer in which to draw the view. |
MStatus refresh | ( | MPxGlBuffer & | buffer, |
bool | offscreen | ||
) |
Refresh the this view into the GL buffer buffer.
This refresh function always forces an update and always only draws the this view. The buffer argument should refer to a buffer that has been configured with the correct depth, color, z-buffer, etc. This configuration normally occurs in the constructor of the MPxGlBuffer and the behavior is undefined. If a buffer is configured for one view configuration and then is used for a different configuration. This may occur when Maya switches from wireframe to shaded mode since it also changes from color index to RGB mode.
[in] | buffer | The MPxGlBuffer in which to draw the view. |
[in] | offscreen | Should the buffer be redrawn if it's offscreen? |
MStatus refresh | ( | MPxGlBuffer & | buffer, |
bool | offscreen, | ||
const MMatrix & | projMatrix | ||
) |
Refresh the this view into the GL buffer buffer.
This refresh function always forces an update and always only draws the this view. The buffer argument should refer to a buffer that has been configured with the correct depth, color, z-buffer, etc. This configuration normally occurs in the constructor of the MPxGlBuffer and the behavior is undefined. If a buffer is configured for one view configuration and then is used for a different configuration. This may occur when Maya switches from wireframe to shaded mode since it also changes from color index to RGB mode.
[in] | buffer | The MPxGlBuffer in which to draw the view. |
[in] | offscreen | Should the buffer be redrawn if it's offscreen? |
[in] | projMatrix | Projection matrix to provide to openGL before drawing |
MStatus getLightCount | ( | unsigned int & | count, |
bool | visible =
true |
||
) |
Get the number of lights for the view.
[out] | count | The number of visible lights for the view. |
[in] | visible | Specify whether to count visible lights only. By Default this is set true. |
MStatus getLightingMode | ( | M3dView::LightingMode & | mode | ) |
Get the current lighting mode for the view.
[out] | mode | The lighting mode for the view. |
Get the path to a certain light.
[in] | lightNumber | Number of the light interested in |
[out] | lightPath | Path to light. |
MStatus isLightVisible | ( | unsigned int | lightNumber, |
bool & | visible | ||
) |
Find out if a light is visible in the view.
[in] | lightNumber | The number of the light to check. |
[out] | visible | Whether the light is visible or not. |
MStatus getLightIndex | ( | unsigned int | lightNumber, |
unsigned int & | lightIndex | ||
) |
Get the internal light index for a given light number.
[in] | lightNumber | The number of the light to check. |
[out] | lightIndex | The internal light index (returned) |
Takes a point in port coordinates and returns a corresponding ray in world coordinates.
[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 |
Takes a point in port coordinates and returns a point on the near and far clipping planes.
[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 |
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.
[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 |
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.
[in] | worldPt | the point to world space |
[out] | x_pos | (returned) The x coordinate of the world point in port space. |
[out] | y_pos | (returned) The y coordinate of the world point in port space. |
[out] | ReturnStatus | Status code |
Returns the projection matrix currently being used by OpenGL in the current view.
[out] | projMat | A place to store the projection matrix |
Returns the modelview matrix currently being used by OpenGL in the current view.
[out] | modelViewMatrix | A place to store the modelview matrix |
Returns the Returns the prefix used when displaying the camera name in the heads up display when view selected in on.
[out] | ReturnStatus | the return status |
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: "
[in] | prefix | The prefix to use. |
bool showViewSelectedChildren | ( | MStatus * | ReturnStatus | ) | const |
Returns turn if view selected shows all of the children of the obejcts that are flagged for view selected.
[out] | ReturnStatus | The return status |
MStatus setShowViewSelectedChildren | ( | bool | show | ) |
This method changes the way that view selected works.
By default, view selected with show all of the children of the objects in the view selected set. If false is passed to this method, then only the obejcts in the view selected set and their shapes will be drawn.
[in] | show | true if all of the children of view selected objects should be displayed. true is the default behavior for view selected. |
Given the name of a model panel, get the M3dView used by that panel.
If this fails, then a panel with the given name could not be located.
[in] | name | The name of the model panel. |
[out] | view | The M3dView from the model panel. |
Given the name of a model editor, get the M3dView used by that editor.
If this fails, then a editor with the given name could not be located.
[in] | name | The name of the model editor. |
[out] | view | The M3dView from the model editor. |
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.
[out] | ReturnStatus | Status code |
bool isShadeActiveOnly | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Returns true if this view's display style is shaded for objects that are active and wireframe otherwise.
[out] | ReturnStatus | Status code |
MStatus setDisplayStyle | ( | DisplayStyle | style, |
bool | activeOnly =
false |
||
) |
Sets the display style for this view.
The display style can be wireframe, flat-shaded, or smooth-shaded.
[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. |
MStatus setObjectDisplay | ( | unsigned int | displayMask | ) |
Sets a display object mask that indicates which object types are drawn in current view.
By default every thing is displayed.
[in] | displayMask | The display object mask made with M3dView::DisplayObjects enum |
unsigned int objectDisplay | ( | MStatus * | ReturnStatus =
NULL |
) |
Returns a display object mask that indicates which object types are drawn in current view.
[out] | ReturnStatus | the return status |
M3dView::RendererName getRendererName | ( | MStatus * | ReturnStatus | ) | const |
Get the name of the current renderer being used for drawing to this view.
The current possible return values are:
kDefaultQualityRenderer : This is equivalent to when the renderer name is "base_OpenGL_Renderer" when queried from the "modelEditor" command kHighQualityRenderer : This is equivalent to when the renderer name is "hwRender_OpenGL_Renderer" when queried from the "modelEditor" command
Note that the latter is not supported on platforms running the IRIX operating system.
[out] | ReturnStatus | the return status |
Get the string name of the current renderer being used for drawing to this view.
[out] | ReturnStatus | Status code (see below) |
bool wireframeOnlyInShadedMode | ( | MStatus * | ReturnStatus | ) | const |
Return whether we are in shaded mode, but that only non shaded drawing should occur (wireframe).
In general it will return true only when the current renderer is "hwRender_OpenGL_Renderer". See the M3dView::getRendererString() method for more details.
[out] | ReturnStatus | the return status |
Read the RGB values from the frame buffer for a given view.
The buffer is read in a pixel format which is BGRA by default, such that each channel is one byte in size.
[in] | image | The image contains the frame buffer pixels. |
[in] | readRGBA | Read the image back in RGBA format. By default the format is BGRA. |
Overwrite the RGB values for the frame buffer for a given view.
Expected input is a block of RGBA, such that each channel is one byte in size.
[in] | image | The image containing the block of pixels to write |
[in] | x | The location in screen space of the lower left corner (X) of the image to write. The default value is 0. |
[in] | y | The location in screen space of the lower left corner (Y) of the image to write. The default value is 0. |
MStatus readDepthMap | ( | unsigned short | x, |
unsigned short | y, | ||
unsigned int | width, | ||
unsigned int | height, | ||
unsigned char * | bufferPtr, | ||
DepthBufferFormat | depthMapPrecision | ||
) |
Read the depth values from the frame buffer for a given view.
The buffer is read into a block of data as defined as an argument. The data block size must be large enough to accomodate ( view width * view height * depth map precision ) bytes of data.
[in] | x | Start position x to read. |
[in] | y | Start position y to read. |
[in] | width | Number of pixels in x to read. |
[in] | height | Number of pixels in y to read. |
[in] | bufferPtr | Pointer to depth data allocated by the caller. |
[in] | depthMapPrecision | Enumerated depth precision. |
MStatus readBufferTo2dTexture | ( | unsigned short | x, |
unsigned short | y, | ||
unsigned int | width, | ||
unsigned int | height | ||
) |
Read the depth values from the frame buffer for a given view into a predefined OpenGL 2d texture.
It is assumed that such a texture has been created and bound before making this call.
[in] | x | Start position x to read. |
[in] | y | Start position y to read. |
[in] | width | Number of pixels in x to read. |
[in] | height | Number of pixels in y to read. |
bool usingMipmappedTextures | ( | ) | const |
Returns if the view is using mipmapped texture display.
bool usingDefaultMaterial | ( | ) | const |
Returns true if the view is currently displaying objects using the default material.
MStatus updateViewingParameters | ( | ) |
This method tells the camera to set the view's transformation matrix.
bool multipleDrawEnabled | ( | ) | const |
This method returns the multiple draw enable state for this view.
void setMultipleDrawEnable | ( | bool | enable | ) |
This method enables/disables multiple camera drawing for this view.
If multiple draw is disabled, then this view will behave like a normal Maya view.
[in] | enable | If true, then multiple draw is enabled. |
unsigned multipleDrawPassCount | ( | ) |
This method returns the number of multiple draw passes that are going to be made.
By default a 1 is returned.
void setMultipleDrawPassCount | ( | unsigned | count | ) |
This method sets the number of multiple draw passes when multiple draw is enabled.
[in] | count | The number of multiple draw passes. |
NOTE: This method is designed to be used for default model view only, that means this method can not used in MPx3dModelView derived custom model view.
This method must be called in a pre-render callback that added by MUIMessage::add3dViewPreRenderMsgCallback().
By setting setMultipleDrawPassCount() in the pre-render callback, pre/post multiple draw pass callbacks that are added by MUIMessage::add3dViewPreMultipleDrawPassMsgCallback() and MUIMessage::add3dViewPreMultipleDrawPassMsgCallback() are called.
Note that setMultipleDrawPassCount value should be restored in the post-render callback that is added by MUIMessage::add3dViewPostRenderMsgCallback().
See following example code.
preRenderCB() { view.setMultipleDrawEnable( true ) view.setMultipleDrawPassCount( 2 ) }
preMultiplePassCB(0) draw() postMultiplePassCB(0)
preMultiplePassCB(1) draw() postMultiplePassCB(1)
postRenderCB() { view.setMultipleDrawEnable( false ) view.setMultipleDrawPassCount( 1 ) }
Begin overriding the projection matrix used in openGL drawing.
This override is enabled until endProjMatrixOverride() is called.
[in] | projectionMatrix | Projection matrix used in openGL drawing |
MStatus endProjMatrixOverride | ( | ) |
End projection matrix override enabled by beginProjMatrixOverride().
Set the name of a render override (MHWRender::MRenderOverride) to use.
The override must be registered before it can be used.
The override cannot be set unless the view is set to be using the Viewport 2.0 renderer.
If the override name is an empty string then the any existing override will be removed.
[in] | name | Name of the override. |
Get the current render override name.
If none then an empty string will be returned.
[out] | ReturnStatus | return status. |
Note: This method is not yet implemented and is intended to be used in a future version of Maya.
Set the name of a object list filter (MObjectListFilter) to use.
The filter must be registered before it can be used.
If the name is an empty string then any existing filter will be removed.
[in] | name | Name of the filter. |
Note: This method is not yet implemented and is intended to be used in a future version of Maya.
Get the current object list filter name. If none then an empty string will be returned.
[out] | ReturnStatus | return status. |
NO SCRIPT SUPPORT.
Get the string name of the current renderer being used for drawing to this view.
Python Notes
This method is not supported in Python. See the version which returns a string.
[out] | stringName | string name (returned). |
const char * className | ( | ) | [static] |