00001 00002 // BboxUpdaterGlobalVariables.h // 00004 00005 #ifndef BBOXUPDATERGLOBALVARIABLES_H 00006 #define BBOXUPDATERGLOBALVARIABLES_H 00007 00008 #include "GlobalVariables.h" 00009 #include "Bbox.h" 00010 00011 #include <list> 00012 00013 namespace X3DTK { 00014 namespace X3D { 00015 00017 00018 class BboxUpdaterGlobalVariables : public GlobalVariables 00019 { 00020 public: 00022 BboxUpdaterGlobalVariables(); 00024 virtual ~BboxUpdaterGlobalVariables(); 00025 00027 virtual void finish(); 00028 00030 void setStaticProcessing(bool value); 00032 void addBbox(SFNode N, Bbox *BB); 00034 void setShapeBbox(const Bbox &BB); 00036 void addBboxToMergeList(const Bbox &BB); 00037 00039 inline bool getStaticProcessing() const {return _staticProcessing;}; 00041 Bbox getShapeBbox() const {return _shapeBbox;}; 00043 Bbox *getBbox(SFNode N) const; 00045 Bbox mergeBbox(); 00046 00047 private: 00048 bool _staticProcessing; 00049 Bbox _shapeBbox; 00050 std::list<std::pair<SFNode, Bbox *> > _BBList; 00051 std::list<Bbox> _BBToMergeList; 00052 }; 00053 00054 } 00055 } 00056 00057 #endif