
00001 //***************************************************************************** 00002 // File : gzGeometryVolume.h 00003 // Module : 00004 // Description : Class definition of the geometry volumetric classes 00005 // Author : Anders Modén 00006 // Product : Gizmo3D 2.1.1 00007 // 00008 // Copyright © 2003- Saab Training Systems AB, Sweden 00009 // 00010 // NOTE: Gizmo3D is a high performance 3D Scene Graph and effect visualisation 00011 // C++ toolkit for Linux, Mac OS X, Windows (Win32) and IRIX® for 00012 // usage in Game or VisSim development. 00013 // 00014 // 00015 // Revision History... 00016 // 00017 // Who Date Description 00018 // 00019 // AMO 080122 Created file 00020 // 00021 //****************************************************************************** 00022 #ifndef __GZ_GEOMETRY_VOLUME_H__ 00023 #define __GZ_GEOMETRY_VOLUME_H__ 00024 00031 #include "gzGeometry.h" 00032 00033 00034 //****************************************************************************** 00035 // Class : gzGeometryVolume 00036 // 00037 // Purpose : Renders a geometrical volume (cloud etc) 00038 // 00039 // Notes : - 00040 // 00041 // Revision History... 00042 // 00043 // Who Date Description 00044 // 00045 // AMO 080122 Created 00046 // 00047 //****************************************************************************** 00048 class gzGeometryVolume : public gzBaseGeometry 00049 { 00050 public: 00051 GZ_GRAPH_EXPORT gzGeometryVolume(const gzString & name=GZ_EMPTY_STRING); 00052 00053 GZ_GRAPH_EXPORT virtual ~gzGeometryVolume(){}; 00054 00055 GZ_DECLARE_TYPE_INTERFACE_EXPORT(GZ_GRAPH_EXPORT); // typed interface 00056 00057 00058 // ---------- Common graph functions -------------------------------- 00059 00060 GZ_GRAPH_EXPORT virtual gzVoid updateNode(); 00061 00062 GZ_GRAPH_EXPORT virtual gzVoid preTraverseAction( gzTraverseAction *actionclass , gzContext *context); 00063 00064 // ---------- No cloning of base - pure virtual --------------------- 00065 00066 GZ_GRAPH_EXPORT virtual gzReference* clone() const; 00067 00068 // ---------- The control API --------------------------------------- 00069 00070 GZ_GRAPH_EXPORT gzVoid setSize(gzReal x_size,gzReal y_size,gzReal z_size); 00071 00072 GZ_GRAPH_EXPORT gzVoid setImageXArray(const gzArray<gzImagePtr> &imageArray); 00073 GZ_GRAPH_EXPORT gzVoid setImageYArray(const gzArray<gzImagePtr> &imageArray); 00074 GZ_GRAPH_EXPORT gzVoid setImageZArray(const gzArray<gzImagePtr> &imageArray); 00075 00076 /*GZ_GRAPH_EXPORT gzVoid setStartPosition(const gzVec3 & start); 00077 00078 GZ_GRAPH_EXPORT gzVoid setStopPosition(const gzVec3 & stop); 00079 00080 GZ_GRAPH_EXPORT gzVoid setNodeTree(gzNode *tree);*/ 00081 00082 // ---------- Properties ------------------------------------------- 00083 00084 //GZ_PROPERTY_EXPORT( gzVec3 , NorthVector , GZ_GRAPH_EXPORT); 00085 //GZ_PROPERTY_EXPORT( gzVec3 , EastVector , GZ_GRAPH_EXPORT); 00086 //GZ_PROPERTY_EXPORT( gzBool , ShowBearing , GZ_GRAPH_EXPORT); 00087 //GZ_PROPERTY_EXPORT( gzAngleUnits , BearingUnits , GZ_GRAPH_EXPORT); 00088 //GZ_PROPERTY_EXPORT( gzBool , ShowTotalDistance , GZ_GRAPH_EXPORT); 00089 //GZ_PROPERTY_EXPORT( gzBool , ShowLineOfSightDistance , GZ_GRAPH_EXPORT); 00090 00091 00092 00093 private: 00094 00095 gzReal m_x_size,m_y_size,m_z_size; 00096 00097 gzArray<gzTexturePtr> m_textureArrayX; 00098 gzArray<gzTexturePtr> m_textureArrayY; 00099 gzArray<gzTexturePtr> m_textureArrayZ; 00100 00101 gzStatePtr m_state; 00102 }; 00103 00104 // Declare smart pointer type 00105 GZ_DECLARE_REFPTR(gzGeometryVolume); 00106 00107 #endif // __GZ_GEOMETRY_VOLUME_H__ 00108