
00001 //***************************************************************************** 00002 // File : gzCompileGroup.h 00003 // Module : 00004 // Description : Class definition of the gzCompileGroup class 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 030312 Created file 00020 // 00021 //****************************************************************************** 00022 #ifndef __GZ_COMPILE_GROUP_H__ 00023 #define __GZ_COMPILE_GROUP_H__ 00024 00031 #include "gzGroup.h" 00032 00033 //****************************************************************************** 00034 // Class : gzCompileGroup 00035 // 00036 // Purpose : - 00037 // 00038 // Notes : - 00039 // 00040 // Revision History... 00041 // 00042 // Who Date Description 00043 // 00044 // AMO 030313 Created 00045 // 00046 //****************************************************************************** 00047 class gzCompileGroup : public gzGroup 00048 { 00049 public: 00050 GZ_GRAPH_EXPORT gzCompileGroup(const gzString & name=GZ_EMPTY_STRING); 00051 00052 GZ_GRAPH_EXPORT virtual ~gzCompileGroup(); 00053 00054 GZ_DECLARE_TYPE_INTERFACE_EXPORT(GZ_GRAPH_EXPORT); // typed interface 00055 00056 00057 // ---------- Clone interface --------------------------------------- 00058 GZ_GRAPH_EXPORT virtual gzReference* clone() const; 00059 00060 // ---------- gzCompileGroup commands ---------------------------------------- 00061 00062 GZ_GRAPH_EXPORT gzVoid reCompile(); 00063 00064 GZ_GRAPH_EXPORT gzVoid expandGeometry(gzBool on=TRUE); 00065 00066 GZ_GRAPH_EXPORT gzVoid dropSource(gzBool on); 00067 00068 // ---------- Action Interface -------------------------------------- 00069 GZ_GRAPH_EXPORT virtual gzVoid preTraverseAction( gzTraverseAction *actionclass , gzContext *context); 00070 GZ_GRAPH_EXPORT virtual gzBool isTraversable( gzTraverseAction *action , gzNode *node , gzULong index, gzContext *context); 00071 GZ_GRAPH_EXPORT virtual gzVoid postTraverseAction( gzTraverseAction *actionclass , gzContext *context); 00072 00073 GZ_GRAPH_EXPORT virtual gzVoid updateNode(); 00074 00075 GZ_GRAPH_EXPORT virtual gzActionStage useActionStage( gzTraverseAction *actionclass , gzContext *context); 00076 00077 00078 private: 00079 00080 gzVoid clearCompiledContexts(); 00081 00082 gzDynamicArray<gzRefPointer<gzContext> > m_compiledContexts; 00083 00084 gzBool m_expandGeometry:1; 00085 00086 gzBool m_dropSource:1; 00087 00088 }; 00089 00090 #endif