Compare commits

..

No commits in common. "a0504e74e9dced69c0791facd4dd61ff2493cb65" and "e379d1593a6b5d778964b15300e61af08cb32cea" have entirely different histories.

2 changed files with 5 additions and 96 deletions

View file

@ -100,10 +100,7 @@ mesh = SubResource("CylinderMesh_ygjfp")
[node name="Pointer" type="Sprite3D" parent="TabContainer/Planet/VBoxContainer/SubViewportContainer/SubViewport/ZaWarudo/Icosphere" unique_id=1498529325]
unique_name_in_owner = true
modulate = Color(1, 0, 0, 1)
pixel_size = 0.0018184
billboard = 1
no_depth_test = true
fixed_size = true
texture = ExtResource("5_ygjfp")
[node name="Yaw" type="Node3D" parent="TabContainer/Planet/VBoxContainer/SubViewportContainer/SubViewport/ZaWarudo" unique_id=2073443785]
@ -137,8 +134,7 @@ horizontal_alignment = 1
[node name="SunAngle" type="HSlider" parent="TabContainer/Planet/VBoxContainer/MarginContainer/VBoxContainer" unique_id=1452623828]
unique_name_in_owner = true
layout_mode = 2
max_value = 365.0
tick_count = 14
max_value = 360.0
[node name="HSeparator" type="HSeparator" parent="TabContainer/Planet/VBoxContainer/MarginContainer/VBoxContainer" unique_id=1053749080]
layout_mode = 2
@ -151,9 +147,7 @@ horizontal_alignment = 1
[node name="PlanetAngle" type="HSlider" parent="TabContainer/Planet/VBoxContainer/MarginContainer/VBoxContainer" unique_id=1574475714]
unique_name_in_owner = true
layout_mode = 2
max_value = 24.0
step = 0.25
tick_count = 3
max_value = 360.0
[node name="PanelContainer" type="PanelContainer" parent="TabContainer/Planet" unique_id=716838825]
layout_mode = 2
@ -227,26 +221,6 @@ max_length = 5
[node name="HSeparator" type="HSeparator" parent="TabContainer/Planet/PanelContainer/MarginContainer/VBoxContainer2/VBoxContainer" unique_id=1862016318]
layout_mode = 2
[node name="Label4" type="Label" parent="TabContainer/Planet/PanelContainer/MarginContainer/VBoxContainer2/VBoxContainer" unique_id=1664133820]
layout_mode = 2
text = "- World -"
[node name="HBoxContainer5" type="HBoxContainer" parent="TabContainer/Planet/PanelContainer/MarginContainer/VBoxContainer2/VBoxContainer" unique_id=703726989]
layout_mode = 2
[node name="Margin" type="VSeparator" parent="TabContainer/Planet/PanelContainer/MarginContainer/VBoxContainer2/VBoxContainer/HBoxContainer5" unique_id=554179765]
layout_mode = 2
[node name="Label" type="Label" parent="TabContainer/Planet/PanelContainer/MarginContainer/VBoxContainer2/VBoxContainer/HBoxContainer5" unique_id=416863531]
layout_mode = 2
theme_override_colors/font_color = Color(0.4922884, 0.49228835, 0.49228835, 1)
text = "Date: "
[node name="Date" type="Label" parent="TabContainer/Planet/PanelContainer/MarginContainer/VBoxContainer2/VBoxContainer/HBoxContainer5" unique_id=716565176]
unique_name_in_owner = true
layout_mode = 2
text = "-1"
[node name="Label2" type="Label" parent="TabContainer/Planet/PanelContainer/MarginContainer/VBoxContainer2/VBoxContainer" unique_id=186838891]
layout_mode = 2
text = "- Point -"
@ -280,19 +254,6 @@ unique_name_in_owner = true
layout_mode = 2
text = "-1"
[node name="VSeparator2" type="VSeparator" parent="TabContainer/Planet/PanelContainer/MarginContainer/VBoxContainer2/VBoxContainer/HBoxContainer2" unique_id=521477767]
layout_mode = 2
[node name="Label2" type="Label" parent="TabContainer/Planet/PanelContainer/MarginContainer/VBoxContainer2/VBoxContainer/HBoxContainer2" unique_id=837979077]
layout_mode = 2
theme_override_colors/font_color = Color(0.4922884, 0.49228835, 0.49228835, 1)
text = "Local Time:"
[node name="LocalTime" type="Label" parent="TabContainer/Planet/PanelContainer/MarginContainer/VBoxContainer2/VBoxContainer/HBoxContainer2" unique_id=501459011]
unique_name_in_owner = true
layout_mode = 2
text = "-1"
[node name="Label3" type="Label" parent="TabContainer/Planet/PanelContainer/MarginContainer/VBoxContainer2/VBoxContainer" unique_id=1412781677]
layout_mode = 2
text = " - Plate -"

View file

@ -38,7 +38,6 @@ public partial class Main : Control
UpdateStats();
Projector.GatherPoints(_planetHelper, int.Parse(GetNode<LineEdit>("%Resolution").Text));
AxialTiltChanged(GetNode<LineEdit>("%AxialTilt").Text);
UpdateTime();
}
Vector3 _pointerPosition = Vector3.Zero;
@ -113,7 +112,6 @@ public partial class Main : Control
vertexPos *= _meshInstance.Transform.Basis.Inverse().Orthonormalized();
_pointerPosition = (Vector3)vertexPos + (vertexPos * (_vertex.Height + 0.01f) * 0.03f); // vertexPos * 1.01f;
GetNode<Node3D>("%Pointer").GlobalPosition = _pointerPosition;
UpdateTime();
}
}
@ -130,65 +128,16 @@ public partial class Main : Control
_planetHelper.Process();
if (_sunRotating)
{
_sunRotation = (double)(GetNode<HSlider>("%SunAngle").Value / 365.0);
GetNode<Node3D>("%Sun").Rotation -= GetNode<Node3D>("%Sun").Rotation;
GetNode<Node3D>("%Sun").Rotation += new Vector3(0, Mathf.DegToRad((float)_sunRotation * 360f), 0);
UpdateTime();
GetNode<Node3D>("%Sun").Rotation += new Vector3(0, (float)Mathf.DegToRad(GetNode<HSlider>("%SunAngle").Value), 0);
}
if (_planetRotating)
{
_planetRotation = (double)(GetNode<HSlider>("%PlanetAngle").Value / 24.0);
_meshInstance.Rotation = Vector3.Zero;
_meshInstance.RotateY((float)Mathf.DegToRad(_planetRotation * 360.0));
_meshInstance.RotateY((float)Mathf.DegToRad(GetNode<HSlider>("%PlanetAngle").Value));
_meshInstance.RotateZ(Mathf.DegToRad(_axialTilt));
UpdateTime();
}
}
public void UpdateTime()
{
double hours = GetLocalTime(GetNode<Node3D>("%Pointer").GlobalPosition, GetNode<Node3D>("%Sun").GlobalTransform.Basis.Z,
_meshInstance);
GetNode<Label>("%LocalTime").Text = DaysToTime(_sunRotation * 365.0, hours);
GetNode<Label>("%Date").Text = DaysToDate(_sunRotation * 365.0, _planetRotation*24.0);
}
public static double GetLocalTime(Vector3 surfacePoint, Vector3 sunPos, Node3D planet)
{
Vector3 center = planet.GlobalTransform.Origin;
Vector3 axis = -planet.GlobalTransform.Basis.Y.Normalized();
Vector3 surfaceDir = (surfacePoint - center).Normalized();
Vector3 sunDir = (sunPos - center).Normalized();
surfaceDir = (surfaceDir - axis * surfaceDir.Dot(axis)).Normalized();
sunDir = (sunDir - axis * sunDir.Dot(axis)).Normalized();
double angle = Mathf.Atan2(
axis.Dot(surfaceDir.Cross(sunDir)),
surfaceDir.Dot(sunDir)
);
double hours = Mathf.PosMod(angle / Mathf.Tau * 24.0 + 12.0, 24.0);
return hours;
}
public string DaysToDate(double days, double hours)
{
DateTime dt = new DateTime(1, 1, 1);
dt = dt.AddDays(days);
dt = dt.AddHours(hours);
return dt.ToString("'y'yyyy/'m'MM/'d'dd - 'h'HH':''m'mm':''s'ss");
}
public string DaysToTime(double days, double hours)
{
DateTime dt = new DateTime(1, 1, 1);
dt = dt.AddDays(days);
dt = dt.AddHours(hours);
return dt.ToString("'h'HH':''m'mm':''s'ss");
}
public void UpdateStats()
{
if (_vertex != null)
@ -290,7 +239,6 @@ public partial class Main : Control
}
private bool _sunRotating = false;
private double _sunRotation = 0.0;
private float _axialTilt = 0f;
public void SunAngleStart()
{
@ -302,7 +250,7 @@ public partial class Main : Control
_sunRotating = false;
}
private bool _planetRotating = false;
private double _planetRotation = 0.0;
private float _planetRotation = 0f;
public void PlanetAngleStart()
{
_planetRotating = true;