12 #ifndef ROOT_TGeoCompositeShape 13 #define ROOT_TGeoCompositeShape 35 :
TGeoBBox(gcs), fNode(gcs.fNode) { }
74 void MakeNode(
const char *expression);
virtual void Sizeof3D() const
compute size of this 3D object
virtual TGeoVolume * Divide(TGeoVolume *voldiv, const char *divname, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step)
Divide all range of iaxis in range/step cells.
virtual void GetBoundingCylinder(Double_t *) const
Fill vector param[4] with the bounding cylinder parameters.
virtual Bool_t PaintComposite(Option_t *option="") const
Paint this composite shape into the current 3D viewer Returns bool flag indicating if the caller shou...
void MakeNode(const char *expression)
Make a boolean node according to the top level boolean operation of expression.
virtual Bool_t GetPointsOnSegments(Int_t, Double_t *) const
Fills array with n random points located on the line segments of the shape mesh.
TGeoCompositeShape(const TGeoCompositeShape &gcs)
Geometrical transformation package.
virtual Bool_t IsCylType() const
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
void RegisterYourself()
Register the shape and all components to TGeoManager class.
virtual Int_t GetNmeshVertices() const
Return number of vertices of the mesh representation.
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
virtual void SetDimensions(Double_t *)
Set dimensions based on the array of parameters param[0] - half-length in x param[1] - half-length in...
#define ClassDef(name, id)
virtual Double_t Capacity() const
Computes capacity of this shape [length^3] by sampling with 1% error.
virtual void Safety_v(const Double_t *points, const Bool_t *inside, Double_t *safe, Int_t vecsize) const
Compute safe distance from each of the points in the input array.
virtual Bool_t IsComposite() const
virtual Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=TGeoShape::Big(), Double_t *safe=0) const
Compute distance from outside point to this composite shape.
virtual Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=TGeoShape::Big(), Double_t *safe=0) const
Compute distance from inside point to outside of this composite shape.
Class handling Boolean composition of shapes.
TNamed & operator=(const TNamed &rhs)
TNamed assignment operator.
Base abstract class for all shapes.
virtual void ComputeNormal_v(const Double_t *points, const Double_t *dirs, Double_t *norms, Int_t vecsize)
Compute the normal for an array o points so that norm.dot.dir is positive Input: Arrays of point coor...
virtual void DistFromInside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const
Compute distance from array of input points having directions specified by dirs. Store output in dist...
virtual void ClearThreadData() const
Needed just for cleanup.
virtual void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm)
Computes normal vector in POINT to the composite shape.
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Compute closest distance from point px,py to each corner.
TGeoCompositeShape()
Default constructor.
virtual void SetPoints(Double_t *points) const
create points for a composite shape
virtual void Contains_v(const Double_t *points, Bool_t *inside, Int_t vecsize) const
Check the inside status for each of the points in the array.
virtual void DistFromOutside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const
Compute distance from array of input points having directions specified by dirs. Store output in dist...
virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const
computes the closest distance from given point to this shape, according to option.
virtual TGeoShape * GetMakeRuntimeShape(TGeoShape *, TGeoMatrix *) const
In case shape has some negative parameters, these has to be computed in order to fit the mother...
Base class for Boolean operations between two shapes.
virtual void InspectShape() const
print shape parameters
TGeoCompositeShape & operator=(const TGeoCompositeShape &gcs)
virtual void ComputeBBox()
compute bounding box of the sphere
virtual Bool_t Contains(const Double_t *point) const
Tests if point is inside the shape.
virtual void CreateThreadData(Int_t nthreads)
Needed just for cleanup.
double norm(double *x, double *p)
TGeoBoolNode * GetBoolNode() const
virtual ~TGeoCompositeShape()
destructor
virtual void GetMeshNumbers(Int_t &nvert, Int_t &nsegs, Int_t &npols) const
Returns numbers of vertices, segments and polygons composing the shape mesh.