#ifndef ROOT_TBuffer3D
#define ROOT_TBuffer3D
#ifndef ROOT_TObject
#include "TObject.h"
#endif
class TBuffer3D : public TObject
{
private:
   const Int_t fType;        
                                
   UInt_t    fNbPnts;        
   UInt_t    fNbSegs;        
   UInt_t    fNbPols;        
   
   UInt_t    fPntsCapacity;  
   UInt_t    fSegsCapacity;  
   UInt_t    fPolsCapacity;  
      
   UInt_t    fSections;      
   void Init();   
   
   TBuffer3D(const TBuffer3D &);
   const TBuffer3D & operator=(const TBuffer3D &);
   
   static UInt_t fgCSLevel;
   
public:
   
   enum EBoolOpCode {kCSUnion, kCSIntersection, kCSDifference, kCSNoOp};
   static UInt_t GetCSLevel();
   static void IncCSLevel();
   static UInt_t DecCSLevel();
   
   enum ESection { kNone            = BIT(0),
                   kCore            = BIT(1),
                   kBoundingBox     = BIT(2),
                   kShapeSpecific   = BIT(3),
                   kRawSizes        = BIT(4), 
                   kRaw             = BIT(5),
                   kAll             = kCore|kBoundingBox|kShapeSpecific|kRawSizes|kRaw 
   };
   
   TBuffer3D(Int_t type, 
             UInt_t reqPnts = 0, UInt_t reqPntsCapacity = 0,
             UInt_t reqSegs = 0, UInt_t reqSegsCapacity = 0, 
             UInt_t reqPols = 0, UInt_t reqPolsCapacity = 0); 
   virtual  ~TBuffer3D();
   
   void   SetSectionsValid(UInt_t mask)     { fSections |= mask & kAll; }
   void   ClearSectionsValid();
   Bool_t SectionsValid(UInt_t mask) const   { return (Bool_t) (GetSections(mask) == mask); }
   UInt_t GetSections(UInt_t mask)   const   { return (UInt_t) (fSections & mask); }
      
   
   void   SetLocalMasterIdentity();                  
   void   SetAABoundingBox(const Double_t origin[3], 
                           const Double_t halfLengths[3]); 
   
   Bool_t SetRawSizes(UInt_t reqPnts, UInt_t reqPntsCapacity,
                      UInt_t reqSegs, UInt_t reqSegsCapacity, 
                      UInt_t reqPols, UInt_t reqPolsCapacity);
   
   UInt_t NbPnts() const { return fNbPnts; }   
   UInt_t NbSegs() const { return fNbSegs; }      
   UInt_t NbPols() const { return fNbPols; }  
   
   Int_t  Type() const { return fType; }
   TObject    *fID;              
   Int_t       fColor;           
   Short_t     fTransparency;    
   Bool_t      fLocalFrame;      
   Bool_t      fReflection;      
   Double_t    fLocalMaster[16]; 
   
   
   
   
   
   
   
   
   
   
   
   
   
   Double_t    fBBVertex[8][3];  
   
   
   Double_t *fPnts;              
   Int_t    *fSegs;              
   Int_t    *fPols;              
   
   mutable UInt_t fPhysicalID;   
   ClassDef(TBuffer3D,0)     
};
class TBuffer3DSphere : public TBuffer3D
{
private:
   
   TBuffer3DSphere(const TBuffer3DSphere &);
   const TBuffer3DSphere & operator=(const TBuffer3DSphere &);
   
public:
   TBuffer3DSphere(UInt_t reqPnts = 0, UInt_t reqPntsCapacity = 0,
                   UInt_t reqSegs = 0, UInt_t reqSegsCapacity = 0, 
                   UInt_t reqPols = 0, UInt_t reqPolsCapacity = 0);
   Bool_t IsSolidUncut() const;
   
   Double_t fRadiusInner;  
   Double_t fRadiusOuter;  
   Double_t fThetaMin;     
   Double_t fThetaMax;     
   Double_t fPhiMin;       
   Double_t fPhiMax;       
};
class TBuffer3DTube : public TBuffer3D
{
private:
   
   TBuffer3DTube(const TBuffer3DTube &);
   const TBuffer3DTube & operator=(const TBuffer3DTube &);
protected:
   TBuffer3DTube(Int_t type,
                 UInt_t reqPnts = 0, UInt_t reqPntsCapacity = 0,
                 UInt_t reqSegs = 0, UInt_t reqSegsCapacity = 0, 
                 UInt_t reqPols = 0, UInt_t reqPolsCapacity = 0);
public:
   TBuffer3DTube(UInt_t reqPnts = 0, UInt_t reqPntsCapacity = 0,
                 UInt_t reqSegs = 0, UInt_t reqSegsCapacity = 0, 
                 UInt_t reqPols = 0, UInt_t reqPolsCapacity = 0);
   
   Double_t fRadiusInner;  
   Double_t fRadiusOuter;  
   Double_t fHalfLength;   
};
class TBuffer3DTubeSeg : public TBuffer3DTube
{
private:
   
   TBuffer3DTubeSeg(const TBuffer3DTubeSeg &);
   const TBuffer3DTubeSeg & operator=(const TBuffer3DTubeSeg &);
protected:
   TBuffer3DTubeSeg(Int_t type,
                    UInt_t reqPnts = 0, UInt_t reqPntsCapacity = 0,
                    UInt_t reqSegs = 0, UInt_t reqSegsCapacity = 0, 
                    UInt_t reqPols = 0, UInt_t reqPolsCapacity = 0);
public:
   TBuffer3DTubeSeg(UInt_t reqPnts = 0, UInt_t reqPntsCapacity = 0,
                    UInt_t reqSegs = 0, UInt_t reqSegsCapacity = 0, 
                    UInt_t reqPols = 0, UInt_t reqPolsCapacity = 0);
   
   Double_t fPhiMin;       
   Double_t fPhiMax;       
};
class TBuffer3DCutTube : public TBuffer3DTubeSeg
{
private:
   
   TBuffer3DCutTube(const TBuffer3DTubeSeg &);
   const TBuffer3DCutTube & operator=(const TBuffer3DTubeSeg &);
public:
   TBuffer3DCutTube(UInt_t reqPnts = 0, UInt_t reqPntsCapacity = 0,
                    UInt_t reqSegs = 0, UInt_t reqSegsCapacity = 0, 
                    UInt_t reqPols = 0, UInt_t reqPolsCapacity = 0);
   
   Double_t fLowPlaneNorm[3];  
   Double_t fHighPlaneNorm[3]; 
};
#endif
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.