36 #ifndef PROFILEEMPTY_OBJECT_H
37 #define PROFILEEMPTY_OBJECT_H
99 radiusTop(radTop), radiusBottom(radBot)
122 { radiusBottom = radii[rIndex++];
123 radiusTop = radii[rIndex++];
148 {
return GeoTessProfileType::EMPTY; };
154 {
return (GeoTessProfile::operator==(p) &&
164 int attributeIndex,
double radius,
165 bool allowRadiusOutOfRange)
const;
175 virtual double getValue(
int attributeIndex,
int nodeIndex)
const
176 {
return NaN_DOUBLE; }
188 virtual bool isNaN(
int nodeIndex,
int attributeIndex)
222 {
return i == 0 ? radiusBottom : radiusTop; };
238 {
float* fa =
new float [2]; fa[0] = radiusBottom; fa[1] = radiusTop;
return fa; };
259 virtual void setData(
const vector<GeoTessData*>& inData)
266 virtual void setRadii(
const vector<float>& newRadii)
267 { radiusBottom = newRadii[0]; radiusTop = newRadii[1]; }
274 radiusBottom = radius;
330 { ofs.
writeInt(GeoTessProfileType::EMPTY.ordinal());
346 {
return abs(radiusTop - radius) < abs(radiusBottom - radius) ? 1 : 0; }
390 double dkm,
double radius,
double hcoefficient)
const
400 double horizontalCoefficient)
const
406 vector<int>& nodeIndexes, vector<double>& coefficients,
407 double& radius,
bool& allowOutOfRange)
410 nodeIndexes.push_back(0);
411 coefficients.push_back(NaN_DOUBLE);
431 #endif // PROFILEEMPTY_OBJECT_H
virtual double getValue(int attributeIndex, int nodeIndex) const
Definition: GeoTessProfileEmpty.h:175
virtual float getRadiusBottom() const
Definition: GeoTessProfileEmpty.h:306
virtual float getRadiusTop() const
Definition: GeoTessProfileEmpty.h:291
void writeFloat(float f)
Definition: IFStreamBinary.h:1716
virtual float getRadius(int i) const
Definition: GeoTessProfileEmpty.h:221
GeoTessProfileEmpty(IFStreamAscii &ifs)
Definition: GeoTessProfileEmpty.h:113
static string class_name()
Definition: GeoTessProfileEmpty.h:134
void writeByte(byte b)
Definition: IFStreamBinary.h:1408
virtual void setInterpolationCoefficients(const GeoTessInterpolatorType &interpType, vector< int > &nodeIndexes, vector< double > &coefficients, double &radius, bool &allowOutOfRange)
Definition: GeoTessProfileEmpty.h:405
virtual int getNRadii() const
Definition: GeoTessProfileEmpty.h:227
virtual bool isNaN(int nodeIndex, int attributeIndex)
Definition: GeoTessProfileEmpty.h:188
virtual const GeoTessProfileType & getType() const
Definition: GeoTessProfileEmpty.h:147
virtual void write(IFStreamAscii &ofs)
Definition: GeoTessProfileEmpty.h:329
virtual GeoTessProfile * copy()
Definition: GeoTessProfileEmpty.h:418
Opens a file for binary read and write access.
Definition: IFStreamBinary.h:79
GeoTessProfileEmpty(float radBot, float radTop)
Definition: GeoTessProfileEmpty.h:98
virtual GeoTessData * getDataTop()
Definition: GeoTessProfileEmpty.h:301
Enumeration of the interpolation algorithms supported by GeoTess including LINEAR, NATURAL_NEIGHBOR and CUBIC_SPLINE.
Definition: GeoTessInterpolatorType.h:71
virtual int getPointIndex(int nodeIndex) const
Definition: GeoTessProfileEmpty.h:379
Enumeration of the valid Profile types, including EMPTY, THIN, CONSTANT, NPOINT and SURFACE...
Definition: GeoTessProfileType.h:69
virtual ~GeoTessProfileEmpty()
Definition: GeoTessProfileEmpty.h:129
virtual double getValueBottom(int attributeIndex) const
Definition: GeoTessProfileEmpty.h:212
void writeFloatNL(float f)
Definition: IFStreamAscii.h:509
virtual void setPointIndex(int nodeIndex, int pointIndex)
Definition: GeoTessProfileEmpty.h:356
virtual double getValueTop(int attributeIndex) const
Definition: GeoTessProfileEmpty.h:200
void writeInt(int i)
Definition: IFStreamAscii.h:500
virtual void setRadii(const vector< float > &newRadii)
Definition: GeoTessProfileEmpty.h:266
virtual float getRadiusTop() const
A Profile object that defines two radii at the bottom and top of the associated layer, and no Data.
Definition: GeoTessProfileEmpty.h:74
#define byte
signed-byte typedef
Definition: CPPGlobals.h:94
Opens ascii file for read and write access.
Definition: IFStreamAscii.h:80
virtual int findClosestRadiusIndex(double radius) const
Definition: GeoTessProfileEmpty.h:345
virtual void write(IFStreamBinary &ofs)
Definition: GeoTessProfileEmpty.h:321
float readFloat()
Definition: IFStreamAscii.h:741
float readFloat()
Definition: IFStreamBinary.h:1117
Abstract class that manages the radii and data values that span a single layer associated with a sing...
Definition: GeoTessProfile.h:96
Abstract base class that manages the data values attached to a single grid point. ...
Definition: GeoTessData.h:75
void writeFloat(float f)
Definition: IFStreamAscii.h:508
virtual int getNData() const
Definition: GeoTessProfileEmpty.h:232
virtual void setRadius(int index, float radius)
Definition: GeoTessProfileEmpty.h:269
virtual void setData(int index, GeoTessData *inData)
Definition: GeoTessProfileEmpty.h:285
virtual GeoTessData * getDataBottom()
Definition: GeoTessProfileEmpty.h:316
virtual void getCoefficients(map< int, double > &coefficients, double radius, double horizontalCoefficient) const
Definition: GeoTessProfileEmpty.h:399
virtual int class_size() const
Definition: GeoTessProfileEmpty.h:139
virtual float * getRadii()
Definition: GeoTessProfileEmpty.h:237
#define GEOTESS_EXP_IMP
Definition: CPPGlobals.h:71
GeoTessProfileEmpty(IFStreamBinary &ifs)
Definition: GeoTessProfileEmpty.h:105
void writeString(const string &s)
Definition: IFStreamAscii.h:484
GeoTessProfileEmpty(float radii[], int &rIndex)
Definition: GeoTessProfileEmpty.h:121
virtual void setData(const vector< GeoTessData * > &inData)
Definition: GeoTessProfileEmpty.h:259
virtual void resetPointIndices()
Definition: GeoTessProfileEmpty.h:369
virtual float getRadiusBottom() const
virtual void getWeights(map< int, double > &weights, double dkm, double radius, double hcoefficient) const
Definition: GeoTessProfileEmpty.h:389