Bayeux  3.4.1
Core Foundation library for SuperNEMO
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
geomtools::polycone Class Reference

Polycone 3D solid shape. More...

#include <bayeux/geomtools/polycone.h>

Inheritance diagram for geomtools::polycone:
geomtools::i_shape_3d geomtools::i_stackable geomtools::i_object_3d geomtools::i_wires_3d_rendering geomtools::i_find_intercept datatools::i_serializable datatools::i_tree_dumpable

Classes

struct  frustrum_data
 Data describing one frustrum. More...
 
struct  r_min_max
 Rmin/Rmax doublet. More...
 

Public Types

enum  faces_mask_type {
  FACE_NONE = face_identifier::FACE_BITS_NONE, FACE_INNER_SIDE = datatools::bit_mask::bit00, FACE_OUTER_SIDE = datatools::bit_mask::bit01, FACE_BOTTOM = datatools::bit_mask::bit02,
  FACE_TOP = datatools::bit_mask::bit03, FACE_START_ANGLE = datatools::bit_mask::bit04, FACE_STOP_ANGLE = datatools::bit_mask::bit05, FACE_ALL
}
 Face flags. More...
 
enum  datafile_column_mode { RMIN_RMAX = 0, IGNORE_RMIN = 1, RMIN_AS_RMAX = 2 }
 Format of the datafile for reading Z/Rmin/Rmax data. More...
 
enum  polycone_wires_rendering_option_type {
  WR_POLYCONE_NO_BOTTOM_FACE = (WR_BASE_LAST << 1), WR_POLYCONE_NO_TOP_FACE = (WR_BASE_LAST << 2), WR_POLYCONE_NO_INNER_FACE = (WR_BASE_LAST << 3), WR_POLYCONE_NO_OUTER_FACE = (WR_BASE_LAST << 4),
  WR_POLYCONE_NO_START_ANGLE_FACE = (WR_BASE_LAST << 5), WR_POLYCONE_NO_STOP_ANGLE_FACE = (WR_BASE_LAST << 6), WR_POLYCONE_LAST = (WR_POLYCONE_NO_STOP_ANGLE_FACE), WR_POLYCONE_MASK
}
 3D rendering options More...
 
typedef std::map< double, r_min_maxrz_col_type
 
- Public Types inherited from geomtools::i_object_3d
enum  dimensional_type { DIMENSIONAL_0 = 0, DIMENSIONAL_1 = 1, DIMENSIONAL_2 = 2, DIMENSIONAL_3 = 3 }
 Known dimensions. More...
 
typedef datatools::handle< i_object_3dhandle_type
 A handle to a 3D object. More...
 
typedef std::map< std::string, object_entryhandle_dict_type
 Dictionary of handle of 3D object entries. More...
 
- Public Types inherited from datatools::i_tree_dumpable
enum  ostream_type { OSTREAM_COUT = 1, OSTREAM_CERR = 2, OSTREAM_CLOG = 3 }
 Enumeration for standard output streams. More...
 
- Public Types inherited from geomtools::i_wires_3d_rendering
enum  wires_rendering_option_type {
  WR_NONE = 0, WR_BASE_GRID = datatools::bit_mask::bit00, WR_BASE_GRID_LOW_DENSITY = (WR_BASE_GRID << 1), WR_BASE_GRID_HIGH_DENSITY = (WR_BASE_GRID << 2),
  WR_BASE_GRID_VERY_HIGH_DENSITY = (WR_BASE_GRID << 3), WR_BASE_GRID_HUGE_DENSITY = (WR_BASE_GRID << 4), WR_BASE_LOW_ANGLE_SAMPLING = (WR_BASE_GRID << 5), WR_BASE_HIGH_ANGLE_SAMPLING = (WR_BASE_GRID << 6),
  WR_BASE_VERY_HIGH_ANGLE_SAMPLING = (WR_BASE_GRID << 7), WR_BASE_HUGE_ANGLE_SAMPLING = (WR_BASE_GRID << 8), WR_BASE_UNUSED_09 = (WR_BASE_GRID << 9), WR_BASE_UNUSED_10 = (WR_BASE_GRID << 10),
  WR_BASE_UNUSED_11 = (WR_BASE_GRID << 11), WR_BASE_UNUSED_12 = (WR_BASE_GRID << 12), WR_BASE_UNUSED_13 = (WR_BASE_GRID << 13), WR_BASE_BOUNDINGS = (WR_BASE_GRID << 14),
  WR_BASE_EXPLODE = (WR_BASE_GRID << 15), WR_BASE_LAST = (WR_BASE_EXPLODE), WR_BASE_MASK = datatools::bit_mask::nbits16
}
 Wires rendering optional flags. More...
 
enum  sampling_level_type {
  SL_NONE = 0, SL_LOW = 1, SL_NORMAL = 2, SL_HIGH = 3,
  SL_VERY_HIGH = 4, SL_HUGE = 5
}
 Sampling levels. More...
 

Public Member Functions

bool is_extruded () const
 Check if the polycone has a hole (Rmin != 0) More...
 
double get_xmin () const
 Return the X min. More...
 
double get_xmax () const
 Return the X max. More...
 
double get_ymin () const
 Return the Y min. More...
 
double get_ymax () const
 Return the Y max. More...
 
double get_zmin () const
 Return the Z min. More...
 
double get_zmax () const
 Return the Z max. More...
 
double get_z () const
 Return the Z dimension. More...
 
bool has_partial_angle () const
 Check if the nappe has partial phi angle. More...
 
bool has_start_angle () const
 Check the start phi angle. More...
 
void set_start_angle (double)
 Set the start phi angle. More...
 
double get_start_angle () const
 Return the start phi angle. More...
 
bool has_delta_angle () const
 Check the delta phi angle. More...
 
void set_delta_angle (double)
 Set the delta phi angle. More...
 
double get_delta_angle () const
 Return the delta phi angle. More...
 
unsigned int number_of_frustra () const
 Return the number of frustra. More...
 
void get_frustrum_data (size_t i_, frustrum_data &) const
 Compute frustrum data at given index. More...
 
const rz_col_typepoints () const
 Return the dictionary of points. More...
 
 polycone ()
 Default constructor. More...
 
virtual ~polycone ()
 Destructor. More...
 
virtual std::string get_shape_name () const
 Return the identifier/name of the shape. More...
 
bool is_valid () const
 Check if the solid is valid. More...
 
void add (double z_, double rmax_, bool compute_=true)
 Add a new point with only Rmax. More...
 
void add (double z_, double rmin_, double rmax_, bool compute_=true)
 Add a new point with Rmin and Rmax. More...
 
void initialize ()
 Initialize. More...
 
void initialize (const std::string &filename_)
 Initialize from a file. More...
 
void initialize (const std::string &filename_, double zmin_=std::numeric_limits< double >::quiet_NaN(), double zmax_=std::numeric_limits< double >::quiet_NaN(), int mode_=RMIN_RMAX)
 
virtual void initialize (const datatools::properties &setup_, const handle_dict_type *=0)
 Main initialization method from a container of configuration parameters. More...
 
virtual void reset ()
 Reset/invalidate the solid. More...
 
bool has_top_face () const
 Check for a top face. More...
 
bool has_bottom_face () const
 Check for a bottom face. More...
 
bool has_inner_face () const
 Check for an inner face. More...
 
bool has_angle_faces () const
 Check for angle faces. More...
 
void compute_top_face (disk &top_disk_, placement &) const
 Compute the top face. More...
 
void compute_bottom_face (disk &bottom_disk_, placement &) const
 Compute the bottom face. More...
 
void compute_frustrum (right_circular_conical_frustrum &f_, placement &, int index_) const
 Compute frustrum at given index. More...
 
void compute_inner_face (right_circular_conical_nappe &in_, placement &, int index_) const
 Compute the inner face at given frustrum index. More...
 
void compute_outer_face (right_circular_conical_nappe &on_, placement &, int index_) const
 Compute the outer face at given frustrum index. More...
 
right_circular_conical_frustrum::ssaf_type get_start_stop_angle_face_type (int index_) const
 
void compute_start_angle_face (quadrangle &qface_, triangle &tface_, placement &, int index_) const
 Compute the start phi angle face. More...
 
void compute_stop_angle_face (quadrangle &qface_, triangle &tface_, placement &, int index_) const
 Compute the stop phi angle face. More...
 
void compute_outer_face (composite_surface &face_, placement &) const
 Compute the outer face. More...
 
void compute_inner_face (composite_surface &face_, placement &) const
 Compute the inner face. More...
 
void compute_start_angle_face (composite_surface &face_, placement &) const
 Compute the start angle face. More...
 
void compute_stop_angle_face (composite_surface &face_, placement &) const
 Compute the stop angle face. More...
 
virtual unsigned int compute_faces (face_info_collection_type &) const
 Compute informations about the faces of this solid shape. More...
 
void compute_inner_polycone (polycone &ip_)
 Compute the inner polycone. More...
 
void compute_outer_polycone (polycone &op_)
 Compute the outer polycone. More...
 
virtual double get_volume (uint32_t flags_=0) const
 Compute the volume. More...
 
virtual double get_surface (uint32_t mask_=FACE_ALL) const
 Compute the surface. More...
 
double get_z_min () const
 Return the min Z. More...
 
double get_z_max () const
 Return the max Z. More...
 
double get_r_max () const
 Return the max eadius. More...
 
double get_parameter (const std::string &flag_) const
 Return a parameter by name. More...
 
virtual bool is_inside (const vector_3d &, double skin_=GEOMTOOLS_PROPER_TOLERANCE) const
 Check if a point is inside the frustrum. More...
 
virtual bool is_outside (const vector_3d &, double skin_=GEOMTOOLS_PROPER_TOLERANCE) const
 Check if a point is outside the frustrum. More...
 
virtual face_identifier on_surface (const vector_3d &, const face_identifier &a_surface_mask=face_identifier::face_bits_any(), double a_skin=GEOMTOOLS_PROPER_TOLERANCE) const
 Return the surface bit a point belongs to. More...
 
virtual vector_3d get_normal_on_surface (const vector_3d &position_, const face_identifier &) const
 Compute the normal to the surface of the furstrum. More...
 
virtual bool find_intercept (const vector_3d &from_, const vector_3d &direction_, face_intercept_info &intercept_, double skin_=GEOMTOOLS_PROPER_TOLERANCE) const
 Find the intercept point with a face of the frustrum. More...
 
virtual void tree_dump (std::ostream &out_=std::clog, const std::string &title_="", const std::string &indent_="", bool inherit_=false) const
 Smart print. More...
 
virtual void generate_wires_self (wires_type &wires_, uint32_t options_=0) const
 Generate a list of polylines representing the contour of the shape (for display clients) More...
 
- Public Member Functions inherited from geomtools::i_shape_3d
bool is_native_stackable () const
 
const stackable_dataget_stackable_data () const
 Return the enforced stackable data associated to the shape. More...
 
bool has_stackable_data () const
 Check if some enforced stackable data are available. More...
 
bool owns_stackable_data () const
 Check if some enforced stackable data are available and owned by the shape itself. More...
 
void set_stackable_data (const stackable_data &a_stackable_data)
 Set external enforced stackable data. More...
 
void set_stackable_data (const stackable_data *a_stackable_data)
 Set internal enforced stackable data. More...
 
void reset_stackable_data ()
 Reset enforced stackable data. More...
 
int get_dimensional () const
 Return the dimension (3) More...
 
double get_skin (double a_skin) const
 Return the effective skin tolerance associated to the 3D shape. More...
 
double get_skin () const
 Return the intrinsic skin tolerance. More...
 
void set_skin (double a_skin)
 Set the intrinsic skin tolerance. More...
 
 i_shape_3d ()
 Constructor. More...
 
 i_shape_3d (double a_skin)
 Constructor with skin tolerance. More...
 
 i_shape_3d (double a_skin_, double angular_tolerance_)
 Constructor. More...
 
 i_shape_3d (const i_shape_3d &)
 Copy constructor. More...
 
i_shape_3doperator= (const i_shape_3d &)
 Assignment operator. More...
 
virtual ~i_shape_3d ()
 Destructor. More...
 
virtual bool is_composite () const
 Check if the solid is composite. More...
 
virtual bool using_face_id_bits () const
 Check if the face identification scheme is based on face bits. More...
 
virtual bool using_face_id_index () const
 Check if the face identification scheme is based on face index. More...
 
virtual bool using_face_id_part_index () const
 Check if the face identification scheme uses part index. More...
 
virtual void make_any_face (face_identifier &) const
 Build a face identifier any mask. More...
 
virtual bool has_number_of_faces () const
 Check if the number of faces is known. More...
 
virtual unsigned int get_number_of_faces () const
 Return the number of faces. More...
 
virtual bool volume_can_be_forced () const
 Check if a forced volume can be set. More...
 
virtual bool has_forced_volume () const
 Check is a forced volume is set. More...
 
void set_forced_volume (double volume_)
 Force the volume. More...
 
double get_forced_volume () const
 Return the forced volume. More...
 
virtual bool has_volume (uint32_t flags_=0) const
 Check is the volume is known. More...
 
double get_effective_volume () const
 Return the total effective volume. More...
 
virtual bool has_surface (uint32_t flags_=face_identifier::FACE_BITS_ANY) const
 Check is the surface is known. More...
 
bool check_inside (const vector_3d &position_, double a_skin=GEOMTOOLS_PROPER_TOLERANCE) const
 Check if a point is inside the solid. More...
 
bool check_outside (const vector_3d &position_, double a_skin=GEOMTOOLS_PROPER_TOLERANCE) const
 Check if a point is outside the solid. More...
 
face_identifier check_surface (const vector_3d &position_, const face_identifier &a_surface_mask=face_identifier::FACE_BITS_ANY, double a_skin=GEOMTOOLS_PROPER_TOLERANCE) const
 Check is a point is located on a given surface. More...
 
bool check_surface (const vector_3d &position_, double a_skin=GEOMTOOLS_PROPER_TOLERANCE) const
 Check if a point is on the surface of the solid. More...
 
bool is_on_surface (const vector_3d &position_, const face_identifier &a_surface_mask=face_identifier::FACE_BITS_ANY, double a_skin=GEOMTOOLS_PROPER_TOLERANCE) const
 Check is a point is on a surface of the solid. More...
 
virtual shape_domain_flags_type where_is (const vector_3d &position_, double a_skin) const
 Localize a point with respect to the solid. More...
 
bool has_computed_faces () const
 Check if the embedded collection of faces has been computed. More...
 
const face_info_collection_typeget_computed_faces () const
 Return the collection of faces. More...
 
void reset_computed_faces ()
 Reset the computed faces. More...
 
bool has_bounding_data () const
 Check the bounding data. More...
 
const bounding_dataget_bounding_data () const
 Return the bounding data. More...
 
void reset_bounding_data ()
 Reset the bounding data. More...
 
void set_bounding_data (const bounding_data &)
 Set the bounding data. More...
 
void build_default_bounding_data ()
 Build default bounding data. More...
 
bool is_locked () const
 Check the lock flag. More...
 
void lock ()
 Lock the shape, performing some internal calculations. More...
 
void unlock ()
 Unlock the shape. More...
 
- Public Member Functions inherited from geomtools::i_object_3d
datatools::logger::priority get_logging_priority () const
 Return the logging priority threshold. More...
 
void set_logging_priority (datatools::logger::priority)
 Set the logging priority threshold. More...
 
bool has_wires_drawer () const
 Check is a wires drawer is available. More...
 
void set_wires_drawer (i_wires_3d_rendering &wires_drawer_)
 Set a wires drawer. More...
 
void reset_wires_drawer ()
 Reset the wires drawer. More...
 
i_wires_3d_renderinggrab_wires_drawer ()
 Return a wires drawer. More...
 
const i_wires_3d_renderingget_wires_drawer () const
 Return a wires drawer. More...
 
double compute_tolerance (double tolerance_) const
 Return the distance tolerance. More...
 
double compute_angular_tolerance (double angular_tolerance_) const
 Return the angular tolerance. More...
 
double get_tolerance () const
 Return the distance tolerance. More...
 
void set_tolerance (double tolerance_)
 Set the distance tolerance. More...
 
double get_angular_tolerance () const
 Return the angular tolerance. More...
 
void set_angular_tolerance (double tolerance_)
 Set the angular tolerance. More...
 
 i_object_3d ()
 Default constructor. More...
 
 i_object_3d (double tolerance_)
 Constructor on length tolerance. More...
 
 i_object_3d (double tolerance_, double angular_tolerance_)
 Constructor on length tolerance. More...
 
 i_object_3d (const i_object_3d &)
 Copy constructor. More...
 
i_object_3doperator= (const i_object_3d &)
 Assignment operator. More...
 
virtual ~i_object_3d ()
 Destructor. More...
 
void initialize_simple ()
 Initialize the 3D object. More...
 
- Public Member Functions inherited from datatools::i_serializable
 i_serializable ()
 Default constructor. More...
 
virtual ~i_serializable ()
 Destructor. More...
 
virtual const std::string & get_serial_tag () const =0
 Return the serialization string identifier of the class. More...
 
- Public Member Functions inherited from datatools::i_tree_dumpable
 i_tree_dumpable ()
 Constructor. More...
 
virtual ~i_tree_dumpable ()
 Destructor. More...
 
virtual void print_tree (std::ostream &out_=std::clog, const boost::property_tree::ptree &options_=empty_options()) const
 Main new interface method for printing. More...
 
void print_tree_json (std::ostream &out_=std::clog, const std::string &json_options_="") const
 Printing with jsonized options. More...
 
void print_tree_json (std::ostream &out_=std::clog, const char *json_options_=nullptr) const
 Printing with jsonized options. More...
 
void tree_dump_id (const int out_type_=OSTREAM_CLOG, const std::string &title_="", const std::string &indent_="", const bool inherit_=false) const
 
void tree_print_id (const int out_type_=OSTREAM_CLOG, const std::string &title_="") const
 
void smart_print_id (const int out_type_=OSTREAM_CLOG, const std::string &title_="", const std::string &indent_="") const
 
- Public Member Functions inherited from geomtools::i_wires_3d_rendering
virtual ~i_wires_3d_rendering ()
 Destructor. More...
 
void generate_wires (wires_type &wires_, const placement &positioning_, uint32_t options_=0) const
 
void generate_wires (wires_type &wires_, const geomtools::vector_3d &position_, const geomtools::rotation_3d &rotation_, uint32_t options_=0) const
 
- Public Member Functions inherited from geomtools::i_find_intercept
 i_find_intercept ()
 Default constructor. More...
 
virtual ~i_find_intercept ()
 Destructor. More...
 
bool find_intercept_self (const vector_3d &a_from, const vector_3d &a_direction, face_intercept_info &a_intercept, double a_skin=GEOMTOOLS_PROPER_TOLERANCE) const
 
bool find_intercept (const vector_3d &a_from, const vector_3d &a_direction, const placement &a_placement, face_intercept_info &a_intercept, double a_skin=GEOMTOOLS_PROPER_TOLERANCE) const
 
- Public Member Functions inherited from geomtools::i_stackable
 i_stackable ()
 
virtual ~i_stackable ()
 
bool has_xmin () const
 
bool has_xmax () const
 
bool has_ymin () const
 
bool has_ymax () const
 
bool has_zmin () const
 
bool has_zmax () const
 

Static Public Member Functions

static const std::string & polycone_label ()
 Return the identifier label for the class. More...
 
- Static Public Member Functions inherited from geomtools::i_shape_3d
static double get_default_skin ()
 Return the default skin value. More...
 
static double get_zero_skin ()
 Return the zero skin value (0 == no thickness) More...
 
static double get_proper_skin ()
 Return the special skin value that tells to use the intrinsic skin of the shape itself (< 0) More...
 
static const std::string & volume_key ()
 
static const std::string & surface_key ()
 
static bool pickup_stackable (const i_shape_3d &, stackable_data &)
 Initialize a 'stackable_data' instance from stackable data attached to the 3D-shape. More...
 
static bool check_stackability (const i_shape_3d &, const stackable::stackability_mode)
 Check the stackability of the shape (from native or enforced stackable infos) More...
 
static void init_ocd (datatools::object_configuration_description &)
 OCD support. More...
 
- Static Public Member Functions inherited from geomtools::i_object_3d
static void init_ocd (datatools::object_configuration_description &)
 OCD support. More...
 
- Static Public Member Functions inherited from datatools::i_tree_dumpable
static const boost::property_tree::ptree & empty_options ()
 
static boost::property_tree::ptree make_base_print_options (const std::string &title_, const std::string &indent_="", const bool inherit_=false)
 
static std::ostream & last_skip_tag (std::ostream &out_)
 
static std::ostream & skip_tag (std::ostream &out_)
 
static std::ostream & last_tag (std::ostream &out_)
 
static std::ostream & tag (std::ostream &out_)
 
- Static Public Member Functions inherited from geomtools::i_wires_3d_rendering
static uint32_t linear_sampling (sampling_level_type)
 Return linear sampling from sampling level. More...
 
static uint32_t linear_sampling_from_options (uint32_t)
 Return linear sampling from rendering options. More...
 
static uint32_t angular_sampling (sampling_level_type)
 Return angular sampling from sampling level. More...
 
static uint32_t angular_sampling_from_options (uint32_t)
 Return angular sampling from rendering options. More...
 
static void boost_linear_sampling (uint32_t &)
 Boost the linear sampling. More...
 

Protected Member Functions

virtual void _build_bounding_data ()
 Build bounding data. More...
 
void _set_defaults ()
 Set default attributes. More...
 
virtual void _at_lock ()
 Executed at lock stage. More...
 
- Protected Member Functions inherited from geomtools::i_shape_3d
void _set_defaults ()
 Set default values for attributes. More...
 
virtual void _at_unlock ()
 Executed at unlock stage. More...
 
void _initialize (const datatools::properties &, const handle_dict_type *=0)
 Initialize from properties. More...
 
void _reset ()
 Reset. More...
 
void _initialize_bounding_data (const datatools::properties &config_)
 Parse bounding data from a properties container. More...
 
void _initialize_stackable_data (const datatools::properties &config_)
 Parse stackable data from a properties container. More...
 
void _reset_bounding_data ()
 Reset the bounding data. More...
 
bounding_data_grab_bounding_data ()
 Return the bounding data. More...
 
- Protected Member Functions inherited from geomtools::i_object_3d
void _set_defaults ()
 Set default values for attributes. More...
 
void _initialize (const datatools::properties &, const handle_dict_type *=0)
 Initialize from properties. More...
 
void _reset ()
 Reset. More...
 

Friends

std::ostream & operator<< (std::ostream &, const polycone &)
 
std::istream & operator>> (std::istream &, polycone &)
 

Additional Inherited Members

- Static Public Attributes inherited from geomtools::i_shape_3d
static const double DEFAULT_SKIN
 
static const double ZERO_SKIN
 
static const double USING_PROPER_SKIN
 

Detailed Description

Polycone 3D solid shape.

Member Typedef Documentation

◆ rz_col_type

typedef std::map<double, r_min_max> geomtools::polycone::rz_col_type

Member Enumeration Documentation

◆ datafile_column_mode

Format of the datafile for reading Z/Rmin/Rmax data.

Enumerator
RMIN_RMAX 

Use one first column for Rmin and second one for Rmax.

IGNORE_RMIN 

Ignore first column as Rmin and use only second one for Rmax.

RMIN_AS_RMAX 

Use one first column as Rmax.

◆ faces_mask_type

Face flags.

Enumerator
FACE_NONE 
FACE_INNER_SIDE 
FACE_OUTER_SIDE 
FACE_BOTTOM 
FACE_TOP 
FACE_START_ANGLE 
FACE_STOP_ANGLE 
FACE_ALL 

◆ polycone_wires_rendering_option_type

3D rendering options

Enumerator
WR_POLYCONE_NO_BOTTOM_FACE 

Do not render the bottom face.

WR_POLYCONE_NO_TOP_FACE 

Do not render the top face.

WR_POLYCONE_NO_INNER_FACE 

Do not render the inner face.

WR_POLYCONE_NO_OUTER_FACE 

Do not render the outer face.

WR_POLYCONE_NO_START_ANGLE_FACE 

Do not render the start angle face.

WR_POLYCONE_NO_STOP_ANGLE_FACE 

Do not render the stop angle face.

WR_POLYCONE_LAST 

Last defined bit.

WR_POLYCONE_MASK 

Rendering options bit mask.

Constructor & Destructor Documentation

◆ polycone()

geomtools::polycone::polycone ( )

Default constructor.

◆ ~polycone()

virtual geomtools::polycone::~polycone ( )
virtual

Destructor.

Member Function Documentation

◆ _at_lock()

virtual void geomtools::polycone::_at_lock ( )
protectedvirtual

Executed at lock stage.

Reimplemented from geomtools::i_shape_3d.

◆ _build_bounding_data()

virtual void geomtools::polycone::_build_bounding_data ( )
protectedvirtual

Build bounding data.

Reimplemented from geomtools::i_shape_3d.

◆ _set_defaults()

void geomtools::polycone::_set_defaults ( )
protected

Set default attributes.

◆ add() [1/2]

void geomtools::polycone::add ( double  z_,
double  rmax_,
bool  compute_ = true 
)

Add a new point with only Rmax.

◆ add() [2/2]

void geomtools::polycone::add ( double  z_,
double  rmin_,
double  rmax_,
bool  compute_ = true 
)

Add a new point with Rmin and Rmax.

◆ compute_bottom_face()

void geomtools::polycone::compute_bottom_face ( disk bottom_disk_,
placement  
) const

Compute the bottom face.

◆ compute_faces()

virtual unsigned int geomtools::polycone::compute_faces ( face_info_collection_type ) const
virtual

Compute informations about the faces of this solid shape.

Reimplemented from geomtools::i_shape_3d.

◆ compute_frustrum()

void geomtools::polycone::compute_frustrum ( right_circular_conical_frustrum f_,
placement ,
int  index_ 
) const

Compute frustrum at given index.

◆ compute_inner_face() [1/2]

void geomtools::polycone::compute_inner_face ( right_circular_conical_nappe in_,
placement ,
int  index_ 
) const

Compute the inner face at given frustrum index.

◆ compute_inner_face() [2/2]

void geomtools::polycone::compute_inner_face ( composite_surface face_,
placement  
) const

Compute the inner face.

◆ compute_inner_polycone()

void geomtools::polycone::compute_inner_polycone ( polycone ip_)

Compute the inner polycone.

◆ compute_outer_face() [1/2]

void geomtools::polycone::compute_outer_face ( right_circular_conical_nappe on_,
placement ,
int  index_ 
) const

Compute the outer face at given frustrum index.

◆ compute_outer_face() [2/2]

void geomtools::polycone::compute_outer_face ( composite_surface face_,
placement  
) const

Compute the outer face.

◆ compute_outer_polycone()

void geomtools::polycone::compute_outer_polycone ( polycone op_)

Compute the outer polycone.

◆ compute_start_angle_face() [1/2]

void geomtools::polycone::compute_start_angle_face ( quadrangle qface_,
triangle tface_,
placement ,
int  index_ 
) const

Compute the start phi angle face.

◆ compute_start_angle_face() [2/2]

void geomtools::polycone::compute_start_angle_face ( composite_surface face_,
placement  
) const

Compute the start angle face.

◆ compute_stop_angle_face() [1/2]

void geomtools::polycone::compute_stop_angle_face ( quadrangle qface_,
triangle tface_,
placement ,
int  index_ 
) const

Compute the stop phi angle face.

◆ compute_stop_angle_face() [2/2]

void geomtools::polycone::compute_stop_angle_face ( composite_surface face_,
placement  
) const

Compute the stop angle face.

◆ compute_top_face()

void geomtools::polycone::compute_top_face ( disk top_disk_,
placement  
) const

Compute the top face.

◆ find_intercept()

virtual bool geomtools::polycone::find_intercept ( const vector_3d from_,
const vector_3d direction_,
face_intercept_info intercept_,
double  skin_ = GEOMTOOLS_PROPER_TOLERANCE 
) const
virtual

Find the intercept point with a face of the frustrum.

Implements geomtools::i_find_intercept.

◆ generate_wires_self()

virtual void geomtools::polycone::generate_wires_self ( wires_type wires_,
uint32_t  options_ = 0 
) const
virtual

Generate a list of polylines representing the contour of the shape (for display clients)

Implements geomtools::i_wires_3d_rendering.

◆ get_delta_angle()

double geomtools::polycone::get_delta_angle ( ) const

Return the delta phi angle.

◆ get_frustrum_data()

void geomtools::polycone::get_frustrum_data ( size_t  i_,
frustrum_data  
) const

Compute frustrum data at given index.

◆ get_normal_on_surface()

virtual vector_3d geomtools::polycone::get_normal_on_surface ( const vector_3d position_,
const face_identifier  
) const
virtual

Compute the normal to the surface of the furstrum.

Implements geomtools::i_shape_3d.

◆ get_parameter()

double geomtools::polycone::get_parameter ( const std::string &  flag_) const

Return a parameter by name.

◆ get_r_max()

double geomtools::polycone::get_r_max ( ) const

Return the max eadius.

◆ get_shape_name()

virtual std::string geomtools::polycone::get_shape_name ( ) const
virtual

Return the identifier/name of the shape.

Implements geomtools::i_object_3d.

◆ get_start_angle()

double geomtools::polycone::get_start_angle ( ) const

Return the start phi angle.

◆ get_start_stop_angle_face_type()

right_circular_conical_frustrum::ssaf_type geomtools::polycone::get_start_stop_angle_face_type ( int  index_) const

◆ get_surface()

virtual double geomtools::polycone::get_surface ( uint32_t  mask_ = FACE_ALL) const
virtual

Compute the surface.

Reimplemented from geomtools::i_shape_3d.

◆ get_volume()

virtual double geomtools::polycone::get_volume ( uint32_t  flags_ = 0) const
virtual

Compute the volume.

Reimplemented from geomtools::i_shape_3d.

◆ get_xmax()

double geomtools::polycone::get_xmax ( ) const
virtual

Return the X max.

Implements geomtools::i_stackable.

◆ get_xmin()

double geomtools::polycone::get_xmin ( ) const
virtual

Return the X min.

Implements geomtools::i_stackable.

◆ get_ymax()

double geomtools::polycone::get_ymax ( ) const
virtual

Return the Y max.

Implements geomtools::i_stackable.

◆ get_ymin()

double geomtools::polycone::get_ymin ( ) const
virtual

Return the Y min.

Implements geomtools::i_stackable.

◆ get_z()

double geomtools::polycone::get_z ( ) const

Return the Z dimension.

◆ get_z_max()

double geomtools::polycone::get_z_max ( ) const

Return the max Z.

◆ get_z_min()

double geomtools::polycone::get_z_min ( ) const

Return the min Z.

◆ get_zmax()

double geomtools::polycone::get_zmax ( ) const
virtual

Return the Z max.

Implements geomtools::i_stackable.

◆ get_zmin()

double geomtools::polycone::get_zmin ( ) const
virtual

Return the Z min.

Implements geomtools::i_stackable.

◆ has_angle_faces()

bool geomtools::polycone::has_angle_faces ( ) const

Check for angle faces.

◆ has_bottom_face()

bool geomtools::polycone::has_bottom_face ( ) const

Check for a bottom face.

◆ has_delta_angle()

bool geomtools::polycone::has_delta_angle ( ) const

Check the delta phi angle.

◆ has_inner_face()

bool geomtools::polycone::has_inner_face ( ) const

Check for an inner face.

◆ has_partial_angle()

bool geomtools::polycone::has_partial_angle ( ) const

Check if the nappe has partial phi angle.

◆ has_start_angle()

bool geomtools::polycone::has_start_angle ( ) const

Check the start phi angle.

◆ has_top_face()

bool geomtools::polycone::has_top_face ( ) const

Check for a top face.

◆ initialize() [1/4]

void geomtools::polycone::initialize ( )

Initialize.

◆ initialize() [2/4]

void geomtools::polycone::initialize ( const std::string &  filename_)

Initialize from a file.

◆ initialize() [3/4]

void geomtools::polycone::initialize ( const std::string &  filename_,
double  zmin_ = std::numeric_limits< double >::quiet_NaN(),
double  zmax_ = std::numeric_limits< double >::quiet_NaN(),
int  mode_ = RMIN_RMAX 
)

Initialize the polycone from data in a file. Format (ASCII) consists in lines with the (Z,Rmax) format or the (Z,Rmin,Rmax) format. Special metadata may be specified at the beginning of the file:

All data are given with the following length unit:

#@length_unit mm

Data (Rmin) in the second column out of three columns are ignored:

#@ignore_rmin

The thickness of the polycone:

#@skin_thickness 0.001

The step of the polycone:

#@skin_step 5.0

Example:

#@length_unit mm
z1 rmin1 rmax1
z2 rmin2 rmax2
z3 rmax3
z4 rmin4 rmax4

◆ initialize() [4/4]

virtual void geomtools::polycone::initialize ( const datatools::properties setup_,
const handle_dict_type = 0 
)
virtual

Main initialization method from a container of configuration parameters.

Reimplemented from geomtools::i_object_3d.

◆ is_extruded()

bool geomtools::polycone::is_extruded ( ) const

Check if the polycone has a hole (Rmin != 0)

◆ is_inside()

virtual bool geomtools::polycone::is_inside ( const vector_3d ,
double  skin_ = GEOMTOOLS_PROPER_TOLERANCE 
) const
virtual

Check if a point is inside the frustrum.

Implements geomtools::i_shape_3d.

◆ is_outside()

virtual bool geomtools::polycone::is_outside ( const vector_3d ,
double  skin_ = GEOMTOOLS_PROPER_TOLERANCE 
) const
virtual

Check if a point is outside the frustrum.

Implements geomtools::i_shape_3d.

◆ is_valid()

bool geomtools::polycone::is_valid ( ) const
virtual

Check if the solid is valid.

Implements geomtools::i_object_3d.

◆ number_of_frustra()

unsigned int geomtools::polycone::number_of_frustra ( ) const

Return the number of frustra.

◆ on_surface()

virtual face_identifier geomtools::polycone::on_surface ( const vector_3d ,
const face_identifier a_surface_mask = face_identifier::face_bits_any(),
double  a_skin = GEOMTOOLS_PROPER_TOLERANCE 
) const
virtual

Return the surface bit a point belongs to.

Implements geomtools::i_shape_3d.

◆ points()

const rz_col_type& geomtools::polycone::points ( ) const

Return the dictionary of points.

◆ polycone_label()

static const std::string& geomtools::polycone::polycone_label ( )
static

Return the identifier label for the class.

◆ reset()

virtual void geomtools::polycone::reset ( )
virtual

Reset/invalidate the solid.

Reimplemented from geomtools::i_object_3d.

◆ set_delta_angle()

void geomtools::polycone::set_delta_angle ( double  )

Set the delta phi angle.

◆ set_start_angle()

void geomtools::polycone::set_start_angle ( double  )

Set the start phi angle.

◆ tree_dump()

virtual void geomtools::polycone::tree_dump ( std::ostream &  a_out = std::clog,
const std::string &  a_title = "",
const std::string &  a_indent = "",
bool  a_inherit = false 
) const
virtual

Smart print.

Reimplemented from geomtools::i_shape_3d.

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  ,
const polycone  
)
friend

◆ operator>>

std::istream& operator>> ( std::istream &  ,
polycone  
)
friend

The documentation for this class was generated from the following file: