library: libCore #include "TBuffer3D.h"

# TBuffer3D

class description - source file - inheritance tree (.pdf)

## class TBuffer3D : public TObject

| Inheritance Chart:
`TObject`
| <- | `TBuffer3D` |

        private:

                           TBuffer3D(const TBuffer3D&)
                      void Init()
          const TBuffer3D& operator=(const TBuffer3D&) const

        public:

                          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()
           static TClass* Class()
                     void ClearSectionsValid()
            static UInt_t DecCSLevel()
            static UInt_t GetCSLevel()
                   UInt_t GetSections(UInt_t mask) const
              static void IncCSLevel()
          virtual TClass* IsA() const
                   UInt_t NbPnts() const
                   UInt_t NbPols() const
                   UInt_t NbSegs() const
                   Bool_t SectionsValid(UInt_t mask) const
                     void SetAABoundingBox(const Double_t* origin, const Double_t* halfLengths)
                     void SetLocalMasterIdentity()
                   Bool_t SetRawSizes(UInt_t reqPnts, UInt_t reqPntsCapacity, UInt_t reqSegs, UInt_t reqSegsCapacity, UInt_t reqPols, UInt_t reqPolsCapacity)
                     void SetSectionsValid(UInt_t mask)
             virtual void ShowMembers(TMemberInspector& insp, char* parent)
             virtual void Streamer(TBuffer& b)
                     void StreamerNVirtual(TBuffer& b)
                    Int_t Type() const

### Data Members

        private:

            const Int_t fType          Primitive type - predefined ones in TBuffer3DTypes.h
                 UInt_t fNbPnts        Number of points describing the shape
                 UInt_t fNbSegs        Number of segments describing the shape
                 UInt_t fNbPols        Number of polygons describing the shape
                 UInt_t fPntsCapacity  Current capacity of fPnts space
                 UInt_t fSegsCapacity  Current capacity of fSegs space
                 UInt_t fPolsCapacity  Current capacity of fSegs space
                 UInt_t fSections      Section validity flags
          static UInt_t fCSLevel

        public:

          static const TBuffer3D::EBoolOpCode kCSUnion
          static const TBuffer3D::EBoolOpCode kCSIntersection
          static const TBuffer3D::EBoolOpCode kCSDifference
          static const TBuffer3D::EBoolOpCode kCSNoOp
             static const TBuffer3D::ESection kNone
             static const TBuffer3D::ESection kCore
             static const TBuffer3D::ESection kBoundingBox
             static const TBuffer3D::ESection kShapeSpecific
             static const TBuffer3D::ESection kRawSizes
             static const TBuffer3D::ESection kRaw
             static const TBuffer3D::ESection kAll
                                     TObject* fID               ID/object generating buffer - see TVirtualViewer3D for setting
                                        Int_t fColor            Color index
                                      Short_t fTransparency     Percentage transparency [0,100]
                                       Bool_t fLocalFrame       True = Local, False = Master reference frame
                                       Bool_t fReflection       Matrix is reflection - TODO: REMOVE when OGL viewer rewokred to local frame
                                     Double_t fLocalMaster[16]  Local->Master Matrix - identity if master frame
                                     Double_t fBBVertex[8][3]   8 verticies defining bounding box.
                                    Double_t* fPnts             x0, y0, z0, x1, y1, z1, ..... ..... ....
                                       Int_t* fSegs             c0, p0, q0, c1, p1, q1, ..... ..... ....
                                       Int_t* fPols             c0, n0, s0, s1, ... sn, c1, n1, s0, ... sn

## Class Description

     TBuffer3D

     Generic 3D primitive description class - see TBuffer3DTypes for
     producer classes

TBuffer3D(Int_t type, UInt_t reqPnts, UInt_t reqPntsCapacity, UInt_t reqSegs, UInt_t reqSegsCapacity, UInt_t reqPols, UInt_t reqPolsCapacity) : fType(type) // Initialise buffer

     Destructor
     Construct from supplied shape type and raw sizes

~TBuffer3D() // Initialise buffer

     Destructor

void Init()

     Initialise buffer

void ClearSectionsValid()

     Clear any sections marked valid

void SetLocalMasterIdentity()

     Set kRaw tesselation section of buffer with supplied sizes
     Set fLocalMaster in section kCore to identity

void SetAABoundingBox(const Double_t origin[3], const Double_t halfLengths[3])

     Set fBBVertex in kBoundingBox section to a axis aligned (local) BB
     using supplied origin and box half lengths

       7-------6
      /|      /|
     3-------2 |
     | 4-----|-5
     |/      |
     0-------1

Bool_t SetRawSizes(UInt_t reqPnts, UInt_t reqPntsCapacity, UInt_t reqSegs, UInt_t reqSegsCapacity, UInt_t reqPols, UInt_t reqPolsCapacity)

     Set kRaw tesselation section of buffer with supplied sizes

UInt_t GetCSLevel()

void IncCSLevel()

UInt_t DecCSLevel()

### Inline Functions

            const TBuffer3D& operator=(const TBuffer3D&) const
                   TBuffer3D 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)
                        void SetSectionsValid(UInt_t mask)
                      Bool_t SectionsValid(UInt_t mask) const
                      UInt_t GetSections(UInt_t mask) const
                      UInt_t NbPnts() const
                      UInt_t NbSegs() const
                      UInt_t NbPols() const
                       Int_t Type() const
                     TClass* Class()
                     TClass* IsA() const
                        void ShowMembers(TMemberInspector& insp, char* parent)
                        void Streamer(TBuffer& b)
                        void StreamerNVirtual(TBuffer& b)

Author: Olivier Couet 05/05/04
Last update: root/base:$Name: $:$Id: TBuffer3D.cxx,v 1.00
Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *