00001 00002 00003 00005 00006 00011 00016 00021 // BboxUpdaterGlobalVariables.h // 00023 00024 #ifndef BBOXUPDATERGLOBALVARIABLES_H 00025 #define BBOXUPDATERGLOBALVARIABLES_H 00026 00027 #include "GlobalVariables.h" 00028 #include "Bbox.h" 00029 00030 #include <list> 00031 00032 namespace X3DTK { 00033 namespace X3D { 00034 00036 00037 class BboxUpdaterGlobalVariables : public GlobalVariables 00038 { 00039 public: 00041 BboxUpdaterGlobalVariables(); 00043 virtual ~BboxUpdaterGlobalVariables(); 00044 00046 virtual void finish(); 00047 00049 void setStaticProcessing(bool value); 00051 void addBbox(SFNode N, Bbox *BB); 00053 void setShapeBbox(const Bbox &BB); 00055 void addBboxToMergeList(const Bbox &BB); 00056 00058 inline bool getStaticProcessing() const {return _staticProcessing;}; 00060 Bbox getShapeBbox() const {return _shapeBbox;}; 00062 Bbox *getBbox(SFNode N) const; 00064 Bbox mergeBbox(); 00065 00066 private: 00067 bool _staticProcessing; 00068 Bbox _shapeBbox; 00069 std::list<std::pair<SFNode, Bbox *> > _BBList; 00070 std::list<Bbox> _BBToMergeList; 00071 }; 00072 00073 } 00074 } 00075 00076 #endif