OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
PlatformPosition.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 //
3 // "Copyright Centre National d'Etudes Spatiales"
4 //
5 // License: LGPL
6 //
7 // See LICENSE.txt file in the top level directory for more details.
8 //
9 //----------------------------------------------------------------------------
10 // $Id$
11 
12 #ifndef PlatformPosition_h
13 #define PlatformPosition_h
14 
15 #include <vector>
17 #include <otb/JSDDateTime.h>
18 
19 class ossimKeywordlist;
20 
21 namespace ossimplugins
22 {
23 
24 
25  class Ephemeris;
26  class HermiteInterpolator;
27 
28 
34  {
35  public:
48 
57  PlatformPosition(Ephemeris** data, int nbrData);
58 
62  PlatformPosition& operator=(const PlatformPosition& rhs);
63 
69  Ephemeris* Interpolate(JSDDateTime date) const;
70 
71 
77  bool getPlatformPositionAtTime(JSDDateTime time, std::vector<double>& position, std::vector<double>& speed);
78 
80  {
81  return new PlatformPosition(*this);
82  };
83 
84  void setData(Ephemeris** data, int nbrData);
85  Ephemeris* getData(int noData) const;
86 
87  int getNbrData() const;
94  bool saveState(ossimKeywordlist& kwl,
95  const char* prefix=0) const;
96 
102  bool loadState(const ossimKeywordlist &kwl, const char *prefix=0);
103 
104  protected:
105 
109  void InitData(Ephemeris** data, int nbrData);
110  void InitAuxiliaryData();
111 
116  int _nbrData;
117 
122 
126  void Clear();
127 
128  private:
129  double * _t;
130  double ** _p;
131  double ** _dp;
133  };
134 }
135 
136 #endif
int _nbrData
Number of platform positions.
This class handles the platform position.
Represents serializable keyword/value map.
This class represents an ephemeris.
Definition: Ephemeris.h:28
Ephemeris ** _data
Platform positions.
PlatformPosition * Clone() const
#define OSSIM_PLUGINS_DLL
HermiteInterpolator ** _interpolator
This class represents a date.
Definition: JSDDateTime.h:30