84   if (norm[0]*dir[0]+norm[1]*dir[1]+norm[2]*dir[2]<0) {
 
   97   r[0] = 
fP[0]-point[0];
 
   98   r[1] = 
fP[1]-point[1];
 
   99   r[2] = 
fP[2]-point[2];
 
  101   if (rdotn < 0) 
return kFALSE;
 
  119   r[0] = 
fP[0]-point[0];
 
  120   r[1] = 
fP[1]-point[1];
 
  121   r[2] = 
fP[2]-point[2];
 
  123   if (iact<3 && safe) {
 
  143   r[0] = 
fP[0]-point[0];
 
  144   r[1] = 
fP[1]-point[1];
 
  145   r[2] = 
fP[2]-point[2];
 
  147   if (iact<3 && safe) {
 
  167   Error(
"Divide", 
"Half-spaces cannot be divided");
 
  186   printf(
"*** Shape %s: TGeoHalfSpace ***\n", 
GetName());
 
  187   printf(
"    Point    : %11.5f, %11.5f, %11.5f\n", 
fP[0], 
fP[1], 
fP[2]);
 
  188   printf(
"    Normal   : %11.5f, %11.5f, %11.5f\n", 
fN[0], 
fN[1], 
fN[2]);
 
  198   r[0] = 
fP[0]-point[0];
 
  199   r[1] = 
fP[1]-point[1];
 
  200   r[2] = 
fP[2]-point[2];
 
  212   out << 
"   point[0] = " << 
fP[0] << 
";" << std::endl;
 
  213   out << 
"   point[1] = " << 
fP[1] << 
";" << std::endl;
 
  214   out << 
"   point[2] = " << 
fP[2] << 
";" << std::endl;
 
  215   out << 
"   norm[0]  = " << 
fN[0] << 
";" << std::endl;
 
  216   out << 
"   norm[1]  = " << 
fN[1] << 
";" << std::endl;
 
  217   out << 
"   norm[2]  = " << 
fN[2] << 
";" << std::endl;
 
  218   out << 
"   TGeoShape *" << 
GetPointerName() << 
" = new TGeoHalfSpace(\"" << 
GetName() << 
"\", point,norm);" << std::endl;
 
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 Rectangle_t WindowAttributes_t Float_t r
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.
virtual 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
compute distance from inside point to the plane
virtual void SetDimensions(Double_t *param)
Set half-space parameters as stored in an array.
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 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 Int_t DistancetoPrimitive(Int_t px, Int_t py)
A half-space does not have a mesh primitive.
virtual 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
compute distance from inside point to the plane
virtual ~TGeoHalfSpace()
destructor
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 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 void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
virtual void InspectShape() const
print shape parameters
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 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 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 ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm)
Compute normal to closest surface from POINT.
virtual TGeoVolume * Divide(TGeoVolume *voldiv, const char *divname, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step)
Divide the shape along one axis.
TGeoHalfSpace()
Dummy constructor.
virtual Bool_t Contains(const Double_t *point) const
test if point is inside the half-space
void SetShapeBit(UInt_t f, Bool_t set)
Equivalent of TObject::SetBit.
const char * GetPointerName() const
Provide a pointer name containing uid.
virtual const char * GetName() const
Get the shape name.
static Double_t Tolerance()
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual const char * ClassName() const
Returns name of class to which the object belongs.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Double_t Sqrt(Double_t x)
Returns the square root of x.
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.