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 CYBCOORDINATE_HC
00027 #define CYBCOORDINATE_HC
00028
00029 #include "oaw/ctk/cybnodec.h"
00030 #include "oaw/misc/vectorc.h"
00031 #include "oaw/ctk/cybwrlfields.h"
00032 #include "../oawconfig.h"
00033
00034 OAW_BEGIN_NAMESPACE
00035
00036
00037 class OAW_DLLMAPPING CybCoordinateC : public CybNodeC
00038 {
00039 public:
00040
00041 public:
00042 CybCoordinateC(CybWorldC*);
00043 virtual ~CybCoordinateC();
00044 CybCoordinateC(const CybCoordinateC&);
00045 CybCoordinateC& operator = (const CybCoordinateC&);
00046
00047
00048 float* GetCoord_fv(long i){return m_coord+3*i;}
00049 VectorC GetCoord(long i);
00050
00051 long GetLength(){return m_length/3;}
00052
00053 virtual void LoadVRML(char*& iter, const char* iterEnd, long& znr);
00054 virtual int AddSrc(CybNodeC* pN,const StringC& a1,const StringC& a2);
00055 virtual void EventCascadeEnd();
00056
00057 virtual void SetEvent(long, const void*, BaseI*);
00058 virtual long BufEvent(long, const void*, BaseI*);
00059 virtual long GetEventBufMinDataSize();
00060 virtual long GetEventBufMaxDataSize();
00061 virtual short CopyEventBuf(AnyC&,long);
00062 virtual short SetEventBuf(AnyC&, BaseI*);
00063
00064 virtual long GetFieldEventID(const char*);
00065 virtual long GetFieldDataType(long);
00066
00067 virtual short GetFieldData(long ,void*);
00068
00069
00070
00071
00072
00073 protected:
00074 virtual void CreateNewCopy(CybNodeC*);
00075 void CalcBInfo();
00076 protected:
00077 long m_length;
00078 float* m_coord;
00079 long m_lengthBuf;
00080 float* m_coordBuf;
00081 short m_updateFlag;
00082 long m_copyEventBufState;
00083 };
00084
00085 OAW_END_NAMESPACE
00086
00087
00088 #endif
00089
00090
00091
00092
00093
00094
00095
00096