library: libGeom #include "TGeoBoolNode.h"

# TGeoBoolNode

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

## class TGeoBoolNode : public TObject

| Inheritance Chart:
`TObject`
| <- | `TGeoBoolNode` |
<- |
`TGeoIntersection` |
`TGeoSubtraction` |
`TGeoUnion` |

This is an abstract class, constructors will not be documented.
Look at the header to check for available constructors.

        protected:

          Bool_t MakeBranch(const char* expr, Bool_t left)

        public:

                                     virtual ~TGeoBoolNode()
                              static TClass* Class()
                                virtual void ComputeBBox(Double_t& dx, Double_t& dy, Double_t& dz, Double_t* origin)
                                virtual void ComputeNormal(Double_t* point, Double_t* dir, Double_t* norm)
                              virtual Bool_t Contains(Double_t* point) const
                               virtual Int_t DistanceToPrimitive(Int_t px, Int_t py)
                            virtual Double_t DistFromInside(Double_t* point, Double_t* dir, Int_t iact = 1, Double_t step = 0, Double_t* safe = 0) const
                            virtual Double_t DistFromOutside(Double_t* point, Double_t* dir, Int_t iact = 1, Double_t step = 0, Double_t* safe = 0) const
          virtual TGeoBoolNode::EGeoBoolType GetBooleanOperator() const
                                 TGeoMatrix* GetLeftMatrix() const
                                  TGeoShape* GetLeftShape() const
                               virtual Int_t GetNpoints() const
                                 TGeoMatrix* GetRightMatrix() const
                                  TGeoShape* GetRightShape() const
                             virtual TClass* IsA() const
                               TGeoBoolNode& operator=(const TGeoBoolNode&)
                                virtual void Paint(Option_t* option)
                                        void RegisterMatrices()
                            virtual Double_t Safety(Double_t* point, Bool_t in = kTRUE) const
                                virtual void SavePrimitive(ofstream& out, Option_t* option)
                                virtual void SetPoints(Double_t* points) const
                                virtual void SetPoints(Float_t* points) const
                                        void SetSelected(Int_t sel)
                                virtual void ShowMembers(TMemberInspector& insp, char* parent)
                                virtual void Sizeof3D() const
                                virtual void Streamer(TBuffer& b)
                                        void StreamerNVirtual(TBuffer& b)

### Data Members

        protected:

                Int_t fSelected  ! selected branch
           TGeoShape* fLeft      shape on the left branch
           TGeoShape* fRight     shape on the right branch
          TGeoMatrix* fLeftMat   transformation that applies to the left branch
          TGeoMatrix* fRightMat  transformation that applies to the right branch

        public:

          static const TGeoBoolNode::EGeoBoolType kGeoUnion
          static const TGeoBoolNode::EGeoBoolType kGeoIntersection
          static const TGeoBoolNode::EGeoBoolType kGeoSubtraction

## Class Description

~TGeoBoolNode()

     Destructor
     --- deletion of components handled by TGeoManager class.

Bool_t MakeBranch(const char *expr, Bool_t left)

     Expands the boolean expression either on left or right branch, creating
     component elements (composite shapes and boolean nodes). Returns true on success.

void Paint(Option_t * option)

void RegisterMatrices()

     Register all matrices of the boolean node and descendents.

void SavePrimitive(ofstream &out, Option_t *option)

     Save a primitive as a C++ statement(s) on output stream "out".

void Sizeof3D() const

     register size of this 3D object

### Inline Functions

                                  void ComputeBBox(Double_t& dx, Double_t& dy, Double_t& dz, Double_t* origin)
                                  void ComputeNormal(Double_t* point, Double_t* dir, Double_t* norm)
                                Bool_t Contains(Double_t* point) const
                                 Int_t DistanceToPrimitive(Int_t px, Int_t py)
                              Double_t DistFromInside(Double_t* point, Double_t* dir, Int_t iact = 1, Double_t step = 0, Double_t* safe = 0) const
                              Double_t DistFromOutside(Double_t* point, Double_t* dir, Int_t iact = 1, Double_t step = 0, Double_t* safe = 0) const
            TGeoBoolNode::EGeoBoolType GetBooleanOperator() const
                                 Int_t GetNpoints() const
                           TGeoMatrix* GetLeftMatrix() const
                           TGeoMatrix* GetRightMatrix() const
                            TGeoShape* GetLeftShape() const
                            TGeoShape* GetRightShape() const
                              Double_t Safety(Double_t* point, Bool_t in = kTRUE) const
                                  void SetPoints(Double_t* points) const
                                  void SetPoints(Float_t* points) const
                                  void SetSelected(Int_t sel)
                               TClass* Class()
                               TClass* IsA() const
                                  void ShowMembers(TMemberInspector& insp, char* parent)
                                  void Streamer(TBuffer& b)
                                  void StreamerNVirtual(TBuffer& b)
                         TGeoBoolNode& operator=(const TGeoBoolNode&)

Author: Andrei Gheata 30/05/02
Last update: :$Name: $:$Id: TGeoBoolNode.cxx,v 1.22 2005/05/25 14:25:16 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *