LRAUV  revA
Point6D.h
Go to the documentation of this file.
1 
10 #ifndef POINT6D_H_
11 #define POINT6D_H_
12 
13 #include "data/I1D.h"
14 #include "utils/Str.h"
15 
16 class Point3D;
17 class Matrix6x6;
18 
31 class Point6D: public I1D<double>
32 {
33 public:
35  inline void setX( const double x )
36  {
37  value_[0] = x;
38  }
39  inline double getX() const
40  {
41  return value_[0];
42  }
43 
45  inline void setY( const double y )
46  {
47  value_[1] = y;
48  }
49  inline double getY() const
50  {
51  return value_[1];
52  }
53 
55  inline void setZ( const double z )
56  {
57  value_[2] = z;
58  }
59  inline double getZ() const
60  {
61  return value_[2];
62  }
63 
65  inline void setRoll( const double roll )
66  {
67  value_[3] = roll;
68  }
69  inline double getRoll() const
70  {
71  return value_[3];
72  }
73 
75  inline void setPitch( const double pitch )
76  {
77  value_[4] = pitch;
78  }
79  inline double getPitch() const
80  {
81  return value_[4];
82  }
83 
85  inline void setHeading( const double heading )
86  {
87  value_[5] = heading;
88  }
89  inline double getHeading() const
90  {
91  return value_[5];
92  }
93 
95  inline void setU( const double u )
96  {
97  value_[0] = u;
98  }
99  inline double getU() const
100  {
101  return value_[0];
102  }
103 
105  inline void setV( const double v )
106  {
107  value_[1] = v;
108  }
109  inline double getV() const
110  {
111  return value_[1];
112  }
113 
115  inline void setW( const double w )
116  {
117  value_[2] = w;
118  }
119  inline double getW() const
120  {
121  return value_[2];
122  }
123 
125  inline void setP( const double p )
126  {
127  value_[3] = p;
128  }
129  inline double getP() const
130  {
131  return value_[3];
132  }
133 
135  inline void setQ( const double q )
136  {
137  value_[4] = q;
138  }
139  inline double getQ() const
140  {
141  return value_[4];
142  }
143 
145  inline void setR( const double r )
146  {
147  value_[5] = r;
148  }
149  inline double getR() const
150  {
151  return value_[5];
152  }
153 
155  Point6D( );
156 
158  Point6D( const double& init );
159 
161  Point6D( const double& x, const double& y, const double& z,
162  const double& roll, const double& pitch, const double& heading );
163 
165  Point6D( const Point6D& value );
166  /*
168  Point6D( const void *binary );
169  */
171  virtual ~Point6D()
172  {}
173  ;
174 
176  Point6D* copy() const;
177 
178  // as a Str
179  virtual Str toString() const;
180 
181  Point6D& operator=( const Point6D& rhs );
182 
183  Point6D& operator=( const double rhs );
184 
185  Point6D& operator+=( const Point6D& rhs );
186 
187  Point6D& operator+=( const Point3D& rhs );
188 
189  Point6D& operator+=( const double rhs );
190 
191  Point6D& operator-=( const Point6D& rhs );
192 
193  Point6D& operator-=( const double rhs );
194 
195  Point6D& operator*=( const Point6D& rhs );
196 
197  Point6D& operator*=( const double rhs );
198 
199  Point6D& addProduct( Matrix6x6& lhs, Point6D& rhs );
200 
201  Point6D& addProduct( const Point6D& lhs, const double rhs );
202 
203  Point6D& addProduct( const Point3D& lhs, const double rhs );
204 
205  Point6D& toAbs();
206 
207  double& operator[]( int index );
208 
209  const double absSum() const;
210 
211  const double sum() const;
212 
213  const double sumSquared() const;
214 
216  virtual double* getPtr1d()
217  {
218  return value_;
219  }
220 
222  virtual int getM() const
223  {
224  return 6;
225  }
226 
227 protected:
228 
229  // The actual data
230  double value_[6];
231 
232 };
233 
234 #endif /*POINT6D_H_*/
double value_[6]
Definition: Point6D.h:230
Point6D & operator-=(const Point6D &rhs)
Definition: Point6D.cpp:119
void setRoll(const double roll)
X axis rotation, also Roll, Phi, and P=dPhi/dt.
Definition: Point6D.h:65
double & operator[](int index)
Definition: Point6D.cpp:207
void setW(const double w)
W – alias for dZ/dt.
Definition: Point6D.h:115
double getP() const
Definition: Point6D.h:129
Point6D & operator+=(const Point6D &rhs)
Definition: Point6D.cpp:89
double getZ() const
Definition: Point6D.h:59
void setR(const double r)
R – alias for dHeading/dt.
Definition: Point6D.h:145
const double sum() const
Definition: Point6D.cpp:222
const double sumSquared() const
Definition: Point6D.cpp:227
virtual ~Point6D()
Destructor.
Definition: Point6D.h:171
Definition: I1D.h:17
Point6D * copy() const
Return a pointer to a new copy.
Definition: Point6D.cpp:51
Point6D & operator=(const Point6D &rhs)
Definition: Point6D.cpp:67
void setU(const double u)
U – alias for dX/dt.
Definition: Point6D.h:95
Point6D()
Default constructior.
Definition: Point6D.cpp:21
Wraps six double precision (8-byte) floating point numbers.
Definition: Point6D.h:31
void setQ(const double q)
Q – alias for dPitch/dt.
Definition: Point6D.h:135
Point6D & operator*=(const Point6D &rhs)
Definition: Point6D.cpp:141
double getU() const
Definition: Point6D.h:99
double getY() const
Definition: Point6D.h:49
void setPitch(const double pitch)
Y axis rotation, also Pitch, Theta, and Q=dPtheta/dt.
Definition: Point6D.h:75
Point6D & toAbs()
Definition: Point6D.cpp:196
double getW() const
Definition: Point6D.h:119
Wraps three double precision (8-byte) floating point numbers.
Definition: Point3D.h:28
void setV(const double v)
V – alias for dY/dt.
Definition: Point6D.h:105
double getV() const
Definition: Point6D.h:109
Replacement for standard template class string.
Definition: Str.h:12
void setHeading(const double heading)
Z axis rotation, also Heading, Psi, and R=dPsi/dt.
Definition: Point6D.h:85
void setY(const double y)
Y, and also V=dY/dt.
Definition: Point6D.h:45
double getRoll() const
Definition: Point6D.h:69
double getPitch() const
Definition: Point6D.h:79
double getQ() const
Definition: Point6D.h:139
void setP(const double p)
P – alias for dRoll/dt.
Definition: Point6D.h:125
virtual int getM() const
Implement abstract I2D method.
Definition: Point6D.h:222
void setX(const double x)
X, and also U=dX/dt.
Definition: Point6D.h:35
double getX() const
Definition: Point6D.h:39
Contains a 6x6 array of double precision floating point numbers, along with methods for performing co...
Definition: Matrix6x6.h:27
virtual double * getPtr1d()
Implement abstract I1D method.
Definition: Point6D.h:216
void setZ(const double z)
Z, and also W=dZ/dt.
Definition: Point6D.h:55
double getHeading() const
Definition: Point6D.h:89
Point6D & addProduct(Matrix6x6 &lhs, Point6D &rhs)
Definition: Point6D.cpp:182
double getR() const
Definition: Point6D.h:149
virtual Str toString() const
Definition: Point6D.cpp:57
const double absSum() const
Definition: Point6D.cpp:216