Main Page
Classes
Files
File List
All
Classes
Functions
LegacyCode
EnergyPitchProgram.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 - rjcroy, Dave "Daver" Rowbotham, Erik H. "Sputnik" Anderson
17
// Szymon "Enjo" Ender - encapsulation and generalization to other planets
18
//
19
// This module calculates the appropriate launch azimuth given
20
// desired orbital inclination and desired orbit altitude. This
21
// MFD takes the planets rotation into account, which provides a
22
// much more accurate azimuth. The calculations are performed
23
// 'on the fly' (technically and methaphorically), meaning that
24
// you get info about necessary course corrections.
25
//
26
// This file is part of LaunchMFD.
27
//
28
// LaunchMFD is free software: you can redistribute it and/or modify
29
// it under the terms of the GNU General Public License as published by
30
// the Free Software Foundation, either version 3 of the License, or
31
// (at your option) any later version.
32
//
33
// LaunchMFD is distributed in the hope that it will be useful,
34
// but WITHOUT ANY WARRANTY; without even the implied warranty of
35
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
36
// GNU General Public License for more details.
37
//
38
// You should have received a copy of the GNU General Public License
39
// along with LaunchMFD. If not, see <http://www.gnu.org/licenses/>.
40
// ==============================================================
41
42
#ifndef EnergyPitchProgram_H
43
#define EnergyPitchProgram_H
44
45
#include "Systems/Point.hpp"
46
#include <vector>
47
class
MFDDataLaunchMFD
;
48
49
class
EnergyPitchProgram
50
{
51
public
:
52
EnergyPitchProgram
();
53
virtual
~
EnergyPitchProgram
();
54
double
GetPitch(
const
MFDDataLaunchMFD
* data,
double
time );
55
double
GetEnergy(
const
MFDDataLaunchMFD
* data );
56
bool
IsStopCondition(
const
MFDDataLaunchMFD
* data )
const
;
57
protected
:
58
private
:
59
double
LinearInterpolationProgramme(
const
std::vector< Point > & programme,
double
x )
const
;
60
61
std::vector< Point > programme;
62
bool
Flydown;
63
};
64
65
#endif // EnergyPitchProgram_H
Generated on Sat Feb 23 2013 09:37:08 by
1.8.1.2