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
Computes distance from outside point to surface of the shape.
Double_t GetClosestEdge(const Double_t *point, Double_t *vert, Int_t &isegment) const
Get index of the edge of the quadrilater represented by vert closest to point.
Double_t GetTheta() const
Double_t GetAlpha2() const
static double p3(double t, double a, double b, double c, double d)
virtual TGeoShape * GetMakeRuntimeShape(TGeoShape *, TGeoMatrix *) const
In case shape has some negative parameters, these has to be computed in order to fit the mother...
virtual TGeoVolume * Divide(TGeoVolume *voldiv, const char *divname, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step)
Divide this shape along one axis.
virtual void GetBoundingCylinder(Double_t *param) const
Fill vector param[4] with the bounding cylinder parameters.
Gtra is a twisted trapezoid.
virtual Double_t Capacity() const
Computes capacity of the shape in [length^3].
Geometrical transformation package.
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
void SetPlaneVertices(Double_t zpl, Double_t *vertices) const
Computes intersection points between plane at zpl and non-horizontal edges.
virtual Bool_t Contains(const Double_t *point) const
Test if point is inside this shape.
virtual Double_t GetAxisRange(Int_t iaxis, Double_t &xlo, Double_t &xhi) const
Get shape range on a given axis.
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 InspectShape() const
Prints shape parameters.
virtual void Sizeof3D() const
Fill size of this 3-D object.
Double_t SafetyToFace(const Double_t *point, Int_t iseg, Bool_t in) const
Estimate safety to lateral plane defined by segment iseg in range [0,3] Might be negative: plane seen...
Double_t GetTwist(Int_t iseg) const
Get twist for segment I in range [0,3].
virtual Int_t GetByteCount() const
#define ClassDef(name, id)
static double p2(double t, double a, double b, double c)
Double_t fXY[8][2]
[4] tangents of twist angles
virtual void SetVertex(Int_t vnum, Double_t x, Double_t y)
Set values for a given vertex.
TRAP is a general trapezoid, i.e.
virtual void SetPoints(Double_t *points) const
Creates arb8 mesh points.
virtual void ComputeBBox()
Computes bounding box for an Arb8 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 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 ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm)
Compute normal to closest surface from POINT.
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 arb8. Returns 0 if successful.
TGeoArb8()
Default constructor.
virtual Bool_t GetPointsOnFacet(Int_t, Int_t, Double_t *) const
Fills array with n random points located on the surface of indexed facet.
Base abstract class for all shapes.
static Bool_t InsidePolygon(Double_t x, Double_t y, Double_t *pts)
Finds if a point in XY plane is inside the polygon defines by PTS.
void ComputeTwist()
Computes tangents of twist angles (angles between projections on XY plane of corresponding -dz +dz ed...
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
static Bool_t IsSamePoint(const Double_t *p1, const Double_t *p2)
static double p1(double t, double a, double b)
virtual Bool_t IsCylType() const
constexpr Double_t E()
Base of natural log: .
virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const
Computes the closest distance from given point to this shape.
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 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.
An arbitrary trapezoid with less than 8 vertices standing on two parallel planes perpendicular to Z a...
static void GetPlaneNormal(Double_t *p1, Double_t *p2, Double_t *p3, Double_t *norm)
Computes normal to plane defined by P1, P2 and P3.
Double_t GetTwistAngle() const
virtual ~TGeoArb8()
Destructor.
Double_t DistToPlane(const Double_t *point, const Double_t *dir, Int_t ipl, Bool_t in) const
Computes distance to plane ipl :
Double_t GetAlpha1() const
TGeoArb8 & operator=(const TGeoArb8 &)
Assignment operator.
virtual void SetDimensions(Double_t *param)
Set all arb8 params in one step.
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 surface of the shape.