CombiningParticlePotentialParsing
Last change
on this file since ff4fff9 was 00eda9, checked in by Frederik Heber <heber@…>, 11 years ago |
Added ShapeFactory::isBaseShape() to discern between BaseShapes.
- this is preparatory for using faster Tesselation::getNormal() in case of
complex shapes.
|
-
Property mode
set to
100644
|
File size:
1.3 KB
|
Line | |
---|
1 | /*
|
---|
2 | * ShapeFactory.hpp
|
---|
3 | *
|
---|
4 | * Created on: Sep 5, 2012
|
---|
5 | * Author: ankele
|
---|
6 | */
|
---|
7 |
|
---|
8 | #ifndef SHAPEFACTORY_HPP_
|
---|
9 | #define SHAPEFACTORY_HPP_
|
---|
10 |
|
---|
11 |
|
---|
12 | // include config.h
|
---|
13 | #ifdef HAVE_CONFIG_H
|
---|
14 | #include <config.h>
|
---|
15 | #endif
|
---|
16 |
|
---|
17 | #include "CodePatterns/Singleton.hpp"
|
---|
18 | #include "LinearAlgebra/Vector.hpp"
|
---|
19 |
|
---|
20 | #include "Shape.hpp"
|
---|
21 |
|
---|
22 | class ShapeFactory : public Singleton<ShapeFactory>
|
---|
23 | {
|
---|
24 | friend class Singleton<ShapeFactory>;
|
---|
25 |
|
---|
26 | public:
|
---|
27 |
|
---|
28 | ShapeType getShapeByName(const std::string &name) const;
|
---|
29 | std::string getShapeName(ShapeType type) const;
|
---|
30 | const std::vector<std::string> &getBaseShapeNames() const;
|
---|
31 | bool isValidShapeName(const std::string &name) const;
|
---|
32 |
|
---|
33 | bool isSimpleShape(const ShapeType type) const;
|
---|
34 | bool isSimpleShape(const std::string &name) const;
|
---|
35 |
|
---|
36 | // create a shape
|
---|
37 | Shape produce(ShapeType type, const Vector &translation = Vector(0., 0., 0.), const Vector &stretch = Vector(1., 1., 1.), double angleX = 0, double angleY = 0, double angleZ = 0) const;
|
---|
38 |
|
---|
39 | private:
|
---|
40 | // private constructor and destructor due to singleton
|
---|
41 | ShapeFactory();
|
---|
42 | virtual ~ShapeFactory();
|
---|
43 |
|
---|
44 | // name/type maps
|
---|
45 | std::vector<std::string> baseShapeNames;
|
---|
46 | typedef std::map<ShapeType, std::string> ShapeNameMap;
|
---|
47 | ShapeNameMap shapeNameMap;
|
---|
48 | typedef std::map<std::string,ShapeType> NameShapeMap;
|
---|
49 | NameShapeMap nameShapeMap;
|
---|
50 | };
|
---|
51 |
|
---|
52 | #endif /* SHAPEFACTORY_HPP_ */
|
---|
Note:
See
TracBrowser
for help on using the repository browser.