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 CYBNORMAL_HC
00027 #define CYBNORMAL_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
00038 class OAW_DLLMAPPING CybNormalC : public CybNodeC
00039 {
00040 public:
00041 CybNormalC(CybWorldC*);
00042 CybNormalC(VectorC*,long,CybWorldC*);
00043 virtual ~CybNormalC();
00044 CybNormalC(const CybNormalC&);
00045 CybNormalC& operator = (const CybNormalC&);
00046
00047 virtual int AddSrc(CybNodeC* pN,const StringC& a1,const StringC& a2);
00048
00049 virtual void SetEvent(long,const void*, BaseI*);
00050 virtual long BufEvent(long,const void*, BaseI*);
00051 virtual long GetEventBufMinDataSize();
00052 virtual long GetEventBufMaxDataSize();
00053 virtual short CopyEventBuf(AnyC&,long);
00054 virtual short SetEventBuf(AnyC&, BaseI*);
00055
00056 void SetNormal(long,const VectorC&);
00057 long GetLength(){return m_length/3;}
00058 float* GetNormal_fv(long i){return m_normal+3*i;}
00059
00060 virtual void LoadVRML(char*& iter, const char* iterEnd, long& znr);
00061 protected:
00062 virtual void CreateNewCopy(CybNodeC*);
00063 private:
00064 struct myVec3{
00065 float x;
00066 float y;
00067 float z;
00068 };
00069 protected:
00070 float* m_normal;
00071 float* m_normalBuf;
00072 long m_length;
00073 long m_lengthBuf;
00074 long m_copyEventBufState;
00075 };
00076
00077 OAW_END_NAMESPACE
00078
00079
00080 #endif
00081
00082
00083
00084
00085
00086
00087
00088