GeoTessCPP
2.6.1
Software to facilitate storage and retrieval of 3D information about the Earth.
|
Abstract class that manages the radii and data values that span a single layer associated with a single vertex in the model. More...
#include <GeoTessProfile.h>
Public Member Functions | |
virtual int | class_size () const |
virtual LONG_INT | getMemory () |
virtual const GeoTessProfileType & | getType () const |
virtual bool | operator== (const GeoTessProfile &p) const |
virtual double | getValue (const GeoTessInterpolatorType &rInterpType, int attributeIndex, double radius, bool allowRadiusOutOfRange) const |
double | getValue (const vector< int > &nodeIds, const vector< double > &coefficients, int attributeIndex) const |
virtual double | getValue (int attributeIndex, int nodeIndex) const |
virtual bool | isNaN (int nodeIndex, int attributeIndex) |
virtual double | getValueTop (int attributeIndex) const |
virtual double | getValueBottom (int attributeIndex) const |
virtual float | getRadius (int i) const |
virtual int | getNRadii () const |
virtual int | getNData () const |
virtual float * | getRadii () |
virtual GeoTessData ** | getData () |
virtual GeoTessData * | getData (int i) |
virtual const GeoTessData & | getData (int i) const |
virtual void | setData (int index, GeoTessData *data) |
virtual void | setData (const vector< GeoTessData * > &inData) |
virtual void | setRadii (const vector< float > &newRadii) |
virtual void | setRadius (int index, float radius) |
virtual float | getRadiusTop () const |
virtual const GeoTessData & | getDataTop () const |
virtual GeoTessData * | getDataTop () |
virtual float | getRadiusBottom () const |
virtual const GeoTessData & | getDataBottom () const |
virtual GeoTessData * | getDataBottom () |
double | getThickness () |
int | getRadiusIndex (double radius) const |
virtual int | getRadiusIndex (double radius, int jlo) const |
virtual double | getInterpolationCoefficient (int i, double radius, bool allowOutOfRange) const |
virtual int | getPointIndex (int nodeIndex) const |
virtual int | findClosestRadiusIndex (double radius) const |
Static Public Member Functions | |
static GeoTessProfile * | newProfile (const vector< float > &radii, vector< GeoTessData * > &data) |
static GeoTessProfile * | newProfile (const vector< float > &radii, vector< vector< double > > &data) |
static GeoTessProfile * | newProfile (const vector< float > &radii, vector< vector< float > > &data) |
static GeoTessProfile * | newProfile (const vector< float > &radii, vector< vector< LONG_INT > > &data) |
static GeoTessProfile * | newProfile (const vector< float > &radii, vector< vector< int > > &data) |
static GeoTessProfile * | newProfile (const vector< float > &radii, vector< vector< short > > &data) |
static GeoTessProfile * | newProfile (const vector< float > &radii, vector< vector< byte > > &data) |
static GeoTessProfile * | newProfile (float *radii, const int &nRadii, GeoTessData **data, const int &nData) |
static GeoTessProfile * | newProfile (float *radii, const int &nRadii, double **values, const int &nNodes, const int &nAttributes) |
static GeoTessProfile * | newProfile (float *radii, const int &nRadii, float **values, const int &nNodes, const int &nAttributes) |
static GeoTessProfile * | newProfile (float *radii, const int &nRadii, LONG_INT **values, const int &nNodes, const int &nAttributes) |
static GeoTessProfile * | newProfile (float *radii, const int &nRadii, int **values, const int &nNodes, const int &nAttributes) |
static GeoTessProfile * | newProfile (float *radii, const int &nRadii, short **values, const int &nNodes, const int &nAttributes) |
static GeoTessProfile * | newProfile (float *radii, const int &nRadii, byte **values, const int &nNodes, const int &nAttributes) |
static string | class_name () |
static int | class_count () |
Abstract class that manages the radii and data values that span a single layer associated with a single vertex in the model.
An abstract class that manages the radii and data values that span a single layer associated with a single vertex in the model. The following Profile types are supported:
Definition at line 96 of file GeoTessProfile.h.
|
inlinestatic |
Returns the class instance count.
Definition at line 288 of file GeoTessProfile.h.
|
inlinestatic |
Returns the class name.
Definition at line 276 of file GeoTessProfile.h.
|
inlinevirtual |
Returns the class size.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
Definition at line 281 of file GeoTessProfile.h.
|
virtual |
Find the node index of the radius in this Profile that has radius closest to the supplied radius.
Reimplemented in geotess::GeoTessProfileEmpty.
|
virtual |
Retrieve a shallow copy of the array of Data objects associated with this Profile. Caller assumes ownership of the array, but not the contents, and must delete the array when done with it.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
virtual |
Retrieve a reference the i'th Data object. This Profile retains ownership of the returned Data object; caller should not delete it.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
virtual |
Retrieve a reference the i'th Data object
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
virtual |
Get the Data object at the bottom of the profile.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
virtual |
Get the Data object at the bottom of the profile.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
virtual |
Get the Data object at the top of the profile.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
virtual |
Get the Data object at the top of the profile.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
inlinevirtual |
find interpolation coefficient.
i | the index in radii such that radius is between radii[index] and radii[index+1]. |
radius | the radius whose interpolation coefficient is desired. |
allowOutOfRange | if false and the supplied radius is out of range then this method returns NaN_DOUBLE. |
Reimplemented in geotess::GeoTessProfileNPoint.
Definition at line 504 of file GeoTessProfile.h.
|
virtual |
|
virtual |
Get the number of Data objects that comprise this profile.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
virtual |
Get the number of radii that comprise this profile.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
virtual |
Get the pointIndex that corresponds to the supplied nodeIndex.
There is a node index for each Data object in a profile and they are indexed from 0 to the number of Data objects managed by a Profile. There is a pointIndex for every Data object in the entire model, indexed from 0 to the number of Data objects in the model.
Reimplemented in geotess::GeoTessProfileEmpty.
|
virtual |
Retrieve a copy of the array of radii values in km. Caller assumes ownership of the array and must delete it when done with it.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
virtual |
Get the i'th radius value in this profile in km. Radii are in order of increasing radius.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
virtual |
Get the radius at the bottom of the profile, in km.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
inline |
Find index i such that radius is >= radii[i] and < radii[i+1]. If radius < radii[1] returns 0. If radius >= radii[xx.length-2] return radii.length-2.
Definition at line 472 of file GeoTessProfile.h.
|
inlinevirtual |
Find index i such that radius is >= radii[i] and < radii[i+1]. If radius < radii[1] returns 0. If radius >= radii[xx.length-2] return radii.length-2.
radius | |
jlo | index found by a previous search. Used as an initial guess to improve performance of the search. Specify -1 if none available. |
Reimplemented in geotess::GeoTessProfileNPoint.
Definition at line 486 of file GeoTessProfile.h.
|
virtual |
Get the radius at the top of the profile, in km.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
inline |
Return the thickness of the layer in km.
Definition at line 465 of file GeoTessProfile.h.
|
virtual |
One of EMPTY, THIN, CONSTANT, NPOINT, SURFACE
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
virtual |
Retrieve the value of the specified attribute interpolated at the specified radius.
Reimplemented in geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileEmpty, geotess::GeoTessProfileConstant, geotess::GeoTessProfileThin, and geotess::GeoTessProfileNPoint.
|
inline |
Retrieve the value of the specified attribute interpolated at the specified radius.
Definition at line 314 of file GeoTessProfile.h.
|
virtual |
Retrieve the value of the specified attribute interpolated from this profile at the specified radius index
attributeIndex | |
nodeIndex |
Reimplemented in geotess::GeoTessProfileNPoint, geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
inlinevirtual |
Retrieve the value of the specified attribute at the bottom of the layer.
attributeIndex |
Reimplemented in geotess::GeoTessProfileEmpty.
Definition at line 359 of file GeoTessProfile.h.
|
virtual |
Retrieve the value of the specified attribute at the top of the layer.
attributeIndex |
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
virtual |
Return true if the specified Data value is NaN. For doubles and floats, this means not NaN. For bytes, shorts, ints and longs, always returns false since there is no value that is NaN.
nodeIndex | |
attributeIndex |
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
static |
Static factory method that instantiates a new Profile object of the appropriate type.
If radii.size() == 2 and data.size() == 0, creates a ProfileEmpty object.
If radii.size() == 1 and data.size() == 1, creates a ProfileThin object.
If radii.size() == 2 and data.size() == 1, creates a ProfileConstant object.
If radii.size() >= 2 and data.size() == nRadii, creates a ProfileNPoint object.
If radii.size() == 0 and data.size() == 1, creates a ProfileSurface object.
This method copies the radius values and Data* pointers out of the provided vectors into its owne structures. Profile assumes ownership of the Data* pointers and will delete them when no longer needed.
radii | an array of zero or more radius values, in km. Values must be monotonically increasing. |
data | an array of pointers to Data objects. |
GeoTessException |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
inlinestatic |
Definition at line 254 of file GeoTessProfile.h.
|
inlinestatic |
Definition at line 159 of file GeoTessProfile.h.
|
inlinestatic |
Definition at line 178 of file GeoTessProfile.h.
|
static |
Static factory method that instantiates a new Profile object of the appropriate type.
If nRadii == 2 and nData == 0, creates a ProfileEmpty object.
If nRadii == 1 and nData == 1, creates a ProfileThin object.
If nRadii == 2 and nData == 1, creates a ProfileConstant object.
If nRadii >= 2 and nData == nRadii, creates a ProfileNPoint object.
If nRadii == 0 and nData == 1, creates a ProfileSurface object.
This method copies the radius values and Data* pointers out of the provided arrays into its own structures. Profile assumes ownership of the Data* pointers and will delete them when no longer needed. The callers retains ownership of the containing arrays however and should delete them when no longer needed.
radii | an array of zero or more radius values, in km. Values must be monotonically increasing. |
nRadii | the length of the radii array. |
data | an array of pointers to Data objects. |
nData | the length of the data array |
GeoTessException |
|
inlinestatic |
Definition at line 216 of file GeoTessProfile.h.
|
inlinestatic |
Definition at line 197 of file GeoTessProfile.h.
|
inlinestatic |
Definition at line 235 of file GeoTessProfile.h.
|
inlinevirtual |
Return true if the input Profile object (p) profile type is the same as this Profile object.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
Definition at line 301 of file GeoTessProfile.h.
|
virtual |
Replace the Data currently associated with this Profile with new Data. The current Data objects are deleted.
This Profile assumes ownership of the input Data objects and will delete them when appropriate.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
virtual |
Replace the Data currently associated with this Profile with new Data. The current Data objects are deleted.
This Profile assumes ownership of the input Data objects and will delete them when appropriate.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
virtual |
Replace the radii currently associated with this Profile with new values. Radius values are copied from the supplied vector. This Profile does NOT keep a reference to the input vector.
Reimplemented in geotess::GeoTessProfileThin, geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, and geotess::GeoTessProfileConstant.
|
virtual |
Replace the radius at the specified nodeIndex.
Reimplemented in geotess::GeoTessProfileSurfaceEmpty, geotess::GeoTessProfileSurface, geotess::GeoTessProfileNPoint, geotess::GeoTessProfileEmpty, geotess::GeoTessProfileConstant, and geotess::GeoTessProfileThin.