![]() |
VR-Forces 4.6 Class Documentation
|
DtGreatCircleCurveGenerator generates a set of geodetic points that follow a great circle at a radius based on the earth equatorial radius PLUS the average altitude of the start and end points. More...
Public Types | |
| typedef std::vector< DtVector > | GreatCircleCurve |
| A set of geodetic points describing a great circle curve; the DtVector represents latitude, longitude (both in radians), and altitude (in meters) | |
Public Member Functions | |
| DtGreatCircleCurveGenerator (const DtVector &startGeod) | |
| Standard constructor; provides the start of the great circle arc (in radians and meters) | |
| DtGreatCircleCurveGenerator (const DtGreatCircleCurveGenerator &orig) | |
| Copy Constructor. | |
| DtGreatCircleCurveGenerator & | operator= (const DtGreatCircleCurveGenerator &) |
| Assignment Operator. | |
| virtual | ~DtGreatCircleCurveGenerator () |
| Virtual destructor. | |
| virtual void | setRadius (double radius) |
| Set the radius (in meters) used for all spherical calculations; by default, the equatorial radius 6378137. | |
| virtual double | radius () const |
| Get the radius used for all spherical calculations. | |
| virtual const GreatCircleCurve & | generateCurve (const DtVector &endGeod, double heightScale=0., int maxSegments=500., double preferredSegmentSize=1000.) |
| Generate a set of geodetic points for a great circle curve. | |
| virtual const GreatCircleCurve & | curve () const |
| Get the most recently generated great circle curve. | |
| virtual double | arcLengthTo (const DtVector &endGeod) const |
| Get the arcLength between startGeod and endGeod, at the altitude of the average of the two points' heights. | |
| virtual double | initialBearingTo (const DtVector &endGeod) const |
| Get the initial bearing from the start to the destination. | |
| virtual DtVector | calcPercentAlongGreatCircle (const DtVector &endGeod, double percentage, double heightScale=0.) |
| Calculate the geodetic point on a great circle arc from our starting point a percentage along the way to the destination point. | |
| virtual double | altitudeForPoint (const DtVector &endGeod, double percent, double heightScale) const |
| Find the altitude of a given point based on linear interpolation from the starting altitude to the ending altitude. | |
| virtual double | radiusAtLatitude (const DtReferenceEllipsoid &ellipsoid, double lat) const |
| Returns the earth radius at the specified latitude (radians) for the ellipsoid currently in use. | |
Protected Member Functions | |
| virtual void | generateMeridionalCurve (const DtVector &endGeod, int numSegments, double heightScale) |
| Generate a curve for the special case where the entire curve lies along a meridian. | |
| virtual void | generateNonmeridionalCurve (const DtVector &endGeod, int numSegments, double heightScale) |
| Generate the curve for the normal (non-meridional) case. | |
Protected Attributes | |
| GreatCircleCurve | myCurve |
| DtVector | myStartGeod |
| double | myRadius |
Private Member Functions | |
| DtGreatCircleCurveGenerator () | |
| Default, unimplemented constructor. | |
DtGreatCircleCurveGenerator generates a set of geodetic points that follow a great circle at a radius based on the earth equatorial radius PLUS the average altitude of the start and end points.
This curve will then beappropriate even for objects well above the earth's surface. Optionally, the curve will be given a parabolic exaggeration based on a scale factor and the curve's arc length.
| typedef std::vector<DtVector> makVrv::DtGreatCircleCurveGenerator::GreatCircleCurve |
A set of geodetic points describing a great circle curve; the DtVector represents latitude, longitude (both in radians), and altitude (in meters)
| makVrv::DtGreatCircleCurveGenerator::DtGreatCircleCurveGenerator | ( | const DtVector & | startGeod | ) |
Standard constructor; provides the start of the great circle arc (in radians and meters)
| makVrv::DtGreatCircleCurveGenerator::DtGreatCircleCurveGenerator | ( | const DtGreatCircleCurveGenerator & | orig | ) |
Copy Constructor.
|
virtual |
Virtual destructor.
|
private |
Default, unimplemented constructor.
| DtGreatCircleCurveGenerator& makVrv::DtGreatCircleCurveGenerator::operator= | ( | const DtGreatCircleCurveGenerator & | ) |
Assignment Operator.
|
virtual |
Set the radius (in meters) used for all spherical calculations; by default, the equatorial radius 6378137.
is used.
|
virtual |
Get the radius used for all spherical calculations.
|
virtual |
Generate a set of geodetic points for a great circle curve.
|
virtual |
Get the most recently generated great circle curve.
|
virtual |
Get the arcLength between startGeod and endGeod, at the altitude of the average of the two points' heights.
|
virtual |
Get the initial bearing from the start to the destination.
|
virtual |
Calculate the geodetic point on a great circle arc from our starting point a percentage along the way to the destination point.
Optionally scale the elevation.
|
virtual |
Find the altitude of a given point based on linear interpolation from the starting altitude to the ending altitude.
Then add a parabolic exaggeration, where the exaggerated height, calculated as the arc's length * the heightScale, is the apex of the parabola above the unexaggerated curve
|
virtual |
Returns the earth radius at the specified latitude (radians) for the ellipsoid currently in use.
|
protectedvirtual |
Generate a curve for the special case where the entire curve lies along a meridian.
|
protectedvirtual |
Generate the curve for the normal (non-meridional) case.
|
protected |
|
protected |
|
protected |