/usr/include/ossim/elevation/ossimElevSource.h is in libossim-dev 2.2.2-1.
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 181 182 | //*****************************************************************************
// FILE: ossimElevSource.h
//
// License: See top level LICENSE.txt file.
//
// AUTHOR: Oscar Kramer
//
// DESCRIPTION:
// Contains declaration of class ossimElevSource. This is the base class for
// all objects providing height information given horizontal ground position.
//
//*****************************************************************************
// $Id: ossimElevSource.h 23117 2015-01-29 22:33:13Z okramer $
#ifndef ossimElevSource_HEADER
#define ossimElevSource_HEADER
#include <ossim/base/ossimConstants.h>
#include <ossim/base/ossimSource.h>
#include <ossim/base/ossimGrect.h>
#include <ossim/base/ossimFilename.h>
#include <ossim/base/ossimGeoid.h>
#include <ossim/elevation/ossimElevationAccuracyInfo.h>
class ossimEcefRay;
class ossimKeywordlist;
/******************************************************************************
* CLASS: ossimElevSource
*
*****************************************************************************/
class OSSIM_DLL ossimElevSource : public ossimSource
{
public:
/**
* Height access methods:
*/
virtual double getHeightAboveMSL(const ossimGpt&) = 0;
virtual double getHeightAboveEllipsoid(const ossimGpt&);
// Forces all concrete subtypes to implement:
virtual ossimObject* dup() const = 0;
/**
* METHOD: intersectRay()
*
* Service method for intersecting a ray with the elevation surface to
* arrive at a ground point. The ray is expected to originate ABOVE the
* surface and pointing down.
*
* NOTE: the gpt argument is expected to be initialized with the desired
* datum, including ellipsoid, for the proper intersection point to be
* computed.
*
* LIMITATION: This release supports only single valued solutions, i.e., it
* is possible a ray passing through one side of a mountain and out the
* other will return an intersection with the far side. Eventually,
* a more robust algorithm will be employed.
*
* Returns true if good intersection found.
*/
bool intersectRay(const ossimEcefRay& ray, ossimGpt& gpt, double defaultElevValue = 0.0);
/**
* Access methods for the bounding elevations:
*/
virtual double getMinHeightAboveMSL() const;
virtual double getMaxHeightAboveMSL() const;
/**
* Special numeric quantities as defined by this source:
*/
double getNullHeightValue() const;
double getSeaLevelValue() const;
/**
* METHOD: pointHasCoverage(gpt)
* Returns TRUE if coverage exists over gpt:
*/
virtual bool pointHasCoverage(const ossimGpt&) const = 0;
/**
* METHOD: meanSpacingMeters()
* This method returns the post spacing in the region of gpt:
*/
virtual double getMeanSpacingMeters() const = 0;
virtual bool getAccuracyInfo(ossimElevationAccuracyInfo& info, const ossimGpt& gpt) const =0;
/**
* METHODS: accuracyLE90(), accuracyCE90()
* Returns the vertical and horizontal accuracy (90% confidence) in the
* region of gpt:
*/
//virtual double getAccuracyLE90(const ossimGpt& gpt) const = 0;
//virtual double getAccuracyCE90(const ossimGpt& gpt) const = 0;
/**
* METHOD: getBoundingGndRect
*
* @return The bounding geograpic rectangle in decimal degrees.
*/
virtual const ossimGrect& getBoundingGndRect() const;
virtual bool canConnectMyInputTo(ossim_int32 inputIndex,
const ossimConnectableObject* object)const;
/**
* Implement ossimSource base-class pure virtuals:
*/
virtual void initialize();
/**
* Opens a stream to an elevation cell.
*
* @return Returns true on success, false on error.
*
* @note This implementation always returns true. This should be
* overridden in derived classes that have streams to files.
*/
// virtual bool open();
/**
* Closes the stream to the file.
*
* @note This implementation does nothing. This should be
* overridden in derived classes that have streams to files.
*/
// virtual void close();
/**
* @return Returns the flag which controls whether or not statistics will
* be computed upon opening a cell and not finding a corresponding
* statistics file.
*/
virtual bool getComputeStatisticsFlag() const;
/**
* Sets the flag which controls whether or not statistics will
* be computed upon opening a cell and not finding a corresponding
* statistics file.
*
* @param flag true to enable, false to disable.
*
* @note This flag can also be controlled by user via the ossim preferences
* keyword = "elevation.compute_statistics.enabled".
*/
virtual void setComputeStatisticsFlag(bool flag);
virtual std::ostream& print(std::ostream& out) const;
protected:
virtual ~ossimElevSource();
/**
* Constructors/Destructors:
*/
ossimElevSource();
ossimElevSource(const ossimElevSource& src);
/**
* Data members:
*/
double theMinHeightAboveMSL;
double theMaxHeightAboveMSL;
double theNullHeightValue;
double theSeaLevelValue;
ossimGrect theGroundRect;
//> Controls statistics gathering. Defaulted to true.
bool theComputeStatsFlag;
private:
TYPE_DATA
};
#endif
|