1. -- 
  2. -- Jan & Uwe R. Zimmer, Australia, July 2011 
  3. -- 
  4.  
  5. with Float_Type;            use Float_Type; 
  6. with Swarm_Configuration;    use Swarm_Configuration; 
  7. with Swarm_Structures;      use Swarm_Structures; 
  8. with Swarm_Structures_Base; use Swarm_Structures_Base; 
  9. with Vectors_3D;            use Vectors_3D; 
  10.  
  11. package Swarm_Control is 
  12.  
  13.    procedure Append_Random_Swarm (No_Of_Swarm_Elements : Positive  := Initial_No_of_Elements; 
  14.                                   Centre               : Positions := Initial_Swarm_Position; 
  15.                                   Volume_Edge_Length   : Real      := Initual_Edge_Length); 
  16.  
  17.    procedure Remove_Vehicles (No_Of_Swarm_Elements : Positive  := 1); 
  18.  
  19.    procedure Set_Acceleration (Element_Index : Swarm_Element_Index); 
  20.    procedure Set_All_Accelerations; 
  21.  
  22.    procedure Forward_Messages (Element_Index : Swarm_Element_Index); 
  23.    procedure Forward_All_Messages; 
  24.  
  25.    procedure Move_Element (Element_Index : Swarm_Element_Index); 
  26.    procedure Move_All_Elements; 
  27.  
  28.    procedure Update_Rotation (Element_Index : Swarm_Element_Index); 
  29.    procedure Update_All_Rotations; 
  30.  
  31.    procedure Remove_Empties; 
  32.  
  33.    function Centre_Of_Gravity     return Vector_3D; 
  34.    function Mean_Velocity         return Vector_3D; 
  35.    function Mean_Velocity         return Real; 
  36.    function Maximal_Radius        return Real; 
  37.    function Mean_Radius           return Real; 
  38.    function Mean_Closest_Distance return Real; 
  39.  
  40. end Swarm_Control;