Logo ROOT  
Reference Guide
TGeoBoolNode.h
Go to the documentation of this file.
1 // @(#):$Id$
2 // Author: Andrei Gheata 30/05/02
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TGeoBoolNode
13 #define ROOT_TGeoBoolNode
14 
15 #include "TObject.h"
16 
17 #include <mutex>
18 #include <vector>
19 
20 // forward declarations
21 class TGeoShape;
22 class TGeoMatrix;
23 class TGeoHMatrix;
24 
25 class TGeoBoolNode : public TObject
26 {
27 public:
32 };
33  struct ThreadData_t
34  {
35  Int_t fSelected; // ! selected branch
36 
37  ThreadData_t();
38  ~ThreadData_t();
39  };
40  ThreadData_t& GetThreadData() const;
41  void ClearThreadData() const;
42  void CreateThreadData(Int_t nthreads);
43 private:
44  TGeoBoolNode(const TGeoBoolNode&) = delete;
45  TGeoBoolNode& operator=(const TGeoBoolNode&) = delete;
46 
47 protected:
48  TGeoShape *fLeft{nullptr}; // shape on the left branch
49  TGeoShape *fRight{nullptr}; // shape on the right branch
50  TGeoMatrix *fLeftMat{nullptr}; // transformation that applies to the left branch
51  TGeoMatrix *fRightMat{nullptr}; // transformation that applies to the right branch
52  Int_t fNpoints{0}; //! number of points on the mesh
53  Double_t *fPoints{nullptr}; //! array of mesh points
54 
55  mutable std::vector<ThreadData_t*> fThreadData; //! Navigation data per thread
56  mutable Int_t fThreadSize{0}; //! Size for the navigation data array
57  mutable std::mutex fMutex; //! Mutex for thread data access
58 // methods
59  Bool_t MakeBranch(const char *expr, Bool_t left);
60  void AssignPoints(Int_t npoints, Double_t *points);
61 
62 public:
63  // constructors
64  TGeoBoolNode();
65  TGeoBoolNode(const char *expr1, const char *expr2);
66  TGeoBoolNode(TGeoShape *left, TGeoShape *right, TGeoMatrix *lmat = nullptr, TGeoMatrix *rmat = nullptr);
67 
68  // destructor
69  virtual ~TGeoBoolNode();
70  // methods
71  virtual void ComputeBBox(Double_t &dx, Double_t &dy, Double_t &dz, Double_t *origin) = 0;
72  virtual void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm) = 0;
73  virtual Bool_t Contains(const Double_t *point) const = 0;
74  virtual Int_t DistanceToPrimitive(Int_t px, Int_t py) = 0;
75  virtual Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1,
76  Double_t step=0, Double_t *safe=nullptr) const = 0;
77  virtual Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1,
78  Double_t step=0, Double_t *safe=nullptr) const = 0;
79  virtual EGeoBoolType GetBooleanOperator() const = 0;
80  virtual Int_t GetNpoints() = 0;
81  TGeoMatrix *GetLeftMatrix() const {return fLeftMat;}
82  TGeoMatrix *GetRightMatrix() const {return fRightMat;}
83  TGeoShape *GetLeftShape() const {return fLeft;}
84  TGeoShape *GetRightShape() const {return fRight;}
85  virtual TGeoBoolNode *MakeClone() const = 0;
86  void Paint(Option_t *option) override;
87  void RegisterMatrices();
89  virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const = 0;
90  void SavePrimitive(std::ostream &out, Option_t *option = "") override;
91  virtual void SetPoints(Double_t *points) const;
92  virtual void SetPoints(Float_t *points) const;
93  void SetSelected(Int_t sel);
94  virtual void Sizeof3D() const;
95 
96  ClassDefOverride(TGeoBoolNode, 1) // a boolean node
97 };
98 
99 //////////////////////////////////////////////////////////////////////////////
100 // //
101 // TGeoUnion - Boolean node representing a union between two components. //
102 // //
103 //////////////////////////////////////////////////////////////////////////////
104 
105 class TGeoUnion : public TGeoBoolNode
106 {
107 public:
108  // constructors
109  TGeoUnion();
110  TGeoUnion(const char *expr1, const char *expr2);
111  TGeoUnion(TGeoShape *left, TGeoShape *right, TGeoMatrix *lmat = nullptr, TGeoMatrix *rmat = nullptr);
112 
113  // destructor
114  virtual ~TGeoUnion();
115  // methods
116  void ComputeBBox(Double_t &dx, Double_t &dy, Double_t &dz, Double_t *origin) override;
117  void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm) override;
118  Bool_t Contains(const Double_t *point) const override;
119  Int_t DistanceToPrimitive(Int_t px, Int_t py) override;
120  Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1,
121  Double_t step = 0, Double_t *safe = nullptr) const override;
122  Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1,
123  Double_t step = 0, Double_t *safe=nullptr) const override;
124  EGeoBoolType GetBooleanOperator() const override {return kGeoUnion;}
125  Int_t GetNpoints() override;
126  Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const override;
127  void SavePrimitive(std::ostream &out, Option_t *option = "") override;
128  void Sizeof3D() const override;
129 
130  //CS specific
131  TGeoBoolNode *MakeClone() const override;
132  void Paint(Option_t *option) override;
133 
134  ClassDefOverride(TGeoUnion, 1) // union node
135 };
136 
137 //////////////////////////////////////////////////////////////////////////////
138 // //
139 // TGeoIntersection - Boolean node representing an intersection between two //
140 // components. //
141 // //
142 //////////////////////////////////////////////////////////////////////////////
143 
145 {
146 public:
147  // constructors
149  TGeoIntersection(const char *expr1, const char *expr2);
150  TGeoIntersection(TGeoShape *left, TGeoShape *right, TGeoMatrix *lmat = nullptr, TGeoMatrix *rmat = nullptr);
151 
152  // destructor
153  virtual ~TGeoIntersection();
154  // methods
155  void ComputeBBox(Double_t &dx, Double_t &dy, Double_t &dz, Double_t *origin) override;
156  void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm) override;
157  Bool_t Contains(const Double_t *point) const override;
158  Int_t DistanceToPrimitive(Int_t px, Int_t py) override;
159  Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1,
160  Double_t step = 0, Double_t *safe = nullptr) const override;
161  Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1,
162  Double_t step = 0, Double_t *safe = nullptr) const override;
163  EGeoBoolType GetBooleanOperator() const override { return kGeoIntersection; }
164  Int_t GetNpoints() override;
165  Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const override;
166  void SavePrimitive(std::ostream &out, Option_t *option = "") override;
167  void Sizeof3D() const override;
168 
169  //CS specific
170  TGeoBoolNode *MakeClone() const override;
171  void Paint(Option_t *option) override;
172 
173  ClassDefOverride(TGeoIntersection, 1) // intersection node
174 };
175 
176 //////////////////////////////////////////////////////////////////////////////
177 // //
178 // TGeoSubtraction - Boolean node representing a subtraction. //
179 // //
180 //////////////////////////////////////////////////////////////////////////////
181 
183 {
184 public:
185  // constructors
186  TGeoSubtraction();
187  TGeoSubtraction(const char *expr1, const char *expr2);
188  TGeoSubtraction(TGeoShape *left, TGeoShape *right, TGeoMatrix *lmat = nullptr, TGeoMatrix *rmat = nullptr);
189 
190  // destructor
191  virtual ~TGeoSubtraction();
192  // methods
193  void ComputeBBox(Double_t &dx, Double_t &dy, Double_t &dz, Double_t *origin) override;
194  void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm) override;
195  Bool_t Contains(const Double_t *point) const override;
196  Int_t DistanceToPrimitive(Int_t px, Int_t py) override;
197  Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1,
198  Double_t step = 0, Double_t *safe = nullptr) const override;
199  Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1,
200  Double_t step = 0, Double_t *safe = nullptr) const override;
201  EGeoBoolType GetBooleanOperator() const override { return kGeoSubtraction; }
202  Int_t GetNpoints() override;
203  Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const override;
204  void SavePrimitive(std::ostream &out, Option_t *option = "") override;
205  void Sizeof3D() const override;
206 
207  //CS specific
208  TGeoBoolNode *MakeClone() const override;
209  void Paint(Option_t *option) override;
210 
211  ClassDefOverride(TGeoSubtraction, 1) // subtraction node
212 };
213 
214 #endif
TGeoSubtraction::Safety
Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const override
Compute safety distance for a union node;.
Definition: TGeoBoolNode.cxx:1112
TGeoUnion::Paint
void Paint(Option_t *option) override
Paint method.
Definition: TGeoBoolNode.cxx:430
TGeoSubtraction::Sizeof3D
void Sizeof3D() const override
Register 3D size of this shape.
Definition: TGeoBoolNode.cxx:1147
TGeoUnion::Contains
Bool_t Contains(const Double_t *point) const override
Find if a union of two shapes contains a given point.
Definition: TGeoBoolNode.cxx:522
TGeoIntersection::DistFromInside
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.
Definition: TGeoBoolNode.cxx:1389
kTRUE
const Bool_t kTRUE
Definition: RtypesCore.h:91
TGeoSubtraction::ComputeNormal
void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm) override
Normal computation in POINT. The orientation is chosen so that DIR.dot.NORM>0.
Definition: TGeoBoolNode.cxx:915
TGeoBoolNode::fThreadData
std::vector< ThreadData_t * > fThreadData
array of mesh points
Definition: TGeoBoolNode.h:55
TGeoBoolNode::EGeoBoolType
EGeoBoolType
Definition: TGeoBoolNode.h:28
TGeoBoolNode::ComputeNormal
virtual void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm)=0
TGeoUnion::DistanceToPrimitive
Int_t DistanceToPrimitive(Int_t px, Int_t py) override
Compute minimum distance to shape vertices.
Definition: TGeoBoolNode.cxx:588
TGeoIntersection::DistanceToPrimitive
Int_t DistanceToPrimitive(Int_t px, Int_t py) override
Compute minimum distance to shape vertices.
Definition: TGeoBoolNode.cxx:1381
TGeoBoolNode::GetLeftShape
TGeoShape * GetLeftShape() const
Definition: TGeoBoolNode.h:83
TGeoBoolNode::TGeoBoolNode
TGeoBoolNode()
Default constructor.
Definition: TGeoBoolNode.cxx:133
TGeoUnion::ComputeNormal
void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm) override
Normal computation in POINT. The orientation is chosen so that DIR.dot.NORM>0.
Definition: TGeoBoolNode.cxx:536
TGeoBoolNode
Definition: TGeoBoolNode.h:25
TGeoBoolNode::fMutex
std::mutex fMutex
Size for the navigation data array.
Definition: TGeoBoolNode.h:57
TGeoIntersection::Paint
void Paint(Option_t *option) override
Paint method.
Definition: TGeoBoolNode.cxx:1165
TGeoIntersection::~TGeoIntersection
virtual ~TGeoIntersection()
Destructor — deletion of components handled by TGeoManager class.
Definition: TGeoBoolNode.cxx:1209
TGeoSubtraction::TGeoSubtraction
TGeoSubtraction()
Default constructor.
Definition: TGeoBoolNode.cxx:850
TGeoIntersection::GetBooleanOperator
EGeoBoolType GetBooleanOperator() const override
Definition: TGeoBoolNode.h:163
TGeoIntersection::DistFromOutside
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.
Definition: TGeoBoolNode.cxx:1420
TGeoBoolNode::SetPoints
virtual void SetPoints(Double_t *points) const
Fill buffer with shape vertices.
Definition: TGeoBoolNode.cxx:391
TGeoBoolNode::GetNpoints
virtual Int_t GetNpoints()=0
Float_t
float Float_t
Definition: RtypesCore.h:57
TGeoIntersection::GetNpoints
Int_t GetNpoints() override
Returns number of vertices for the composite shape described by this intersection.
Definition: TGeoBoolNode.cxx:1501
TGeoSubtraction::DistFromOutside
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.
Definition: TGeoBoolNode.cxx:1018
Int_t
int Int_t
Definition: RtypesCore.h:45
TGeoBoolNode::DistFromOutside
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
TGeoBoolNode::GetBooleanOperator
virtual EGeoBoolType GetBooleanOperator() const =0
TGeoIntersection::MakeClone
TGeoBoolNode * MakeClone() const override
Make a clone of this. Pointers are preserved.
Definition: TGeoBoolNode.cxx:1157
TGeoSubtraction::ComputeBBox
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.
Definition: TGeoBoolNode.cxx:884
TGeoIntersection::ComputeBBox
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.
Definition: TGeoBoolNode.cxx:1216
TGeoBoolNode::fNpoints
Int_t fNpoints
Definition: TGeoBoolNode.h:52
TGeoBoolNode::Contains
virtual Bool_t Contains(const Double_t *point) const =0
ClassDefOverride
#define ClassDefOverride(name, id)
Definition: Rtypes.h:329
Bool_t
bool Bool_t
Definition: RtypesCore.h:63
TGeoIntersection::Sizeof3D
void Sizeof3D() const override
Register 3D size of this shape.
Definition: TGeoBoolNode.cxx:1573
TGeoBoolNode::kGeoUnion
@ kGeoUnion
Definition: TGeoBoolNode.h:29
TGeoUnion::GetNpoints
Int_t GetNpoints() override
Returns number of vertices for the composite shape described by this union.
Definition: TGeoBoolNode.cxx:740
bool
TGeoBoolNode::SavePrimitive
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoBoolNode.cxx:374
TGeoBoolNode::GetThreadData
ThreadData_t & GetThreadData() const
Definition: TGeoBoolNode.cxx:66
TGeoIntersection::SavePrimitive
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoBoolNode.cxx:1558
TGeoUnion::Sizeof3D
void Sizeof3D() const override
Register 3D size of this shape.
Definition: TGeoBoolNode.cxx:814
TGeoIntersection::ComputeNormal
void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm) override
Normal computation in POINT. The orientation is chosen so that DIR.dot.NORM>0.
Definition: TGeoBoolNode.cxx:1317
TGeoIntersection::Safety
Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const override
Compute safety distance for a union node;.
Definition: TGeoBoolNode.cxx:1538
TGeoBoolNode::DistanceToPrimitive
virtual Int_t DistanceToPrimitive(Int_t px, Int_t py)=0
TGeoBoolNode::GetLeftMatrix
TGeoMatrix * GetLeftMatrix() const
Definition: TGeoBoolNode.h:81
Option_t
const typedef char Option_t
Definition: RtypesCore.h:66
TGeoSubtraction::GetBooleanOperator
EGeoBoolType GetBooleanOperator() const override
Definition: TGeoBoolNode.h:201
TGeoShape
Definition: TGeoShape.h:25
TGeoBoolNode::MakeClone
virtual TGeoBoolNode * MakeClone() const =0
TGeoSubtraction::Contains
Bool_t Contains(const Double_t *point) const override
Find if a subtraction of two shapes contains a given point.
Definition: TGeoBoolNode.cxx:965
TGeoUnion::DistFromOutside
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.
Definition: TGeoBoolNode.cxx:709
TGeoHMatrix
Definition: TGeoMatrix.h:420
TGeoUnion::MakeClone
TGeoBoolNode * MakeClone() const override
Make a clone of this. Pointers are preserved.
Definition: TGeoBoolNode.cxx:422
TGeoSubtraction::GetNpoints
Int_t GetNpoints() override
Returns number of vertices for the composite shape described by this subtraction.
Definition: TGeoBoolNode.cxx:1075
TGeoBoolNode::fRightMat
TGeoMatrix * fRightMat
Definition: TGeoBoolNode.h:51
TGeoBoolNode::kGeoSubtraction
@ kGeoSubtraction
Definition: TGeoBoolNode.h:31
TGeoBoolNode::fRight
TGeoShape * fRight
Definition: TGeoBoolNode.h:49
TGeoBoolNode::AssignPoints
void AssignPoints(Int_t npoints, Double_t *points)
Set fPoints array.
Definition: TGeoBoolNode.cxx:206
TGeoBoolNode::Paint
void Paint(Option_t *option) override
Special schema for feeding the 3D buffers to the painter client.
Definition: TGeoBoolNode.cxx:294
TGeoUnion::TGeoUnion
TGeoUnion()
Default constructor.
Definition: TGeoBoolNode.cxx:447
TGeoBoolNode::ComputeBBox
virtual void ComputeBBox(Double_t &dx, Double_t &dy, Double_t &dz, Double_t *origin)=0
TGeoUnion::~TGeoUnion
virtual ~TGeoUnion()
Destructor — deletion of components handled by TGeoManager class.
Definition: TGeoBoolNode.cxx:474
TGeoBoolNode::GetRightMatrix
TGeoMatrix * GetRightMatrix() const
Definition: TGeoBoolNode.h:82
TGeoBoolNode::~TGeoBoolNode
virtual ~TGeoBoolNode()
Destructor.
Definition: TGeoBoolNode.cxx:197
TGeoBoolNode::operator=
TGeoBoolNode & operator=(const TGeoBoolNode &)=delete
TGeoBoolNode::fPoints
Double_t * fPoints
number of points on the mesh
Definition: TGeoBoolNode.h:53
TGeoBoolNode::fThreadSize
Int_t fThreadSize
Navigation data per thread.
Definition: TGeoBoolNode.h:56
TGeoBoolNode::MakeBranch
Bool_t MakeBranch(const char *expr, Bool_t left)
Mutex for thread data access.
Definition: TGeoBoolNode.cxx:224
TGeoBoolNode::Sizeof3D
virtual void Sizeof3D() const
Register size of this 3D object.
Definition: TGeoBoolNode.cxx:411
TGeoBoolNode::ThreadData_t::ThreadData_t
ThreadData_t()
Constructor.
Definition: TGeoBoolNode.cxx:52
TGeoIntersection
Definition: TGeoBoolNode.h:144
TGeoBoolNode::fLeftMat
TGeoMatrix * fLeftMat
Definition: TGeoBoolNode.h:50
TGeoIntersection::TGeoIntersection
TGeoIntersection()
Default constructor.
Definition: TGeoBoolNode.cxx:1182
TGeoUnion::GetBooleanOperator
EGeoBoolType GetBooleanOperator() const override
Definition: TGeoBoolNode.h:124
TGeoBoolNode::kGeoIntersection
@ kGeoIntersection
Definition: TGeoBoolNode.h:30
Double_t
double Double_t
Definition: RtypesCore.h:59
TGeoMatrix
Definition: TGeoMatrix.h:40
TObject.h
TGeoSubtraction::SavePrimitive
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoBoolNode.cxx:1132
TGeoBoolNode::SetSelected
void SetSelected(Int_t sel)
Set the selected branch.
Definition: TGeoBoolNode.cxx:125
TGeoUnion
Definition: TGeoBoolNode.h:105
TGeoIntersection::Contains
Bool_t Contains(const Double_t *point) const override
Find if a intersection of two shapes contains a given point.
Definition: TGeoBoolNode.cxx:1367
points
point * points
Definition: X3DBuffer.c:22
TGeoUnion::DistFromInside
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.
Definition: TGeoBoolNode.cxx:596
TGeoBoolNode::Safety
virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const =0
TObject
Definition: TObject.h:37
TGeoBoolNode::CreateThreadData
void CreateThreadData(Int_t nthreads)
Create thread data for n threads max.
Definition: TGeoBoolNode.cxx:107
TGeoBoolNode::GetRightShape
TGeoShape * GetRightShape() const
Definition: TGeoBoolNode.h:84
TGeoSubtraction::DistFromInside
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.
Definition: TGeoBoolNode.cxx:987
TGeoBoolNode::fLeft
TGeoShape * fLeft
Definition: TGeoBoolNode.h:48
TGeoBoolNode::ThreadData_t::fSelected
Int_t fSelected
Definition: TGeoBoolNode.h:35
TGeoBoolNode::ClearThreadData
void ClearThreadData() const
Definition: TGeoBoolNode.cxx:91
TGeoBoolNode::RegisterMatrices
void RegisterMatrices()
Register all matrices of the boolean node and descendents.
Definition: TGeoBoolNode.cxx:337
TGeoBoolNode::DistFromInside
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
TGeoUnion::SavePrimitive
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoBoolNode.cxx:799
TGeoUnion::ComputeBBox
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.
Definition: TGeoBoolNode.cxx:481
TGeoSubtraction::Paint
void Paint(Option_t *option) override
Paint method.
Definition: TGeoBoolNode.cxx:833
TGeoSubtraction
Definition: TGeoBoolNode.h:182
TGeoBoolNode::ThreadData_t::~ThreadData_t
~ThreadData_t()
Destructor.
Definition: TGeoBoolNode.cxx:60
TGeoSubtraction::~TGeoSubtraction
virtual ~TGeoSubtraction()
Destructor — deletion of components handled by TGeoManager class.
Definition: TGeoBoolNode.cxx:877
TGeoBoolNode::ThreadData_t
Definition: TGeoBoolNode.h:33
TGeoSubtraction::MakeClone
TGeoBoolNode * MakeClone() const override
Make a clone of this. Pointers are preserved.
Definition: TGeoBoolNode.cxx:825
TGeoUnion::Safety
Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const override
Compute safety distance for a union node;.
Definition: TGeoBoolNode.cxx:779
int
TGeoBoolNode::ReplaceMatrix
Bool_t ReplaceMatrix(TGeoMatrix *mat, TGeoMatrix *newmat)
Replace one of the matrices.
Definition: TGeoBoolNode.cxx:349
TGeoSubtraction::DistanceToPrimitive
Int_t DistanceToPrimitive(Int_t px, Int_t py) override
Compute minimum distance to shape vertices.
Definition: TGeoBoolNode.cxx:979