VR-Forces 4.3 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
include
vrvUtil
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
29
class
DT_DLL_VRVUTIL
DtGreatCircleCurveGenerator
30
{
31
public
:
35
typedef
std::vector<DtVector>
GreatCircleCurve
;
36
39
DtGreatCircleCurveGenerator
(
const
DtVector
& startGeod );
40
42
DtGreatCircleCurveGenerator
(
const
DtGreatCircleCurveGenerator
& orig );
43
45
DtGreatCircleCurveGenerator
& operator=(
const
DtGreatCircleCurveGenerator
&);
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
105
DtGreatCircleCurveGenerator
();
106
107
protected
:
108
109
GreatCircleCurve
myCurve
;
110
DtVector
myStartGeod
;
111
double
myRadius
;
112
};
113
114
}
115
116
Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (
www.mak.com
)