00001 // 00002 // Copyright (c) 2000 by Tech Soft 3D, LLC. 00003 // The information contained herein is confidential and proprietary to 00004 // Tech Soft 3D, LLC., and considered a trade secret as defined under 00005 // civil and criminal statutes. Tech Soft 3D shall pursue its civil 00006 // and criminal remedies in the event of unauthorized use or misappropriation 00007 // of its trade secrets. Use of this information by anyone other than 00008 // authorized employees of Tech Soft 3D, LLC. is granted only under a 00009 // written non-disclosure agreement, expressly prescribing the scope and 00010 // manner of such use. 00011 // 00012 // $Id$ 00013 // 00014 00015 // HOpCameraManipulate.h : interface of the HOpCameraManipulate class 00016 // Manipulates the camera of current view usual a virtual trackball 00017 // interface 00018 00019 #ifndef _HOPCAMERAManipulate_H 00020 #define _HOPCAMERAManipulate_H 00021 00022 #ifdef H_PACK_8 00023 #pragma pack(push) 00024 #pragma pack(8) 00025 #endif 00026 00027 #include "HTools.h" 00028 #include "HBaseOperator.h" 00029 class HOpCameraRelativeOrbit; 00030 class HOpCameraOrbit; 00031 class HOpCameraPan; 00032 class HOpCameraZoom; 00033 class HTClient; 00034 class HEventInfo; 00036 00047 class MVO_API HOpCameraManipulate : public HBaseOperator 00048 { 00049 public: 00062 HOpCameraManipulate (HBaseView* view, int DoRepeat=0, int DoCapture=1, HBaseOperator *orbit = 0, HBaseOperator *pan = 0, HBaseOperator *zoom = 0, HBaseOperator *relative = 0, bool AllowHandleActivation = false); 00063 virtual ~HOpCameraManipulate(); 00064 00066 virtual const char * GetName(); 00067 00068 00074 virtual int OnLButtonDown (HEventInfo &hevent); 00075 00076 00084 virtual int OnLButtonDownAndMove(HEventInfo &hevent); 00085 00086 00087 00093 virtual int OnLButtonUp (HEventInfo &hevent); 00094 00095 00101 virtual int OnMButtonDown (HEventInfo &hevent); 00102 00103 00109 virtual int OnMButtonDownAndMove(HEventInfo &hevent); 00110 00111 00112 00118 virtual int OnMButtonUp (HEventInfo &hevent); 00119 00120 00126 virtual int OnRButtonDown (HEventInfo &hevent); 00127 00128 00134 virtual int OnRButtonDownAndMove(HEventInfo &hevent); 00135 00136 00137 00143 virtual int OnRButtonUp (HEventInfo &hevent); 00144 00150 virtual HBaseOperator * Clone(); 00151 00152 virtual bool OperatorStarted(); 00153 00157 HOpCameraOrbit *GetOrbitOperator() { return (HOpCameraOrbit *)m_pOrbitOperator; } 00158 00159 00165 void HandleDblClk(float requested_time, float actual_time); 00166 00170 bool GetLButtonDown() { return m_bLButtonDown; } 00171 00172 protected: 00173 00174 HTClient *m_pDblClkTimer; 00176 HBaseOperator *m_pOrbitOperator; 00177 HBaseOperator *m_pRelativeOrbitOperator; 00178 HBaseOperator *m_pPanOperator; 00179 HBaseOperator *m_pZoomOperator; 00181 HPoint m_ptRealOld; 00182 private: 00183 bool m_bAllowHandleActivation; 00184 bool m_bLButtonDown; 00185 bool m_bLButtonUp; 00186 bool m_bForceDown; 00187 HPoint m_ptRealFirst; 00188 HEventInfo *m_LastEvent; 00189 float m_time; 00190 00191 }; 00192 00193 #ifdef H_PACK_8 00194 #pragma pack(pop) 00195 #endif 00196 00197 #endif 00198 00199 00200 00201