OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimNitfImageHeader.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: Garrett Potts
8 //
9 // Description: Nitf support class
10 //
11 //********************************************************************
12 // $Id$
13 
14 #ifndef ossimNitfImageHeader_HEADER
15 #define ossimNitfImageHeader_HEADER 1
16 
18 #include <ossim/base/ossimIosFwd.h>
19 #include <ossim/base/ossimObject.h>
24 #include <vector>
25 
26 class ossimString;
27 class ossimDpt;
28 class ossimIpt;
29 class ossimIrect;
30 
33 {
34 public:
36  virtual ~ossimNitfImageHeader();
37 
38  virtual bool getTagInformation(ossimNitfTagInformation& tagInfo,
39  ossim_uint32 idx) const;
40 
41  virtual std::vector<ossimNitfTagInformation> getAllTags() { return theTagList; }
42 
43  virtual void setAllTags(std::vector<ossimNitfTagInformation> tagList) { theTagList = tagList; }
44 
45  virtual bool getTagInformation(ossimNitfTagInformation& tagInfo,
46  const ossimString& tagName) const;
47 
48  ossimRefPtr<ossimNitfRegisteredTag> getTagData(const ossimString& tagName);
49 
50 
51  const ossimRefPtr<ossimNitfRegisteredTag> getTagData(
52  const ossimString& tagName) const;
53 
63  void getTagData(
64  const ossimString& tagName,
65  std::vector< const ossimNitfRegisteredTag*> &tags ) const;
66 
67  virtual ossim_uint32 getNumberOfTags()const;
68 
69  virtual void addTag(const ossimNitfTagInformation& tag, bool unique=true);
70  virtual void removeTag(const ossimString& tagName);
71 
72  virtual void parseStream(ossim::istream& in)= 0;
73  virtual void writeStream(ossim::ostream& out)= 0;
74 
75  virtual bool isCompressed()const=0;
76  virtual bool isEncrypted()const=0;
77 
81  virtual bool isValid()const=0;
82 
83  virtual ossimString getCompressionCode()const=0;
84  virtual ossimString getCompressionRateCode()const=0;
85  virtual ossim_uint32 getDisplayLevel()const=0;
86  virtual ossim_uint32 getAttachmentLevel()const=0;
87 
88  virtual ossim_int32 getNumberOfRows()const=0;
89  virtual ossim_int32 getNumberOfBands()const=0;
90  virtual ossim_int32 getNumberOfCols()const=0;
91  virtual ossim_int32 getNumberOfBlocksPerRow()const=0;
92  virtual ossim_int32 getNumberOfBlocksPerCol()const=0;
93  virtual ossim_int32 getNumberOfPixelsPerBlockHoriz()const=0;
94  virtual ossim_int32 getNumberOfPixelsPerBlockVert()const=0;
95  virtual ossimString getImageId()const=0;
96  virtual ossimString getTitle()const=0;
97  virtual ossim_int32 getActualBitsPerPixelPerBand()const=0;
98  virtual ossim_int32 getBitsPerPixelPerBand()const=0;
99  virtual ossimIrect getImageRect()const=0;
104  virtual ossimIrect getBlockImageRect()const=0;
105  virtual ossimString getIMode()const=0;
106  virtual ossim_uint64 getDataLocation()const=0;
107 
109  virtual ossimString getImageDateAndTime() const=0;
110 
111  virtual ossimString getAcquisitionDateMonthDayYear(ossim_uint8 separationChar='-')const=0;
112  virtual ossimString getSecurityClassification()const=0;
113  virtual ossimString getCategory()const=0;
114  virtual ossimString getImageSource()const=0;
115  virtual ossimString getRepresentation()const=0;
116  virtual ossimString getCoordinateSystem()const=0;
117  virtual ossimString getGeographicLocation()const=0;
118  virtual ossimString getPixelValueType()const=0;
119 
121  virtual ossimString getImageMagnification()const=0;
122 
128  virtual void getImageLocation(ossimIpt& loc)const=0;
129 
138  virtual void getDecimationFactor(ossim_float64& result) const;
139 
140  virtual bool hasBlockMaskRecords()const=0;
141  virtual bool hasPadPixelMaskRecords()const=0;
142  virtual bool hasTransparentCode()const=0;
143  virtual ossim_uint32 getTransparentCode()const=0;
144  virtual ossim_uint32 getBlockMaskRecordOffset(ossim_uint32 blockNumber,
145  ossim_uint32 bandNumber)const=0;
146 
147  virtual ossim_uint32 getPadPixelMaskRecordOffset(ossim_uint32 blockNumber,
148  ossim_uint32 bandNumber)const=0;
149  virtual const ossimRefPtr<ossimNitfCompressionHeader> getCompressionHeader()const=0;
150  virtual const ossimRefPtr<ossimNitfImageBand> getBandInformation(ossim_uint32 idx)const=0;
151  bool hasLut()const;
152  ossimRefPtr<ossimNBandLutDataObject> createLut(ossim_uint32 bandIdx)const;
153  virtual bool isSameAs(const ossimNitfImageHeader* hdr) const;
154 
155  virtual void setProperty(ossimRefPtr<ossimProperty> property);
156  virtual ossimRefPtr<ossimProperty> getProperty(const ossimString& name)const;
157  virtual void getPropertyNames(std::vector<ossimString>& propertyNames)const;
158 
159  virtual ossim_uint32 getTotalTagLength()const;
160 
165  virtual std::ostream& printTags(
166  std::ostream& out, const std::string& prefix=std::string()) const;
167 
176  virtual void getMetadata(ossimKeywordlist& kwl,
177  const char* prefix=0) const;
178 
183  virtual std::ostream& print(std::ostream& out,
184  const std::string& prefix) const = 0;
185 
186  virtual bool saveState(ossimKeywordlist& kwl, const ossimString& prefix="")const;
187 protected:
188 
197  void checkForGeographicTiePointTruncation(const ossimDpt& tie) const;
198 
199  std::vector<ossimNitfTagInformation> theTagList;
200 
201 TYPE_DATA
202 };
203 
204 #endif
#define OSSIMDLLEXPORT
Represents serializable keyword/value map.
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Definition: ossimObject.cpp:95
virtual void setAllTags(std::vector< ossimNitfTagInformation > tagList)
double ossim_float64
std::vector< ossimNitfTagInformation > theTagList
virtual std::ostream & print(std::ostream &out) const
Generic print method.
#define TYPE_DATA
Definition: ossimRtti.h:339
unsigned long long ossim_uint64
unsigned int ossim_uint32
std::basic_istream< char > istream
Base class for char input streams.
Definition: ossimIosFwd.h:20
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
virtual void setProperty(const ossimString &name, const ossimString &value)
virtual std::vector< ossimNitfTagInformation > getAllTags()
unsigned char ossim_uint8
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23
int ossim_int32