Phoxonics  1.0
Object Oriented FDTD Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
GeometryBase.hpp
Go to the documentation of this file.
1 /*
2  * GeometryBase.hpp
3  *
4  * Created on: Jun 25, 2014
5  * Author: nano
6  */
7 
8 #ifndef GEOMETRYBASE_HPP_
9 #define GEOMETRYBASE_HPP_
10 
11 #include "../config/SimulationConfig.hpp"
12 #include "../common/SimulationItemBase.hpp"
13 #include "../../../common/common.hpp"
14 #include "../material/MaterialBase.hpp"
15 #include "../material/MaterialFactory.hpp"
16 #include "../grid/GridBase.hpp"
17 #include "../common/Vector3D.hpp"
18 #include <memory>
19 
20 namespace phoxonics {
21 namespace core {
22 
23 class GeometryBase : public SimulationItemBase {
24 public:
25  explicit GeometryBase();
26  virtual ~GeometryBase();
27 
28  Vector3D location;
29  Vector3D size;
30  int rotate { 0 }; // rotate degrees
31  std::shared_ptr<MaterialBase> material_type;
32 
33  // configures object and initializes data from config
34  virtual void configure(std::shared_ptr<ConfigBase> config_base) override;
35 
36  // prints object data
37  virtual void print_me() override;
38 
39  // generate a specific geometry
40  virtual void generate_geometry(std::shared_ptr<GridBase> grid_base);
41 
42  // rotate a geometry point and add it to the geometry vector
43  void rotate_geometry_point(int rot_point_x, int rot_point_y, int x, int y, int angle,
44  std::vector<Vector3D>& rotated_geom);
45 };
46 
47 } /* namespace core */
48 } /* namespace phoxonics */
49 
50 #endif /* GEOMETRYBASE_HPP_ */
Vector3D size
Definition: GeometryBase.hpp:29
virtual void generate_geometry(std::shared_ptr< GridBase > grid_base)
Definition: GeometryBase.cpp:52
std::shared_ptr< MaterialBase > material_type
Definition: GeometryBase.hpp:31
Definition: CommonBase.hpp:14
GeometryBase()
Definition: GeometryBase.cpp:13
int rotate
Definition: GeometryBase.hpp:30
virtual void print_me() override
Definition: GeometryBase.cpp:41
void rotate_geometry_point(int rot_point_x, int rot_point_y, int x, int y, int angle, std::vector< Vector3D > &rotated_geom)
Definition: GeometryBase.cpp:57
virtual void configure()
Definition: SimulationItemBase.cpp:21
Vector3D location
Definition: GeometryBase.hpp:28
virtual ~GeometryBase()
Definition: GeometryBase.cpp:17