22#ifndef SRC_SHAPES_CYLINDER_HPP
23#define SRC_SHAPES_CYLINDER_HPP
74 std::pair<double, double>
dist_half_pore(
double r,
double z)
const;
Vector implementation and trait types for boost qvm interoperability.
bool m_open
whether to ignore bottom and top cap of cylinder
void set_radius(double const &radius)
Utils::Vector3d m_axis
Axis of the cylinder.
double m_half_length
Center of smoothing circle.
double m_rad
cylinder radius.
Utils::Vector3d e_r_axis
Alternative e_r for corner case.
Utils::Vector3d e_z
Unit vector in z direction.
void set_axis(Utils::Vector3d const &axis)
double m_length
cylinder length.
void set_length(double const &length)
void calculate_dist(const Utils::Vector3d &pos, double &dist, Utils::Vector3d &vec) const override
Utils::Vector3d & center()
void precalc()
Calculate derived parameters.
double m_direction
direction -1: inside, +1 outside
Utils::Vector3d m_center
center of the cylinder.
std::pair< double, double > dist_half_pore(double r, double z) const
Utils::Vector3d const & axis() const