Bayeux  3.4.1
Core Foundation library for SuperNEMO
i_from_model_vg.h
Go to the documentation of this file.
1 /* Author(s) : Francois Mauger <mauger@lpccaen.in2p3.fr>
3  * Creation date: 2010-04-13
4  * Last modified: 2014-04-09
5  *
6  * License:
7  *
8  * Description:
9  *
10  * Abstract base vertex generator from a geometry model addressed through some
11  * collection of geometry IDs extracted from a mapping object.
12  *
13  * History:
14  *
15  */
16 
17 #ifndef GENVTX_I_FROM_MODEL_VG_H
18 #define GENVTX_I_FROM_MODEL_VG_H
19 
20 // This project:
21 #include <genvtx/utils.h>
22 
23 // Third party:
24 // - Boost:
25 #include <boost/scoped_ptr.hpp>
26 
27 // This project:
29 
30 namespace geomtools {
31 
32  class id_selector;
33 
34 }
35 
36 namespace genvtx {
37 
40  {
41  public:
42 
45 
47  virtual ~i_from_model_vg();
48 
50  bool has_origin_def() const;
51 
53  void set_origin_def(const origin_definition &);
54 
56  const origin_definition & get_origin_def() const;
57 
59  bool has_mapping_plugin_name() const;
60 
62  const std::string & get_mapping_plugin_name() const;
63 
65  void set_mapping_plugin_name(const std::string & mpn_);
66 
68  bool has_materials_plugin_name() const;
69 
71  const std::string & get_materials_plugin_name() const;
72 
74  void set_materials_plugin_name(const std::string & mpn_);
75 
77  virtual void tree_dump(std::ostream & out_ = std::clog,
78  const std::string & title_ = "",
79  const std::string & indent_ = "",
80  bool inherit_ = false) const;
81 
83  static void ocd_support(datatools::object_configuration_description &, const std::string & label_ = "");
84 
85  protected:
86 
87  void _set_defaults();
88 
89  void _initialize(const ::datatools::properties & ,
92 
93  void _reset();
94 
96 
98 
99  private:
100 
101  std::string _mapping_plugin_name_;
102  std::string _materials_plugin_name_;
103  origin_definition _origin_def_;
104 
105  // Pimplized:
106  struct _work_type;
107  boost::scoped_ptr<_work_type> _work_;
108 
109  };
110 
111 } // end of namespace genvtx
112 
113 #endif // GENVTX_I_FROM_MODEL_VG_H
114 
115 /*
116 ** Local Variables: --
117 ** mode: c++ --
118 ** c-file-style: "gnu" --
119 ** tab-width: 2 --
120 ** End: --
121 */
Definition: utils.h:39
bool has_origin_def() const
Check if origin definition is defined.
Top-level namespace of the Bayeux/genvtx module library.
Definition: box_model_vg.h:32
static void ocd_support(datatools::object_configuration_description &, const std::string &label_="")
OCD support.
void _initialize(const ::datatools::properties &, ::datatools::service_manager &, ::genvtx::vg_dict_type &)
const geomtools::id_selector & _get_source_selector() const
An object that describes the way an object of a given class can be configured through properties.
Definition: object_configuration_description.h:234
const origin_definition & get_origin_def() const
Return the origin definition.
virtual void tree_dump(std::ostream &out_=std::clog, const std::string &title_="", const std::string &indent_="", bool inherit_=false) const
Smart print.
An abstract vertex generator based on a geometry model.
Definition: i_from_model_vg.h:39
i_from_model_vg()
Constructor.
bool has_materials_plugin_name() const
Check if a materials plugin name is defined.
bool has_mapping_plugin_name() const
Check if a mapping plugin name is defined.
void set_origin_def(const origin_definition &)
Set the origin definition.
A selector of geometry IDs using a specific geometry category.
Definition: id_selector.h:34
virtual ~i_from_model_vg()
Destructor.
void set_mapping_plugin_name(const std::string &mpn_)
Set the mapping plugin name.
The base interface class for all vertex generator classes.
Definition: i_vertex_generator.h:59
void set_materials_plugin_name(const std::string &mpn_)
Set the materials plugin name is defined.
const std::string & get_mapping_plugin_name() const
Return the mapping plugin name.
std::map< std::string, vg_entry_type > vg_dict_type
Definition: vg_tools.h:125
const std::string & get_materials_plugin_name() const
Return the materials plugin name is defined.
Service management class.
Definition: service_manager.h:57
Top-level namespace of the Bayeux/geomtools module library.
Definition: electromagnetic_field_manager.h:39