12 #ifndef ROOT_TGeoBoolNode
13 #define ROOT_TGeoBoolNode
115 TGeoUnion(
const char *expr1,
const char *expr2);
virtual Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=0, Double_t *safe=0) const
Computes distance from a given point inside the shape to its boundary.
virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const
Compute safety distance for a union node;.
virtual Int_t DistanceToPrimitive(Int_t px, Int_t py)
Compute minimum distance to shape vertices.
virtual Int_t GetNpoints()
Returns number of vertices for the composite shape described by this subtraction. ...
virtual void Paint(Option_t *option)
Special schema for feeding the 3D buffers to the painter client.
TGeoUnion()
Default constructor.
virtual ~TGeoUnion()
Destructor — deletion of components handled by TGeoManager class.
virtual void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm)
Normal computation in POINT. The orientation is chosen so that DIR.dot.NORM>0.
virtual void ComputeBBox(Double_t &dx, Double_t &dy, Double_t &dz, Double_t *origin)
Compute bounding box corresponding to a subtraction of two shapes.
virtual EGeoBoolType GetBooleanOperator() const
std::vector< ThreadData_t * > fThreadData
array of mesh points
void SetSelected(Int_t sel)
Set the selected branch.
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
virtual Int_t DistanceToPrimitive(Int_t px, Int_t py)
Compute minimum distance to shape vertices.
TGeoIntersection()
Default constructor.
virtual Int_t GetNpoints()=0
TGeoShape * GetLeftShape() const
virtual void Sizeof3D() const
Register size of this 3D object.
virtual TGeoBoolNode * MakeClone() const
virtual Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=0, Double_t *safe=0) const =0
virtual EGeoBoolType GetBooleanOperator() const =0
void RegisterMatrices()
Register all matrices of the boolean node and descendents.
virtual 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.
virtual TGeoBoolNode * MakeClone() const =0
virtual void Sizeof3D() const
Register 3D size of this shape.
virtual void Sizeof3D() const
Register 3D size of this shape.
virtual ~TGeoSubtraction()
Destructor — deletion of components handled by TGeoManager class.
virtual void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm)
Normal computation in POINT. The orientation is chosen so that DIR.dot.NORM>0.
virtual void Sizeof3D() const
Register 3D size of this shape.
Bool_t MakeBranch(const char *expr, Bool_t left)
Size for the navigation data array.
#define ClassDef(name, id)
virtual void Paint(Option_t *option)
Special schema for feeding the 3D buffers to the painter client.
TGeoMatrix * GetRightMatrix() const
virtual Int_t GetNpoints()
Returns number of vertices for the composite shape described by this union.
virtual 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.
virtual EGeoBoolType GetBooleanOperator() const
virtual TGeoBoolNode * MakeClone() const
virtual TGeoBoolNode * MakeClone() const
TGeoBoolNode()
Default constructor.
virtual ~TGeoBoolNode()
Destructor.
ThreadData_t & GetThreadData() const
TGeoSubtraction()
Default constructor.
virtual Int_t GetNpoints()
Returns number of vertices for the composite shape described by this intersection.
Int_t fThreadSize
Navigation data per thread.
virtual void ComputeBBox(Double_t &dx, Double_t &dy, Double_t &dz, Double_t *origin)=0
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
TGeoBoolNode & operator=(const TGeoBoolNode &)
~ThreadData_t()
Destructor.
virtual void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm)
Normal computation in POINT. The orientation is chosen so that DIR.dot.NORM>0.
virtual Int_t DistanceToPrimitive(Int_t px, Int_t py)=0
virtual 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 CreateThreadData(Int_t nthreads)
Create thread data for n threads max.
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
TGeoMatrix * GetLeftMatrix() const
Bool_t ReplaceMatrix(TGeoMatrix *mat, TGeoMatrix *newmat)
Replace one of the matrices.
Double_t * fPoints
number of points on the mesh
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
virtual 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.
TGeoShape * GetRightShape() const
virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const
Compute safety distance for a union node;.
virtual Bool_t Contains(const Double_t *point) const =0
virtual ~TGeoIntersection()
Destructor — deletion of components handled by TGeoManager class.
virtual void Paint(Option_t *option)
Special schema for feeding the 3D buffers to the painter client.
virtual void SetPoints(Double_t *points) const
Fill buffer with shape vertices.
virtual 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 outside point to the shape.
virtual Bool_t Contains(const Double_t *point) const
Find if a intersection of two shapes contains a given point.
virtual Bool_t Contains(const Double_t *point) const
Find if a subtraction of two shapes contains a given point.
virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const =0
Mother of all ROOT objects.
virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const
Compute safety distance for a union node;.
virtual Bool_t Contains(const Double_t *point) const
Find if a union of two shapes contains a given point.
virtual 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.
void ClearThreadData() const
virtual void Paint(Option_t *option)
Special schema for feeding the 3D buffers to the painter client.
virtual Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=0, Double_t *safe=0) const =0
double norm(double *x, double *p)
virtual void ComputeBBox(Double_t &dx, Double_t &dy, Double_t &dz, Double_t *origin)
Compute bounding box corresponding to a union of two shapes.
virtual Int_t DistanceToPrimitive(Int_t px, Int_t py)
Compute minimum distance to shape vertices.
virtual EGeoBoolType GetBooleanOperator() const
virtual void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm)=0