Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

HOpCameraManipulate.h
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