ROOT » GEOM » GEOM » TGeoIntersection

class TGeoIntersection: public TGeoBoolNode

  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

    TGeoIntersection - representing the Boolean intersection of two positioned

Function Members (Methods)

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* = "")
voidTGeoBoolNode::ClearThreadData() 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
voidTGeoBoolNode::CreateThreadData(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*TGeoBoolNode::GetLeftMatrix() const
TGeoShape*TGeoBoolNode::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*TGeoBoolNode::GetRightMatrix() const
TGeoShape*TGeoBoolNode::GetRightShape() const
TGeoBoolNode::ThreadData_t&TGeoBoolNode::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)
TGeoIntersection&operator=(const TGeoIntersection&)
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)
Bool_tTGeoBoolNode::ReplaceMatrix(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 voidTGeoBoolNode::SetPoints(Double_t* points) const
virtual voidTGeoBoolNode::SetPoints(Float_t* points) const
voidTGeoBoolNode::SetSelected(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
TGeoIntersection(const TGeoIntersection&)
TGeoIntersection(const char* expr1, const char* expr2)
TGeoIntersection(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
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
Bool_tTGeoBoolNode::MakeBranch(const char* expr, Bool_t left)

Data Members

static TObject::(anonymous)TObject::kBitMask
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TGeoBoolNode::EGeoBoolTypeTGeoBoolNode::kGeoIntersection
static TGeoBoolNode::EGeoBoolTypeTGeoBoolNode::kGeoSubtraction
static TGeoBoolNode::EGeoBoolTypeTGeoBoolNode::kGeoUnion
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
TGeoShape*TGeoBoolNode::fLeftshape on the left branch
TGeoMatrix*TGeoBoolNode::fLeftMattransformation that applies to the left branch
Int_tTGeoBoolNode::fNpoints! number of points on the mesh
Double_t*TGeoBoolNode::fPoints! array of mesh points
TGeoShape*TGeoBoolNode::fRightshape on the right branch
TGeoMatrix*TGeoBoolNode::fRightMattransformation that applies to the right branch
vector<TGeoBoolNode::ThreadData_t*>TGeoBoolNode::fThreadData! Navigation data per thread
Int_tTGeoBoolNode::fThreadSize! Size for the navigation data array

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TGeoBoolNode * MakeClone() const
 Make a clone of this. Pointers are preserved.
void Paint(Option_t* option)
 Paint method.
 Default constructor
TGeoIntersection(const char* expr1, const char* expr2)
TGeoIntersection(TGeoShape* left, TGeoShape* right, TGeoMatrix* lmat = 0, TGeoMatrix* rmat = 0)
 Constructor providing pointers to components
 --- deletion of components handled by TGeoManager class.
void ComputeBBox(Double_t& dx, Double_t& dy, Double_t& dz, Double_t* origin)
 Compute bounding box corresponding to a intersection of two shapes.
void ComputeNormal(const Double_t* point, const Double_t* dir, Double_t* norm)
 Normal computation in POINT. The orientation is chosen so that>0.
Bool_t Contains(const Double_t* point) const
 Find if a intersection of two shapes contains a given point
Int_t DistanceToPrimitive(Int_t px, Int_t py)
 Compute minimum distance to shape vertices
Double_t DistFromInside(const Double_t* point, const Double_t* dir, Int_t iact = 1, Double_t step = 0, Double_t* safe = 0) const
 Compute distance from a given point inside to the shape boundary.
Double_t DistFromOutside(const Double_t* point, const Double_t* dir, Int_t iact = 1, Double_t step = 0, Double_t* safe = 0) const
 Compute distance from a given point outside to the shape.
Int_t GetNpoints()
 Returns number of vertices for the composite shape described by this intersection.
Double_t Safety(const Double_t* point, Bool_t in = kTRUE) const
 Compute safety distance for a union node;
void SavePrimitive(ostream& out, Option_t* option = "")
 Save a primitive as a C++ statement(s) on output stream "out".
void Sizeof3D() const
 Register 3D size of this shape.
TGeoBoolNode& operator=(const TGeoIntersection& )
EGeoBoolType GetBooleanOperator() const