123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- //////////////////////////////////////////////////////////////////////////////
- //
- // Copyright 2015 Autodesk, Inc. All rights reserved.
- //
- // Use of this software is subject to the terms of the Autodesk license
- // agreement provided at the time of installation or download, or which
- // otherwise accompanies this software in either electronic or hard copy form.
- //
- //////////////////////////////////////////////////////////////////////////////
- //
- // Name: AcEdViewCube.h
- //
- // Description:
- //
- ///////////////////////////////////////////////////////////////////////////////
- #ifndef __ACEDVIEWCUBE_H__
- #define __ACEDVIEWCUBE_H__
- #pragma once
- class AcDbUcsPlane;
- class AcDbHomeView;
- class AcEdViewCube;
- class AcEdViewCubeReactor;
- ///////////////////////////////////////////////////////////////////////////////
- // Parts of the ViewCube
- //
- enum AcEdViewCubePart
- {
- FACE_FRONT = 0,
- FACE_BACK,
- FACE_BOTTOM,
- FACE_TOP,
- FACE_LEFT,
- FACE_RIGHT,
- EDGE_FRONT_BOTTOM,
- EDGE_FRONT_TOP,
- EDGE_BACK_BOTTOM,
- EDGE_BACK_TOP,
- EDGE_LEFT_BOTTOM,
- EDGE_RIGHT_BOTTOM,
- EDGE_LEFT_TOP,
- EDGE_RIGHT_TOP,
- EDGE_FRONT_LEFT,
- EDGE_BACK_LEFT,
- EDGE_FRONT_RIGHT,
- EDGE_BACK_RIGHT,
- CORNER_FRONT_LEFT_BOTTOM,
- CORNER_FRONT_RIGHT_BOTTOM,
- CORNER_FRONT_LEFT_TOP,
- CORNER_FRONT_RIGHT_TOP,
- CORNER_BACK_LEFT_BOTTOM,
- CORNER_BACK_RIGHT_BOTTOM,
- CORNER_BACK_LEFT_TOP,
- CORNER_BACK_RIGHT_TOP,
- ARROW_FRONT,
- ARROW_BACK,
- ARROW_BOTTOM,
- ARROW_TOP,
- ARROW_LEFT,
- ARROW_RIGHT,
- BUTTON_ROTATE_CCW,
- BUTTON_ROTATE_CW,
- BUTTON_HOME,
- BUTTON_LOCK,
- BUTTON_MENU,
- COMPASS_EAST,
- COMPASS_WEST,
- COMPASS_SOUTH,
- COMPASS_NORTH,
- COMPASS_RING
- };
- ///////////////////////////////////////////////////////////////////////////////
- // Create the ViewCube instance for a specify GS view
- //
- AcEdViewCube* acedCreateViewCube(AcGsView* pGsView);
- ///////////////////////////////////////////////////////////////////////////////
- // Destroy the ViewCube
- //
- void acedDestroyViewCube(AcEdViewCube* pCube);
- ///////////////////////////////////////////////////////////////////////////////
- // Interface AcEdViewCube
- //
- class AcEdViewCube
- {
- public:
- virtual AcGiDrawable* getDrawable () const = 0;
- virtual AcGsView* getView () const = 0;
- virtual AcGsModel* getModel () const = 0;
- virtual void redraw () const = 0;
- virtual bool isMouseInRegion () const = 0;
- virtual HWND getDeviceHandle () const = 0;
- virtual bool isVisible () const = 0;
- virtual bool isEnable () const = 0;
- virtual bool isOverride () const = 0;
- virtual int getLocation () const = 0;
- virtual int getSize () const = 0;
- virtual int getMinOpacity () const = 0;
- virtual int getTransitionDuration () const = 0;
- virtual bool getOrientToUCS () const = 0;
- virtual bool getDragSnap () const = 0;
- virtual bool getZoomToFitScene () const = 0;
- virtual bool getPreserveSceneUp () const = 0;
- virtual bool getDrawCompass () const = 0;
- virtual bool getDrawUCSMenu () const = 0;
- virtual bool getPerspWithOrtho () const = 0;
- virtual const AcDbHomeView& getHomeCamera () const = 0;
- virtual const AcGeVector3d& getSceneUpDirection () const = 0;
- virtual const AcGeVector3d& getSceneFrontDirection () const = 0;
- virtual const AcDbUcsPlane& getUCSPlane () const = 0;
- virtual void setDeviceHandle (HWND hDevice) = 0;
- virtual void setVisible (bool bVisible) = 0;
- virtual void setEnable (bool bEnable) = 0;
- virtual void setOverride (bool bOverride) = 0;
- virtual void setLocation (int nLocation) = 0;
- virtual void setSize (int nSize) = 0;
- virtual void setMinOpacity (int nMinOpacity) = 0;
- virtual void setTransitionDuration (int nTransitionDuration) = 0;
- virtual void setOrientToUCS (bool bOrientToUCS) = 0;
- virtual void setDragSnap (bool bDragSnap) = 0;
- virtual void setZoomToFitScene (bool bZoomToFitScene) = 0;
- virtual void setPreserveSceneUp (bool bPreserveSceneUp) = 0;
- virtual void setDrawCompass (bool bDrawCompass) = 0;
- virtual void setDrawUCSMenu (bool bDrawUCSMenu) = 0;
- virtual void setPerspWithOrtho (bool bPerspWithOrtho) = 0;
- virtual void setHomeCamera (const AcDbHomeView& home) = 0;
- virtual void setSceneUpDirection (const AcGeVector3d& up) = 0;
- virtual void setSceneFrontDirection (const AcGeVector3d& front) = 0;
- virtual void setUCSPlane (const AcDbUcsPlane& ucs) = 0;
- virtual void onLButtonDown (UINT nFlags, POINT pt) = 0;
- virtual void onLButtonUp (UINT nFlags, POINT pt) = 0;
- virtual void onMouseMove (UINT nFlags, POINT pt) = 0;
- virtual bool attachView (AcGsView* pGsView) = 0;
- virtual AcGsView* detachView () = 0;
- virtual void addReactor (AcEdViewCubeReactor* pReactor) = 0;
- virtual void removeReactor (AcEdViewCubeReactor* pReactor) = 0;
- virtual void goToHomeView () = 0;
- virtual AcEdViewCubePart getActivePart () const = 0;
- };
- ///////////////////////////////////////////////////////////////////////////////
- // Interface AcEdViewCubeReactor
- //
- class AcEdViewCubeReactor
- {
- public:
- virtual void onClicked (AcEdViewCube* pCube, AcEdViewCubePart part) = 0;
- virtual void onDragBegin (AcEdViewCube* pCube, AcEdViewCubePart part) = 0;
- virtual void onDragEnd (AcEdViewCube* pCube) = 0;
- };
- #endif // __ACEDVIEWCUBE_H__
|