OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimNitfSensraTag.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: MIT
4 //
5 // See LICENSE.txt file in the top level directory for more details.
6 //
7 // Author: Walt Bunch
8 //
9 // Description: Nitf support class for SENSRA - Sensor parameters extension.
10 //
11 //********************************************************************
12 // $Id: ossimNitfSensraTag.h 22013 2012-12-19 17:37:20Z dburken $
13 #ifndef ossimNitfSensraTag_HEADER
14 #define ossimNitfSensraTag_HEADER
16 
18 {
19 public:
20 
21  enum
22  {
23  REF_ROW_SIZE = 8,
24  REF_COL_SIZE = 8,
25  SENSOR_MODEL_SIZE = 6,
26  SENSOR_MOUNT_SIZE = 3,
27  SENSOR_LOC_SIZE = 21,
28  SENSOR_ALT_SRC_SIZE = 1,
29  SENSOR_ALT_SIZE = 6,
30  SENSOR_ALT_UNIT_SIZE = 1,
31  SENSOR_AGL_SIZE = 5,
32  SENSOR_PITCH_SIZE = 7,
33  SENSOR_ROLL_SIZE = 8,
34  SENSOR_YAW_SIZE = 8,
35  PLATFORM_PITCH_SIZE = 7,
36  PLATFORM_ROLL_SIZE = 8,
37  PLATFORM_HDG_SIZE = 5,
38  GROUND_SPD_SRC_SIZE = 1,
39  GROUND_SPEED_SIZE = 6,
40  GROUND_SPD_UNIT_SIZE = 1,
41  GROUND_TRACK_SIZE = 5,
42  VERTICAL_VEL_SIZE = 5,
43  VERT_VEL_UNIT_SIZE = 1,
44  SWATH_FRAMES_SIZE = 4,
45  N_SWATHS_SIZE = 4,
46  SPOT_NUM_SIZE = 3
47  // -----
48  // 132
49  };
50 
52  virtual ~ossimNitfSensraTag();
53 
54  virtual void parseStream(std::istream& in);
55  virtual void writeStream(std::ostream& out);
56 
57  virtual void clearFields();
58 
65  virtual std::ostream& print(std::ostream& out,
66  const std::string& prefix) const;
67 
68  // The set methods below taking ossimString args will truncate and
69  // pad with spaces, as necessary, to match enumed size
70  void setRefRow(ossimString refRow);
71  ossimString getRefRow()const;
72  void setRefCol(ossimString refCol);
73  ossimString getRefCol()const;
74  void setSensorModel(ossimString sensorModel);
75  ossimString getSensorModel()const;
76  void setSensorMount(ossimString sensorMount);
77  ossimString getSensorMount()const;
78  void setSensorLoc(ossimString sensorLoc);
79  ossimString getSensorLoc()const;
80  void setSensorAltSrc(ossimString sensorAltSrc);
81  ossimString getSensorAltSrc()const;
82  void setSensorAlt(ossimString sensorAlt);
83  ossimString getSensorAlt()const;
84  void setSensorAltUnit(ossimString sensorAltUnit);
85  ossimString getSensorAltUnit()const;
86  void setSensorAgl(ossimString sensorAgl);
87  ossimString getSensorAgl()const;
88  void setSensorPitch(ossimString sensorPitch);
89  ossimString getSensorPitch()const;
90  void setSensorRoll(ossimString sensorRoll);
91  ossimString getSensorRoll()const;
92  void setSensorYaw(ossimString sensorYaw);
93  ossimString getSensorYaw()const;
94  void setPlatformPitch(ossimString platformPitch);
95  ossimString getPlatformPitch()const;
96  void setPlatformRoll(ossimString platformRoll);
97  ossimString getPlatformRoll()const;
98  void setPlatformHdg(ossimString platformHdg);
99  ossimString getPlatformHdg()const;
100  void setGroundSpdSrc(ossimString groundSpdSrc);
101  ossimString getGroundSpdSrc()const;
102  void setGroundSpeed(ossimString groundSpeed);
103  ossimString getGroundSpeed()const;
104  void setGroundSpdUnit(ossimString groundSpdUnit);
105  ossimString getGroundSpdUnit()const;
106  void setGroundTrack(ossimString groundTrack);
107  ossimString getGroundTrack()const;
108  void setVerticalVel(ossimString verticalVel);
109  ossimString getVerticalVel()const;
110  void setVertVelUnit(ossimString vertVelUnit);
111  ossimString getVertVelUnit()const;
112  void setSwathFrames(ossimString swathFrames);
113  ossimString getSwathFrames()const;
114  void setNSwaths(ossimString nSwaths);
115  ossimString getNSwaths()const;
116  void setSpotNum(ossimString spotNum);
117  ossimString getSpotNum()const;
118 
119 protected:
120 
125  char theRefRow[REF_ROW_SIZE+1];
126 
131  char theRefCol[REF_COL_SIZE+1];
132 
137  char theSensorModel[SENSOR_MODEL_SIZE+1];
138 
143  char theSensorMount[SENSOR_MOUNT_SIZE+1];
144 
149  char theSensorLoc[SENSOR_LOC_SIZE+1];
150 
155  char theSensorAltSrc[SENSOR_ALT_SRC_SIZE+1];
156 
161  char theSensorAlt[SENSOR_ALT_SIZE+1];
162 
167  char theSensorAltUnit[SENSOR_ALT_UNIT_SIZE+1];
168 
173  char theSensorAgl[SENSOR_AGL_SIZE+1];
174 
179  char theSensorPitch[SENSOR_PITCH_SIZE+1];
180 
185  char theSensorRoll[SENSOR_ROLL_SIZE+1];
186 
191  char theSensorYaw[SENSOR_YAW_SIZE+1];
192 
197  char thePlatformPitch[PLATFORM_PITCH_SIZE+1];
198 
203  char thePlatformRoll[PLATFORM_ROLL_SIZE+1];
204 
209  char thePlatformHdg[PLATFORM_HDG_SIZE+1];
210 
215  char theGroundSpdSrc[GROUND_SPD_SRC_SIZE+1];
216 
221  char theGroundSpeed[GROUND_SPEED_SIZE+1];
222 
227  char theGroundSpdUnit[GROUND_SPD_UNIT_SIZE+1];
228 
233  char theGroundTrack[GROUND_TRACK_SIZE+1];
234 
239  char theVerticalVel[VERTICAL_VEL_SIZE+1];
240 
245  char theVertVelUnit[VERT_VEL_UNIT_SIZE+1];
246 
251  char theSwathFrames[SWATH_FRAMES_SIZE+1];
252 
257  char theNSwaths[N_SWATHS_SIZE+1];
258 
263  char theSpotNum[SPOT_NUM_SIZE+1];
264 
265 TYPE_DATA
266 };
267 
268 #endif
virtual void writeStream(ossim::ostream &out)=0
virtual void parseStream(ossim::istream &in)=0
This will allow the user defined data to parse the stream.
virtual std::ostream & print(std::ostream &out, const std::string &prefix=std::string()) const
Pure virtual print method that outputs a key/value type format adding prefix to keys.
#define TYPE_DATA
Definition: ossimRtti.h:339
std::basic_istream< char > istream
Base class for char input streams.
Definition: ossimIosFwd.h:20
#define OSSIM_DLL
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23