blob: 97d69764ce9986c04070bcdc51d152f858afd8da (
plain)
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
|
/* Starshatter: The Open Source Project
Copyright (c) 2021-2024, Starshatter: The Open Source Project Contributors
Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors
Copyright (c) 1997-2006, Destroyer Studios LLC.
AUTHOR: John DiCamillo
OVERVIEW
========
Relative Location (RLoc) class declaration
*/
#ifndef RLoc_h
#define RLoc_h
#include "Types.h"
#include "Geometry.h"
// +--------------------------------------------------------------------+
class RLoc
{
public:
RLoc();
RLoc(const Point& loc, double d, double dv=5e3);
RLoc(RLoc* rloc, double d, double dv=5e3);
RLoc(const RLoc& r);
~RLoc();
// accessors:
const Point& Location();
const Point& BaseLocation() const { return base_loc; }
RLoc* ReferenceLoc() const { return rloc; }
double Distance() const { return dex; }
double DistanceVar() const { return dex_var; }
double Azimuth() const { return az; }
double AzimuthVar() const { return az_var; }
double Elevation() const { return el; }
double ElevationVar() const { return el_var; }
void Resolve();
// mutators:
void SetBaseLocation(const Point& l);
void SetReferenceLoc(RLoc* r) { rloc = r; }
void SetDistance(double d) { dex = (float) d; }
void SetDistanceVar(double dv) { dex_var = (float) dv; }
void SetAzimuth(double a) { az = (float) a; }
void SetAzimuthVar(double av) { az_var = (float) av; }
void SetElevation(double e) { el = (float) e; }
void SetElevationVar(double ev) { el_var = (float) ev; }
private:
Point loc;
Point base_loc;
RLoc* rloc;
float dex;
float dex_var;
float az;
float az_var;
float el;
float el_var;
};
// +--------------------------------------------------------------------+
#endif // RLoc_h
|