source: src/Geometry/GeometryRegistry.hpp@ 0014a4

ForceAnnealing_goodresults ForceAnnealing_tocheck
Last change on this file since 0014a4 was 1e6fb7, checked in by Frederik Heber <frederik.heber@…>, 8 years ago

Added GeometryObject and GeometryRegistry.

  • Property mode set to 100644
File size: 1.1 KB
Line 
1/*
2 * GeometryRegistry.hpp
3 *
4 * Created on: Mar 25, 2017
5 * Author: heber
6 */
7
8#ifndef GEOMETRY_GEOMETRYREGISTRY_HPP_
9#define GEOMETRY_GEOMETRYREGISTRY_HPP_
10
11
12// include config.h
13#ifdef HAVE_CONFIG_H
14#include <config.h>
15#endif
16
17#include <map>
18
19#include "CodePatterns/Observer/Observable.hpp"
20#include "CodePatterns/Registry.hpp"
21#include "CodePatterns/Singleton.hpp"
22
23#include "Geometry/GeometryObject.hpp"
24
25
26/** The class GeometryRegistry stores all known GeometryObject's for
27 * retrieval.
28 */
29class GeometryRegistry :
30 public Singleton<GeometryRegistry>,
31 public Registry<GeometryObject>,
32 public Observable
33{
34 friend class Singleton<GeometryRegistry>;
35
36public:
37 void addGeometry(const GeometryObject &_v);
38 void removeGeometry(const std::string &_name);
39
40 enum NotificationType {
41 GeometryInserted,
42 GeometryRemoved,
43 NotificationType_MAX
44 };
45
46 GeometryObject *lastChanged() const { return _lastchanged; }
47
48private:
49 void fillRegistry();
50
51 // private constructor and destructor due to singleton
52 GeometryRegistry();
53 virtual ~GeometryRegistry();
54
55 GeometryObject *_lastchanged;
56};
57
58#endif /* GEOMETRY_GEOMETRYREGISTRY_HPP_ */
Note: See TracBrowser for help on using the repository browser.