/usr/include/ossim/projection/ossimAdjMapModel.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 | //----------------------------------------------------------------------------
// Copyright (c) 2005, Oscar Kramer, all rights reserved.
//
// License: LGPL
//
// See LICENSE.txt file in the top level directory for more details.
//
// Author: Oscar Kramer
//
// Description:
//
// Special "sensor model" that provides a conventional map projection but
// with additional capability for adjusting the map x,y coordinates with
// offset, scale, and rotation transform. Funtions to control notifications,
// information and error output.
//
//----------------------------------------------------------------------------
// $Id: ossimAdjMapModel.h 9094 2006-06-13 19:12:40Z dburken $
#ifndef ossimAdjMapModel_HEADER
#define ossimAdjMapModel_HEADER
#include <ossim/matrix/newmat.h>
#include <ossim/projection/ossimSensorModel.h>
#include <ossim/base/ossimFilename.h>
#include <ossim/base/ossimDpt.h>
#include <ossim/base/ossimRefPtr.h>
using namespace NEWMAT;
class ossimMapProjection;
//----------------------------------------------------------------------------
// CLASS DESCRIPTION: ossimAdjMapModel
//! Special "sensor model" that provides a conventional map projection but with
// additional
//! capability for adjusting the map x,y coordinates with offset, scale, and
// rotation transform.
//----------------------------------------------------------------------------
class OSSIMDLLEXPORT ossimAdjMapModel : public ossimSensorModel
{
public:
//! Constructs to uninitialized state (needed by factory).
ossimAdjMapModel();
//! Constructs with map projection and image rectangle size.
ossimAdjMapModel(ossimMapProjection* map_proj, const ossimIpt& image_size);
//! Copy constructor
ossimAdjMapModel(const ossimAdjMapModel& copy_this);
//! Constructs given geom KWL.
ossimAdjMapModel(const ossimKeywordlist& kwl, const char* prefix);
//! Constructs given geom filename.
ossimAdjMapModel(const ossimFilename& geom_filename);
//! Destructor only deletes the map projection.
virtual ~ossimAdjMapModel();
//! Initializes base class data members after map model established.
// Returns TRUE if all's well.
bool initializeFromMap();
//! Returns pointer to a new instance, copy of this.
virtual ossimObject* dup() const;
//! Extends base-class implementation. Dumps contents of object to ostream.
virtual std::ostream& print(std::ostream& out) const;
//! Fulfills ossimObject base-class pure virtuals. Loads and saves geometry
//! KWL files. Returns true if successful.
virtual bool saveState(ossimKeywordlist& kwl, const char* prefix=0) const;
virtual bool loadState(const ossimKeywordlist& kwl, const char* prefix=0);
//! Writes a template of geom keywords processed by loadState and saveState
// to output stream.
static void writeGeomTemplate(ostream& os);
//! Overrides base class pure virtual.
virtual void lineSampleHeightToWorld(const ossimDpt& image_point,
const double& heightEllipsoid,
ossimGpt& worldPoint) const;
//! Overrides base class virtual.
virtual void lineSampleToWorld(const ossimDpt& image_point,
ossimGpt& worldPoint) const;
//! Rigorous inverse transform implented, overrides base-class' iterative
// solution.
virtual void worldToLineSample(const ossimGpt& world_point,
ossimDpt& image_point) const;
//! Following a change to the adjustable parameter set, this virtual is
// called to permit
//! instances to compute derived quantities after parameter change.
virtual void updateModel();
//! Initializes adjustable parameters to their default values.
//! Overrides ossimAdjustableParameterInterface virtual method.
virtual void initAdjustableParameters();
//! Fetches the GSD from the internal map projection.
virtual ossimDpt getMetersPerPixel () const;
//! Enumeration for adjustable parameter positions in theAdjParams vector
enum AdjParamIndex
{
OFFSET_X = 0, // meters
OFFSET_Y, // meters
ROTATION, // degrees CCW
SCALE_X, // ratio
SCALE_Y, // ratio
NUM_ADJ_PARAMS // not an index
};
/*!
* ossimOptimizableProjection
*/
inline virtual bool useForward()const {return true;} //!ground to image faster (you don't need DEM)
private:
//! This is the vector of UNNORMALIZED, BIASED parameters as used in the
//! model. The collection of normalized, 0-biased, parameters used in
//! registration are found in the
//! ossimAdjustableParameterInterface and related classes.
//! The quantities here are computed given the base class quantities.
ColumnVector theAdjParams;
ossimRefPtr<ossimMapProjection> theMapProjection;
double theCosTheta;
double theSinTheta;
TYPE_DATA
};
#endif /* End of "#ifndef ossimAdjMapModel_HEADER" */
|