15 SolidHole(
const double cx,
const double cy,
const double cz,
16 const double rup,
const double rlow,
17 const double lx,
const double ly,
const double lz);
20 SolidHole(
const double cx,
const double cy,
const double cz,
21 const double rup,
const double rlow,
22 const double lx,
const double ly,
const double lz,
23 const double dx,
const double dy,
const double dz);
27 bool IsInside(
const double x,
const double y,
const double z,
28 const bool tesselated)
const override;
29 bool GetBoundingBox(
double& xmin,
double& ymin,
double& zmin,
double& xmax,
30 double& ymax,
double& zmax)
const override;
31 bool IsHole()
const override {
return true; }
70 bool SolidPanels(std::vector<Panel>& panels)
override;
76 void Cut(
const double x0,
const double y0,
const double z0,
77 const double xn,
const double yn,
const double zn,
78 std::vector<Panel>& panels)
override;
98 bool m_average =
false;
106 std::array<double, 7> m_dis{{-1., -1., -1., -1., -1., -1., -1.}};
Box with a cylindrical hole.
void SetHalfLengthY(const double ly)
Set the half-length of the box along y.
bool GetBoundingBox(double &xmin, double &ymin, double &zmin, double &xmax, double &ymax, double &zmax) const override
Return the bounding box of the solid.
bool IsHole() const override
Return true if the solid is a hole.
double GetHalfLengthY() const override
Return the half-length along y.
double GetDiscretisationLevel(const Panel &panel) override
Retrieve the discretisation level of a panel.
void Cut(const double x0, const double y0, const double z0, const double xn, const double yn, const double zn, std::vector< Panel > &panels) override
double GetHalfLengthZ() const override
Return the half-length along z.
void SetSectors(const unsigned int n)
void SetHalfLengthX(const double lx)
Set the half-length of the box along x.
void SetLowerRadius(const double r)
Set the radius at z = -lz.
bool IsInside(const double x, const double y, const double z, const bool tesselated) const override
bool SolidPanels(std::vector< Panel > &panels) override
Retrieve the surface panels of the solid.
bool GetAverage() const
Return the state of the "average-radius" flag.
void SetHalfLengthZ(const double lz)
Set the half-length of the box along z.
void SetUpperRadius(const double r)
Set the radius at z = +lz.
double GetLowerRadius() const override
Return the lower radius (of a hole).
void SetAverageRadius(const bool average)
double GetUpperRadius() const override
Return the upper radius (of a hole).
double GetHalfLengthX() const override
Return the half-length along x.
void SetDiscretisationLevel(const double dis) override
Set the discretisation level (for all panels).
unsigned int GetSectors() const
Return the order of the approximating polygon.
Abstract base class for solids.