36 #ifndef PROFILESURFACE_OBJECT_H
37 #define PROFILESURFACE_OBJECT_H
63 class GeoTessMetaData;
121 {
return GeoTessProfileType::SURFACE; };
127 {
return (GeoTessProfile::operator==(p) &&
139 virtual double getValue(
int attributeIndex,
int nodeIndex)
const
141 return nodeIndex == 0 ? data->getDouble(attributeIndex) : NaN_DOUBLE;
151 {
return data->getDouble(attributeIndex); }
163 virtual bool isNaN(
int nodeIndex,
int attributeIndex)
165 return nodeIndex != 0 || data->isNaN(attributeIndex);
173 int attributeIndex,
double radius,
174 bool allowRadiusOutOfRange)
const
176 return getData(0).getDouble(attributeIndex);
184 {
return NaN_FLOAT; };
220 virtual void setData(
const vector<GeoTessData*>& inData)
221 {
delete data; data = inData[0]; }
227 {
delete data; data = inData; }
233 virtual void setRadii(
const vector<float>& newRadii)
243 {
return NaN_FLOAT; };
259 {
return NaN_FLOAT; };
277 data(NULL), pointIndex(-1)
278 { data = GeoTessData::getData(ifs, gtmd); };
283 GeoTessProfileSurface(IFStreamAscii& ifs, GeoTessMetaData& gtmd) : GeoTessProfile(),
284 data(NULL), pointIndex(-1)
285 { data = GeoTessData::getData(ifs, gtmd); };
291 virtual ~GeoTessProfileSurface() {
if (data != NULL)
delete data; };
296 virtual void write(IFStreamBinary& ofs)
297 { ofs.writeByte((
byte) GeoTessProfileType::SURFACE.ordinal());
303 virtual void write(IFStreamAscii& ofs)
304 { ofs.writeInt(GeoTessProfileType::SURFACE.ordinal());
317 virtual int findClosestRadiusIndex(
double radius)
const
328 virtual void setPointIndex(
int nodeIndex,
int pntIndex)
329 { pointIndex = pntIndex; }
339 virtual void resetPointIndices() { pointIndex = -1; }
349 virtual int getPointIndex(
int nodeIndex)
const
350 {
return pointIndex; }
356 virtual GeoTessProfile* copy()
358 return new GeoTessProfileSurface(data->copy());
367 #endif // PROFILESURFACE_OBJECT_H
virtual GeoTessData * getData(int i)
Definition: GeoTessProfileSurface.h:210
virtual float * getRadii()
Definition: GeoTessProfileSurface.h:199
virtual int getNData() const
Definition: GeoTessProfileSurface.h:194
virtual float getRadiusBottom() const
Definition: GeoTessProfileSurface.h:258
A Profile object that defines a single Data object and no radius value.
Definition: GeoTessProfileSurface.h:76
virtual const GeoTessData & getData(int i) const
Definition: GeoTessProfileSurface.h:215
Opens a file for binary read and write access.
Definition: IFStreamBinary.h:79
virtual const GeoTessData & getDataBottom() const
Definition: GeoTessProfileSurface.h:264
Enumeration of the interpolation algorithms supported by GeoTess including LINEAR, NATURAL_NEIGHBOR and CUBIC_SPLINE.
Definition: GeoTessInterpolatorType.h:71
virtual GeoTessData * getDataBottom()
Definition: GeoTessProfileSurface.h:269
GeoTessProfileSurface(GeoTessData *dat)
Definition: GeoTessProfileSurface.h:101
Enumeration of the valid Profile types, including EMPTY, THIN, CONSTANT, NPOINT and SURFACE...
Definition: GeoTessProfileType.h:69
virtual const GeoTessProfileType & getType() const
Definition: GeoTessProfileSurface.h:120
virtual GeoTessData ** getData()
virtual const GeoTessData & getDataTop() const
Definition: GeoTessProfileSurface.h:248
virtual double getValue(int attributeIndex, int nodeIndex) const
Definition: GeoTessProfileSurface.h:139
virtual double getValue(const GeoTessInterpolatorType &rInterpType, int attributeIndex, double radius, bool allowRadiusOutOfRange) const
Definition: GeoTessProfileSurface.h:172
#define byte
signed-byte typedef
Definition: CPPGlobals.h:94
virtual bool isNaN(int nodeIndex, int attributeIndex)
Definition: GeoTessProfileSurface.h:163
virtual float getRadiusTop() const
Definition: GeoTessProfileSurface.h:242
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
static string class_name()
Definition: GeoTessProfileSurface.h:107
virtual int class_size() const
Definition: GeoTessProfileSurface.h:112
virtual double getValueTop(int attributeIndex) const
Definition: GeoTessProfileSurface.h:150
virtual void setData(const vector< GeoTessData * > &inData)
Definition: GeoTessProfileSurface.h:220
virtual GeoTessData ** getData()
Definition: GeoTessProfileSurface.h:204
virtual GeoTessData * getDataTop()
Definition: GeoTessProfileSurface.h:253
virtual void setData(int index, GeoTessData *inData)
Definition: GeoTessProfileSurface.h:226
#define GEOTESS_EXP_IMP
Definition: CPPGlobals.h:71
virtual float getRadius(int i) const
Definition: GeoTessProfileSurface.h:183
virtual void setRadii(const vector< float > &newRadii)
Definition: GeoTessProfileSurface.h:233
virtual int getNRadii() const
Definition: GeoTessProfileSurface.h:189
virtual void setRadius(int index, float radius)
Definition: GeoTessProfileSurface.h:236