1. with Vectors_3D; use Vectors_3D; 
  2.  
  3. package body Swarm_Configurations is 
  4.  
  5.    -------------------- 
  6.    -- Globe_Defaults -- 
  7.    -------------------- 
  8.  
  9.    function Globe_Defaults (Configuration : Configurations) return Energy_Globes_A is 
  10.  
  11.       Grid_Space : constant Real := 0.1; 
  12.  
  13.    begin 
  14.       case Configuration is 
  15.          when Single_Globe_In_Orbit => 
  16.             return (1 => (Position => Zero_Vector_3D, Velocity => Zero_Vector_3D)); 
  17.          when Dual_Globes_In_Orbit => 
  18.             return (1 => (Zero_Vector_3D, Zero_Vector_3D), 
  19.                     2 => (Zero_Vector_3D, Zero_Vector_3D)); 
  20.          when Globe_Grid_In_Centre  => 
  21.             return (1 => (Position =>  (-Grid_Space, -Grid_Space, -Grid_Space), Velocity => Zero_Vector_3D), 
  22.                     2 => (Position =>  (-Grid_Space, -Grid_Space, +Grid_Space), Velocity => Zero_Vector_3D), 
  23.                     3 => (Position =>  (-Grid_Space, +Grid_Space, -Grid_Space), Velocity => Zero_Vector_3D), 
  24.                     4 => (Position =>  (-Grid_Space, +Grid_Space, +Grid_Space), Velocity => Zero_Vector_3D), 
  25.                     5 => (Position =>  (-Grid_Space,         0.0, -Grid_Space), Velocity => Zero_Vector_3D), 
  26.                     6 => (Position =>  (-Grid_Space,         0.0, +Grid_Space), Velocity => Zero_Vector_3D), 
  27.                     7 => (Position =>  (-Grid_Space,         0.0,         0.0), Velocity => Zero_Vector_3D), 
  28.                     8 => (Position =>  (-Grid_Space, -Grid_Space,         0.0), Velocity => Zero_Vector_3D), 
  29.                     9 => (Position =>  (-Grid_Space, +Grid_Space,         0.0), Velocity => Zero_Vector_3D), 
  30.                     10 => (Position => (0.0,         -Grid_Space, -Grid_Space), Velocity => Zero_Vector_3D), 
  31.                     11 => (Position => (0.0,         -Grid_Space, +Grid_Space), Velocity => Zero_Vector_3D), 
  32.                     12 => (Position => (0.0,         +Grid_Space, -Grid_Space), Velocity => Zero_Vector_3D), 
  33.                     13 => (Position => (0.0,         +Grid_Space, +Grid_Space), Velocity => Zero_Vector_3D), 
  34.                     14 => (Position => (0.0,                 0.0, -Grid_Space), Velocity => Zero_Vector_3D), 
  35.                     15 => (Position => (0.0,                 0.0, +Grid_Space), Velocity => Zero_Vector_3D), 
  36.                     16 => (Position => (0.0,                 0.0,         0.0), Velocity => Zero_Vector_3D), 
  37.                     17 => (Position => (0.0,         -Grid_Space,         0.0), Velocity => Zero_Vector_3D), 
  38.                     18 => (Position => (0.0,         +Grid_Space,         0.0), Velocity => Zero_Vector_3D), 
  39.                     19 => (Position => (+Grid_Space, -Grid_Space, -Grid_Space), Velocity => Zero_Vector_3D), 
  40.                     20 => (Position => (+Grid_Space, -Grid_Space, +Grid_Space), Velocity => Zero_Vector_3D), 
  41.                     21 => (Position => (+Grid_Space, +Grid_Space, -Grid_Space), Velocity => Zero_Vector_3D), 
  42.                     22 => (Position => (+Grid_Space, +Grid_Space, +Grid_Space), Velocity => Zero_Vector_3D), 
  43.                     23 => (Position => (+Grid_Space,         0.0, -Grid_Space), Velocity => Zero_Vector_3D), 
  44.                     24 => (Position => (+Grid_Space,         0.0, +Grid_Space), Velocity => Zero_Vector_3D), 
  45.                     25 => (Position => (+Grid_Space,         0.0,         0.0), Velocity => Zero_Vector_3D), 
  46.                     26 => (Position => (+Grid_Space, -Grid_Space,         0.0), Velocity => Zero_Vector_3D), 
  47.                     27 => (Position => (+Grid_Space, +Grid_Space,         0.0), Velocity => Zero_Vector_3D)); 
  48.       end case; 
  49.    end Globe_Defaults; 
  50.  
  51. end Swarm_Configurations;