/usr/include/ossim/projection/ossimProjection.h is in libossim-dev 1.7.21-3ubuntu2.
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 | //*******************************************************************
//
// License: See top level LICENSE.txt file.
//
// Author: Garrett Potts (gpotts@imagelinks.com)
//
// Description: Base class for all projections (2D-to-3D transform)
//
//*******************************************************************
// $Id: ossimProjection.h 11805 2007-10-05 14:54:28Z dburken $
#ifndef ossimProjection_HEADER
#define ossimProjection_HEADER
#include <iostream>
#include <ossim/base/ossimObject.h>
#include <ossim/base/ossimErrorStatusInterface.h>
#include <ossim/base/ossimString.h>
#include <ossim/base/ossimKeyword.h>
#include <ossim/base/ossimGpt.h>
#include <ossim/base/ossimDpt.h>
#include <ossim/base/ossimGeoPolygon.h>
#include <ossim/elevation/ossimElevManager.h>
class OSSIMDLLEXPORT ossimProjection : public ossimObject,
public ossimErrorStatusInterface
{
public:
/*!
* Constructors, Destructor:
*/
ossimProjection();
virtual ~ossimProjection() {}
virtual ossimObject *dup()const=0;
/*!
* METHOD: origin()
* Returns projection's ground point origin. That is the GP corresponding
* to line=0, sample=0.
*/
virtual ossimGpt origin()const=0;
/*!
* METHODS: forward(), reverse()
* OBSOLETE -- provided for existing GUI code only. Bogus return value.
*/
virtual ossimDpt forward(const ossimGpt &wp) const; //inline below
virtual ossimGpt inverse(const ossimDpt &pp) const; //inline below
/*!
* METHOD: worldToLineSample()
* Performs the forward projection from ground point to line, sample.
*/
virtual void worldToLineSample(const ossimGpt& worldPoint,
ossimDpt& lineSampPt) const = 0;
/*!
* METHOD: lineSampleToWorld()
* Performs the inverse projection from line, sample to ground (world):
*/
virtual void lineSampleToWorld(const ossimDpt& lineSampPt,
ossimGpt& worldPt) const = 0;
/*!
* METHOD: lineSampleHeightToWorld
* This is the pure virtual that projects the image point to the given
* elevation above ellipsoid, thereby bypassing reference to a DEM. Useful
* for projections that are sensitive to elevation (such as sensor models).
*/
virtual void lineSampleHeightToWorld(const ossimDpt& lineSampPt,
const double& heightAboveEllipsoid,
ossimGpt& worldPt) const = 0;
virtual void getRoundTripError(const ossimDpt& imagePoint,
ossimDpt& errorResult)const;
virtual void getRoundTripError(const ossimGpt& groundPoint,
ossimDpt& errorResult)const;
virtual std::ostream& print(std::ostream& out) const;
virtual void getGroundClipPoints(ossimGeoPolygon& gpts)const;
/*!
* METHODS: saveState, loadState
* Fulfills ossimObject base-class pure virtuals.
*/
virtual bool saveState(ossimKeywordlist& kwl,
const char* prefix=0)const;
virtual bool loadState(const ossimKeywordlist& kwl,
const char* prefix=0);
/*!
* OPERATOR: ==
* Compares this instance with arg projection. NOT IMPLEMENTED.
*/
virtual bool operator==(const ossimProjection& projection) const=0;
/*!
* ACCESS METHODS:
*/
virtual ossimDpt getMetersPerPixel() const=0;
/**
* @brief Pure virtual method to query if projection is affected by
* elevation.
* @return true if affected, false if not.
*/
virtual bool isAffectedByElevation() const=0;
protected:
TYPE_DATA
};
//====================== BEGIN INLINE DEFINITIONS ===========================
//*****************************************************************************
// INLINE METHOD: ossimProjection::forward()
// Projects ground point to 2D plane.
//*****************************************************************************
inline ossimDpt ossimProjection::forward(const ossimGpt &wp) const
{
ossimDpt p;
worldToLineSample(wp, p);
return p;
}
//*****************************************************************************
// INLINE METHOD: ossimProjection::inverse()
// Inverse projection from 2D plane to ground point.
//*****************************************************************************
inline ossimGpt ossimProjection::inverse(const ossimDpt &pp) const
{
ossimGpt g;
lineSampleToWorld(pp, g);
return g;
}
#endif
|