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 CYBVIEWPOINTC_H
00027 #define CYBVIEWPOINTC_H
00028
00029 #include "oaw/misc/vectorc.h"
00030 #include "oaw/ctk/cybnodec.h"
00031 #include "../oawconfig.h"
00032
00033 OAW_BEGIN_NAMESPACE
00034
00035
00036 class OAW_DLLMAPPING CybViewpointC : public CybNodeC
00037 {
00038 public:
00039 CybViewpointC(CybWorldC* pW =0);
00040 CybViewpointC(const CybViewpointC&);
00041 CybViewpointC& operator = (const CybViewpointC&);
00042 VectorC GetPos() const {return m_absPosition;}
00043 VectorC GetNormal() const {return m_absNormal;}
00044 double GetNormalRol() const {return m_absNormalRol;}
00045 void SetPos(VectorC v) {m_absPosition = m_position = v;}
00046 void SetNormal(VectorC v) {m_absNormal = m_normal = v;}
00047 void SetNormalRol(double d) {m_absNormalRol = m_normalRol = d;}
00048 virtual void ToChannel(CybChannelC*,long flag);
00049 protected:
00050 virtual void CreateNewCopy(CybNodeC*);
00051 virtual void Load_fieldOfView(char*&, const char*,long&);
00052 virtual void Load_jump(char*&, const char*,long&);
00053 virtual void Load_orientation(char*&, const char*,long&);
00054 virtual void Load_position(char*&, const char*,long&);
00055 virtual void Load_description(char*&, const char*,long&);
00056 virtual void LoadVRML(char*& iter, const char* iterEnd,long& znr);
00057 protected:
00058 double m_fieldOfView;
00059 int m_jump;
00060 VectorC m_orientationAxes;
00061 double m_orientationAngle;
00062 StringC m_description;
00063 VectorC m_position;
00064 VectorC m_normal;
00065 double m_normalRol;
00066 VectorC m_absPosition;
00067 VectorC m_absNormal;
00068 double m_absNormalRol;
00069 private:
00070 static char VRMLKeyStrList[][30];
00071 };
00072
00073 OAW_END_NAMESPACE
00074
00075
00076 #endif
00077
00078
00079
00080
00081