11 #ifndef ROOT_TGeoVGShape 12 #define ROOT_TGeoVGShape 23 inline namespace cxx {
24 class Transformation3D;
26 class VUnplacedVolume;
36 static vecgeom::cxx::VPlacedVolume *CreateVecGeomSolid(
TGeoShape *shape);
42 static vecgeom::cxx::Transformation3D *
44 static vecgeom::cxx::VUnplacedVolume *
48 virtual void ComputeBBox();
69 {
return ( fShape->
GetBuffer3D(reqSections, localFrame) ); }
75 {
return ( fShape->
GetFittingBox(parambox, mat, dx, dy, dz) ); }
81 {
return ( fShape->
GetName() ); }
90 virtual void InspectShape()
const;
100 vecgeom::cxx::VPlacedVolume *
GetVGShape()
const {
return fVGShape; }
vecgeom::cxx::VPlacedVolume * GetVGShape() const
virtual void Sizeof3D() const =0
Bridge class for using a VecGeom solid as TGeoShape.
virtual Int_t GetNmeshVertices() const
virtual void SetDimensions(Double_t *param)=0
virtual Bool_t IsReflected() const
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)=0
Computes distance from point (px,py) to the object.
Geometrical transformation package.
virtual Int_t GetByteCount() const =0
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
virtual void GetBoundingCylinder(Double_t *param) const
Fill vector param[4] with the bounding cylinder parameters.
virtual Bool_t GetPointsOnSegments(Int_t npoints, Double_t *array) const =0
virtual Bool_t IsReflected() const
virtual TGeoShape * GetMakeRuntimeShape(TGeoShape *mother, TGeoMatrix *mat) const =0
virtual void GetMeshNumbers(Int_t &nvert, Int_t &nsegs, Int_t &npols) const
Returns numbers of vertices, segments and polygons composing the shape mesh.
virtual Double_t GetAxisRange(Int_t iaxis, Double_t &xlo, Double_t &xhi) const
Get range of shape for a given axis.
virtual TGeoVolume * Divide(TGeoVolume *, const char *, Int_t, Int_t, Double_t, Double_t)
Divide this box shape belonging to volume "voldiv" into ndiv equal volumes called divname...
virtual void GetBoundingCylinder(Double_t *param) const =0
virtual Bool_t IsAssembly() const
virtual const char * GetName() const
Get the shape name.
virtual Bool_t GetPointsOnSegments(Int_t npoints, Double_t *array) const
Fills array with n random points located on the line segments of the shape mesh.
TGeoShape * GetShape() const
#define ClassDef(name, id)
virtual void Draw(Option_t *option="")
Draw this shape.
virtual Bool_t IsCylType() const
virtual void SetSegsAndPols(TBuffer3D &buff) const =0
virtual Bool_t IsValidBox() const =0
virtual void SetPoints(Double_t *points) const =0
virtual TBuffer3D * MakeBuffer3D() const
virtual Bool_t CouldBeCrossed(const Double_t *point, const Double_t *dir) const
Decides fast if the bounding box could be crossed by a vector.
virtual const char * GetName() const
Get the shape name.
virtual Bool_t CouldBeCrossed(const Double_t *point, const Double_t *dir) const =0
Base abstract class for all shapes.
virtual void SetSegsAndPols(TBuffer3D &buff) const
Fills TBuffer3D structure for segments and polygons.
virtual Bool_t IsComposite() const
virtual const TBuffer3D & GetBuffer3D(Int_t reqSections, Bool_t localFrame) const
Stub implementation to avoid forcing implementation at this stage.
virtual Int_t GetNmeshVertices() const
vecgeom::cxx::VPlacedVolume * fVGShape
Generic 3D primitive description class.
virtual const TBuffer3D & GetBuffer3D(Int_t reqSections, Bool_t localFrame) const
Fills a static 3D buffer and returns a reference.
virtual void SetPoints(Double_t *points) const
Fill box points.
virtual Bool_t IsValidBox() const
virtual const char * GetAxisName(Int_t iaxis) const =0
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Compute closest distance from point px,py to each corner.
virtual TBuffer3D * MakeBuffer3D() const
Creates a TBuffer3D describing this shape.
virtual TGeoShape * GetMakeRuntimeShape(TGeoShape *mother, TGeoMatrix *mat) const
In case shape has some negative parameters, these has to be computed in order to fit the mother...
virtual void SetDimensions(Double_t *param)
Set dimensions based on the array of parameters param[0] - half-length in x param[1] - half-length in...
virtual void GetMeshNumbers(Int_t &, Int_t &, Int_t &) const
virtual Int_t GetFittingBox(const TGeoBBox *parambox, TGeoMatrix *mat, Double_t &dx, Double_t &dy, Double_t &dz) const
Fills real parameters of a positioned box inside this one. Returns 0 if successful.
virtual Bool_t IsComposite() const
virtual void Sizeof3D() const
virtual Double_t GetAxisRange(Int_t iaxis, Double_t &xlo, Double_t &xhi) const =0
virtual Int_t GetByteCount() const
virtual void SetPoints(Float_t *points) const
Fill box points.
virtual void Paint(Option_t *option="")
Paint this shape.
virtual Int_t GetFittingBox(const TGeoBBox *parambox, TGeoMatrix *mat, Double_t &dx, Double_t &dy, Double_t &dz) const =0
virtual void Draw(Option_t *option="")
Draw this shape.
virtual void Paint(Option_t *option="")
Paint this shape.
virtual Bool_t IsVecGeom() const
virtual Bool_t IsAssembly() const
virtual const char * GetAxisName(Int_t iaxis) const
Returns name of axis IAXIS.