FOUND
Loading...
Searching...
No Matches
style.hpp
1#ifndef SRC_COMMON_STYLE_HPP_
2#define SRC_COMMON_STYLE_HPP_
3
4#include <vector>
5#include <unordered_set>
6#include <functional>
7#include <utility>
8#include <memory>
9
10#include "common/spatial/attitude-utils.hpp"
11#include "common/decimal.hpp"
12#include "common/pipeline/pipelines.hpp"
13
14namespace found {
15
17typedef __float128 PreciseDecimal;
18
21typedef std::vector<Vec2> Points;
22
26typedef Vec3 PositionVector;
27
34struct Image {
36 int width;
38 int height;
49 unsigned char *image;
50};
51
66
68typedef std::vector<Edge> Edges;
69
76struct Component {
78 std::unordered_set<uint64_t> points;
83};
84
86typedef std::vector<Component> Components;
87
95 uint64_t timestamp;
96
101};
102
103// so that we don't have to copy the data.
105typedef std::vector<LocationRecord> LocationRecords;
106
115
124 Vec3 (* position)(int theta);
125
135 Vec3 (* majorAxis)(int theta);
136
146 Vec3 (* minorAxis)(int theta);
147
159 decimal (* inPlaneRotation)(int theta);
160
171 decimal (* outPlaneRotation)(int theta);
172};
173
176typedef struct OrbitParams OrbitParams;
177
180typedef std::pair<std::function<Vec3(int)>,std::function<Vec3(int)>> KinematicPrediction;
181
183constexpr size_t calibration_size = 1;
184constexpr size_t distance_size = 3;
185constexpr size_t orbit_size = 2;
186
189
192
195
196} // namespace found
197
198#endif // SRC_COMMON_STYLE_HPP_
A Quaternion is a mutable object that represents a Quaternion.
Definition attitude-utils.hpp:474
SequentialPipeline is composite Stage (i.e.
Definition pipelines.hpp:142
A Vec3 is a mutable object that represents a 3D Vector.
Definition attitude-utils.hpp:98
Represents a connected component in an image.
Definition style.hpp:76
Vec2 lowerRight
The highest point (right lower edge)
Definition style.hpp:82
Vec2 upperLeft
The lowest point (left upper edge)
Definition style.hpp:80
std::unordered_set< uint64_t > points
The points in this component.
Definition style.hpp:78
Represents a 2D edge in an image.
Definition style.hpp:58
Vec2 upperLeft
The lowest point (left upper edge)
Definition style.hpp:62
Vec2 lowerRight
The highest point (right lower edge)
Definition style.hpp:64
Points points
The edge points.
Definition style.hpp:60
Represents an image.
Definition style.hpp:34
unsigned char * image
The image contents.
Definition style.hpp:49
int channels
The image channels.
Definition style.hpp:40
int height
The image height.
Definition style.hpp:38
int width
The image width.
Definition style.hpp:36
Represents a single spatial data point with position and timestamp.
Definition style.hpp:91
Vec3 position
3D position of the recorded data point.
Definition style.hpp:100
uint64_t timestamp
Timestamp associated with the position, in microseconds or appropriate units.
Definition style.hpp:95
OrbitParams defines the orbital parameters of a given orbit.
Definition style.hpp:111
decimal(* outPlaneRotation)(int theta)
The angular speed that the satellite's orbit plane rotates out of plane at with respect to the number...
Definition style.hpp:171
Vec3(* position)(int theta)
The position of the satellite as a function of the number of revolutions it has done.
Definition style.hpp:124
Vec3 initialCondition
The initial position of the satellite with respect to Earth (at t = 0 and theta = 0)
Definition style.hpp:114
decimal(* inPlaneRotation)(int theta)
The angular speed that the satellite's orbit plane rotates in plane at with respect to the number of ...
Definition style.hpp:159
Vec3(* majorAxis)(int theta)
The major axis vector as a function with respect to the revolutions of the satellite.
Definition style.hpp:135
Vec3(* minorAxis)(int theta)
The minor axis vector as a function with respect to the revolutions of the satellite.
Definition style.hpp:146
A Vec2 is an immutable object that represents a 2D Vector.
Definition attitude-utils.hpp:22