Bayeux  3.4.1
Core Foundation library for SuperNEMO
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
geomtools::i_shape_3d Class Referenceabstract

Mother abstract class for all 3D solid shapes. More...

#include <bayeux/geomtools/i_shape_3d.h>

Inheritance diagram for geomtools::i_shape_3d:
geomtools::i_object_3d geomtools::i_wires_3d_rendering geomtools::i_find_intercept datatools::i_serializable datatools::i_tree_dumpable geomtools::box geomtools::cylinder geomtools::ellipsoid geomtools::elliptical_cylinder geomtools::extruded_box geomtools::i_composite_shape_3d geomtools::polycone geomtools::polyhedra geomtools::right_circular_conical_frustrum geomtools::right_polygonal_frustrum geomtools::sphere geomtools::tessellated_solid geomtools::torus geomtools::tube geomtools::wall_solid

Public Member Functions

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...
 
virtual double get_volume (uint32_t flags_=0) const
 Return the volume. 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...
 
virtual double get_surface (uint32_t flags_=face_identifier::FACE_BITS_ANY) const
 Return the surface cumulated by faces. 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...
 
virtual bool is_inside (const vector_3d &position_, double a_skin=GEOMTOOLS_PROPER_TOLERANCE) const =0
 Primitive check is a point is inside the solid. More...
 
virtual bool is_outside (const vector_3d &, double a_skin=GEOMTOOLS_PROPER_TOLERANCE) const =0
 Primitive check is a point is outside the solid. More...
 
virtual face_identifier on_surface (const vector_3d &position_, const face_identifier &a_surface_mask=face_identifier::FACE_BITS_ANY, double a_skin=GEOMTOOLS_PROPER_TOLERANCE) const =0
 Primitive check is a point is located on a given surface. More...
 
virtual vector_3d get_normal_on_surface (const vector_3d &a_position, const face_identifier &a_surface_bit) const =0
 Return the normal at a point of the surface given its surface identifier. 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...
 
virtual unsigned int compute_faces (face_info_collection_type &faces_) const
 Return a collection of face info objects. 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...
 
virtual void tree_dump (std::ostream &a_out=std::clog, const std::string &a_title="", const std::string &a_indent="", bool a_inherit=false) const
 Smart print. 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
virtual std::string get_shape_name () const =0
 Return the name of the shape. More...
 
virtual bool is_valid () const =0
 Check the validity of the object. More...
 
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...
 
virtual void initialize (const datatools::properties &, const handle_dict_type *=0)
 Initialize from properties and a dictionary of 3D-objects. More...
 
virtual void reset ()
 Reset. 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
 
virtual void generate_wires_self (wires_type &wires_, uint32_t options_=0) const =0
 
- Public Member Functions inherited from geomtools::i_find_intercept
 i_find_intercept ()
 Default constructor. More...
 
virtual ~i_find_intercept ()
 Destructor. More...
 
virtual bool find_intercept (const vector_3d &a_from, const vector_3d &a_direction, face_intercept_info &a_intercept, double a_skin=GEOMTOOLS_PROPER_TOLERANCE) const =0
 
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
 

Static Public Member Functions

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...
 

Static Public Attributes

static const double DEFAULT_SKIN
 
static const double ZERO_SKIN
 
static const double USING_PROPER_SKIN
 

Protected Member Functions

void _set_defaults ()
 Set default values for attributes. More...
 
virtual void _at_lock ()
 Executed at lock stage. 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...
 
virtual void _build_bounding_data ()
 Build the bounding data. 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...
 

Additional Inherited Members

- 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...
 

Detailed Description

Mother abstract class for all 3D solid shapes.

Constructor & Destructor Documentation

◆ i_shape_3d() [1/4]

geomtools::i_shape_3d::i_shape_3d ( )

Constructor.

◆ i_shape_3d() [2/4]

geomtools::i_shape_3d::i_shape_3d ( double  a_skin)

Constructor with skin tolerance.

◆ i_shape_3d() [3/4]

geomtools::i_shape_3d::i_shape_3d ( double  a_skin_,
double  angular_tolerance_ 
)

Constructor.

◆ i_shape_3d() [4/4]

geomtools::i_shape_3d::i_shape_3d ( const i_shape_3d )

Copy constructor.

◆ ~i_shape_3d()

virtual geomtools::i_shape_3d::~i_shape_3d ( )
virtual

Destructor.

Member Function Documentation

◆ _at_lock()

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

Executed at lock stage.

Reimplemented in geomtools::tessellated_solid, geomtools::polycone, and geomtools::polyhedra.

◆ _at_unlock()

virtual void geomtools::i_shape_3d::_at_unlock ( )
protectedvirtual

Executed at unlock stage.

Reimplemented in geomtools::tessellated_solid.

◆ _build_bounding_data()

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

◆ _grab_bounding_data()

bounding_data& geomtools::i_shape_3d::_grab_bounding_data ( )
protected

Return the bounding data.

◆ _initialize()

void geomtools::i_shape_3d::_initialize ( const datatools::properties ,
const handle_dict_type = 0 
)
protected

Initialize from properties.

◆ _initialize_bounding_data()

void geomtools::i_shape_3d::_initialize_bounding_data ( const datatools::properties config_)
protected

Parse bounding data from a properties container.

Example of an enforced bounding box:

enforce_bounding_data : boolean = true
bounding_data.type : string = "box"
bounding_data.xmin : real as length = 3.5 cm
bounding_data.xmax : real as length = 2.0 cm
bounding_data.ymin : real as length = 31.0 cm
bounding_data.ymax : real as length = 16.4 cm
bounding_data.zmin : real as length = 7.0 cm
bounding_data.zmax : real as length = 0.4 cm

Example of an enforced bounding cylinder:

enforce_bounding_data : boolean = true
bounding_data.type : string = "cylinder"
bounding_data.rmax : real as length = 3.4 cm
bounding_data.zmin : real as length = 7.0 cm
bounding_data.zmax : real as length = 0.4 cm

◆ _initialize_stackable_data()

void geomtools::i_shape_3d::_initialize_stackable_data ( const datatools::properties config_)
protected

Parse stackable data from a properties container.

Example of an enforced stackable data for all axis:

enforce_stackable_data : boolean = true
stackable.xmin : real as length = 3.5 cm
stackable.xmax : real as length = 2.0 cm
stackable.ymin : real as length = 31.0 cm
stackable.ymax : real as length = 16.4 cm
stackable.zmin : real as length = 7.0 cm
stackable.zmax : real as length = 0.4 cm

◆ _reset()

void geomtools::i_shape_3d::_reset ( )
protected

Reset.

◆ _reset_bounding_data()

void geomtools::i_shape_3d::_reset_bounding_data ( )
protected

Reset the bounding data.

◆ _set_defaults()

void geomtools::i_shape_3d::_set_defaults ( )
protected

Set default values for attributes.

◆ build_default_bounding_data()

void geomtools::i_shape_3d::build_default_bounding_data ( )

Build default bounding data.

◆ check_inside()

bool geomtools::i_shape_3d::check_inside ( const vector_3d position_,
double  a_skin = GEOMTOOLS_PROPER_TOLERANCE 
) const

Check if a point is inside the solid.

◆ check_outside()

bool geomtools::i_shape_3d::check_outside ( const vector_3d position_,
double  a_skin = GEOMTOOLS_PROPER_TOLERANCE 
) const

Check if a point is outside the solid.

◆ check_stackability()

static bool geomtools::i_shape_3d::check_stackability ( const i_shape_3d ,
const stackable::stackability_mode   
)
static

Check the stackability of the shape (from native or enforced stackable infos)

◆ check_surface() [1/2]

face_identifier geomtools::i_shape_3d::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.

◆ check_surface() [2/2]

bool geomtools::i_shape_3d::check_surface ( const vector_3d position_,
double  a_skin = GEOMTOOLS_PROPER_TOLERANCE 
) const

Check if a point is on the surface of the solid.

◆ compute_faces()

virtual unsigned int geomtools::i_shape_3d::compute_faces ( face_info_collection_type faces_) const
virtual

◆ get_bounding_data()

const bounding_data& geomtools::i_shape_3d::get_bounding_data ( ) const

Return the bounding data.

◆ get_computed_faces()

const face_info_collection_type& geomtools::i_shape_3d::get_computed_faces ( ) const

Return the collection of faces.

◆ get_default_skin()

static double geomtools::i_shape_3d::get_default_skin ( )
static

Return the default skin value.

◆ get_dimensional()

int geomtools::i_shape_3d::get_dimensional ( ) const
virtual

Return the dimension (3)

Implements geomtools::i_object_3d.

◆ get_effective_volume()

double geomtools::i_shape_3d::get_effective_volume ( ) const

Return the total effective volume.

◆ get_forced_volume()

double geomtools::i_shape_3d::get_forced_volume ( ) const

Return the forced volume.

◆ get_normal_on_surface()

virtual vector_3d geomtools::i_shape_3d::get_normal_on_surface ( const vector_3d a_position,
const face_identifier a_surface_bit 
) const
pure virtual

◆ get_number_of_faces()

virtual unsigned int geomtools::i_shape_3d::get_number_of_faces ( ) const
virtual

Return the number of faces.

◆ get_proper_skin()

static double geomtools::i_shape_3d::get_proper_skin ( )
static

Return the special skin value that tells to use the intrinsic skin of the shape itself (< 0)

◆ get_skin() [1/2]

double geomtools::i_shape_3d::get_skin ( double  a_skin) const

Return the effective skin tolerance associated to the 3D shape.

◆ get_skin() [2/2]

double geomtools::i_shape_3d::get_skin ( ) const

Return the intrinsic skin tolerance.

◆ get_stackable_data()

const stackable_data& geomtools::i_shape_3d::get_stackable_data ( ) const

Return the enforced stackable data associated to the shape.

◆ get_surface()

virtual double geomtools::i_shape_3d::get_surface ( uint32_t  flags_ = face_identifier::FACE_BITS_ANY) const
virtual

◆ get_volume()

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

◆ get_zero_skin()

static double geomtools::i_shape_3d::get_zero_skin ( )
static

Return the zero skin value (0 == no thickness)

◆ has_bounding_data()

bool geomtools::i_shape_3d::has_bounding_data ( ) const

Check the bounding data.

◆ has_computed_faces()

bool geomtools::i_shape_3d::has_computed_faces ( ) const

Check if the embedded collection of faces has been computed.

◆ has_forced_volume()

virtual bool geomtools::i_shape_3d::has_forced_volume ( ) const
virtual

Check is a forced volume is set.

◆ has_number_of_faces()

virtual bool geomtools::i_shape_3d::has_number_of_faces ( ) const
virtual

Check if the number of faces is known.

◆ has_stackable_data()

bool geomtools::i_shape_3d::has_stackable_data ( ) const

Check if some enforced stackable data are available.

◆ has_surface()

virtual bool geomtools::i_shape_3d::has_surface ( uint32_t  flags_ = face_identifier::FACE_BITS_ANY) const
virtual

Check is the surface is known.

◆ has_volume()

virtual bool geomtools::i_shape_3d::has_volume ( uint32_t  flags_ = 0) const
virtual

Check is the volume is known.

◆ init_ocd()

static void geomtools::i_shape_3d::init_ocd ( datatools::object_configuration_description )
static

OCD support.

◆ is_composite()

virtual bool geomtools::i_shape_3d::is_composite ( ) const
virtual

Check if the solid is composite.

Reimplemented from geomtools::i_object_3d.

Reimplemented in geomtools::i_composite_shape_3d.

◆ is_inside()

virtual bool geomtools::i_shape_3d::is_inside ( const vector_3d position_,
double  a_skin = GEOMTOOLS_PROPER_TOLERANCE 
) const
pure virtual

◆ is_locked()

bool geomtools::i_shape_3d::is_locked ( ) const

Check the lock flag.

◆ is_native_stackable()

bool geomtools::i_shape_3d::is_native_stackable ( ) const

◆ is_on_surface()

bool geomtools::i_shape_3d::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.

◆ is_outside()

virtual bool geomtools::i_shape_3d::is_outside ( const vector_3d ,
double  a_skin = GEOMTOOLS_PROPER_TOLERANCE 
) const
pure virtual

◆ lock()

void geomtools::i_shape_3d::lock ( )

Lock the shape, performing some internal calculations.

◆ make_any_face()

virtual void geomtools::i_shape_3d::make_any_face ( face_identifier ) const
virtual

Build a face identifier any mask.

Reimplemented in geomtools::i_composite_shape_3d.

◆ on_surface()

virtual face_identifier geomtools::i_shape_3d::on_surface ( const vector_3d position_,
const face_identifier a_surface_mask = face_identifier::FACE_BITS_ANY,
double  a_skin = GEOMTOOLS_PROPER_TOLERANCE 
) const
pure virtual

◆ operator=()

i_shape_3d& geomtools::i_shape_3d::operator= ( const i_shape_3d )

Assignment operator.

◆ owns_stackable_data()

bool geomtools::i_shape_3d::owns_stackable_data ( ) const

Check if some enforced stackable data are available and owned by the shape itself.

◆ pickup_stackable()

static bool geomtools::i_shape_3d::pickup_stackable ( const i_shape_3d ,
stackable_data  
)
static

Initialize a 'stackable_data' instance from stackable data attached to the 3D-shape.

◆ reset_bounding_data()

void geomtools::i_shape_3d::reset_bounding_data ( )

Reset the bounding data.

◆ reset_computed_faces()

void geomtools::i_shape_3d::reset_computed_faces ( )

Reset the computed faces.

◆ reset_stackable_data()

void geomtools::i_shape_3d::reset_stackable_data ( )

Reset enforced stackable data.

◆ set_bounding_data()

void geomtools::i_shape_3d::set_bounding_data ( const bounding_data )

Set the bounding data.

◆ set_forced_volume()

void geomtools::i_shape_3d::set_forced_volume ( double  volume_)

Force the volume.

◆ set_skin()

void geomtools::i_shape_3d::set_skin ( double  a_skin)

Set the intrinsic skin tolerance.

◆ set_stackable_data() [1/2]

void geomtools::i_shape_3d::set_stackable_data ( const stackable_data a_stackable_data)

Set external enforced stackable data.

◆ set_stackable_data() [2/2]

void geomtools::i_shape_3d::set_stackable_data ( const stackable_data a_stackable_data)

Set internal enforced stackable data.

◆ surface_key()

static const std::string& geomtools::i_shape_3d::surface_key ( )
static

◆ tree_dump()

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

◆ unlock()

void geomtools::i_shape_3d::unlock ( )

Unlock the shape.

◆ using_face_id_bits()

virtual bool geomtools::i_shape_3d::using_face_id_bits ( ) const
virtual

Check if the face identification scheme is based on face bits.

Reimplemented in geomtools::tessellated_solid, and geomtools::i_composite_shape_3d.

◆ using_face_id_index()

virtual bool geomtools::i_shape_3d::using_face_id_index ( ) const
virtual

Check if the face identification scheme is based on face index.

Reimplemented in geomtools::tessellated_solid.

◆ using_face_id_part_index()

virtual bool geomtools::i_shape_3d::using_face_id_part_index ( ) const
virtual

Check if the face identification scheme uses part index.

Reimplemented in geomtools::i_composite_shape_3d.

◆ volume_can_be_forced()

virtual bool geomtools::i_shape_3d::volume_can_be_forced ( ) const
virtual

Check if a forced volume can be set.

Reimplemented in geomtools::i_composite_shape_3d.

◆ volume_key()

static const std::string& geomtools::i_shape_3d::volume_key ( )
static

◆ where_is()

virtual shape_domain_flags_type geomtools::i_shape_3d::where_is ( const vector_3d position_,
double  a_skin 
) const
virtual

Localize a point with respect to the solid.

Member Data Documentation

◆ DEFAULT_SKIN

const double geomtools::i_shape_3d::DEFAULT_SKIN
static

◆ USING_PROPER_SKIN

const double geomtools::i_shape_3d::USING_PROPER_SKIN
static

◆ ZERO_SKIN

const double geomtools::i_shape_3d::ZERO_SKIN
static

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