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

Volume overlapping detection algorithms. More...

#include <bayeux/geomtools/overlapping.h>

Classes

struct  overlap_info
 Information about a detected overlap. More...
 
struct  report
 Overlapping search report. More...
 

Public Types

enum  overlap_type { OVERLAP_SIMPLE = 0, OVERLAP_MOTHER_DAUGHTER = 1 }
 Type of overlapping. More...
 
enum  flag_type {
  FLAG_NONE = 0x0, FLAG_WIRES_SAMPLING = 0x1, FLAG_WIRES_LOW_SAMPLING = 0x2, FLAG_WIRES_HIGH_SAMPLING = 0x4,
  FLAG_WIRES_VERY_HIGH_SAMPLING = 0x8, FLAG_WIRES_HUGE_SAMPLING = 0x10, FLAG_OVERLAP_ALL = 0x20, FLAG_CHECK_OLD_FIRST = 0x40,
  FLAG_CHECK_INHIBIT_SECOND = 0x80, FLAG_DEBUG_DISPLAY = 0x100
}
 

Public Member Functions

 overlapping ()
 Constructor. More...
 
 ~overlapping ()
 Detructor. More...
 
bool check_mother_daughter_surface_intersection (const i_shape_3d &mother_shape_, const i_shape_3d &daughter_shape_, const i_placement &daughter_placement_, report &report_, uint32_t flags_=0) const
 Check if a mother volume and its daughter volume have some intersecting surfaces. More...
 
bool check_mother_daughter_overlap (const i_shape_3d &mother_shape_, const i_shape_3d &daughter_shape_, const i_placement &daughter_placement_, report &report_, uint32_t flags_=0) const
 Check if a daughter overlaps its mother volume's outside region. More...
 
bool check_two_volumes_overlap (const i_shape_3d &shape_old_, const i_placement &placement_old_, const i_shape_3d &shape_new_, const i_placement &placement_new_, report &, uint32_t flags_=0) const
 
datatools::logger::priority get_logging () const
 
void set_logging (datatools::logger::priority)
 

Static Public Member Functions

static const std::string & property_prefix ()
 Return the prefix of overlapping related properties. More...
 
static std::string make_key (const std::string &label_)
 Make a key. More...
 
static void extract (const datatools::properties &source_, datatools::properties &target_)
 
static bool has_flag (const datatools::properties &config_, const std::string &flag_)
 
static bool has_key (const datatools::properties &config_, const std::string &key_)
 
static flag_type get_flag_from_label (const std::string &label_)
 
static void make_vertice_unique (const wires_type &wires_, std::set< geomtools::vector_3d > &vertice_)
 

Detailed Description

Volume overlapping detection algorithms.

Member Enumeration Documentation

◆ flag_type

Enumerator
FLAG_NONE 
FLAG_WIRES_SAMPLING 
FLAG_WIRES_LOW_SAMPLING 
FLAG_WIRES_HIGH_SAMPLING 
FLAG_WIRES_VERY_HIGH_SAMPLING 
FLAG_WIRES_HUGE_SAMPLING 
FLAG_OVERLAP_ALL 
FLAG_CHECK_OLD_FIRST 
FLAG_CHECK_INHIBIT_SECOND 
FLAG_DEBUG_DISPLAY 

◆ overlap_type

Type of overlapping.

Enumerator
OVERLAP_SIMPLE 

Two positionned volumes are overlapping.

OVERLAP_MOTHER_DAUGHTER 

A daughter volume overlaps its mother volume.

Constructor & Destructor Documentation

◆ overlapping()

geomtools::overlapping::overlapping ( )

Constructor.

◆ ~overlapping()

geomtools::overlapping::~overlapping ( )

Detructor.

Member Function Documentation

◆ check_mother_daughter_overlap()

bool geomtools::overlapping::check_mother_daughter_overlap ( const i_shape_3d mother_shape_,
const i_shape_3d daughter_shape_,
const i_placement daughter_placement_,
report report_,
uint32_t  flags_ = 0 
) const

Check if a daughter overlaps its mother volume's outside region.

   ........

...' `... ****** : : ******** : ---— : **D3****** : / \ : ******** : | D1 | –**** ****** : \ / / ***** : ---— | ******** ... |****D2**** ........' *********

◆ check_mother_daughter_surface_intersection()

bool geomtools::overlapping::check_mother_daughter_surface_intersection ( const i_shape_3d mother_shape_,
const i_shape_3d daughter_shape_,
const i_placement daughter_placement_,
report report_,
uint32_t  flags_ = 0 
) const

Check if a mother volume and its daughter volume have some intersecting surfaces.

   ........

...' `... ---— : : / \ : ---— : | D3 | : / \ : \ / : | D1 | ---— ---— : \ / / * \ : ---— | ** | ... |** D2 | ........' _______/

◆ check_two_volumes_overlap()

bool geomtools::overlapping::check_two_volumes_overlap ( const i_shape_3d shape_old_,
const i_placement placement_old_,
const i_shape_3d shape_new_,
const i_placement placement_new_,
report ,
uint32_t  flags_ = 0 
) const

◆ extract()

static void geomtools::overlapping::extract ( const datatools::properties source_,
datatools::properties target_ 
)
static

◆ get_flag_from_label()

static flag_type geomtools::overlapping::get_flag_from_label ( const std::string &  label_)
static

◆ get_logging()

datatools::logger::priority geomtools::overlapping::get_logging ( ) const

◆ has_flag()

static bool geomtools::overlapping::has_flag ( const datatools::properties config_,
const std::string &  flag_ 
)
static

◆ has_key()

static bool geomtools::overlapping::has_key ( const datatools::properties config_,
const std::string &  key_ 
)
static

◆ make_key()

static std::string geomtools::overlapping::make_key ( const std::string &  label_)
static

Make a key.

◆ make_vertice_unique()

static void geomtools::overlapping::make_vertice_unique ( const wires_type wires_,
std::set< geomtools::vector_3d > &  vertice_ 
)
static

◆ property_prefix()

static const std::string& geomtools::overlapping::property_prefix ( )
static

Return the prefix of overlapping related properties.

◆ set_logging()

void geomtools::overlapping::set_logging ( datatools::logger::priority  )

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