Main Page
Classes
Files
File List
All
Classes
Functions
LegacyCode
DirectAscent
OptimalVelSolverFunctions.hpp
1
// ==============================================================
2
// ORBITER MODULE: LaunchMFD
3
// Part of the ORBITER SDK
4
//
5
// Copyright (C) 2004 rjcroy - robust time based pitch autopilot (borrowed code)
6
// Copyright (C) 2004 Dave "Daver" Rowbotham - conversion of rjcroy's autopolot to C++ (borrowed code)
7
// Copyright (C) 2004 Erik H. "Sputnik" Anderson - conversion of the autopilot to energy based (borrowed code)
8
// Copyright (C) 2007 "Vanguard" - dressing up azimuth calcualtions into an MFD (author)
9
// Copyright (C) 2007 Pawel "She'da'Lier" Stiasny - yaw error visual representation (contributor)
10
// Copyright (C) 2008 Mohd "Computerex" Ali - borrowed his code (multiple vessels support) (borrowed code)
11
// Copyright (C) 2008 Chris "Kwan" Jeppesen - borrowed his code (peg guidance) (borrowed code)
12
// Copyright (C) 2008 Steve "agentgonzo" Arch - peg integration, offplane correction, compass, hud display (co-developer)
13
// Copyright (C) 2007-2012 Szymon "Enjo" Ender - everything else ;> (author and maintainer)
14
// All rights reserved
15
//
16
// Authors - Szymon "Enjo" Ender
17
//
18
// This module calculates the appropriate launch azimuth given
19
// desired orbital inclination and desired orbit altitude. This
20
// MFD takes the planets rotation into account, which provides a
21
// much more accurate azimuth. The calculations are performed
22
// 'on the fly' (technically and methaphorically), meaning that
23
// you get info about necessary course corrections.
24
//
25
// This file is part of LaunchMFD.
26
//
27
// LaunchMFD is free software: you can redistribute it and/or modify
28
// it under the terms of the GNU General Public License as published by
29
// the Free Software Foundation, either version 3 of the License, or
30
// (at your option) any later version.
31
//
32
// LaunchMFD is distributed in the hope that it will be useful,
33
// but WITHOUT ANY WARRANTY; without even the implied warranty of
34
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35
// GNU General Public License for more details.
36
//
37
// You should have received a copy of the GNU General Public License
38
// along with LaunchMFD. If not, see <http://www.gnu.org/licenses/>.
39
// ==============================================================
40
41
#ifndef OPTIMALVELSOLVERFUNCTIONS_H
42
#define OPTIMALVELSOLVERFUNCTIONS_H
43
44
#include "Math/SimpsonFunctor.hpp"
45
#include "../../BODYPHYS.h"
46
#include "SHIP_PARAMS.h"
47
struct
OptimalVelSolverParams
;
48
49
50
class
CaVertParams
51
{
52
public
:
53
CaVertParams
(
const
BODYPHYS
& bodyPhys,
const
SHIP_PARAMS
& shipParam,
54
const
OptimalVelSolverParams
& optVelPar,
double
parVelHoriMax );
55
double
a, g, r, t0, sid, vx, vy, vsatx, vsaty, az, mass, velOrb, initial_rotation_vel_wlat;
56
};
57
58
// vertical acceleration needed to counter gravity
59
class
aVert
:
public
EnjoLib::SimpsonFunctor
60
{
61
public
:
62
aVert
(
const
CaVertParams
& params );
63
double
operator()(
double
t )
const
;
64
private
:
65
const
CaVertParams
& m_par;
66
};
67
68
// vertical acceleration needed to counter gravity
69
class
aVert2
:
public
EnjoLib::SimpsonFunctor
70
{
71
public
:
72
aVert2
(
const
CaVertParams
& params );
73
double
operator()(
double
t )
const
;
74
private
:
75
const
CaVertParams
& m_par;
76
};
77
78
79
#endif // OPTIMALVELSOLVERFUNCTIONS_H
Generated on Sat Feb 23 2013 09:37:08 by
1.8.1.2