with Vectors_3D; use Vectors_3D;
package body Swarm_Configurations is
function Globe_Defaults (Configuration : Configurations) return Energy_Globes_A is
Grid_Space : constant Real := 0.1;
begin
case Configuration is
when Single_Globe_In_Orbit =>
return (1 => (Position => Zero_Vector_3D, Velocity => Zero_Vector_3D));
when Dual_Globes_In_Orbit =>
return (1 => (Zero_Vector_3D, Zero_Vector_3D),
2 => (Zero_Vector_3D, Zero_Vector_3D));
when Globe_Grid_In_Centre =>
return (1 => (Position => (-Grid_Space, -Grid_Space, -Grid_Space), Velocity => Zero_Vector_3D),
2 => (Position => (-Grid_Space, -Grid_Space, +Grid_Space), Velocity => Zero_Vector_3D),
3 => (Position => (-Grid_Space, +Grid_Space, -Grid_Space), Velocity => Zero_Vector_3D),
4 => (Position => (-Grid_Space, +Grid_Space, +Grid_Space), Velocity => Zero_Vector_3D),
5 => (Position => (-Grid_Space, 0.0, -Grid_Space), Velocity => Zero_Vector_3D),
6 => (Position => (-Grid_Space, 0.0, +Grid_Space), Velocity => Zero_Vector_3D),
7 => (Position => (-Grid_Space, 0.0, 0.0), Velocity => Zero_Vector_3D),
8 => (Position => (-Grid_Space, -Grid_Space, 0.0), Velocity => Zero_Vector_3D),
9 => (Position => (-Grid_Space, +Grid_Space, 0.0), Velocity => Zero_Vector_3D),
10 => (Position => (0.0, -Grid_Space, -Grid_Space), Velocity => Zero_Vector_3D),
11 => (Position => (0.0, -Grid_Space, +Grid_Space), Velocity => Zero_Vector_3D),
12 => (Position => (0.0, +Grid_Space, -Grid_Space), Velocity => Zero_Vector_3D),
13 => (Position => (0.0, +Grid_Space, +Grid_Space), Velocity => Zero_Vector_3D),
14 => (Position => (0.0, 0.0, -Grid_Space), Velocity => Zero_Vector_3D),
15 => (Position => (0.0, 0.0, +Grid_Space), Velocity => Zero_Vector_3D),
16 => (Position => (0.0, 0.0, 0.0), Velocity => Zero_Vector_3D),
17 => (Position => (0.0, -Grid_Space, 0.0), Velocity => Zero_Vector_3D),
18 => (Position => (0.0, +Grid_Space, 0.0), Velocity => Zero_Vector_3D),
19 => (Position => (+Grid_Space, -Grid_Space, -Grid_Space), Velocity => Zero_Vector_3D),
20 => (Position => (+Grid_Space, -Grid_Space, +Grid_Space), Velocity => Zero_Vector_3D),
21 => (Position => (+Grid_Space, +Grid_Space, -Grid_Space), Velocity => Zero_Vector_3D),
22 => (Position => (+Grid_Space, +Grid_Space, +Grid_Space), Velocity => Zero_Vector_3D),
23 => (Position => (+Grid_Space, 0.0, -Grid_Space), Velocity => Zero_Vector_3D),
24 => (Position => (+Grid_Space, 0.0, +Grid_Space), Velocity => Zero_Vector_3D),
25 => (Position => (+Grid_Space, 0.0, 0.0), Velocity => Zero_Vector_3D),
26 => (Position => (+Grid_Space, -Grid_Space, 0.0), Velocity => Zero_Vector_3D),
27 => (Position => (+Grid_Space, +Grid_Space, 0.0), Velocity => Zero_Vector_3D));
end case;
end Globe_Defaults;
end Swarm_Configurations;