Main Page   Class Hierarchy   Data Structures   File List   Data Fields   Globals  

/lib/libtvuvisu3D/tvu_primitive_objects.h

Go to the documentation of this file.
00001 
00011 #ifndef __TVU_PRIMITIVE_OBJECTS_H__
00012 #define __TVU_PRIMITIVE_OBJECTS_H__
00013 
00014 #ifndef __TVU_TYPESDEF_H__
00015 #include "tvu_typesdef.h"
00016 #endif 
00017 
00018 #ifndef __TVU_MATHS_H__
00019 #include "tvu_maths.h"
00020 #endif 
00021 
00022 #ifndef __TVU_VISU3D_APPLICATION_H__
00023 #include "tvu_visu3d.application.h"
00024 #endif 
00025 /*========================================================*/
00026 
00027 #define CLASSNAME_PRIM_OBJECT                    "PrimitiveObject"
00028 #define CLASSNAME_PRIM_OBJECT_ID                 10700
00029 #define CLASSNAME_PRIM_SPHERE                    "Sphere"
00030 #define CLASSNAME_PRIM_SPHERE_ID                 10701
00031 #define CLASSNAME_PRIM_TRUNCATECONE              "TruncateCone"
00032 #define CLASSNAME_PRIM_TRUNCATECONE_ID   10702
00033 #define CLASSNAME_PRIM_PARALLELEPIPED    "Parallelepiped"
00034 #define CLASSNAME_PRIM_PARALLELEPIPED_ID 10703
00035 
00036 #define ENAME_PRIM_RGB                  "color"
00037 #define ENAME_PRIM_POSITION             "position"
00038 #define ENAME_PRIM_ANGLES               "angles"
00039 #define ENAME_PRIM_SIZE                 "size"
00040 
00041 #define ENAME_PRIM_CONE_SIZETAIL        "sizetail"
00042 /*--------------------------------------------------------*/
00045 class CTPrimitiveObject : public CTObject
00046 {
00047         public:
00049                 CTPrimitiveObject();
00050                 virtual ~CTPrimitiveObject() { Delete(); };
00051                 DEFINE_ID_FUNCTIONS(CTPrimitiveObject, CTObject, CLASSNAME_PRIM_OBJECT_ID, CLASSNAME_PRIM_OBJECT)
00052         public:
00054                 virtual TBOOL           Is3DObject() { return TTRUE; };
00055                 virtual TBOOL           IsMobileObject() { return TTRUE; };
00056                 virtual TPOINT3D        GetLocation() { return m_Position.POINT3D(); };
00057         public:
00059                 virtual CTList  GetSaveLoadObjects(TBOOL bOnLoad = TTRUE);
00063                 virtual TBOOL Display(THFILE lpDevice = TNULL);
00065                 virtual TBOOL OnDisplaying(THFILE lpDevice);
00067                 virtual TBOOL Move();
00068                 virtual TBOOL Rotate();
00069                 virtual TBOOL Project();
00071                 virtual TBOOL BuildObject();
00072                 virtual TBOOL OnBuildObject() { return TTRUE; };
00074                 virtual TBOOL GetBoundary(BOUNDARY& Boundary);
00075         public:
00077                 virtual void Delete();
00078         public:
00080                 virtual CTPrimitiveObject& operator = (CTPrimitiveObject& AnObject);  
00081         public:
00084                 CTRGB& GetRGB() { return m_RGB; };
00086                 CTPoint3D&      GetPosition() { return m_Position; };
00087                 CTAngles&       GetAngles() { return m_Angles; };
00088                 CTSize3D&       GetSize() { return m_Size; };
00089                 CTSize3D&       GetCurrentSize() { return m_CurrentSize; };
00091                 TBOOL GetPoint(TINT nIndex, LPTPOINT3D lpPoint);
00092         protected:
00093                 virtual TBOOL   AllocateBuffers();
00094                 virtual TINT    GetPointsCount() { return 0; };
00095                 virtual TINT    GetFacesCount() { return 0; };
00096         public:
00097                 enum { FACE_MAXPOINTS = 16 };
00098         protected:
00101                 typedef struct tagFACE
00102                 {
00103                         TINT m_nPoints;
00104                         TINT m_ListPoints[FACE_MAXPOINTS];
00105                 } FACE, *LPFACE;
00107                 typedef struct tagPRIVATEDATA
00108                 {
00109                         TINT            m_nPoints;      
00110                         TINT            m_nFaces;       
00111                         LPTPOINT3D      m_Points;       
00112                         LPFACE          m_Faces;        
00113                 } PRIVATEDATA, *LPPRIVATEDATA;
00114         protected:
00117                 CTRGB    m_RGB;
00119                 CTPoint3D       m_Position;
00120                 CTAngles        m_Angles;
00121                 CTSize3D        m_Size;
00122                 CTSize3D        m_CurrentSize;
00124                 LPTBYTE     m_Buffers;
00125 };
00127 typedef CTPrimitiveObject* LPCTPrimitiveObject;
00128 /*--------------------------------------------------------*/
00130 class CTSphere : public CTPrimitiveObject
00131 {
00132         public:
00134                 CTSphere();
00135                 virtual ~CTSphere();
00136                 DEFINE_ID_FUNCTIONS(CTSphere, CTPrimitiveObject, CLASSNAME_PRIM_SPHERE_ID, CLASSNAME_PRIM_SPHERE)
00137         public:
00139                 virtual TBOOL OnBuildObject();
00140         public:
00141                 TINT GetPointsCount();
00142                 TINT GetFacesCount();
00143         public:
00144                 enum { NUMBERZONE = 6, NUMBERZONE_2 = 2 }; 
00145         public:
00146                 static CTSinCos m_SinCos;
00147 };
00148 /*--------------------------------------------------------*/
00150 class CTTruncateCone : public CTPrimitiveObject
00151 {
00152         public:
00154                 CTTruncateCone();
00155                 virtual ~CTTruncateCone();
00156                 DEFINE_ID_FUNCTIONS(CTTruncateCone, CTPrimitiveObject, CLASSNAME_PRIM_TRUNCATECONE_ID, CLASSNAME_PRIM_TRUNCATECONE)
00157         public:
00159                 virtual CTList  GetSaveLoadObjects(TBOOL bOnLoad = TTRUE);
00160         public:
00162                 virtual TBOOL OnBuildObject();
00163         public:
00165                 virtual CTTruncateCone& operator = (CTTruncateCone& ATruncateCone);  
00166         public:
00168                 CTDouble& GetSizeTail() { return m_SizeTail; };
00169                 CTDouble& SetSizeTail(double s) { return m_SizeTail = s; };
00170         public:
00171                 CTDouble m_SizeTail;    
00172         public:
00173                 TINT GetPointsCount();
00174                 TINT GetFacesCount();
00175         public:
00176                 enum { NUMBERZONE = 6 }; // 12
00177         public:
00178                 static CTSinCos m_SinCos;
00179 };
00180 /*--------------------------------------------------------*/
00182 class CTParallelepiped : public CTPrimitiveObject
00183 {
00184         public:
00186                 CTParallelepiped();
00187                 virtual ~CTParallelepiped();
00188                 DEFINE_ID_FUNCTIONS(CTParallelepiped, CTPrimitiveObject, CLASSNAME_PRIM_PARALLELEPIPED_ID, CLASSNAME_PRIM_PARALLELEPIPED)
00189         public:
00191                 virtual TBOOL OnBuildObject();
00192         public:
00193                 TINT GetPointsCount();
00194                 TINT GetFacesCount();
00195 };
00196 /*========================================================*/
00197 #endif 

Generated at Wed Aug 6 15:58:58 2003 for TVU's libraries for video surveillance: by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001