20#ifndef SHAPES_CONICAL_FRUSTUM_HPP
21#define SHAPES_CONICAL_FRUSTUM_HPP
54 double const r1,
double const r2,
double const length,
56 std::shared_ptr<Utils::CylindricalTransformationParameters>
60 m_cyl_transform_params(std::move(cyl_transform_params)) {}
62 void set_r1(
double const radius) { m_r1 = radius; }
63 void set_r2(
double const radius) { m_r2 = radius; }
76 double length()
const {
return m_length; }
100 double m_central_angle;
101 std::shared_ptr<Utils::CylindricalTransformationParameters>
102 m_cyl_transform_params;
Vector implementation and trait types for boost qvm interoperability.
Conical frustum shape with rounded corners and finite thickness.
void set_thickness(double const thickness)
void calculate_dist(const Utils::Vector3d &pos, double &dist, Utils::Vector3d &vec) const override
Calculate the distance vector and its norm between a given position and the cone.
void set_direction(int const dir)
void set_r2(double const radius)
double radius1() const
Get radius 1 perpendicular to axis.
double radius2() const
Get radius 2 perpendicular to axis.
int direction() const
Get direction.
double length() const
Get length of the frustum (without thickness).
double thickness() const
Get thickness of the frustum.
HollowConicalFrustum(double const r1, double const r2, double const length, double const thickness, int const direction, double const central_angle, std::shared_ptr< Utils::CylindricalTransformationParameters > cyl_transform_params)
void set_length(double const length)
void set_r1(double const radius)
void set_central_angle(double const central_angle)
double central_angle() const
Get central angle.