ROOT logo
ROOT » GEOM » GEOM » TGeoSubtraction

class TGeoSubtraction: 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
                shapes

    TGeoIntersection - representing the Boolean intersection of two positioned
                shapes

Function Members (Methods)

public:
TGeoSubtraction()
TGeoSubtraction(const char* expr1, const char* expr2)
TGeoSubtraction(TGeoShape* left, TGeoShape* right, TGeoMatrix* lmat = 0, TGeoMatrix* rmat = 0)
virtual~TGeoSubtraction()
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*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
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()
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)
TObject&TObject::operator=(const TObject& rhs)
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)
voidTGeoBoolNode::RegisterMatrices()
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 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)
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_tTGeoBoolNode::MakeBranch(const char* expr, Bool_t left)
voidTObject::MakeZombie()

Data Members

protected:
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
Int_tTGeoBoolNode::fSelected! selected branch

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

void Paint(Option_t* option)
 Paint method.
TGeoSubtraction()
 Default constructor
TGeoSubtraction(const char* expr1, const char* expr2)
 Constructor
TGeoSubtraction(TGeoShape* left, TGeoShape* right, TGeoMatrix* lmat = 0, TGeoMatrix* rmat = 0)
 Constructor providing pointers to components
~TGeoSubtraction()
 Destructor
 --- 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 subtraction of two shapes.
void ComputeNormal(Double_t* point, Double_t* dir, Double_t* norm)
 Normal computation in POINT. The orientation is chosen so that DIR.dot.NORM>0.
Bool_t Contains(Double_t* point) const
 Find if a subtraction 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(Double_t* point, 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(Double_t* point, 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 subtraction.
Double_t Safety(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.
EGeoBoolType GetBooleanOperator() const