OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimNitfBlockaTag.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: David Burken
8 //
9 // Description: BLOCKA tag class declaration.
10 //
11 // See document STDI-0002 Table 8-9 for more info.
12 //
13 // http://164.214.2.51/ntb/baseline/docs/stdi0002/final.pdf
14 //
15 //----------------------------------------------------------------------------
16 // $Id$
17 
18 #ifndef ossimNitfBlockaTag_HEADER
19 #define ossimNitfBlockaTag_HEADER 1
20 
22 
23 class ossimDpt;
24 
26 {
27 public:
28  enum
29  {
30  BLOCK_INSTANCE_SIZE = 2,
31  N_GRAY_SIZE = 5,
32  L_LINES_SIZE = 5,
33  LAYOVER_ANGLE_SIZE = 3,
34  SHADOW_ANGLE_SIZE = 3,
35  FIELD_6_SIZE = 16, // reserved
36  FRLC_LOC_SIZE = 21,
37  LRLC_LOC_SIZE = 21,
38  LRFC_LOC_SIZE = 21,
39  FRFC_LOC_SIZE = 21,
40  FIELD_11_SIZE = 5, // reserved
41  // -----
42  // 123
43  };
44 
47 
53  virtual void parseStream(ossim::istream& in);
54 
60  virtual void writeStream(ossim::ostream& out);
61 
65  virtual void clearFields();
66 
73  virtual std::ostream& print(std::ostream& out,
74  const std::string& prefix) const;
75 
77  void setBlockInstance(ossim_uint32 block);
78 
79 
81  ossimString getBlockInstance() const;
82 
88  void setNGray(ossim_uint32 grayCount);
89 
91  ossimString getNGray() const;
92 
98  void setLLines(ossim_uint32 lines);
99 
101  ossimString getLLines() const;
102 
108  void setLayoverAngle(ossim_uint32 angle);
109 
111  ossimString getLayoverAngle() const;
112 
118  void setShadowAngle(ossim_uint32 angle);
119 
121  ossimString getShadowAngle() const;
122 
130  void setFrlcLoc(const ossimDpt& pt);
131 
133  ossimString getFrlcLoc() const;
134 
136  void getFrlcLoc(ossimDpt& pt) const;
137 
145  void setLrlcLoc(const ossimDpt& pt);
146 
148  ossimString getLrlcLoc() const;
149 
151  void getLrlcLoc(ossimDpt& pt) const;
152 
160  void setLrfcLoc(const ossimDpt& pt);
161 
163  ossimString getLrfcLoc() const;
164 
166  void getLrfcLoc(ossimDpt& pt) const;
167 
175  void setFrfcLoc(const ossimDpt& pt);
176 
178  ossimString getFrfcLoc() const;
179 
181  void getFrfcLoc(ossimDpt& pt) const;
182 
183 protected:
184 
192  void converLocStringToPt(const ossimString& locationString,
193  ossimDpt& pt) const;
194 
195 
205  char theBlockInstance[BLOCK_INSTANCE_SIZE+1];
206 
218  char theNGray[N_GRAY_SIZE+1];
219 
229  char theLLines[L_LINES_SIZE+1];
230 
243  char theLayoverAngle[LAYOVER_ANGLE_SIZE+1];
244 
257  char theShadowAngle[SHADOW_ANGLE_SIZE+1];
258 
264  char theField6[FIELD_6_SIZE+1];
265 
279  char theFrlcLoc[FRLC_LOC_SIZE+1];
280 
294  char theLrlcLoc[LRLC_LOC_SIZE+1];
295 
309  char theLrfcLoc[LRFC_LOC_SIZE+1];
310 
324  char theFrfcLoc[FRFC_LOC_SIZE+1];
325 
331  char theField11[FIELD_11_SIZE+1];
332 
333 TYPE_DATA
334 };
335 
336 #endif /* End of "#ifndef ossimNitfBlockaTag_HEADER" */
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
unsigned int ossim_uint32
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