VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtGreatCircleCurveGenerator.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvUtil/vrvUtil.h>
13 
14 #include <matrix/vlVector.h>
15 #include <vector>
16 
17 class DtReferenceEllipsoid;
18 
19 namespace makVrv
20 {
21 
30  {
31  public:
35  typedef std::vector<DtVector> GreatCircleCurve;
36 
39  DtGreatCircleCurveGenerator( const DtVector& startGeod );
40 
43 
46 
48  virtual ~DtGreatCircleCurveGenerator();
49 
52  virtual void setRadius( double radius );
53 
55  virtual double radius() const;
56 
58  virtual const GreatCircleCurve& generateCurve( const DtVector& endGeod,
59  double heightScale=0., int maxSegments=500.,
60  double preferredSegmentSize=1000. );
61 
63  virtual const GreatCircleCurve& curve() const;
64 
67  virtual double arcLengthTo( const DtVector& endGeod ) const;
68 
70  virtual double initialBearingTo( const DtVector& endGeod ) const;
71 
75  virtual DtVector calcPercentAlongGreatCircle( const DtVector& endGeod,
76  double percentage, double heightScale=0. );
77 
83  virtual double altitudeForPoint( const DtVector& endGeod,
84  double percent, double heightScale ) const;
85 
88  virtual double radiusAtLatitude( const DtReferenceEllipsoid& ellipsoid,
89  double lat ) const;
90 
91  protected:
92 
95  virtual void generateMeridionalCurve( const DtVector& endGeod,
96  int numSegments, double heightScale );
97 
99  virtual void generateNonmeridionalCurve( const DtVector& endGeod,
100  int numSegments, double heightScale );
101 
102  private:
103 
106 
107  protected:
108 
111  double myRadius;
112  };
113 
114 }
115 
116 

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)