with Float_Type; use Float_Type;
with Swarm_Configuration; use Swarm_Configuration;
with Swarm_Structures; use Swarm_Structures;
with Swarm_Structures_Base; use Swarm_Structures_Base;
with Vectors_3D; use Vectors_3D;
package Swarm_Control is
procedure Append_Random_Swarm (No_Of_Swarm_Elements : Positive := Initial_No_of_Elements;
Centre : Positions := Initial_Swarm_Position;
Volume_Edge_Length : Real := Initual_Edge_Length);
procedure Remove_Vehicles (No_Of_Swarm_Elements : Positive := 1);
procedure Set_Acceleration (Element_Index : Swarm_Element_Index);
procedure Set_All_Accelerations;
procedure Forward_Messages (Element_Index : Swarm_Element_Index);
procedure Forward_All_Messages;
procedure Move_Element (Element_Index : Swarm_Element_Index);
procedure Move_All_Elements;
procedure Update_Rotation (Element_Index : Swarm_Element_Index);
procedure Update_All_Rotations;
procedure Remove_Empties;
function Centre_Of_Gravity return Vector_3D;
function Mean_Velocity return Vector_3D;
function Mean_Velocity return Real;
function Maximal_Radius return Real;
function Mean_Radius return Real;
function Mean_Closest_Distance return Real;
end Swarm_Control;