36 #ifndef PROFILESURFACE_EMPTY_OBJECT_H
37 #define PROFILESURFACE_EMPTY_OBJECT_H
64 class GeoTessMetaData;
85 static string class_name() {
return "ProfileSurfaceEmpty"; }
104 virtual bool operator ==(
const GeoTessProfile& p)
const {
return p.
getType() == GeoTessProfileType::SURFACE_EMPTY; }
114 virtual double getValue(
int attributeIndex,
int nodeIndex)
const {
return NaN_DOUBLE; }
122 virtual double getValueTop(
int attributeIndex)
const {
return NaN_DOUBLE; }
134 virtual bool isNaN(
int nodeIndex,
int attributeIndex) {
return true; }
141 int attributeIndex,
double radius,
142 bool allowRadiusOutOfRange)
const
143 {
return NaN_DOUBLE; }
148 virtual void setData(
const vector<GeoTessData*>& inData) { }
162 os << endl <<
"ERROR in ProfileSurfaceEmpty::getData" << endl
163 <<
"Unsupported method call." << endl;
174 os << endl <<
"ERROR in ProfileSurfaceEmpty::getData" << endl
175 <<
"Unsupported method call." << endl;
186 os << endl <<
"ERROR in ProfileSurfaceEmpty::getData" << endl
187 <<
"Unsupported method call." << endl;
197 os << endl <<
"ERROR in ProfileSurfaceEmpty::getDataBottom" << endl
198 <<
"Unsupported method call." << endl;
209 os << endl <<
"ERROR in ProfileSurfaceEmpty::getDataTop" << endl
210 <<
"Unsupported method call." << endl;
221 os << endl <<
"ERROR in ProfileSurfaceEmpty::getDataBottom" << endl
222 <<
"Unsupported method call." << endl;
233 os << endl <<
"ERROR in ProfileSurfaceEmpty::getDataBottom" << endl
234 <<
"Unsupported method call." << endl;
243 virtual float getRadius(
int i)
const {
return NaN_FLOAT; }
248 virtual void setRadii(
const vector<float>& newRadii) { }
276 virtual float*
getRadii() {
return (
float*) NULL; }
288 GeoTessProfileSurfaceEmpty(IFStreamAscii& ifs, GeoTessMetaData& gtmd) : GeoTessProfile() { }
294 virtual ~GeoTessProfileSurfaceEmpty() { }
299 virtual void write(IFStreamBinary& ofs)
300 { ofs.writeByte((
byte) GeoTessProfileType::SURFACE_EMPTY.ordinal()); }
305 virtual void write(IFStreamAscii& ofs)
306 { ofs.writeInt(GeoTessProfileType::SURFACE_EMPTY.ordinal()); ofs.writeNL();}
316 virtual int findClosestRadiusIndex(
double radius)
const {
return -1; }
325 virtual void setPointIndex(
int nodeIndex,
int pntIndex) { }
334 virtual void resetPointIndices() { }
343 virtual int getPointIndex(
int nodeIndex)
const {
return -1; }
348 virtual GeoTessProfile* copy() {
return new GeoTessProfileSurfaceEmpty(); }
Abstract base class that manages the data values attached to a single grid point.
Manages a single data value attached to a grid node.
An exception class for all GeoTess objects.
Enumeration of the interpolation algorithms supported by GeoTess including LINEAR,...
Abstract class that manages the radii and data values that span a single layer associated with a sing...
virtual const GeoTessProfileType & getType() const
A Profile object that defines a single Data object and no radius value.
virtual void setData(const vector< GeoTessData * > &inData)
virtual float getRadius(int i) const
GeoTessProfileSurfaceEmpty()
virtual float * getRadii()
virtual float getRadiusTop() const
virtual GeoTessData ** getData()
virtual int getNData() const
virtual void setData(int index, GeoTessData *inData)
virtual GeoTessData * getData(int i)
virtual GeoTessData * getDataBottom()
virtual int class_size() const
virtual bool isNaN(int nodeIndex, int attributeIndex)
virtual double getValueTop(int attributeIndex) const
static string class_name()
virtual const GeoTessProfileType & getType() const
virtual double getValue(int attributeIndex, int nodeIndex) const
virtual double getValue(const GeoTessInterpolatorType &rInterpType, int attributeIndex, double radius, bool allowRadiusOutOfRange) const
virtual float getRadiusBottom() const
virtual const GeoTessData & getDataTop() const
virtual GeoTessData * getDataTop()
virtual void setRadii(const vector< float > &newRadii)
virtual LONG_INT getMemory()
virtual int getNRadii() const
virtual const GeoTessData & getDataBottom() const
virtual const GeoTessData & getData(int i) const
virtual void setRadius(int index, float radius)
Enumeration of the valid Profile types, including EMPTY, THIN, CONSTANT, NPOINT and SURFACE.
Opens a file for binary read and write access.