ROOT logo
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* = "")
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(Double_t* point, Double_t* dir, Double_t* norm)
virtual Bool_tContains(Double_t* point) const
virtual voidTObject::Copy(TObject& object) const
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(Double_t* point, Double_t* dir, Int_t iact = 1, Double_t step = 0, Double_t* safe = 0) const
virtual Double_tDistFromOutside(Double_t* point, 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
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
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static 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()
voidTObject::ResetBit(UInt_t f)
virtual Double_tSafety(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)
virtual voidSizeof3D() const
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& 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
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:
enum EGeoBoolType { kGeoUnion
kGeoIntersection
kGeoSubtraction
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
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
Int_tfSelected! selected branch

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

~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.
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
TGeoBoolNode& operator=(const TGeoBoolNode& )
void ComputeBBox(Double_t& dx, Double_t& dy, Double_t& dz, Double_t* origin)
 methods
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
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;}
Double_t Safety(Double_t* point, Bool_t in = kTRUE) const
void SetSelected(Int_t sel)
{fSelected = sel;}
Double_t DistFromOutside(Double_t* point, Double_t* dir, Int_t iact = 1, Double_t step = 0, Double_t* safe = 0) const
{return kGeoUnion;}