ROOT » GEOM » GEOM » TGeoBoolNode

class TGeoBoolNode: public TObject

  TGeoBoolNode - base class for Boolean operations between two shapes.

 A Boolean node describes a Boolean operation between 'left' and 'right'
 shapes positioned with respect to an ARBITRARY reference frame. The boolean
 node is referenced by a mother composite shape and its shape components may
 be primitive but also composite shapes. The later situation leads to a binary
 tree hierarchy. When the parent composite shape is used to create a volume,
 the reference frame of the volume is chosen to match the frame in which
 node shape components were defined.

 The positioned shape components may or may not be disjoint. The specific
 implementations for Boolean nodes are:

    TGeoUnion - representing the Boolean  union of two positioned shapes

    TGeoSubtraction - representing the Boolean subtraction of two positioned
                shapes

    TGeoIntersection - representing the Boolean intersection of two positioned
                shapes

Function Members (Methods)

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

public:
virtual~TGeoBoolNode()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
voidClearThreadData() const
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidComputeBBox(Double_t& dx, Double_t& dy, Double_t& dz, Double_t* origin)
virtual voidComputeNormal(const Double_t* point, const Double_t* dir, Double_t* norm)
virtual Bool_tContains(const Double_t* point) const
virtual voidTObject::Copy(TObject& object) const
voidCreateThreadData(Int_t nthreads)
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tDistanceToPrimitive(Int_t px, Int_t py)
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual Double_tDistFromInside(const Double_t* point, const Double_t* dir, Int_t iact = 1, Double_t step = 0, Double_t* safe = 0) const
virtual Double_tDistFromOutside(const Double_t* point, const Double_t* dir, Int_t iact = 1, Double_t step = 0, Double_t* safe = 0) const
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual TGeoBoolNode::EGeoBoolTypeGetBooleanOperator() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
TGeoMatrix*GetLeftMatrix() const
TGeoShape*GetLeftShape() const
virtual const char*TObject::GetName() const
virtual Int_tGetNpoints()
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
TGeoMatrix*GetRightMatrix() const
TGeoShape*GetRightShape() const
TGeoBoolNode::ThreadData_t&GetThreadData() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
virtual TGeoBoolNode*MakeClone() const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
voidTObject::operator delete(void* ptr)
voidTObject::operator delete(void* ptr, void* vp)
voidTObject::operator delete[](void* ptr)
voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidPaint(Option_t* option)
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidRegisterMatrices()
Bool_tReplaceMatrix(TGeoMatrix* mat, TGeoMatrix* newmat)
voidTObject::ResetBit(UInt_t f)
virtual Double_tSafety(const Double_t* point, Bool_t in = kTRUE) const
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidSavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidSetPoints(Double_t* points) const
virtual voidSetPoints(Float_t* points) const
voidSetSelected(Int_t sel)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp) const
virtual voidSizeof3D() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
TGeoBoolNode()
TGeoBoolNode(const char* expr1, const char* expr2)
TGeoBoolNode(TGeoShape* left, TGeoShape* right, TGeoMatrix* lmat = 0, TGeoMatrix* rmat = 0)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
Bool_tMakeBranch(const char* expr, Bool_t left)
voidTObject::MakeZombie()

Data Members

public:
static TObject::(anonymous)TObject::kBitMask
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TGeoBoolNode::EGeoBoolTypekGeoIntersection
static TGeoBoolNode::EGeoBoolTypekGeoSubtraction
static TGeoBoolNode::EGeoBoolTypekGeoUnion
static TObject::EStatusBitsTObject::kHasUUID
static TObject::EStatusBitsTObject::kInvalidObject
static TObject::(anonymous)TObject::kIsOnHeap
static TObject::EStatusBitsTObject::kIsReferenced
static TObject::EStatusBitsTObject::kMustCleanup
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::(anonymous)TObject::kNotDeleted
static TObject::EStatusBitsTObject::kObjInCanvas
static TObject::(anonymous)TObject::kOverwrite
static TObject::(anonymous)TObject::kSingleKey
static TObject::(anonymous)TObject::kWriteDelete
static TObject::(anonymous)TObject::kZombie
protected:
TGeoShape*fLeftshape on the left branch
TGeoMatrix*fLeftMattransformation that applies to the left branch
Int_tfNpoints! number of points on the mesh
Double_t*fPoints! array of mesh points
TGeoShape*fRightshape on the right branch
TGeoMatrix*fRightMattransformation that applies to the right branch
vector<TGeoBoolNode::ThreadData_t*>fThreadData! Navigation data per thread
Int_tfThreadSize! Size for the navigation data array

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

void ClearThreadData() const
void CreateThreadData(Int_t nthreads)
 Create thread data for n threads max.
void SetSelected(Int_t sel)
 Set the selected branch.
TGeoBoolNode()
 Default constructor
TGeoBoolNode(const char* expr1, const char* expr2)
 Constructor called by TGeoCompositeShape providing 2 subexpressions for the 2 branches.
TGeoBoolNode(TGeoShape* left, TGeoShape* right, TGeoMatrix* lmat = 0, TGeoMatrix* rmat = 0)
 Constructor providing left and right shapes and matrices (in the Boolean operation).
~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)
 Special schema for feeding the 3D buffers to the painter client.
void RegisterMatrices()
 Register all matrices of the boolean node and descendents.
Bool_t ReplaceMatrix(TGeoMatrix* mat, TGeoMatrix* newmat)
 Replace one of the matrices. Does not work with TGeoIdentity. Returns true
 if replacement was successful.
void SavePrimitive(ostream& out, Option_t* option = "")
 Save a primitive as a C++ statement(s) on output stream "out".
void SetPoints(Double_t* points) const
 Fill buffer with shape vertices.
void SetPoints(Float_t* points) const
 Fill buffer with shape vertices.
void Sizeof3D() const
 Register size of this 3D object
ThreadData_t& GetThreadData() const
TGeoBoolNode(const TGeoBoolNode& )
TGeoBoolNode& operator=(const TGeoBoolNode& )
void ComputeBBox(Double_t& dx, Double_t& dy, Double_t& dz, Double_t* origin)
 methods
void ComputeNormal(const Double_t* point, const Double_t* dir, Double_t* norm)
Bool_t Contains(const Double_t* point) const
Int_t DistanceToPrimitive(Int_t px, Int_t py)
Double_t DistFromInside(const Double_t* point, const Double_t* dir, Int_t iact = 1, Double_t step = 0, Double_t* safe = 0) const
EGeoBoolType GetBooleanOperator() const
Int_t GetNpoints()
TGeoMatrix * GetLeftMatrix() const
{return fLeftMat;}
TGeoMatrix * GetRightMatrix() const
{return fRightMat;}
TGeoShape * GetLeftShape() const
{return fLeft;}
TGeoShape * GetRightShape() const
{return fRight;}
TGeoBoolNode * MakeClone() const
Double_t Safety(const Double_t* point, Bool_t in = kTRUE) const
Double_t DistFromOutside(const Double_t* point, const Double_t* dir, Int_t iact = 1, Double_t step = 0, Double_t* safe = 0) const
{return kGeoUnion;}