00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef CybXBrwsViewC_H
00027 #define CybXBrwsViewC_H
00028
00029
00030 #include "oaw/ctk/cybviewc.h"
00031 #include "oaw/ctk/cybviewpointsensorc.h"
00032 #include "win/wndc.h"
00033 #include "../oawconfig.h"
00034
00035 OAW_BEGIN_NAMESPACE
00036
00037
00038 class Cyb2DViewPointingDeviceC;
00039 class CybScriptC;
00040 class CybGraphicChannelC;
00041
00042 class OAW_DLLMAPPING CybXBrwsViewC : public CybViewC
00043 {
00044 public:
00045 CybXBrwsViewC(){}
00046 CybXBrwsViewC(int,int);
00047
00048 void SetDisplayOri(const MatrixC& M){m_dsplyOri=M;}
00049 void SetDisplayOffset(const VectorC& v){m_dsplyOffset=v;}
00050
00051 virtual void ButtonPressed(int x, int y, int bnr);
00052 virtual void ButtonReleased(int x, int y,int bnr);
00053 virtual void ButtonMouseMove(int x,int y,int bnr);
00054 virtual void MouseMove(int x,int y);
00055 virtual void KeyPressed(char ch);
00056
00057 virtual void Update();
00058 virtual void SetSleep();
00059 virtual void SetWake();
00060
00061 virtual void AddToModel(ModelC* pD);
00062
00063 virtual void SetViewpointPos(const VectorC&);
00064 virtual void SetViewpointNormal(const VectorC&);
00065
00066 protected:
00067 void MoveViewpoint(double);
00068 VectorC CalcMousePos(int iX, int iY);
00069
00070 protected:
00071
00072 CybGraphicChannelC* m_pChannel_mouse;
00073
00074 VectorC m_dsplyOffset;
00075 MatrixC m_dsplyOri;
00076
00077 TimeC m_lastUpdateView;
00078 TimeC m_lastFramecounterReset;
00079 int m_framecounter;
00080 double m_minFrameRate;
00081
00082 int m_blickmodus;
00083 double m_dYScale;
00084 double m_dSpeed;
00085
00086 PointC m_p;
00087 PointC m_pp;
00088 int m_bt;
00089
00090 CybScriptC* m_pScriptWinEvents;
00091 long m_winEventsKeyID;
00092 long m_winEventsMousePosID;
00093 long m_winEventsMouseButtonID;
00094 };
00095
00096 OAW_END_NAMESPACE
00097
00098
00099 #endif
00100
00101
00102
00103
00104
00105
00106