ngc 1.5.0
 
Loading...
Searching...
No Matches
wcs.hpp
Go to the documentation of this file.
1
10#ifndef NGC_GATEWAY_WCS_H_
11#define NGC_GATEWAY_WCS_H_
12
13#include <string>
14#include <mutex>
15
16namespace ngc::gateway::base {
17
37
45 class Wcs {
46 public:
48 Wcs(const Wcs&) = delete;
49 Wcs& operator = (const Wcs&) = delete;
50
52 static Wcs& Instance() {
53 static Wcs wcs_instance;
54 return (wcs_instance);
55 }
56
61 void SetInfo(const WcsInformation& info) {
62 std::lock_guard<std::mutex> guard(m_mutex);
63 m_wcs_info = info;
64 }
65
71 std::lock_guard<std::mutex> guard(m_mutex);
72 WcsInformation info = m_wcs_info;
73 return info;
74 }
75
80 static void Set(const WcsInformation& info) {
81 Instance().SetInfo(info);
82 }
83
89 return Instance().GetInfo();
90 }
91
92 protected:
93 private:
95 std::mutex m_mutex;
96
98 WcsInformation m_wcs_info;
99
101 Wcs() {
102 m_wcs_info.reference_point_x = 0.5;
103 m_wcs_info.reference_point_y = 0.5;
104 m_wcs_info.ra_reference_point = 1.0;
105 m_wcs_info.dec_reference_point = 1.0;
106 m_wcs_info.arcsec_pixel_x = 0.0;
107 m_wcs_info.arcsec_pixel_y = 0.0;
108 m_wcs_info.rotation_x_axis = 0.0;
109 m_wcs_info.cd1_1 = 1.0;
110 m_wcs_info.cd1_2 = 0.0;
111 m_wcs_info.cd2_1 = 0.0;
112 m_wcs_info.cd2_2 = 1.0;
113 m_wcs_info.epoch_equinox = 2000.0;
114 m_wcs_info.type_1 = "PIXEL";
115 m_wcs_info.type_2 = "PIXEL";
116 }
117
119 ~Wcs() {}
120 };
121
122}
123
124#endif /* NGC_GATEWAY_WCS_H_ */
125
WCS access singleton.
Definition wcs.hpp:45
Wcs(const Wcs &)=delete
Disables unused constructors and operators.
static WcsInformation Get()
Definition wcs.hpp:88
static Wcs & Instance()
Application singleton instance.
Definition wcs.hpp:52
Wcs & operator=(const Wcs &)=delete
static void Set(const WcsInformation &info)
Definition wcs.hpp:80
WcsInformation GetInfo()
Definition wcs.hpp:70
void SetInfo(const WcsInformation &info)
Definition wcs.hpp:61
Definition app.cpp:13
float arcsec_pixel_y
Definition wcs.hpp:27
float ra_reference_point
Definition wcs.hpp:24
float cd2_1
Definition wcs.hpp:31
float rotation_x_axis
Definition wcs.hpp:28
float reference_point_x
Definition wcs.hpp:22
std::string type_1
Definition wcs.hpp:34
float arcsec_pixel_x
Definition wcs.hpp:26
float cd1_1
Definition wcs.hpp:29
float dec_reference_point
Definition wcs.hpp:25
float cd2_2
Definition wcs.hpp:32
float reference_point_y
Definition wcs.hpp:23
float epoch_equinox
Definition wcs.hpp:33
std::string type_2
Definition wcs.hpp:35
float cd1_2
Definition wcs.hpp:30