11#ifndef ROOT_TGeoVGShape 
   12#define ROOT_TGeoVGShape 
bool Bool_t
Boolean (0=false, 1=true) (bool)
 
int Int_t
Signed integer 4 bytes (int)
 
float Float_t
Float 4 bytes (float)
 
double Double_t
Double 8 bytes.
 
const char Option_t
Option string (const char)
 
#define ClassDefOverride(name, id)
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t points
 
Generic 3D primitive description class.
 
Geometrical transformation package.
 
Base abstract class for all shapes.
 
Int_t DistancetoPrimitive(Int_t px, Int_t py) override=0
Computes distance from point (px,py) to the object.
 
virtual const TBuffer3D & GetBuffer3D(Int_t reqSections, Bool_t localFrame) const
Stub implementation to avoid forcing implementation at this stage.
 
virtual Double_t GetAxisRange(Int_t iaxis, Double_t &xlo, Double_t &xhi) const =0
 
virtual Int_t GetNmeshVertices() const
 
virtual void GetMeshNumbers(Int_t &, Int_t &, Int_t &) const
 
virtual void SetSegsAndPols(TBuffer3D &buff) const =0
 
virtual void SetDimensions(Double_t *param)=0
 
virtual void Sizeof3D() const =0
 
virtual const char * GetAxisName(Int_t iaxis) const =0
 
virtual Bool_t GetPointsOnSegments(Int_t npoints, Double_t *array) const =0
 
virtual Bool_t IsComposite() const
 
void Draw(Option_t *option="") override
Draw this shape.
 
virtual Bool_t IsCylType() const =0
 
void Paint(Option_t *option="") override
Paint this shape.
 
virtual void GetBoundingCylinder(Double_t *param) const =0
 
virtual Bool_t IsValidBox() const =0
 
virtual Bool_t IsReflected() const
 
virtual Int_t GetFittingBox(const TGeoBBox *parambox, TGeoMatrix *mat, Double_t &dx, Double_t &dy, Double_t &dz) const =0
 
virtual Int_t GetByteCount() const =0
 
const char * GetName() const override
Get the shape name.
 
virtual Bool_t CouldBeCrossed(const Double_t *point, const Double_t *dir) const =0
 
virtual TGeoShape * GetMakeRuntimeShape(TGeoShape *mother, TGeoMatrix *mat) const =0
 
virtual void SetPoints(Double_t *points) const =0
 
virtual Bool_t IsAssembly() const
 
virtual TBuffer3D * MakeBuffer3D() const
 
Bridge class for using a VecGeom solid as TGeoShape.
 
Double_t GetAxisRange(Int_t iaxis, Double_t &xlo, Double_t &xhi) const override
Get range of shape for a given axis.
 
~TGeoVGShape() override
Destructor.
 
static vecgeom::cxx::VPlacedVolume * CreateVecGeomSolid(TGeoShape *shape)
Conversion method to create VecGeom solid corresponding to TGeoShape.
 
static TGeoVGShape * Create(TGeoShape *shape)
Factory creating TGeoVGShape from a Root shape.
 
Int_t GetByteCount() const override
 
TGeoVolume * Divide(TGeoVolume *, const char *, Int_t, Int_t, Double_t, Double_t) override
Divide this box shape belonging to volume "voldiv" into ndiv equal volumes called divname,...
 
void SetPoints(Double_t *points) const override
Fill box points.
 
Bool_t IsReflected() const override
 
TGeoShape * fShape
VecGeom placed solid.
 
TGeoShape * GetMakeRuntimeShape(TGeoShape *mother, TGeoMatrix *mat) const override
In case shape has some negative parameters, these has to be computed in order to fit the mother.
 
Bool_t CouldBeCrossed(const Double_t *point, const Double_t *dir) const override
Decides fast if the bounding box could be crossed by a vector.
 
Bool_t IsValidBox() const override
 
void Paint(Option_t *option="") override
Paint this shape.
 
Bool_t Contains(const Double_t *point) const override
Test if point is inside this shape.
 
Bool_t GetPointsOnSegments(Int_t npoints, Double_t *array) const override
Fills array with n random points located on the line segments of the shape mesh.
 
Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=TGeoShape::Big(), Double_t *safe=nullptr) const override
Compute distance from outside point to surface of the box.
 
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Compute closest distance from point px,py to each corner.
 
const char * GetAxisName(Int_t iaxis) const override
Returns name of axis IAXIS.
 
Bool_t IsCylType() const override
 
void SetDimensions(Double_t *param) override
Set dimensions based on the array of parameters param[0] - half-length in x param[1] - half-length in...
 
void GetMeshNumbers(Int_t &nvert, Int_t &nsegs, Int_t &npols) const override
Returns numbers of vertices, segments and polygons composing the shape mesh.
 
Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const override
Computes the closest distance from given point to this shape.
 
Int_t GetNmeshVertices() const override
 
TBuffer3D * MakeBuffer3D() const override
Creates a TBuffer3D describing this shape.
 
Double_t Capacity() const override
Returns analytic capacity of the solid.
 
vecgeom::cxx::VPlacedVolume * GetVGShape() const
 
Int_t GetFittingBox(const TGeoBBox *parambox, TGeoMatrix *mat, Double_t &dx, Double_t &dy, Double_t &dz) const override
Fills real parameters of a positioned box inside this one. Returns 0 if successful.
 
vecgeom::cxx::VPlacedVolume * fVGShape
 
void GetBoundingCylinder(Double_t *param) const override
Fill vector param[4] with the bounding cylinder parameters.
 
void SetPoints(Float_t *points) const override
Fill box points.
 
void SetSegsAndPols(TBuffer3D &buff) const override
Fills TBuffer3D structure for segments and polygons.
 
void ComputeBBox() override
Compute bounding box.
 
TGeoShape * GetShape() const
 
void Draw(Option_t *option="") override
Draw this shape.
 
const char * GetName() const override
Get the shape name.
 
Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=TGeoShape::Big(), Double_t *safe=nullptr) const override
Compute distance from inside point to surface of the box.
 
void Sizeof3D() const override
 
void InspectShape() const override
Print info about the VecGeom solid.
 
const TBuffer3D & GetBuffer3D(Int_t reqSections, Bool_t localFrame) const override
Fills a static 3D buffer and returns a reference.
 
Bool_t IsAssembly() const override
 
Bool_t IsComposite() const override
 
Bool_t IsVecGeom() const override
 
static vecgeom::cxx::Transformation3D * Convert(TGeoMatrix const *const geomatrix)
Convert a TGeoMatrix to a TRansformation3D.
 
void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm) const override
Normal computation.
 
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.