OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimNitfIchipbTag.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // Author: David Burken
6 //
7 // Description: ICHIPB tag class declaration.
8 //
9 // See document STDI-0002 Table 5-2 for more info.
10 //
11 // http://164.214.2.51/ntb/baseline/docs/stdi0002/final.pdf
12 //
13 //----------------------------------------------------------------------------
14 // $Id: ossimNitfIchipbTag.h 22013 2012-12-19 17:37:20Z dburken $
15 #ifndef ossimNitfIchipbTag_HEADER
16 #define ossimNitfIchipbTag_HEADER 1
17 
20 
21 class ossimDpt;
22 class ossimDrect;
25 {
26 public:
27  enum
28  {
29  XFRM_FLAG_SIZE = 2,
30 
31  SCALE_FACTOR_SIZE = 10,
32 
33  ANAMRPH_CORR_SIZE = 2,
34 
35  SCANBLK_NUM_SIZE = 2,
36 
37  OP_ROW_11_SIZE = 12,
38  OP_COL_11_SIZE = 12,
39 
40  OP_ROW_12_SIZE = 12,
41  OP_COL_12_SIZE = 12,
42 
43  OP_ROW_21_SIZE = 12,
44  OP_COL_21_SIZE = 12,
45 
46  OP_ROW_22_SIZE = 12,
47  OP_COL_22_SIZE = 12,
48 
49  FI_ROW_11_SIZE = 12,
50  FI_COL_11_SIZE = 12,
51 
52  FI_ROW_12_SIZE = 12,
53  FI_COL_12_SIZE = 12,
54 
55  FI_ROW_21_SIZE = 12,
56  FI_COL_21_SIZE = 12,
57 
58  FI_ROW_22_SIZE = 12,
59  FI_COL_22_SIZE = 12,
60 
61  FI_ROW_SIZE = 8,
62  FI_COL_SIZE = 8
63  // ------
64  // 224
65  };
66 
69 
75  virtual void parseStream(std::istream& in);
76 
82  virtual void writeStream(std::ostream& out);
83 
87  virtual void clearFields();
88 
95  virtual std::ostream& print(std::ostream& out,
96  const std::string& prefix=std::string()) const;
97 
101  bool getXfrmFlag() const;
102 
106  ossim_float64 getScaleFactor() const;
107 
111  bool getAnamrphCorrFlag() const;
112 
116  ossim_uint32 getScanBlock() const;
117 
122  ossim_float64 getOpRow11() const;
123 
128  ossim_float64 getOpCol11() const;
129 
134  ossim_float64 getOpRow12() const;
135 
140  ossim_float64 getOpCol12() const;
141 
146  ossim_float64 getOpRow21() const;
147 
152  ossim_float64 getOpCol21() const;
153 
158  ossim_float64 getOpRow22() const;
159 
164  ossim_float64 getOpCol22() const;
165 
169  ossim_float64 getFiRow11() const;
170 
174  ossim_float64 getFiCol11() const;
175 
179  ossim_float64 getFiRow12() const;
180 
184  ossim_float64 getFiCol12() const;
185 
189  ossim_float64 getFiRow21() const;
190 
194  ossim_float64 getFiCol21() const;
195 
199  ossim_float64 getFiRow22() const;
200 
204  ossim_float64 getFiCol22() const;
205 
209  ossim_uint32 getFullImageRows() const;
210 
214  ossim_uint32 getFullImageCols() const;
215 
226  void getImageRect(ossimDrect& rect) const;
227 
239  void getFullImageRect(ossimDrect& rect) const;
240 
241  ossim2dTo2dTransform* newTransform()const;
242 
243  virtual void setProperty(ossimRefPtr<ossimProperty> property);
244  virtual ossimRefPtr<ossimProperty> getProperty(const ossimString& name)const;
245  virtual void getPropertyNames(std::vector<ossimString>& propertyNames)const;
246 
247  bool loadState(const ossimKeywordlist& kwl, const char* prefix);
248 
249 protected:
250 
251 
263  char theXfrmFlag[XFRM_FLAG_SIZE+1];
264 
265 
275  char theScaleFactor[SCALE_FACTOR_SIZE+1];
276 
277 
287  char theAnamrphCorr[ANAMRPH_CORR_SIZE+1];
288 
298  char theScanBlock[SCANBLK_NUM_SIZE+1];
299 
310  char theOpRow11[OP_ROW_11_SIZE+1];
311 
323  char theOpCol11[OP_COL_11_SIZE+1];
324 
335  char theOpRow12[OP_ROW_12_SIZE+1];
336 
347  char theOpCol12[OP_COL_12_SIZE+1];
348 
359  char theOpRow21[OP_ROW_21_SIZE+1];
360 
371  char theOpCol21[OP_COL_21_SIZE+1];
372 
383  char theOpRow22[OP_ROW_22_SIZE+1];
384 
395  char theOpCol22[OP_COL_22_SIZE+1];
396 
406  char theFiRow11[FI_ROW_11_SIZE+1];
407 
417  char theFiCol11[FI_COL_11_SIZE+1];
418 
428  char theFiRow12[FI_ROW_12_SIZE+1];
429 
439  char theFiCol12[FI_COL_12_SIZE+1];
440 
450  char theFiRow21[FI_ROW_21_SIZE+1];
451 
461  char theFiCol21[FI_COL_21_SIZE+1];
462 
472  char theFiRow22[FI_ROW_22_SIZE+1];
473 
483  char theFiCol22[FI_COL_22_SIZE+1];
484 
494  char theFullImageRow[FI_ROW_SIZE+1];
495 
505  char theFullImageCol[FI_COL_SIZE+1];
506 
507 
508 
509 
510 
511 
512 
513 
514 
515 
516 
517 
518 
519 
520 
521 
522 
523 
524 
525 
526 
527 
528 
529 
530 
531 
532 
533 
534 
564 TYPE_DATA
565 };
566 
567 #endif /* End of "#ifndef ossimNitfIchipbTag_HEADER" */
virtual void writeStream(ossim::ostream &out)=0
Represents serializable keyword/value map.
virtual void parseStream(ossim::istream &in)=0
This will allow the user defined data to parse the stream.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
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
unsigned int ossim_uint32
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