OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimNitfUse00aTag.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 USE00A -
10 // Exploitation Usability extension.
11 //
12 //********************************************************************
13 // $Id: ossimNitfUse00aTag.h 22013 2012-12-19 17:37:20Z dburken $
14 #ifndef ossimNitfUse00aTag_HEADER
15 #define ossimNitfUse00aTag_HEADER
16 
18 
20 {
21 public:
22 
23  enum
24  {
25  ANGLE_TO_NORTH_SIZE = 3,
26  MEAN_GSD_SIZE = 5,
27  FIELD3_SIZE = 1,
28  DYNAMIC_RANGE_SIZE = 5,
29  FIELD5_SIZE = 3,
30  FIELD6_SIZE = 1,
31  FIELD7_SIZE = 3,
32  OBL_ANG_SIZE = 5,
33  ROLL_ANG_SIZE = 6,
34  FIELD10_SIZE = 12,
35  FIELD11_SIZE = 15,
36  FIELD12_SIZE = 4,
37  FIELD13_SIZE = 1,
38  FIELD14_SIZE = 3,
39  FIELD15_SIZE = 1,
40  FIELD16_SIZE = 1,
41  N_REF_SIZE = 2,
42  REV_NUM_SIZE = 5,
43  N_SEG_SIZE = 3,
44  MAX_LP_SEG_SIZE = 6,
45  FIELD20_SIZE = 6,
46  FIELD21_SIZE = 6,
47  SUN_EL_SIZE = 5,
48  SUN_AZ_SIZE = 5
49  // -----
50  // 107 bytes
51  };
52 
54  virtual ~ossimNitfUse00aTag();
55 
56  virtual void parseStream(std::istream& in);
57  virtual void writeStream(std::ostream& out);
58 
59  virtual void clearFields();
60 
61  // The set methods below taking ossimString args will truncate and
62  // pad with spaces, as necessary, to match enumed size
63  void setAngleToNorth(const ossimString& angleToNorth);
64  ossimString getAngleToNorth()const;
65  void setMeanGsd(const ossimString& meanGsd);
66  ossimString getMeanGsd()const;
67 
73  ossim_float64 getMeanGsdInMeters() const;
74 
75  void setField3(const ossimString& field3);
76  ossimString getField3()const;
77  void setDynamicRange(const ossimString& dynamicRange);
78  ossimString getDynamicRange()const;
79  void setField5(const ossimString& field5);
80  ossimString getField5()const;
81  void setField6(const ossimString& field6);
82  ossimString getField6()const;
83  void setField7(const ossimString& field7);
84  ossimString getField7()const;
85  void setOblAng(const ossimString& oblAng);
86  ossimString getOblAng()const;
87  void setRollAng(const ossimString& rollAng);
88  ossimString getRollAng()const;
89  void setField10(const ossimString& field10);
90  ossimString getField10()const;
91  void setField11(const ossimString& field11);
92  ossimString getField11()const;
93  void setField12(const ossimString& field12);
94  ossimString getField12()const;
95  void setField13(const ossimString& field13);
96  ossimString getField13()const;
97  void setField14(const ossimString& field14);
98  ossimString getField14()const;
99  void setField15(const ossimString& field15);
100  ossimString getField15()const;
101  void setField16(const ossimString& field16);
102  ossimString getField16()const;
103  void setNRef(const ossimString& nRef);
104  ossimString getNRef()const;
105  void setRevNum(const ossimString& revNum);
106  ossimString getRevNum()const;
107  void setNSeg(const ossimString& nSeg);
108  ossimString getNSeg()const;
109  void setMaxLpSeg(const ossimString& maxLpSeg);
110  ossimString getMaxLpSeg()const;
111  void setField20(const ossimString& field20);
112  ossimString getField20()const;
113  void setField21(const ossimString& field21);
114  ossimString getField21()const;
115  void setSunEl(const ossimString& sunEl);
116  ossimString getSunEl()const;
117  void setSunAz(const ossimString& sunAz);
118  ossimString getSunAz()const;
119 
126  virtual std::ostream& print(std::ostream& out,
127  const std::string& prefix=std::string()) const;
128 
129  virtual void setProperty(ossimRefPtr<ossimProperty> property);
130  virtual ossimRefPtr<ossimProperty> getProperty(const ossimString& name)const;
131  virtual void getPropertyNames(std::vector<ossimString>& propertyNames)const;
132 
133 protected:
134 
139  char theAngleToNorth[ANGLE_TO_NORTH_SIZE+1];
140 
145  char theMeanGsd[MEAN_GSD_SIZE+1];
146 
151  char theField3[FIELD3_SIZE+1];
152 
157  char theDynamicRange[DYNAMIC_RANGE_SIZE+1];
158 
163  char theField5[FIELD5_SIZE+1];
164 
169  char theField6[FIELD6_SIZE+1];
170 
175  char theField7[FIELD7_SIZE+1];
176 
181  char theOblAng[OBL_ANG_SIZE+1];
182 
187  char theRollAng[ROLL_ANG_SIZE+1];
188 
193  char theField10[FIELD10_SIZE+1];
194 
199  char theField11[FIELD11_SIZE+1];
200 
205  char theField12[FIELD12_SIZE+1];
206 
211  char theField13[FIELD13_SIZE+1];
212 
217  char theField14[FIELD14_SIZE+1];
218 
223  char theField15[FIELD15_SIZE+1];
224 
229  char theField16[FIELD16_SIZE+1];
230 
235  char theNRef[N_REF_SIZE+1];
236 
241  char theRevNum[REV_NUM_SIZE+1];
242 
247  char theNSeg[N_SEG_SIZE+1];
248 
253  char theMaxLpSeg[MAX_LP_SEG_SIZE+1];
254 
259  char theField20[FIELD20_SIZE+1];
260 
265  char theField21[FIELD21_SIZE+1];
266 
271  char theSunEl[SUN_EL_SIZE+1];
272 
277  char theSunAz[SUN_AZ_SIZE+1];
278 
279 TYPE_DATA
280 };
281 
282 #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.
double ossim_float64
virtual void setProperty(ossimRefPtr< ossimProperty > property)
#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
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const