12#ifndef ROOT_TGeoHalfSpace
13#define ROOT_TGeoHalfSpace
41 Double_t *safe =
nullptr)
const override;
#define ClassDefOverride(name, id)
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t points
A half space is limited just by a plane, defined by a point and the normal direction.
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
A half-space does not have a mesh primitive.
void Sizeof3D() const override
void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm) override
Compute normal to closest surface from POINT.
void DistFromInside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const override
Compute distance from array of input points having directions specified by dirs. Store output in dist...
virtual Double_t * GetPoint()
void GetBoundingCylinder(Double_t *) const override
Fill vector param[4] with the bounding cylinder parameters.
void Safety_v(const Double_t *points, const Bool_t *inside, Double_t *safe, Int_t vecsize) const override
Compute safe distance from each of the points in the input array.
void SetPoints(Double_t *) const override
Fill box points.
void SetPoints(Float_t *) const override
Fill box points.
virtual Double_t * GetNorm()
Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const override
computes the closest distance from given point to this shape, according to option.
void SetDimensions(Double_t *param) override
Set half-space parameters as stored in an array.
void InspectShape() const override
print shape parameters
void ComputeNormal_v(const Double_t *points, const Double_t *dirs, Double_t *norms, Int_t vecsize) override
Compute the normal for an array o points so that norm.dot.dir is positive Input: Arrays of point coor...
TGeoHalfSpace & operator=(const TGeoHalfSpace &)=delete
TGeoHalfSpace(const TGeoHalfSpace &)=delete
Bool_t Contains(const Double_t *point) const override
test if point is inside the half-space
TGeoVolume * Divide(TGeoVolume *voldiv, const char *divname, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step) override
Divide the shape along one axis.
~TGeoHalfSpace() override
destructor
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 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 the plane
Double_t Capacity() const override
Computes capacity of the shape in [length^3].
void Contains_v(const Double_t *points, Bool_t *inside, Int_t vecsize) const override
Check the inside status for each of the points in the array.
void ComputeBBox() override
Compute bounding box - nothing to do in this case.
Int_t GetNmeshVertices() const override
TGeoHalfSpace()
Dummy constructor.
Bool_t IsCylType() const override
void DistFromOutside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const override
Compute distance from array of input points having directions specified by dirs. Store output in dist...
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 inside point to the plane
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a primitive as a C++ statement(s) on output stream "out".
TGeoShape * GetMakeRuntimeShape(TGeoShape *, TGeoMatrix *) const override
In case shape has some negative parameters, these has to be computed in order to fit the mother.
Geometrical transformation package.
Base abstract class for all shapes.
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.