// OCC_BaseView.h: interface for the OCC_BaseView class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_OCC_BASEVIEW_H__2E048CCA_38F9_11D7_8611_0060B0EE281E__INCLUDED_) #define AFX_OCC_BASEVIEW_H__2E048CCA_38F9_11D7_8611_0060B0EE281E__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include #include "OCC_BaseDoc.h" #include "AIS_ViewController.hxx" enum CurAction3d { CurAction3d_Nothing, CurAction3d_DynamicZooming, CurAction3d_WindowZooming, CurAction3d_DynamicPanning, CurAction3d_GlobalPanning, CurAction3d_DynamicRotation }; class Standard_EXPORT OCC_BaseView : public CView, public AIS_ViewController { public: OCC_BaseView(); virtual ~OCC_BaseView(); //! Return the view. const Handle(V3d_View)& GetView() const { return myView; } void FitAll() { if ( !myView.IsNull() ) myView->FitAll(); myView->ZFitAll(); }; void Redraw() { if ( !myView.IsNull() ) myView->Redraw(); }; void SetZoom ( const Standard_Real& Coef ) { myView->SetZoom ( Coef ); }; //! Return the document. OCC_BaseDoc* GetDocument(); //! Request view redrawing. void update3dView(); //! Flush events and redraw view. void redraw3dView(); protected: //! Handle view redraw. virtual void handleViewRedraw (const Handle(AIS_InteractiveContext)& theCtx, const Handle(V3d_View)& theView) Standard_OVERRIDE; //! Callback called by handleMoveTo() on Selection in 3D Viewer. virtual void OnSelectionChanged (const Handle(AIS_InteractiveContext)& theCtx, const Handle(V3d_View)& theView) Standard_OVERRIDE; //! Return interactive context. virtual const Handle(AIS_InteractiveContext)& GetAISContext() const; protected: //! Setup mouse gestures. void defineMouseGestures(); //! Get current action. CurAction3d getCurrentAction() const { return myCurrentMode; } //! Set current action. void setCurrentAction (CurAction3d theAction) { myCurrentMode = theAction; defineMouseGestures(); } public: virtual BOOL PreCreateWindow (CREATESTRUCT& cs) Standard_OVERRIDE; virtual void PostNcDestroy() Standard_OVERRIDE; protected: Handle(V3d_View) myView; AIS_MouseGestureMap myDefaultGestures; Graphic3d_Vec2i myClickPos; Standard_Real myCurZoom; unsigned int myUpdateRequests; //!< counter for unhandled update requests private: CurAction3d myCurrentMode; // message map functions protected: DECLARE_MESSAGE_MAP() public: virtual void OnInitialUpdate() Standard_OVERRIDE; virtual void OnDraw (CDC* /*pDC*/) Standard_OVERRIDE; afx_msg void OnSize (UINT nType, int cx, int cy); afx_msg BOOL OnMouseWheel (UINT theFlags, short theDelta, CPoint thePoint); afx_msg void OnMouseMove (UINT theFlags, CPoint thePoint); afx_msg void OnMouseLeave(); afx_msg void OnLButtonDown (UINT theFlags, CPoint thePoint); afx_msg void OnLButtonUp (UINT theFlags, CPoint thePoint); afx_msg void OnMButtonDown (UINT theFlags, CPoint thePoint); afx_msg void OnMButtonUp (UINT theFlags, CPoint thePoint); afx_msg void OnRButtonDown (UINT theFlags, CPoint thePoint); afx_msg void OnRButtonUp (UINT theFlags, CPoint thePoint); }; #endif // !defined(AFX_OCC_BASEVIEW_H__2E048CCA_38F9_11D7_8611_0060B0EE281E__INCLUDED_)