-
Notifications
You must be signed in to change notification settings - Fork 1
/
database.h
97 lines (84 loc) · 1.48 KB
/
database.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#ifndef __DATABASE_H__
#define __DATABASE_H__
#include <stdio.h>
#include <string>
#include <vector>
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
struct in {
double id;
double ra;
double dec;
double mag;
};
struct dat1 {
double id;
double x;
double y;
double z;
double mag;
};
struct dat2 {
double id1;
double id2;
double id3;
double alpha1;
double alpha2;
double beta;
};
struct coord {
double x;
double y;
};
struct coord_3d {
double x;
double y;
double z;
};
struct angle_triple {
double alpha1;
double alpha2;
double beta;
};
struct coordint {
int x;
int y;
};
struct pixel {
unsigned char r;
unsigned char g;
unsigned char b;
};
struct quaternion {
double q0;
double q1;
double q2;
double q3;
};
struct vec3d {
double x;
double y;
double z;
};
class Database
{
public:
Database(string inputfile, string outputfile_table1, string outputfile_table2, double foc_len, double pix_size);
~Database();
//sucht alpha1, alpha2, beta in tabelle 2
bool find_triple (angle_triple key, dat2 *result);
//gibt koordinaten zu gesuchten stern zurück
vec3d get_coords (double id);
private:
vector<in> input_data;
vector<dat1> table1_data;
vector<dat2> table2_data;
double focal_length;
double pixel_size;
void read_inputfile(string filename);
void generate_table1(string filename);
void generate_table2(string filename);
};
#endif