Initial commit
This commit is contained in:
352
Torque/SDK/lib/mayamacsdk5/include/maya/MPx3dModelView.h
Normal file
352
Torque/SDK/lib/mayamacsdk5/include/maya/MPx3dModelView.h
Normal file
@@ -0,0 +1,352 @@
|
||||
#ifndef _MPx3dModelView
|
||||
#define _MPx3dModelView
|
||||
//
|
||||
// Class: MPx3dModelView
|
||||
// Original Author: Chon Torres
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//-
|
||||
// ==========================================================================
|
||||
// Copyright (C) Alias|Wavefront, a division of Silicon Graphics Limited.
|
||||
// All rights reserved. These coded instructions, statements and computer
|
||||
// programs contain unpublished information proprietary to Alias|Wavefront,
|
||||
// a division of Silicon Graphics Limited, which is protected by the
|
||||
// Canadian and US federal copyright law and may not be disclosed to third
|
||||
// parties or copied or duplicated, in whole or in part, without prior
|
||||
// written consent of Alias|Wavefront, a division of Silicon Graphics Limited
|
||||
// ==========================================================================
|
||||
//+
|
||||
|
||||
#if defined __cplusplus
|
||||
|
||||
// INCLUDED HEADER FILES
|
||||
|
||||
#include <maya/MStatus.h>
|
||||
#include <maya/MTypes.h>
|
||||
#include <maya/M3dView.h>
|
||||
|
||||
// DECLARATIONS
|
||||
|
||||
// CLASS DECLARATION (MPx3dModelView)
|
||||
|
||||
class MDagPath;
|
||||
class MSelectionList;
|
||||
|
||||
/// 3d Model View (MPx3dModelView)
|
||||
/**
|
||||
Class for creating custom model views
|
||||
*/
|
||||
|
||||
class OPENMAYAUI_EXPORT MPx3dModelView {
|
||||
public:
|
||||
///
|
||||
enum LightingMode {
|
||||
///
|
||||
kLightAll,
|
||||
///
|
||||
kLightSelected,
|
||||
///
|
||||
kLightActive,
|
||||
///
|
||||
kLightDefault,
|
||||
///
|
||||
kLightNone,
|
||||
///
|
||||
kLightQuality
|
||||
};
|
||||
///
|
||||
enum FogSource {
|
||||
/// fog is computed per pixel (default)
|
||||
kFogFragment,
|
||||
/// fog is computed by specified vertex fog coordinates
|
||||
kFogCoordinate
|
||||
};
|
||||
///
|
||||
enum FogMode {
|
||||
/// linear drop off
|
||||
kFogLinear,
|
||||
/// exponential drop-off
|
||||
kFogExponential,
|
||||
/// squared exponential drop-off
|
||||
kFogExponentialSquared
|
||||
};
|
||||
|
||||
///
|
||||
MPx3dModelView();
|
||||
///
|
||||
virtual ~MPx3dModelView();
|
||||
|
||||
///
|
||||
MString name(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
virtual MString viewType() const;
|
||||
///
|
||||
virtual void preMultipleDraw();
|
||||
///
|
||||
virtual void postMultipleDraw();
|
||||
///
|
||||
virtual void preMultipleDrawPass(unsigned index);
|
||||
///
|
||||
virtual void postMultipleDrawPass(unsigned index);
|
||||
///
|
||||
virtual bool okForMultipleDraw(const MDagPath &);
|
||||
///
|
||||
virtual unsigned multipleDrawPassCount();
|
||||
///
|
||||
bool multipleDrawEnabled() const;
|
||||
///
|
||||
void setMultipleDrawEnable(bool enable);
|
||||
///
|
||||
MStatus updateViewingParameters();
|
||||
|
||||
///
|
||||
virtual void removingCamera(MDagPath &cameraPath);
|
||||
|
||||
///
|
||||
MStatus refresh(bool all = false, bool force = false);
|
||||
|
||||
// Text methods
|
||||
//
|
||||
///
|
||||
MStatus drawText(const MString &text, const MPoint position,
|
||||
M3dView::TextPosition textPosition
|
||||
= M3dView::kLeft);
|
||||
|
||||
//
|
||||
// OpenGL wrapper methods
|
||||
//
|
||||
///
|
||||
MStatus beginGL();
|
||||
///
|
||||
MStatus endGL();
|
||||
|
||||
// Camera methods
|
||||
//
|
||||
///
|
||||
MStatus setCameraInDraw(MDagPath & camera);
|
||||
///
|
||||
MStatus setCamera(MDagPath & camera);
|
||||
///
|
||||
MStatus getCamera(MDagPath & camera);
|
||||
|
||||
// Heads Up Display Methods
|
||||
//
|
||||
///
|
||||
virtual MString getCameraHUDName();
|
||||
///
|
||||
MStatus setDisplayHUD(bool display);
|
||||
///
|
||||
bool displayHUD(MStatus *ReturnStatus = NULL) const;
|
||||
|
||||
///
|
||||
MStatus setDisplayAxis(bool display);
|
||||
///
|
||||
bool displayAxisOn(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
MStatus setDisplayAxisAtOrigin(bool display);
|
||||
///
|
||||
bool displayAxisAtOriginOn(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
MStatus setDisplayCameraAnnotation(bool display);
|
||||
///
|
||||
bool displayCameraAnnotationOn(MStatus *ReturnStatus = NULL) const;
|
||||
|
||||
///
|
||||
bool isVisible(MStatus *ReturnStatus = NULL) const;
|
||||
|
||||
// Display style methods
|
||||
//
|
||||
///
|
||||
M3dView::DisplayStyle displayStyle(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
bool isShadeActiveOnly(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
MStatus setDisplayStyle(M3dView::DisplayStyle style,
|
||||
bool activeOnly = false);
|
||||
|
||||
///
|
||||
int portWidth( MStatus * ReturnStatus = NULL );
|
||||
///
|
||||
int portHeight( MStatus * ReturnStatus = NULL );
|
||||
|
||||
// Overlay plane methods
|
||||
//
|
||||
|
||||
///
|
||||
MStatus beginOverlayDrawing();
|
||||
///
|
||||
MStatus endOverlayDrawing();
|
||||
///
|
||||
MStatus clearOverlayPlane();
|
||||
|
||||
// Color methods
|
||||
//
|
||||
|
||||
///
|
||||
MStatus setDrawColor(unsigned index,
|
||||
M3dView::ColorTable table = M3dView::kActiveColors );
|
||||
///
|
||||
MStatus setDrawColor(const MColor & color);
|
||||
|
||||
///
|
||||
bool isColorIndexMode(MStatus * ReturnStatus = NULL);
|
||||
///
|
||||
MStatus setColorIndexMode(bool state);
|
||||
///
|
||||
unsigned numDormantColors(MStatus * ReturnStatus = NULL );
|
||||
///
|
||||
unsigned numActiveColors(MStatus * ReturnStatus = NULL );
|
||||
///
|
||||
unsigned numUserDefinedColors(MStatus * ReturnStatus = NULL);
|
||||
|
||||
///
|
||||
MStatus setUserDefinedColor(unsigned index, const MColor & color);
|
||||
///
|
||||
unsigned userDefinedColorIndex(unsigned index,
|
||||
MStatus * ReturnStatus = NULL );
|
||||
|
||||
///
|
||||
MColor templateColor(MStatus * ReturnStatus = NULL);
|
||||
///
|
||||
MColor backgroundColor(MStatus * ReturnStatus = NULL);
|
||||
|
||||
///
|
||||
MColor colorAtIndex(unsigned index, M3dView::ColorTable table
|
||||
= M3dView::kActiveColors,
|
||||
MStatus * ReturnStatus = NULL);
|
||||
///
|
||||
MStatus getColorIndexAndTable(unsigned glindex, unsigned &index,
|
||||
M3dView::ColorTable &table ) const;
|
||||
|
||||
|
||||
// Transformation methods
|
||||
//
|
||||
|
||||
///
|
||||
MStatus viewToWorld(short x_pos, short y_pos,
|
||||
MPoint & worldPt, MVector & worldVector ) const;
|
||||
///
|
||||
MStatus viewToWorld(short x_pos, short y_pos,
|
||||
MPoint & nearClipPt, MPoint & farClipPt ) const;
|
||||
///
|
||||
MStatus viewToObjectSpace(short x_pos, short y_pos,
|
||||
const MMatrix & localMatrixInverse,
|
||||
MPoint & oPt, MVector & oVector ) const;
|
||||
///
|
||||
bool worldToView(const MPoint& worldPt,
|
||||
short& x_pos, short& y_pos,
|
||||
MStatus * ReturnStatus = NULL ) const;
|
||||
|
||||
// Exclude/display flags
|
||||
//
|
||||
///
|
||||
MStatus setObjectDisplay(M3dView::DisplayObjects, bool);
|
||||
///
|
||||
bool objectDisplay(M3dView::DisplayObjects,
|
||||
MStatus *ReturnStatus = NULL);
|
||||
// Culling flags
|
||||
//
|
||||
///
|
||||
MStatus setBackfaceCulling(bool cull);
|
||||
///
|
||||
bool isBackfaceCulling(MStatus *ReturnStatus = NULL) const;
|
||||
|
||||
// texture/display flags
|
||||
//
|
||||
///
|
||||
MStatus setWireframeOnShaded(bool on);
|
||||
///
|
||||
bool isWireframeOnShaded(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
MStatus setXrayEnabled(bool xray);
|
||||
///
|
||||
bool isXrayEnabled(MStatus *ReturnStatus = NULL) const;
|
||||
|
||||
///
|
||||
MStatus setTextureDisplayEnabled(bool texture);
|
||||
///
|
||||
bool isTextureDisplayEnabled(MStatus *ReturnStatus = NULL) const;
|
||||
|
||||
// Lighting flags
|
||||
///
|
||||
MStatus setTwoSidedLighting(bool twoSided);
|
||||
///
|
||||
bool isTwoSidedLighting(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
MStatus setLightingMode(MPx3dModelView::LightingMode);
|
||||
///
|
||||
MPx3dModelView::LightingMode lightingMode(MStatus *ReturnStatus = NULL) const;
|
||||
|
||||
// Fog
|
||||
///
|
||||
MStatus setFogEnabled(bool state);
|
||||
///
|
||||
bool isFogEnabled(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
MPx3dModelView::FogSource fogSource(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
MStatus setFogSource(MPx3dModelView::FogSource);
|
||||
///
|
||||
MPx3dModelView::FogMode fogMode(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
MStatus setFogMode(MPx3dModelView::FogMode);
|
||||
///
|
||||
double fogDensity(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
MStatus setFogDensity(double);
|
||||
///
|
||||
double fogStart(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
MStatus setFogStart(double);
|
||||
///
|
||||
double fogEnd(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
MStatus setFogEnd(double);
|
||||
///
|
||||
MColor fogColor(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
MStatus setFogColor(const MColor &);
|
||||
///
|
||||
bool isBackgroundFogEnabled(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
MStatus setBackgroundFogEnabled(bool enable);
|
||||
|
||||
|
||||
// View Selected
|
||||
///
|
||||
MString viewSelectedPrefix(MStatus *ReturnStatus) const;
|
||||
///
|
||||
MStatus setViewSelectedPrefix(MString &prefix);
|
||||
///
|
||||
bool viewSelected(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
MStatus setViewSelected(bool viewSelected);
|
||||
|
||||
///
|
||||
MObject viewSelectedSet(MStatus *ReturnStatus = NULL) const;
|
||||
///
|
||||
MStatus setViewSelectedSet(MObject &set);
|
||||
|
||||
///
|
||||
MStatus getObjectsToView(MSelectionList &list) const;
|
||||
///
|
||||
MStatus setObjectsToView(const MSelectionList &list);
|
||||
|
||||
///
|
||||
MStatus getAsM3dView(M3dView &view);
|
||||
///
|
||||
static MPx3dModelView* getModelView(MString &name,
|
||||
MStatus *ReturnStatus = NULL);
|
||||
protected:
|
||||
private:
|
||||
static const char* className();
|
||||
void setData(void *ptr);
|
||||
void setModelEditorData(void *ptr);
|
||||
void * instance;
|
||||
void * panelData;
|
||||
};
|
||||
|
||||
// *****************************************************************************
|
||||
#endif /* __cplusplus */
|
||||
#endif /* _MPx3dModelView */
|
||||
Reference in New Issue
Block a user