with ada.unchecked_Conversion; limited with openGL.Renderer.lean; package gel.World.simple -- -- Provides a simple gel world. -- is pragma Suppress (Container_Checks); -- Suppress expensive tamper checks. type Item is limited new gel.World.item with private; type View is access all Item'Class; type Views is array (Positive range <>) of View; --------- -- Forge -- package Forge is function to_World (Name : in String; Id : in world_Id; space_Kind : in physics.space_Kind; Renderer : access openGL.Renderer.lean.item'Class) return gel.World.simple.item; function new_World (Name : in String; Id : in world_Id; space_Kind : in physics.space_Kind; Renderer : access openGL.Renderer.lean.item'Class) return gel.World.simple.view; end Forge; private -------------- --- sprite_Map -- type sprite_Map is limited new World.sprite_Map with record Map : id_Maps_of_sprite.Map; end record; overriding function fetch (From : in sprite_Map) return id_Maps_of_sprite.Map; overriding procedure add (To : in out sprite_Map; the_Sprite : in Sprite.view); overriding procedure rid (From : in out sprite_Map; the_Sprite : in Sprite.view); -------------- --- World Item -- type Item is limited new gel.World.item with record all_Sprites : aliased sprite_Map; end record; overriding function all_Sprites (Self : access Item) return access World.sprite_Map'Class; end gel.World.simple;