32class StarSystemViewUI;
33class SysStarSystemRenderer;
37 void Update(
float delta_time);
48 glm::quat
GetBodyRotation(
double axial,
double rotation,
double day_offset)
const;
105 std::optional<glm::vec3>
CheckIntersection(
const glm::vec3 &object_pos,
const glm::vec3 &ray_wor,
float radius);
122 std::optional<glm::vec3>
IsMouseOverEntity(entt::entity entity, glm::vec3 ray_wor,
double radius);
126 entt::entity planet);
Definition: starsystemcontroller.h:34
void ResetProvinceColor(entt::entity province)
Definition: starsystemcontroller.cpp:787
entt::entity SurfaceCoordinateToProvince(core::components::types::SurfaceCoordinate coordinate, entt::entity planet)
Definition: starsystemcontroller.cpp:875
glm::vec4 CountryColorToVec4(const glm::vec3 &color)
Definition: starsystemcontroller.cpp:812
void SeeEntity()
Definition: starsystemcontroller.cpp:666
CameraState camera_state
Definition: starsystemcontroller.h:209
SysStarSystemRenderer & renderer
Definition: starsystemcontroller.h:138
void CheckHoveringEntity()
Definition: starsystemcontroller.cpp:849
entt::entity selected_city
Definition: starsystemcontroller.h:141
double previous_mouseX
Definition: starsystemcontroller.h:143
core::components::types::SurfaceCoordinate target_surface_coordinate
Definition: starsystemcontroller.h:185
void SetCountryProvincesColor(entt::entity country)
Definition: starsystemcontroller.cpp:501
void SetCameraToSolarSystemReferenceFrame()
Definition: starsystemcontroller.cpp:459
entt::entity focused_planet
Definition: starsystemcontroller.h:196
ctx::MapMode last_map_mode
Definition: starsystemcontroller.h:194
glm::vec3 CalculateMouseRay(const glm::vec3 &ray_nds)
Definition: starsystemcontroller.cpp:589
bool focus_on_city
Definition: starsystemcontroller.h:177
bool planet_frame_scroll
Definition: starsystemcontroller.h:178
glm::vec3 CalculateCenteredObject(const entt::entity &)
Definition: starsystemcontroller.cpp:680
entt::entity last_focused_planet
Definition: starsystemcontroller.h:197
void SelectForeignProvince(entt::entity province)
Definition: starsystemcontroller.cpp:795
const float SCROLL_SENSITIVITY
Definition: starsystemcontroller.h:182
entt::entity hovering_planet
Definition: starsystemcontroller.h:164
void SelectProvince()
Definition: starsystemcontroller.cpp:328
glm::vec4 GetCountryProvinceColor(entt::entity province)
Definition: starsystemcontroller.cpp:706
void HandleHoverTooltip()
Definition: starsystemcontroller.cpp:900
entt::entity last_hovered_province
Definition: starsystemcontroller.h:198
const float DEFAULT_PROVINCE_APLHA
Definition: starsystemcontroller.h:183
void HandleCameraMovement(float delta_time)
Definition: starsystemcontroller.cpp:92
void UpdateMapMode()
Definition: starsystemcontroller.cpp:212
entt::entity selected_country
Definition: starsystemcontroller.h:167
void FoundCity()
Definition: starsystemcontroller.cpp:398
void SetCountryProvincesToProvinceColor(entt::entity country)
Definition: starsystemcontroller.cpp:514
bool MouseOverObjectBillboard(glm::vec3 object_pos)
Definition: starsystemcontroller.cpp:939
core::components::types::SurfaceCoordinate GetCameraOverCoordinate()
Definition: starsystemcontroller.cpp:377
void PreRender()
Definition: starsystemcontroller.cpp:416
glm::vec3 GetMouseOnObjectPosition()
Definition: starsystemcontroller.h:40
void CalculateCityPositions(entt::entity entity)
Calculate offset for all cities on planet if they exist.
Definition: starsystemcontroller.cpp:600
glm::vec4 ColonizationTargetProvinceColor(entt::entity province)
Definition: starsystemcontroller.cpp:776
void Update(float delta_time)
Definition: starsystemcontroller.cpp:61
core::Universe & universe
Definition: starsystemcontroller.h:134
friend StarSystemViewUI
Definition: starsystemcontroller.h:190
void HandleProvinceHoverColor()
Definition: starsystemcontroller.cpp:552
void SetCameraToPlanetReferenceFrame()
Definition: starsystemcontroller.cpp:451
entt::entity GetMouseOnObject(int mouse_x, int mouse_y)
Definition: starsystemcontroller.cpp:637
glm::vec3 MixScale(float amount)
Definition: starsystemcontroller.cpp:989
entt::entity hovering_country
Definition: starsystemcontroller.h:165
const glm::vec4 selected_province_color
Definition: starsystemcontroller.h:192
void FocusCityView()
Definition: starsystemcontroller.cpp:467
entt::entity m_viewing_entity
Definition: starsystemcontroller.h:63
void FocusPlanetView()
Definition: starsystemcontroller.cpp:696
glm::vec3 CalculateObjectPos(const entt::entity &ent)
Definition: starsystemcontroller.cpp:686
bool is_founding_city
Definition: starsystemcontroller.h:175
entt::entity selected_province
Definition: starsystemcontroller.h:166
entt::entity hovering_province
Definition: starsystemcontroller.h:159
void CalculateViewChange(double deltaX, double deltaY)
Definition: starsystemcontroller.cpp:181
void MoveCamera(double delta_time)
Definition: starsystemcontroller.cpp:122
CameraState
Definition: starsystemcontroller.h:200
@ PlanetIntertial
Definition: starsystemcontroller.h:204
@ FreeCamera
Definition: starsystemcontroller.h:202
@ PlanetFixed
Definition: starsystemcontroller.h:206
void SeePlanet(entt::entity ent)
Definition: starsystemcontroller.cpp:390
const float PAN_SPEED
Definition: starsystemcontroller.h:181
glm::vec3 mouse_on_object_position
Definition: starsystemcontroller.h:172
void CenterCameraOnPoint()
Definition: starsystemcontroller.cpp:423
engine::Application & app
Definition: starsystemcontroller.h:135
int tex_b
Definition: starsystemcontroller.h:157
std::optional< glm::vec3 > IsMouseOverEntity(entt::entity entity, glm::vec3 ray_wor, double radius)
Definition: starsystemcontroller.cpp:947
glm::vec3 GetMouseInScreenSpace(int mouse_x, int mouse_y)
Definition: starsystemcontroller.cpp:627
int tex_r
Debugging colors
Definition: starsystemcontroller.h:155
int tex_g
Definition: starsystemcontroller.h:156
int tex_y
Definition: starsystemcontroller.h:150
void CalculateScroll()
Definition: starsystemcontroller.cpp:155
bool is_rendering_founding_city
Definition: starsystemcontroller.h:174
StarSystemController(core::Universe &, engine::Application &, StarSystemCamera &, SysStarSystemRenderer &)
Definition: starsystemcontroller.cpp:55
void FocusOnProvinceListener(const ctx::ViewProvince &province)
Definition: starsystemcontroller.cpp:118
glm::vec3 CalculateFutureCenteredPosition(const entt::entity entity)
Definition: starsystemcontroller.cpp:976
glm::vec3 CalculateFuturePosition(const entt::entity entity)
Definition: starsystemcontroller.cpp:964
void CenterCameraOnCity()
Definition: starsystemcontroller.cpp:276
bool IsFoundingCity()
Definition: starsystemcontroller.cpp:210
glm::vec4 GetCountrySelectionColor(const glm::vec3 &country_color)
Definition: starsystemcontroller.cpp:804
float GetScrollValue()
Definition: starsystemcontroller.cpp:179
entt::entity terrain_displaying
Definition: starsystemcontroller.h:140
void SelectDomesticProvince(entt::entity province)
Definition: starsystemcontroller.cpp:829
entt::entity GetSelectedCountry()
Definition: starsystemcontroller.h:71
bool ShouldDrawCityPrototype()
Definition: starsystemcontroller.cpp:664
StarSystemCamera & camera
Definition: starsystemcontroller.h:137
glm::quat GetBodyRotation(double axial, double rotation, double day_offset) const
Gets the quaternion to calculate the planet's rotation from the axial rotation and the rotation perio...
Definition: starsystemcontroller.cpp:260
double previous_mouseY
Definition: starsystemcontroller.h:144
core::components::types::SurfaceCoordinate GetMouseSurfaceIntersection()
Definition: starsystemcontroller.cpp:241
const float CAMERA_MOVEMENT_SPEED
Definition: starsystemcontroller.h:180
std::optional< glm::vec3 > CheckIntersection(const glm::vec3 &object_pos, const glm::vec3 &ray_wor, float radius)
Definition: starsystemcontroller.cpp:486
void FocusOnEntity(entt::entity ent)
Definition: starsystemcontroller.cpp:308
void FocusOnProvince(entt::entity province)
Definition: starsystemcontroller.cpp:289
int tex_x
Debugging mouse position
Definition: starsystemcontroller.h:149
Definition: starsystemrenderer.h:43
Definition: universe.h:59
Definition: application.h:61
MapMode
Definition: clientctx.h:64
Definition: editorwidgets.cpp:29
Definition: clientctx.h:99
Definition: starsystemcamera.h:28
Longitude and lattitude. Planet coordinates.
Definition: coordinates.h:75