15 SolidTube(
const double cx,
const double cy,
const double cz,
const double r,
18 SolidTube(
const double cx,
const double cy,
const double cz,
const double r,
19 const double lz,
const double dx,
const double dy,
const double dz);
23 bool IsInside(
const double x,
const double y,
const double z,
24 const bool tesselated)
const override;
25 bool GetBoundingBox(
double& xmin,
double& ymin,
double& zmin,
double& xmax,
26 double& ymax,
double& zmax)
const override;
27 bool IsTube()
const override {
return true; }
33 double GetRadius()
const override {
return m_rMax; }
51 void SetTopLid(
const bool closed) { m_toplid = closed; }
62 bool SolidPanels(std::vector<Panel>& panels)
override;
66 void Cut(
const double x0,
const double y0,
const double z0,
67 const double xn,
const double yn,
const double zn,
68 std::vector<Panel>& panels)
override;
84 bool m_average =
false;
90 std::vector<double> m_xp;
92 std::vector<double> m_yp;
100 std::array<double, 3> m_dis{{-1.,-1.,-1.}};
102 void UpdatePolygon();
bool SolidPanels(std::vector< Panel > &panels) override
Retrieve the surface panels of the solid.
void SetBottomLid(const bool closed)
Request the cylinder to be closed with a (polygonal) lid at -z.
unsigned int GetSectors() const
Return the number of sectors.
double GetDiscretisationLevel(const Panel &panel) override
Retrieve the discretisation level of a panel.
bool IsTube() const override
Return true if the solid is a tube.
void SetSectors(const unsigned int n)
double GetHalfLengthZ() const override
Return the half-length along z.
void SetHalfLength(const double lz)
void SetAverageRadius(const bool average)
void SetRadius(const double r)
double GetRotation() const
Return the current rotation angle.
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
void SetRotation(const double angle)
bool GetAverage() const
Return the status of the "average-radius" flag.
bool IsInside(const double x, const double y, const double z, const bool tesselated) const override
void SetTopLid(const bool closed)
Request the cylinder to be closed with a (polygonal) lid at +z.
double GetRadius() const override
Return the radius.
bool GetBoundingBox(double &xmin, double &ymin, double &zmin, double &xmax, double &ymax, double &zmax) const override
Return the bounding box of the solid.
void SetDiscretisationLevel(const double dis) override
Set the discretisation level (for all panels).
Abstract base class for solids.