GeoTessCPP
2.2.3
Software to facilitate storage and retrieval of 3D information about the Earth.
|
Go to the documentation of this file.
38 #ifndef PROFILETHIN_OBJECT_H
39 #define PROFILETHIN_OBJECT_H
64 class GeoTessMetaData;
128 {
return GeoTessProfileType::THIN; };
134 {
return (GeoTessProfile::operator==(p) && (radius == p.
getRadius(0)) && (*data == p.
getData(0))); }
144 virtual double getValue(
int attributeIndex,
int nodeIndex)
const
145 {
return nodeIndex == 0 ? data->
getDouble(attributeIndex) : NaN_DOUBLE; }
157 int attributeIndex,
double r,
bool allowRadiusOutOfRange)
const
159 if (!allowRadiusOutOfRange &&
160 ((r < getRadiusBottom()) || (r > getRadiusTop())))
169 return getValue(attributeIndex, 0);
179 {
return data->
getDouble(attributeIndex); }
191 virtual bool isNaN(
int nodeIndex,
int attributeIndex)
193 return nodeIndex != 0 || data->
isNaN(attributeIndex);
200 virtual float getRadius(
int i)
const {
return radius; };
216 {
float* fa =
new float [1]; fa[0] = radius;
return fa; };
237 virtual void setData(
const vector<GeoTessData*>& inData)
238 {
delete data; data = inData[0]; }
243 virtual void setRadii(
const vector<float>& newRadii)
244 { radius = newRadii[0]; }
247 {
if (index == 0) radius = newRadius; }
253 {
delete data; data = inData; }
291 radius(-1.0), data(NULL), pointIndex(-1)
292 { radius = ifs.
readFloat(); data = GeoTessData::getData(ifs, gtmd); };
297 GeoTessProfileThin(IFStreamAscii& ifs, GeoTessMetaData& gtmd) : GeoTessProfile(),
298 radius(-1.0), data(NULL), pointIndex(-1)
299 { radius = ifs.readFloat(); data = GeoTessData::getData(ifs, gtmd); };
305 virtual ~GeoTessProfileThin() {
if (data != NULL)
delete data; };
310 virtual void write(IFStreamBinary& ofs)
311 { ofs.writeByte((
byte) GeoTessProfileType::THIN.ordinal());
312 ofs.writeFloat(radius); data->write(ofs); };
317 virtual void write(IFStreamAscii& ofs)
318 { ofs.writeInt(GeoTessProfileType::THIN.ordinal());
319 ofs.writeString(
" ");
320 ofs.writeFloat(radius);
332 virtual int findClosestRadiusIndex(
double r)
const
342 virtual void setPointIndex(
int nodeIndex,
int pntIndex)
343 { pointIndex = pntIndex; }
352 virtual void resetPointIndices() { pointIndex = -1; }
361 virtual int getPointIndex(
int nodeIndex)
const
362 {
return pointIndex; }
367 virtual GeoTessProfile* copy()
369 return new GeoTessProfileThin(radius, data->copy());
378 #endif // PROFILETHIN_OBJECT_H
virtual double getValue(const GeoTessInterpolatorType &rInterpType, int attributeIndex, double r, bool allowRadiusOutOfRange) const
virtual void setData(int index, GeoTessData *inData)
Abstract class that manages the radii and data values that span a single layer associated with a sing...
virtual LONG_INT getMemory()
Enumeration of the valid Profile types, including EMPTY, THIN, CONSTANT, NPOINT and SURFACE.
virtual const GeoTessData & getDataBottom() const
virtual float getRadiusTop() const
virtual const GeoTessData & getData(int i) const
virtual double getValue(int attributeIndex, int nodeIndex) const
virtual LONG_INT getMemory()
virtual int getNRadii() const
virtual const GeoTessData & getDataTop() const
virtual GeoTessData * getDataTop()
virtual int class_size() const
virtual float getRadius(int i) const
virtual float getRadiusBottom() const
GeoTessProfileThin(float rad, GeoTessData *dat)
virtual double getValueTop(int attributeIndex) const
virtual void setRadius(int index, float newRadius)
virtual GeoTessData * getData(int i)
virtual const GeoTessProfileType & getType() const
virtual GeoTessData * getDataBottom()
virtual void setRadii(const vector< float > &newRadii)
static string class_name()
virtual float getRadius(int i) const
Abstract base class that manages the data values attached to a single grid point.
virtual void setData(const vector< GeoTessData * > &inData)
virtual GeoTessData ** getData()
Opens a file for binary read and write access.
virtual double getDouble(int attributeIndex) const
A Profile object consiting of a single radius value and a single Data object. It represents a profile...
virtual bool isNaN(int nodeIndex, int attributeIndex)
virtual GeoTessData ** getData()
virtual int getNData() const
Enumeration of the interpolation algorithms supported by GeoTess including LINEAR,...
virtual bool isNaN(int attributeIndex) const
virtual float * getRadii()