/usr/include/ossim/projection/ossimNitfRpcModel.h is in libossim-dev 1.8.16-3+b1.
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 | //*****************************************************************************
// FILE: ossimNitfRpcModel.h
//
// License: LGPL
//
// See LICENSE.txt file in the top level directory for more details.
//
// AUTHOR: Oscar Kramer
//
// DESCRIPTION: Contains declaration of class ossimNitfRpcModel. This
// derived class implements the capability of reading Nitf RPC support
// data.
//
// LIMITATIONS: None.
//
//*****************************************************************************
// $Id: ossimNitfRpcModel.h 15766 2009-10-20 12:37:09Z gpotts $
#ifndef ossimNitfRpcModel_HEADER
#define ossimNitfRpcModel_HEADER
#include <ossim/base/ossimConstants.h>
#include <ossim/projection/ossimRpcModel.h>
class ossimFilename;
class ossimNitfImageHeader;
/*!****************************************************************************
*
* CLASS: ossimNitfRpcModel
*
*****************************************************************************/
class OSSIM_DLL ossimNitfRpcModel : public ossimRpcModel
{
public:
ossimNitfRpcModel();
ossimNitfRpcModel(const ossimNitfRpcModel& rhs);
ossimNitfRpcModel(const ossimFilename& nitfFile);
virtual ossimObject* dup() const;
/**
* @brief worldToLineSample()
* Calls ossimRpcModel::worldToLineSample(), then applies (if needed)
* decimation.
* This is a temp work around for decimation RPC NITFs.
*/
virtual void worldToLineSample(const ossimGpt& world_point,
ossimDpt& image_point) const;
/**
* @brief lineSampleHeightToWorld()
* Backs out decimation of image_point (if needed) then calls:
* ossimRpcModel::lineSampleHeightToWorld
* This is a temp work around for decimation RPC NITFs.
*/
virtual void lineSampleHeightToWorld(const ossimDpt& image_point,
const double& heightEllipsoid,
ossimGpt& worldPoint) const;
/**
* @brief Saves "decimation". Then calls ossimRpcModel::saveState.
*/
virtual bool saveState(ossimKeywordlist& kwl,
const char* prefix=0) const;
/**
* @brief Looks for decimation. Then calls ossimRpcModel::loadState.
*/
virtual bool loadState(const ossimKeywordlist& kwl,
const char* prefix=0);
/**
* @brief Method to parse an nitf file and initialize model.
* @param entryIndex The entry to get model for. Note the nitf's can have
* multiple entries; each with a different projection.
* @return true on success, false on error.
*/
virtual bool parseFile(const ossimFilename& nitfFile,
ossim_uint32 entryIndex=0);
virtual bool parseImageHeader(const ossimNitfImageHeader* ih);
private:
/**
* Attempts to get gsd from nitf tags and initialize
* ossimSensorModel::theGsd.
*
* If unsuccessful theGsd will be initialized to OSSIM_DBL_NAN.
*/
void getGsd(const ossimNitfImageHeader* ih);
/**
* Attempts to get sensor ID from nitf tags and initialize
* ossimSensorModel::theSensorID.
*
* If unsuccessful theGsd will be initialized to UNKNOWN.
*/
void getSensorID(const ossimNitfImageHeader* ih);
/**
* Get model information from either the RPC00A or RPC00B tag.
* @return true on success, false on error.
*/
bool getRpcData(const ossimNitfImageHeader* ih);
/**
* Stored from header field "IMAG". This is a temp work around to handle
* decimated rpc nitf's.
*/
ossim_float64 theDecimation;
TYPE_DATA
};
#endif
|