1 #ifndef exoViewer_ExoEngine_h
2 #define exoViewer_ExoEngine_h
9 #include <vmmlib/vmmlib.hpp>
10 #include "OpenGL_Includes.h"
62 void resize(
int _w,
int _h);
72 void setDate(
double _julianDay);
73 void setSpeed(
double _daysPerUpdate);
74 void setUnitCircles(
double _unitSize,
int _unit,
int _numberOfRings);
93 vmml::Vector2d
get2dPoint(vmml::Vector3d _p, vmml::Matrix4d _modelMatrix);
103 const std::vector<std::shared_ptr<System>>&
getSystems();
133 void updateFramebufferStandardID();
134 void setUpUpdateJobs();
137 void setCamerasForResize();
138 vmml::Vector4d calculateOrthoCamCoordinates();
140 vmml::Vector2d calculateLightPositionOnScreen();
142 void drawVisualizationScene();
143 void drawOverviewMapScene();
144 void drawPlanetComparisonScene();
147 void evaluatePickingEvent();
149 void drawHabitableZone();
155 std::shared_ptr<ge::Shader> programForUnitCircles;
156 std::shared_ptr<ge::Shader> programForSkybox;
157 std::shared_ptr<ge::Shader> programForUtilities;
158 std::shared_ptr<ge::Shader> programForDebug;
159 std::shared_ptr<ge::Shader> programForCoordinateSystem;
162 std::shared_ptr<Universe> universe;
168 std::shared_ptr<UnitCircles> unitCircles;
174 double daysPerUpdate;
176 std::string shaderPath;
177 std::string skyboxPath;
182 bool smallBodiesAsPointCloud;
195 bool selectedHasChanged;
210 float sunOverlayRotation;
215 std::shared_ptr<ge::Skybox> skybox;
220 vmml::Vector2i screenExtent;
222 vmml::Vector2i pickCoord;
223 vmml::Vector2i mousePosition;
228 std::vector<OrbitJob*> runnables;
229 std::vector<UIBodyInfo> systemsUIInfo;
230 std::vector<UIBodyInfo> sunsUIInfo;
231 std::vector<UIBodyInfo> planetUIInfo;
232 std::vector<UIBodyInfo> moonUIInfo;
233 std::vector<UIBodyInfo> smallBodyObjectUIInfo;
235 std::vector<int> uiInfoSizeSums;
void setSpeed(double _daysPerUpdate)
Definition: ExoEngine.cpp:780
double getSpeed() const
Definition: ExoEngine.cpp:453
~ExoEngine()
Definition: ExoEngine.cpp:13
void reloadShaders()
Definition: ExoEngine.cpp:1032
void setSceneToDisplay(geAstro::SceneType _sceneToDisplay)
Definition: ExoEngine.cpp:985
Definition: GaussianBlurComposition.h:8
const UIBodyInfo & getSelectedUIInfo() const
Definition: ExoEngine.cpp:1226
void setIsMapView(bool _isMapView)
Definition: ExoEngine.cpp:981
void setMousePosition(int x, int y)
Definition: ExoEngine.cpp:953
void toggleAnimation()
Definition: ExoEngine.cpp:726
void navigateToNewSelectionInSystem(UniverseSelection _sel)
Definition: DebugLogger.h:22
void navigateBack()
Definition: ExoEngine.cpp:972
vmml::Vector2d get2dPoint(vmml::Vector3d _p)
Definition: ExoEngine.cpp:863
void setDate(double _julianDay)
Definition: ExoEngine.cpp:937
Definition: Comparisoner.h:55
Definition: FrameBufferObject.h:20
void setUnitCircles(double _unitSize, int _unit, int _numberOfRings)
Definition: ExoEngine.cpp:785
const std::shared_ptr< System > getSystemByName(std::string _name)
Definition: ExoEngine.cpp:762
void navigateToCurrentSelection()
Definition: ExoEngine.cpp:967
Definition: AstroCommon.h:50
void toggleOrbits()
Definition: ExoEngine.cpp:730
const std::shared_ptr< Universe > getUniverse()
Definition: ExoEngine.cpp:1289
void update()
Definition: ExoEngine.cpp:457
vmml::Vector3i getDate()
Definition: ExoEngine.cpp:501
Definition: AstroCommon.h:18
const std::vector< std::shared_ptr< System > > & getSystems()
Definition: ExoEngine.cpp:758
void sortUIInfoForSystemInFocus()
Definition: ExoEngine.cpp:1036
void toggleUnitCircles()
Definition: ExoEngine.cpp:746
Definition: Universe.h:23
Definition: ComparisonGrid.h:10
void initializeScene(std::string path)
Definition: ExoEngine.cpp:88
void toggleScaled()
Definition: ExoEngine.cpp:750
SceneType
Definition: ExoEngine.h:48
Definition: ExoEngine.h:46
Definition: ComparisonComposition.h:9
Definition: ExoEngine.h:46
void navigateToNewSelection(UniverseSelection _sel)
Definition: ExoEngine.cpp:960
void setPickingEvent(PickingEvent pe)
Definition: ExoEngine.cpp:718
ExoEngine()
Definition: ExoEngine.cpp:8
void destroy()
Definition: ExoEngine.cpp:82
void drawScene()
Definition: ExoEngine.cpp:506
void setSystemInFocus(int _systemIndex)
Definition: ExoEngine.cpp:770
const std::vector< int > & getUIInfoSizes() const
Definition: ExoEngine.cpp:1230
void resize(int _w, int _h)
Definition: ExoEngine.cpp:272
std::shared_ptr< System > getSystemInFocus()
Definition: ExoEngine.cpp:766
void setPickingCoordinates(vmml::Vector2i _coord)
Definition: ExoEngine.cpp:722
void setIsCoreView(bool _isCoreView)
Definition: ExoEngine.cpp:977
Definition: AstroCoordinateSystem.h:13
void toggleCoordinateAxes()
Definition: ExoEngine.cpp:742
Definition: ExoEngine.h:46
Definition: BloomComposition.h:8
Definition: ViewFrustum.h:18
Definition: SceneStateSet.h:41
const std::vector< UIBodyInfo > & getSystemsUIInfo() const
Definition: ExoEngine.cpp:1206
const std::vector< UIBodyInfo > & getSmallBodyObjectUIInfo() const
Definition: ExoEngine.cpp:1222
vmml::Vector2i getMousePosition()
Definition: ExoEngine.cpp:956
Comparisoner & getComparisoner()
Definition: ExoEngine.cpp:1293
Definition: ExoEngine.h:48
Definition: ExoEngine.h:48
const std::vector< UIBodyInfo > & getSunsUIInfo() const
Definition: ExoEngine.cpp:1210
UniverseSelection getSelectionForUIInfoID(int _idx) const
Definition: ExoEngine.cpp:1234
Definition: DebugMapProvider.h:11
void toggleHabitableZone()
Definition: ExoEngine.cpp:738
PickingEvent
Definition: ExoEngine.h:46
Definition: ExoComposition.h:16
const std::vector< UIBodyInfo > & getPlanetUIInfo() const
Definition: ExoEngine.cpp:1214
const std::vector< UIBodyInfo > & getMoonUIInfo() const
Definition: ExoEngine.cpp:1218
void setSelectedHasChanged(bool _selectedHasChanged)
Definition: ExoEngine.cpp:859
void create()
Definition: ExoEngine.cpp:85
Definition: ExoEngine.h:50
void repositionDrawables(geAstro::SceneType _sceneToDisplay)
Definition: ExoEngine.cpp:1004
Definition: XMLGetter.h:10
Definition: ExoEngine.h:48
void toggleSkybox()
Definition: ExoEngine.cpp:734
bool getSelectedHasChanged()
Definition: ExoEngine.cpp:855
void clear()
Definition: ExoEngine.cpp:18
Definition: ExoEngine.h:46
void toggleDebugMap()
Definition: ExoEngine.cpp:949