Bayeux  3.4.1
Core Foundation library for SuperNEMO
rotated_boxed_model.h
Go to the documentation of this file.
1 /* Author(s) : Francois Mauger <mauger@lpccaen.in2p3.fr>
3  * Creation date: 2010-02-24
4  * Last modified: 2013-06-27
5  *
6  * License:
7  *
8  * Description:
9  * Factory for geometry models
10  *
11  * History:
12  *
13  */
14 
15 #ifndef GEOMTOOLS_ROTATED_BOXED_MODEL_H
16 #define GEOMTOOLS_ROTATED_BOXED_MODEL_H 1
17 
18 // Standard libraries:
19 #include <iostream>
20 #include <string>
21 
22 // This project:
24 #include <geomtools/box.h>
26 #include <geomtools/placement.h>
27 
28 namespace geomtools {
29 
31  class rotated_boxed_model : public i_boxed_model
32  {
33 
34  public:
35  void set_boxed_model (const i_model &);
36 
37  const i_model & get_boxed_model () const;
38 
39  virtual const geomtools::box & get_box () const;
40 
41  const geomtools::box & get_solid () const;
42 
43  const placement & get_boxed_placement () const;
44 
46 
47  virtual ~rotated_boxed_model ();
48 
49  virtual std::string get_model_id () const;
50 
51  virtual void tree_dump (std::ostream & out_ = std::clog,
52  const std::string & title_ = "",
53  const std::string & indent_ = "",
54  bool inherit_ = false) const;
55 
56  protected:
57 
58  virtual void _at_construct (const std::string & name_,
59  const datatools::properties & config_,
60  models_col_type * models_ = 0);
61  private:
62 
63  const i_model * _boxed_model_;
64  placement _boxed_placement_;
65  physical_volume _boxed_phys_;
66  geomtools::box _solid_;
67 
68  // Registration interface
70 
71  };
72 
73 } // end of namespace geomtools
74 
75 #endif // GEOMTOOLS_ROTATED_BOXED_MODEL_H
76 
77 /*
78 ** Local Variables: --
79 ** mode: c++ --
80 ** c-file-style: "gnu" --
81 ** tab-width: 2 --
82 ** End: --
83 */
The base class for geometry models.
Definition: i_model.h:45
A geometry model implementing a box with an unique rotated boxed model.
Definition: rotated_boxed_model.h:31
const i_model & get_boxed_model() const
The 3D shape model for a box.
Definition: box.h:44
A physical geometry volume (ala GDML)
Definition: physical_volume.h:36
std::map< std::string, i_model * > models_col_type
Type alias for dictionary of geometry model plain handles.
Definition: model_tools.h:29
virtual void tree_dump(std::ostream &out_=std::clog, const std::string &title_="", const std::string &indent_="", bool inherit_=false) const
void set_boxed_model(const i_model &)
virtual std::string get_model_id() const
The placement for a geometry volume with its translation and rotation with respect to some mother ref...
Definition: placement.h:34
virtual void _at_construct(const std::string &name_, const datatools::properties &config_, models_col_type *models_=0)
virtual const geomtools::box & get_box() const
#define GEOMTOOLS_MODEL_REGISTRATION_INTERFACE(ModelClassName)
Definition: model_macros.h:30
const placement & get_boxed_placement() const
const geomtools::box & get_solid() const
Top-level namespace of the Bayeux/geomtools module library.
Definition: electromagnetic_field_manager.h:39
A dictionary of arbitrary properties.
Definition: properties.h:125