VR-Forces 4.1 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
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 Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (
www.mak.com
)