150 using InputFrame::InputFrame;
151 void RegisterBindings()
override;
158 void DrawOrreryView();
159 void DrawAtlasView();
164 template <
typename RefType>
165 void PutOrbit(
Projectable::bases base, RefType *ref,
const Orbit *orb,
const vector3d &offset,
const Color &color,
const double planetRadius = 0.0,
const bool showLagrange =
false);
169 void MouseWheel(
bool up);
170 void RefreshShips(
void);
171 void DrawShips(
const double t,
const vector3d &offset);
174 void DrawGrid(uint32_t radius);
177 template <
typename T>
179 void CalculateShipPositionAtTime(
const Ship *s,
Orbit o,
double t,
vector3d &pos);
180 void CalculateFramePositionAtTime(
FrameId frameId,
double t,
vector3d &pos);
181 double GetOrbitTime(
double t,
const SystemBody *b);
182 double GetOrbitTime(
double t,
const Body *b);
189 std::vector<Projectable> m_projected;
190 std::vector<SystemBody *> m_displayed_sbody;
192 bool m_viewingCurrentSystem;
193 std::list<std::pair<Ship *, Orbit>> m_contacts;
203 bool m_rotateWithMouseButton =
false;
204 bool m_rotateView =
false;
205 bool m_zoomView =
false;
206 const float CAMERA_FOV = 50.f;
207 const float CAMERA_FOV_RADIANS = CAMERA_FOV / 57.295779f;
210 float m_rot_x, m_rot_y;
211 float m_rot_x_to, m_rot_y_to;
212 float m_zoom, m_zoomTo;
213 float m_atlasZoom, m_atlasZoomTo, m_atlasZoomDefault;
214 vector2f m_atlasPos, m_atlasPosTo, m_atlasPosDefault;
215 float m_atlasViewW, m_atlasViewH;
216 int m_animateTransition;
225 std::unique_ptr<Graphics::Drawables::Disk> m_bodyIcon;
226 std::unique_ptr<Graphics::Material> m_bodyMat;
227 std::unique_ptr<Graphics::Material> m_atlasMat;
228 std::unique_ptr<Graphics::Material> m_lineMat;
229 std::unique_ptr<Graphics::Material> m_gridMat;
233 std::unique_ptr<vector3f[]> m_orbitVts;
234 std::unique_ptr<Color[]> m_orbitColors;
236 std::unique_ptr<Graphics::VertexArray> m_lineVerts;
ShowLagrange
Definition SystemView.h:38
@ LAG_ICONTEXT
Definition SystemView.h:40
@ LAG_ICON
Definition SystemView.h:39
@ LAG_OFF
Definition SystemView.h:41
ShipDrawing
Definition SystemView.h:26
@ ORBITS
Definition SystemView.h:28
@ BOXES
Definition SystemView.h:27
@ OFF
Definition SystemView.h:29
GridDrawing
Definition SystemView.h:32
Definition DeleteEmitter.h:16
Definition Drawables.h:80
Definition PiGuiView.h:11
Definition RefCounted.h:36
Definition StarSystem.h:27
Definition SystemBody.h:19
Definition SystemView.h:93
void ViewSelectedObject()
Definition SystemView.cpp:964
Projectable * GetSelectedObject()
Definition SystemView.cpp:940
void SetDisplayMode(Mode displayMode)
Definition SystemView.h:131
void Draw3D() override
Definition SystemView.cpp:368
void ClearSelectedObject()
Definition SystemView.cpp:959
RefCountedPtr< StarSystem > GetCurrentSystem()
Definition SystemView.cpp:153
Color svColor[8]
Definition SystemView.h:145
~SystemView() override
Definition SystemView.cpp:105
std::vector< Projectable > GetProjected() const
Definition SystemView.h:120
Mode GetDisplayMode()
Definition SystemView.h:130
void SetSelectedObject(Projectable::types type, Projectable::bases base, SystemBody *sb)
Definition SystemView.cpp:945
double ProjectedSize(double size, vector3d pos)
Definition SystemView.cpp:974
void SetRotateMode(bool enable)
Definition SystemView.cpp:931
void OnSwitchFrom() override
Definition SystemView.cpp:989
float AtlasViewPixelPerUnit()
Definition SystemView.cpp:990
double GetOrbitPlannerTime() const
Definition SystemView.h:117
double GetOrbitPlannerStartTime() const
Definition SystemView.h:116
void Update() override
Definition SystemView.cpp:705
void AccelerateTime(float step)
Definition SystemView.cpp:110
void ResetViewpoint()
Definition SystemView.cpp:121
Mode
Definition SystemView.h:95
float GetZoom() const
Definition SystemView.cpp:982
void SetRealTime()
Definition SystemView.cpp:116
void SetVisibility(std::string param)
Definition SystemView.cpp:891
void SetZoomMode(bool enable)
Definition SystemView.cpp:922
TransferPlanner * GetTransferPlanner() const
Definition SystemView.h:115
void SetColor(ColorIndex color_index, Color *color_value)
Definition SystemView.h:146
float AtlasViewPlanetGap(float planetRadius)
Definition SystemView.h:125
ColorIndex
Definition SystemView.h:134
@ GRID_LEG
Definition SystemView.h:136
@ GRID
Definition SystemView.h:135
@ SELECTED_SHIP_ORBIT
Definition SystemView.h:141
@ SYSTEMBODY_ORBIT
Definition SystemView.h:138
@ PLAYER_ORBIT
Definition SystemView.h:139
@ PLANNER_ORBIT
Definition SystemView.h:140
@ SYSTEMBODY
Definition SystemView.h:137
@ SHIP_ORBIT
Definition SystemView.h:142
Definition TransferPlanner.h:8
double GetStartTime() const
Definition TransferPlanner.cpp:71
Definition SystemView.h:82
float radius
Definition SystemView.h:84
SystemBody * body
Definition SystemView.h:83
vector2f size
Definition SystemView.h:88
bool isVertical
Definition SystemView.h:85
vector2f offset
Definition SystemView.h:87
bool isBinary
Definition SystemView.h:86
std::vector< AtlasBodyLayout > children
Definition SystemView.h:90
Definition ConnectionTicket.h:12
Definition SystemView.h:44
enum Projectable::bases base
Projectable(const types t, const bases b, const Body *obj)
Definition SystemView.h:68
vector3d screenpos
Definition SystemView.h:64
const SystemBody * sbody
Definition SystemView.h:62
const Body * body
Definition SystemView.h:61
bases
Definition SystemView.h:53
@ BODY
Definition SystemView.h:55
@ SHIP
Definition SystemView.h:56
@ PLAYER
Definition SystemView.h:57
@ PLANNER
Definition SystemView.h:58
@ SYSTEMBODY
Definition SystemView.h:54
Projectable(const types t, const bases b, const SystemBody *obj)
Definition SystemView.h:73
union Projectable::@10 ref
float screensize
Definition SystemView.h:66
Projectable()
Definition SystemView.h:78
types
Definition SystemView.h:45
@ L5
Definition SystemView.h:49
@ L4
Definition SystemView.h:48
@ PERIAPSIS
Definition SystemView.h:51
@ OBJECT
Definition SystemView.h:47
@ APOAPSIS
Definition SystemView.h:50
@ NONE
Definition SystemView.h:46
vector3d worldpos
Definition SystemView.h:65
enum Projectable::types type