22 void BBoxInit(Float_t infinity=1e6);
23 void BBoxZero(Float_t epsilon=0, Float_t x=0, Float_t y=0, Float_t z=0);
26 void BBoxCheckPoint(Float_t x, Float_t y, Float_t z);
27 void BBoxCheckPoint(
const Float_t* p);
29 void AssertBBoxExtents(Float_t epsilon=0.005);
31 TAttBBox(
const TAttBBox& tab) : fBBox(0) {
32 BBoxInit();
if(tab.fBBox)
for(Int_t i=0; i<6; i++) fBBox[i]=tab.fBBox[i];
36 TAttBBox(): fBBox(0) { }
37 virtual ~TAttBBox() { BBoxClear(); }
39 TAttBBox& operator=(
const TAttBBox& tab)
40 {
if(
this!=&tab) {BBoxInit();
if(tab.fBBox)
for(Int_t i=0; i<6; i++) fBBox[i]=tab.fBBox[i];}
43 Bool_t GetBBoxOK()
const {
return fBBox != 0; }
44 Float_t* GetBBox() {
return fBBox; }
45 Float_t* AssertBBox() {
if(fBBox == 0) ComputeBBox();
return fBBox; }
46 void ResetBBox() {
if(fBBox != 0) BBoxClear(); }
48 void SetupBBoxCube(Float_t extent, Float_t x, Float_t y, Float_t z);
50 virtual void ComputeBBox() = 0;
58 inline void TAttBBox::BBoxCheckPoint(Float_t x, Float_t y, Float_t z)
60 if(x < fBBox[0]) fBBox[0] = x;
61 if(x > fBBox[1]) fBBox[1] = x;
62 if(y < fBBox[2]) fBBox[2] = y;
63 if(y > fBBox[3]) fBBox[3] = y;
64 if(z < fBBox[4]) fBBox[4] = z;
65 if(z > fBBox[5]) fBBox[5] = z;
68 inline void TAttBBox::BBoxCheckPoint(
const Float_t* p)
70 BBoxCheckPoint(p[0], p[1], p[2]);