36 #ifndef PROFILEEMPTY_OBJECT_H
37 #define PROFILEEMPTY_OBJECT_H
99 radiusTop(radTop), radiusBottom(radBot)
122 { radiusBottom = radii[rIndex++];
123 radiusTop = radii[rIndex++];
150 {
return GeoTessProfileType::EMPTY; };
156 {
return (GeoTessProfile::operator==(p) &&
166 int attributeIndex,
double radius,
167 bool allowRadiusOutOfRange)
const;
177 virtual double getValue(
int attributeIndex,
int nodeIndex)
const
178 {
return NaN_DOUBLE; }
190 virtual bool isNaN(
int nodeIndex,
int attributeIndex)
224 {
return i == 0 ? radiusBottom : radiusTop; };
240 {
float* fa =
new float [2]; fa[0] = radiusBottom; fa[1] = radiusTop;
return fa; };
261 virtual void setData(
const vector<GeoTessData*>& inData)
268 virtual void setRadii(
const vector<float>& newRadii)
269 { radiusBottom = newRadii[0]; radiusTop = newRadii[1]; }
276 radiusBottom = radius;
324 { ofs.
writeByte((
byte) GeoTessProfileType::EMPTY.ordinal());
332 { ofs.
writeInt(GeoTessProfileType::EMPTY.ordinal());
348 {
return abs(radiusTop - radius) < abs(radiusBottom - radius) ? 1 : 0; }
392 double dkm,
double radius,
double hcoefficient)
const
402 double horizontalCoefficient)
const
408 vector<int>& nodeIndexes, vector<double>& coefficients,
409 double& radius,
bool& allowOutOfRange)
412 nodeIndexes.push_back(0);
413 coefficients.push_back(NaN_DOUBLE);
Abstract base class that manages the data values attached to a single grid point.
Enumeration of the interpolation algorithms supported by GeoTess including LINEAR,...
A Profile object that defines two radii at the bottom and top of the associated layer,...
virtual GeoTessProfile * copy()
virtual double getValueTop(int attributeIndex) const
virtual float getRadius(int i) const
GeoTessProfileEmpty(float radBot, float radTop)
virtual const GeoTessData & getDataBottom() const
virtual void setRadii(const vector< float > &newRadii)
GeoTessProfileEmpty(float radii[], int &rIndex)
GeoTessProfileEmpty(IFStreamBinary &ifs)
virtual double getValueBottom(int attributeIndex) const
virtual void setPointIndex(int nodeIndex, int pointIndex)
virtual int findClosestRadiusIndex(double radius) const
virtual void resetPointIndices()
virtual void getWeights(map< int, double > &weights, double dkm, double radius, double hcoefficient) const
virtual float getRadiusBottom() const
virtual GeoTessData * getDataTop()
virtual double getValue(int attributeIndex, int nodeIndex) const
virtual int getNData() const
virtual const GeoTessProfileType & getType() const
virtual const GeoTessData & getDataTop() const
static string class_name()
virtual float getRadiusTop() const
virtual void setInterpolationCoefficients(const GeoTessInterpolatorType &interpType, vector< int > &nodeIndexes, vector< double > &coefficients, double &radius, bool &allowOutOfRange)
virtual GeoTessData ** getData()
virtual GeoTessData * getData(int i)
virtual void setRadius(int index, float radius)
virtual int class_size() const
virtual void getCoefficients(map< int, double > &coefficients, double radius, double horizontalCoefficient) const
virtual float * getRadii()
virtual GeoTessData * getDataBottom()
virtual int getNRadii() const
virtual void setData(const vector< GeoTessData * > &inData)
virtual bool isNaN(int nodeIndex, int attributeIndex)
virtual const GeoTessData & getData(int i) const
virtual int getPointIndex(int nodeIndex) const
virtual ~GeoTessProfileEmpty()
GeoTessProfileEmpty(IFStreamAscii &ifs)
virtual void write(IFStreamAscii &ofs)
virtual LONG_INT getMemory()
virtual double getValue(const GeoTessInterpolatorType &rInterpType, int attributeIndex, double radius, bool allowRadiusOutOfRange) const
virtual void write(IFStreamBinary &ofs)
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 float getRadiusTop() const
virtual float getRadiusBottom() const
Enumeration of the valid Profile types, including EMPTY, THIN, CONSTANT, NPOINT and SURFACE.
Opens ascii file for read and write access.
void writeFloatNL(float f)
void writeString(const string &s)
Opens a file for binary read and write access.