-- This file is generated by SWIG. Please do not modify by hand.
--
with c_math_c;
with c_math_c.Vector_3;
with Interfaces.C;
use Interfaces.C;
with Interfaces.C.Pointers;

package box2d_c.b2d_ray_Collision is

   -- Item
   --

   type Item is record
      near_Object  : access box2d_c.Object;
      hit_Fraction : aliased c_math_c.Real;
      Normal_world : aliased c_math_c.Vector_3.Item;
      Site_world   : aliased c_math_c.Vector_3.Item;
   end record;

   -- Item_Array
   --
   type Item_Array is
     array
       (Interfaces.C.size_t range <>) of aliased box2d_c.b2d_ray_Collision
       .Item;

   -- Pointer
   --
   package C_Pointers is new Interfaces.C.Pointers
     (Index => Interfaces.C.size_t, Element => box2d_c.b2d_ray_Collision.Item,
      Element_Array      => box2d_c.b2d_ray_Collision.Item_Array,
      Default_Terminator => (others => <>));

   subtype Pointer is C_Pointers.Pointer;

   -- Pointer_Array
   --
   type Pointer_Array is
     array
       (Interfaces.C.size_t range <>) of aliased box2d_c.b2d_ray_Collision
       .Pointer;

   -- Pointer_Pointer
   --
   package C_Pointer_Pointers is new Interfaces.C.Pointers
     (Index              => Interfaces.C.size_t,
      Element            => box2d_c.b2d_ray_Collision.Pointer,
      Element_Array      => box2d_c.b2d_ray_Collision.Pointer_Array,
      Default_Terminator => null);

   subtype Pointer_Pointer is C_Pointer_Pointers.Pointer;

   function construct return box2d_c.b2d_ray_Collision.Item;

   procedure destruct_0 (Self : in box2d_c.b2d_ray_Collision.Item);

   procedure destruct (Self : in box2d_c.b2d_ray_Collision.Item);

private

   pragma Import
     (CPP, construct, "ada_new_b2d_ray_Collision_b2d_ray_Collision");
   pragma Import (CPP, destruct_0, "_ZN17b2d_ray_CollisionD1Ev");
   pragma Import (CPP, destruct, "_ZN17b2d_ray_CollisionD1Ev");

end box2d_c.b2d_ray_Collision;
