25 #ifndef USOLIDS_VUSolid
29 #ifndef USOLIDS_UUtils
37 UBox() :
VUSolid(), fDx(0), fDy(0), fDz(0),fCubicVolume(0.), fSurfaceArea(0.) {}
38 UBox(
const std::string&
name,
double dx,
double dy,
double dz);
46 void Set(
double dx,
double dy,
double dz);
66 bool aAccurate =
false)
const;
68 bool aAccurate =
false)
const;
73 double aPstep = UUtils::kInfinity)
const;
79 double aPstep = UUtils::kInfinity)
const;
103 std::ostream&
StreamInfo(std::ostream& os)
const;
131 if (fCubicVolume != 0.)
137 fCubicVolume = 8 * fDx * fDy * fDz;
144 if (fSurfaceArea != 0.)
150 fSurfaceArea = 8 * (fDx * fDy + fDx * fDz + fDy * fDz);
double GetXHalfLength() const
bool Normal(const UVector3 &aPoint, UVector3 &aNormal) const
UVector3 GetPointOnSurface() const
std::ostream & StreamInfo(std::ostream &os) const
const std::string & GetName() const
double GetYHalfLength() const
double DistanceToOut(const UVector3 &aPoint, const UVector3 &aDirection, UVector3 &aNormalVector, bool &aConvex, double aPstep=UUtils::kInfinity) const
UGeometryType GetEntityType() const
void SetXHalfLength(double dx)
double DistanceToIn(const UVector3 &aPoint, const UVector3 &aDirection, double aPstep=UUtils::kInfinity) const
double SafetyFromInside(const UVector3 &aPoint, bool aAccurate=false) const
double GetZHalfLength() const
UBox & operator=(const UBox &rhs)
void Set(double dx, double dy, double dz)
std::string UGeometryType
double SafetyFromOutside(const UVector3 &aPoint, bool aAccurate=false) const
EnumInside Inside(const UVector3 &aPoint) const
void GetParametersList(int, double *aArray) const
void SetYHalfLength(double dy)
void Extent(UVector3 &aMin, UVector3 &aMax) const
void SetZHalfLength(double dz)
void ComputeBBox(UBBox *, bool)