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 00016 00017 class BboxUpdaterGlobalVariables : public GlobalVariables 00018 { 00019 public: 00021 BboxUpdaterGlobalVariables(); 00023 virtual ~BboxUpdaterGlobalVariables(); 00024 00026 virtual void finish(); 00027 00029 void setStaticProcessing(bool value); 00031 void addBbox(SFNode N, Bbox *BB); 00033 void setShapeBbox(const Bbox &BB); 00035 void addBboxToMergeList(const Bbox &BB); 00036 00038 inline bool getStaticProcessing() const {return _staticProcessing;}; 00040 Bbox getShapeBbox() const {return _shapeBbox;}; 00042 Bbox *getBbox(SFNode N) const; 00044 Bbox mergeBbox(); 00045 00046 private: 00047 bool _staticProcessing; 00048 Bbox _shapeBbox; 00049 std::list<std::pair<SFNode, Bbox *> > _BBList; 00050 std::list<Bbox> _BBToMergeList; 00051 }; 00052 00053 } 00054 00055 #endif