77 const double zPlane[],
78 const double rInner[],
79 const double rOuter[]);
89 const double zPlane[],
90 const double rInner[],
91 const double rOuter[]);
110 std::ostream&
StreamInfo(std::ostream& os)
const;
117 bool aAccurate =
false)
const;
119 bool aAccurate =
false)
const;
125 double aPstep = UUtils::kInfinity)
const;
149 double fRmin2,
double fRmax2,
150 double zOne,
double zTwo,
151 double& totArea)
const;
154 double zOne,
double zTwo,
155 double& totArea)
const;
158 double fRMin2,
double fRMax2,
159 double zOne,
double zTwo,
160 double& totArea)
const;
163 double fRMin2,
double fRMax2,
234 for (
int j = 0; j < numPlanes; j++)
290 if (section < 0) section = 0;
double DistanceToIn(const UVector3 &p, const UVector3 &v, double aPstep=UUtils::kInfinity) const
std::vector< double > Rmin
UPolyconeSideRZ GetCorner(int index) const
std::vector< double > fZValues
UVector3 GetPointOnTubs(double fRMin, double fRMax, double zOne, double zTwo, double &totArea) const
double SafetyFromInsideSection(int index, const UVector3 &p) const
void SetOriginalParameters(UPolyconeHistorical *pars)
bool NormalSection(int index, const UVector3 &p, UVector3 &n) const
int GetSection(double z) const
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
UPolyconeHistorical * GetOriginalParameters() const
void CopyStuff(const UPolycone &source)
std::vector< UPolyconeSection > fSections
UVector3 GetPointOnCut(double fRMin1, double fRMax1, double fRMin2, double fRMax2, double zOne, double zTwo, double &totArea) const
std::ostream & StreamInfo(std::ostream &os) const
UPolyconeHistorical & operator=(const UPolyconeHistorical &right)
virtual bool Normal(const UVector3 &aPoint, UVector3 &aNormal) const =0
VUSolid::EnumInside Inside(const UVector3 &p) const
void GetParametersList(int, double *) const
std::vector< double > Rmax
bool Normal(const UVector3 &aPoint, UVector3 &aNormal) const
static int BinarySearch(const std::vector< T > &vec, T value)
double SafetyFromOutsideSection(int index, const UVector3 &p) const
UVector3 GetPointOnSurface() const
void Init(double phiStart, double phiTotal, int numZPlanes, const double zPlane[], const double rInner[], const double rOuter[])
UPolyconeHistorical * fOriginalParameters
UPolyconeSideRZ * corners
UGeometryType GetEntityType() const
virtual double SafetyFromInside(const UVector3 &aPoint, bool aAccurate=false) const =0
void SetOriginalParameters()
VUSolid::EnumInside InsideSection(int index, const UVector3 &p) const
virtual double SafetyFromOutside(const UVector3 &aPoint, bool aAccurate=false) const =0
double SafetyFromOutside(const UVector3 &aPoint, bool aAccurate=false) const
double GetStartPhi() const
double SafetyFromInside(const UVector3 &aPoint, bool aAccurate=false) const
std::string UGeometryType
UVector3 GetPointOnRing(double fRMin, double fRMax, double fRMin2, double fRMax2, double zOne) const
UVector3 GetPointOnCone(double fRmin1, double fRmax1, double fRmin2, double fRmax2, double zOne, double zTwo, double &totArea) const
UPolycone & operator=(const UPolycone &source)
int GetNumRZCorner() const
std::vector< double > fZs
UEnclosingCylinder * enclosingCylinder
void Extent(UVector3 &aMin, UVector3 &aMax) const
double DistanceToOut(const UVector3 &aPoint, const UVector3 &aDirection, UVector3 &aNormalVector, bool &aConvex, double aPstep=UUtils::kInfinity) const
UPolycone(const std::string &name)
void ComputeBBox(UBBox *, bool)