12#ifndef ROOT_TGeoBoolNode 
   13#define ROOT_TGeoBoolNode 
#define ClassDefOverride(name, id)
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t sel
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t points
 
Base class for Boolean operations between two shapes.
 
virtual void Sizeof3D() const
Register size of this 3D object.
 
Bool_t MakeBranch(const char *expr, Bool_t left)
Mutex for thread data access.
 
void ClearThreadData() const
 
std::vector< ThreadData_t * > fThreadData
array of mesh points
 
~TGeoBoolNode() override
Destructor.
 
TGeoShape::EInside Inside(const Double_t *point) const
Implementation of the inside function using just Contains and GetNormal.
 
Bool_t ReplaceMatrix(TGeoMatrix *mat, TGeoMatrix *newmat)
Replace one of the matrices.
 
virtual Int_t DistanceToPrimitive(Int_t px, Int_t py)=0
 
virtual EGeoBoolType GetBooleanOperator() const =0
 
void AssignPoints(Int_t npoints, Double_t *points)
Set fPoints array.
 
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a primitive as a C++ statement(s) on output stream "out".
 
void CreateThreadData(Int_t nthreads)
Create thread data for n threads max.
 
TGeoMatrix * GetRightMatrix() const
 
TGeoShape * GetLeftShape() const
 
void Paint(Option_t *option) override
Special schema for feeding the 3D buffers to the painter client.
 
TGeoMatrix * GetLeftMatrix() const
 
TGeoBoolNode(const TGeoBoolNode &)=delete
 
virtual void SetPoints(Double_t *points) const
Fill buffer with shape vertices.
 
Int_t fThreadSize
Navigation data per thread.
 
TGeoBoolNode & operator=(const TGeoBoolNode &)=delete
 
std::mutex fMutex
Size for the navigation data array.
 
virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const =0
 
void RegisterMatrices()
Register all matrices of the boolean node and descendents.
 
virtual Bool_t Contains(const Double_t *point) const =0
 
virtual void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm) const =0
 
virtual void ComputeBBox(Double_t &dx, Double_t &dy, Double_t &dz, Double_t *origin)=0
 
Double_t * fPoints
number of points on the mesh
 
virtual Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=0, Double_t *safe=nullptr) const =0
 
TGeoShape * GetRightShape() const
 
TGeoBoolNode()
Default constructor.
 
virtual Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=0, Double_t *safe=nullptr) const =0
 
Int_t GetNpoints()
Returns number of vertices for the composite shape described by this node.
 
ThreadData_t & GetThreadData() const
 
virtual TGeoBoolNode * MakeClone() const =0
 
void SetSelected(Int_t sel)
Set the selected branch.
 
Matrix class used for computing global transformations Should NOT be used for node definition.
 
Boolean node representing an intersection between two components.
 
Int_t DistanceToPrimitive(Int_t px, Int_t py) override
Compute minimum distance to shape vertices.
 
TGeoBoolNode * MakeClone() const override
Make a clone of this. Pointers are preserved.
 
TGeoIntersection()
Default constructor.
 
void Sizeof3D() const override
Register 3D size of this shape.
 
void ComputeBBox(Double_t &dx, Double_t &dy, Double_t &dz, Double_t *origin) override
Compute bounding box corresponding to a intersection of two shapes.
 
EGeoBoolType GetBooleanOperator() const override
 
Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=0, Double_t *safe=nullptr) const override
Compute distance from a given point outside to the shape.
 
Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const override
Compute safety distance for a union node;.
 
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a primitive as a C++ statement(s) on output stream "out".
 
void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm) const override
Normal computation in POINT. The orientation is chosen so that DIR.dot.NORM>0.
 
Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=0, Double_t *safe=nullptr) const override
Compute distance from a given point inside to the shape boundary.
 
void Paint(Option_t *option) override
Paint method.
 
~TGeoIntersection() override
Destructor — deletion of components handled by TGeoManager class.
 
Bool_t Contains(const Double_t *point) const override
Find if a intersection of two shapes contains a given point.
 
Geometrical transformation package.
 
Base abstract class for all shapes.
 
Boolean node representing a subtraction.
 
TGeoSubtraction()
Default constructor.
 
void ComputeBBox(Double_t &dx, Double_t &dy, Double_t &dz, Double_t *origin) override
Compute bounding box corresponding to a subtraction of two shapes.
 
~TGeoSubtraction() override
Destructor — deletion of components handled by TGeoManager class.
 
Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const override
Compute safety distance for a union node;.
 
TGeoBoolNode * MakeClone() const override
Make a clone of this. Pointers are preserved.
 
Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=0, Double_t *safe=nullptr) const override
Compute distance from a given point outside to the shape.
 
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a primitive as a C++ statement(s) on output stream "out".
 
Bool_t Contains(const Double_t *point) const override
Find if a subtraction of two shapes contains a given point.
 
void Sizeof3D() const override
Register 3D size of this shape.
 
Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=0, Double_t *safe=nullptr) const override
Compute distance from a given point inside to the shape boundary.
 
void Paint(Option_t *option) override
Paint method.
 
Int_t DistanceToPrimitive(Int_t px, Int_t py) override
Compute minimum distance to shape vertices.
 
void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm) const override
Normal computation in POINT. The orientation is chosen so that DIR.dot.NORM>0.
 
EGeoBoolType GetBooleanOperator() const override
 
Boolean node representing a union between two components.
 
Int_t DistanceToPrimitive(Int_t px, Int_t py) override
Compute minimum distance to shape vertices.
 
TGeoBoolNode * MakeClone() const override
Make a clone of this. Pointers are preserved.
 
void ComputeBBox(Double_t &dx, Double_t &dy, Double_t &dz, Double_t *origin) override
Compute bounding box corresponding to a union of two shapes.
 
void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm) const override
Normal computation in POINT. The orientation is chosen so that DIR.dot.NORM>0.
 
Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=0, Double_t *safe=nullptr) const override
Compute distance from a given outside point to the shape.
 
Bool_t Contains(const Double_t *point) const override
Find if a union of two shapes contains a given point.
 
Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const override
Compute safety distance for a union node;.
 
EGeoBoolType GetBooleanOperator() const override
 
Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=0, Double_t *safe=nullptr) const override
Computes distance from a given point inside the shape to its boundary.
 
~TGeoUnion() override
Destructor — deletion of components handled by TGeoManager class.
 
TGeoUnion()
Default constructor.
 
void Paint(Option_t *option) override
Paint method.
 
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a primitive as a C++ statement(s) on output stream "out".
 
void Sizeof3D() const override
Register 3D size of this shape.
 
Mother of all ROOT objects.
 
ThreadData_t()
Constructor.
 
~ThreadData_t()
Destructor.