/usr/include/ossim/imaging/ossimNitf20Writer.h is in libossim-dev 1.7.21-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | //*******************************************************************
//
// License: LGPL
//
// See LICENSE.txt file in the top level directory for more details.
//
// Author: Garrett Potts
//
//*******************************************************************
// $Id: ossimNitfWriter.h 9256 2006-07-14 15:28:19Z dburken $
#ifndef ossimNitf20Writer_HEADER
#define ossimNitf20Writer_HEADER
#include <iosfwd>
#include <ossim/imaging/ossimImageFileWriter.h>
#include <ossim/base/ossimKeywordlist.h>
#include <ossim/projection/ossimMapProjectionInfo.h>
#include <ossim/base/ossimRgbLutDataObject.h>
#include <ossim/base/ossimRefPtr.h>
#include <ossim/support_data/ossimNitfFileHeaderV2_0.h>
#include <ossim/support_data/ossimNitfImageHeaderV2_0.h>
class ossimProjection;
class OSSIM_DLL ossimNitf20Writer : public ossimImageFileWriter
{
public:
ossimNitf20Writer(const ossimFilename& filename=ossimFilename(""),
ossimImageSource* inputSource = (ossimImageSource*)NULL);
virtual ~ossimNitf20Writer();
virtual bool isOpen()const;
virtual bool open();
virtual void close();
/**
* void getImageTypeList(std::vector<ossimString>& imageTypeList)const
*
* Appends this writer image types to list "imageTypeList".
*
* This writer has the following types:
* nitf_block_band_separate
* nitf_block_band_sequential
*
* @param imageTypeList stl::vector<ossimString> list to append to.
*/
virtual void getImageTypeList(std::vector<ossimString>& imageTypeList)const;
virtual void setProperty(ossimRefPtr<ossimProperty> property);
virtual ossimRefPtr<ossimProperty> getProperty(
const ossimString& name)const;
/**
* @param propertyNames Array to populate with property names.
*
* @note The following names are handled:
* file_header
* image_header
* enable_rpcb_tag
* enable_blocka_tag
*/
virtual void getPropertyNames(std::vector<ossimString>& propertyNames)const;
void addRegisteredTag(ossimRefPtr<ossimNitfRegisteredTag> registeredTag);
/**
* Saves the state of the writer to kwl with prefix then calls
* base class ossimImageFileWriter::saveState
*
* @param kwl Keyword list to save to.
*
* @param prefix Usually something like: "object2."
* @return true on success, false on failure.
*
* Keywords saved by saveState:
*
* enable_rpcb_tag: true
*
* enable_blocka_tag: true
*/
virtual bool saveState(ossimKeywordlist& kwl, const char* prefix=0) const;
/**
* Initializes the state of the writer from kwl with prefix then calls
* base class ossimImageFileWriter::loadState
*
* @param kwl Keyword list to initialize from.
*
* @param prefix Usually something like: "object2."
* @return true on success, false on failure.
*
* Keywords picked up by loadState:
*
* enable_rpcb_tag: true
*
* enable_blocka_tag: true
*/
virtual bool loadState(const ossimKeywordlist& kwl, const char* prefix=0);
protected:
/**
* @return true on success false on error.
*/
virtual bool writeFile();
/**
* write out block band separate
*
* @return true on success and false on error
*/
virtual bool writeBlockBandSeparate();
/**
* Outputs in band sequential format. Band 1 is followed by band
* 2, ... etc.
*/
virtual bool writeBlockBandSequential();
/**
* Populates tags with geometry info from projection. Will write an
* rpcb tag if theEnableRpcbTagFlag if set to true.
*/
void writeGeometry();
void addTags();
/**
* Sets the complexity level of theFileHeader.
*
* @param endPosition This should be the end seek position of the file.
*/
void setComplexityLevel(ossim_uint64 endPosition);
/**
* Adds the BLOCKA tag.
*
* @param mapInfo ossimMapProjectionInfo to use to set tag with.
*
* @note Currently only used with map projected images.
*/
void addBlockaTag(ossimMapProjectionInfo& mapInfo);
/**
* Adds the RPC00B tag.
*
* @param rect Requested rectangle of image to write.
*
* @param proj The output projection.
*/
void addRpcbTag(const ossimIrect& rect,
ossimRefPtr<ossimProjection> proj);
std::ofstream* theOutputStream;
ossimRefPtr<ossimNitfFileHeaderV2_0> theFileHeader;
ossimRefPtr<ossimNitfImageHeaderV2_0> theImageHeader;
/** If true user wants to set RPC00B tag. (DEFAULT = false) */
bool theEnableRpcbTagFlag;
/**
* If true user wants to set BLOCKA tag. (DEFAULT = true)
* Currently only valid for map projected images.
*/
bool theEnableBlockaTagFlag;
/**
*
* If true this will enable searching the input connnection for another NITF handler and
* bring the fields to this writers output fields and will maintin as many field values as possible
*
*/
bool theCopyFieldsFlag;
TYPE_DATA
};
#endif /* #ifndef ossimNitfWriter_HEADER */
|