-- This file is generated by SWIG. Please do *not* modify by hand.
--
with box2d_c.Pointers;
with box2d_c.b2d_Contact;
with box2d_c.b2d_ray_Collision;
with box2d_c.joint_Cursor;
with c_math_c;
with c_math_c.Matrix_3x3;
with c_math_c.Matrix_4x4;
with c_math_c.Pointers;
with c_math_c.Vector_2;
with c_math_c.Vector_3;
with interfaces.c;
with swig;



package box2d_c.Binding is






   function  b2d_new_Circle (Radius : in c_math_c.Real) return box2d_c.Pointers.Shape_Pointer;

   function  b2d_new_Polygon (Vertices : in c_math_c.Vector_2.Pointer;
vertex_Count : in interfaces.c.int) return box2d_c.Pointers.Shape_Pointer;

   function  b2d_new_Box (half_Extents : in c_math_c.Vector_3.Pointer) return box2d_c.Pointers.Shape_Pointer;

   function  b2d_new_Capsule (Radii : in c_math_c.Vector_2.Pointer;
Height : in c_math_c.Real) return box2d_c.Pointers.Shape_Pointer;

   function  b2d_new_Cone (Radius : in c_math_c.Real;
Height : in c_math_c.Real) return box2d_c.Pointers.Shape_Pointer;

   function  b2d_new_convex_Hull (Points : in c_math_c.Vector_3.Pointer;
point_Count : in interfaces.c.int) return box2d_c.Pointers.Shape_Pointer;

   function  b2d_new_Cylinder (half_Extents : in c_math_c.Vector_3.Pointer) return box2d_c.Pointers.Shape_Pointer;

   function  b2d_new_Heightfield (Width : in interfaces.c.int;
Depth : in interfaces.c.int;
Heights : in c_math_c.Pointers.Real_Pointer;
min_Height : in c_math_c.Real;
max_Height : in c_math_c.Real;
Scale : in c_math_c.Vector_3.Pointer) return box2d_c.Pointers.Shape_Pointer;

   function  b2d_new_multiSphere (Positions : in c_math_c.Vector_3.Pointer;
Radii : in c_math_c.Pointers.Real_Pointer;
sphere_Count : in interfaces.c.int) return box2d_c.Pointers.Shape_Pointer;

   function  b2d_new_Plane (Normal : in c_math_c.Vector_3.Pointer;
Offset : in c_math_c.Real) return box2d_c.Pointers.Shape_Pointer;

   function  b2d_new_Sphere (Radius : in c_math_c.Real) return box2d_c.Pointers.Shape_Pointer;

   procedure b2d_free_Shape (Self : in box2d_c.Pointers.Shape_Pointer);

   function  b2d_Shape_user_Data (Self : in box2d_c.Pointers.Shape_Pointer) return swig.void_ptr;

   procedure b2d_Shape_user_Data_is (Self : in box2d_c.Pointers.Shape_Pointer;
Now : in swig.void_ptr);

   procedure b2d_shape_Scale_is (Self : in box2d_c.Pointers.Shape_Pointer;
Now : in c_math_c.Vector_2.Item);

   function  b2d_new_Object (Site : in c_math_c.Vector_2.Pointer;
Mass : in c_math_c.Real;
Friction : in c_math_c.Real;
Restitution : in c_math_c.Real;
the_Shape : in box2d_c.Pointers.Shape_Pointer) return box2d_c.Pointers.Object_Pointer;

   procedure b2d_free_Object (Self : in box2d_c.Pointers.Object_Pointer);

   procedure b2d_Object_Scale_is (Self : in box2d_c.Pointers.Object_Pointer;
Now : in c_math_c.Vector_2.Pointer);

   function  b2d_Object_Shape (Self : in box2d_c.Pointers.Object_Pointer) return box2d_c.Pointers.Shape_Pointer;

   function  b2d_Object_user_Data (Self : in box2d_c.Pointers.Object_Pointer) return swig.void_ptr;

   procedure b2d_Object_user_Data_is (Self : in box2d_c.Pointers.Object_Pointer;
Now : in swig.void_ptr);

   function  b2d_Object_Mass (Self : in box2d_c.Pointers.Object_Pointer) return c_math_c.Real;

   procedure b2d_Object_Friction_is (Self : in box2d_c.Pointers.Object_Pointer;
Now : in c_math_c.Real);

   procedure b2d_Object_Restitution_is (Self : in box2d_c.Pointers.Object_Pointer;
Now : in c_math_c.Real);

   function  b2d_Object_Site (Self : in box2d_c.Pointers.Object_Pointer) return c_math_c.Vector_3.Item;

   procedure b2d_Object_Site_is (Self : in box2d_c.Pointers.Object_Pointer;
Now : in c_math_c.Vector_3.Pointer);

   function  b2d_Object_Spin (Self : in box2d_c.Pointers.Object_Pointer) return c_math_c.Matrix_3x3.Item;

   procedure b2d_Object_Spin_is (Self : in box2d_c.Pointers.Object_Pointer;
Now : in c_math_c.Matrix_3x3.Pointer);

   function  b2d_Object_xy_Spin (Self : in box2d_c.Pointers.Object_Pointer) return c_math_c.Real;

   procedure b2d_Object_xy_Spin_is (Self : in box2d_c.Pointers.Object_Pointer;
Now : in c_math_c.Real);

   function  b2d_Object_Transform (Self : in box2d_c.Pointers.Object_Pointer) return c_math_c.Matrix_4x4.Item;

   procedure b2d_Object_Transform_is (Self : in box2d_c.Pointers.Object_Pointer;
Now : in c_math_c.Matrix_4x4.Pointer);

   function  b2d_Object_Speed (Self : in box2d_c.Pointers.Object_Pointer) return c_math_c.Vector_3.Item;

   procedure b2d_Object_Speed_is (Self : in box2d_c.Pointers.Object_Pointer;
Now : in c_math_c.Vector_3.Pointer);

   function  b2d_Object_Gyre (Self : in box2d_c.Pointers.Object_Pointer) return c_math_c.Vector_3.Item;

   procedure b2d_Object_Gyre_is (Self : in box2d_c.Pointers.Object_Pointer;
Now : in c_math_c.Vector_3.Pointer);

   procedure b2d_Object_apply_Force (Self : in box2d_c.Pointers.Object_Pointer;
Force : in c_math_c.Vector_3.Pointer);

   procedure b2d_Object_apply_Torque (Self : in box2d_c.Pointers.Object_Pointer;
Torque : in c_math_c.Vector_3.Pointer);

   procedure b2d_Object_apply_Torque_impulse (Self : in box2d_c.Pointers.Object_Pointer;
Torque : in c_math_c.Vector_3.Pointer);

   procedure b2d_dump (Self : in box2d_c.Pointers.Object_Pointer);

   function  b2d_new_hinge_Joint_with_local_anchors (in_Space : in box2d_c.Pointers.Space_Pointer;
Object_A : in box2d_c.Pointers.Object_Pointer;
Object_B : in box2d_c.Pointers.Object_Pointer;
Anchor_in_A : in c_math_c.Vector_3.Pointer;
Anchor_in_B : in c_math_c.Vector_3.Pointer;
low_Limit : in interfaces.c.c_float;
high_Limit : in interfaces.c.c_float;
collide_Connected : in swig.bool) return box2d_c.Pointers.Joint_Pointer;

   function  b2d_new_hinge_Joint (in_Space : in box2d_c.Pointers.Space_Pointer;
Object_A : in box2d_c.Pointers.Object_Pointer;
Object_B : in box2d_c.Pointers.Object_Pointer;
Frame_A : in c_math_c.Matrix_4x4.Pointer;
Frame_B : in c_math_c.Matrix_4x4.Pointer;
low_Limit : in interfaces.c.c_float;
high_Limit : in interfaces.c.c_float;
collide_Connected : in swig.bool) return box2d_c.Pointers.Joint_Pointer;

   procedure b2d_free_hinge_Joint (Self : in box2d_c.Pointers.Joint_Pointer);

   function  b2d_new_space_hinge_Joint (Object_A : in box2d_c.Pointers.Object_Pointer;
Frame_A : in c_math_c.Matrix_4x4.Pointer) return box2d_c.Pointers.Joint_Pointer;

   function  b2d_new_DoF6_Joint (Object_A : in box2d_c.Pointers.Object_Pointer;
Object_B : in box2d_c.Pointers.Object_Pointer;
Frame_A : in c_math_c.Matrix_4x4.Pointer;
Frame_B : in c_math_c.Matrix_4x4.Pointer) return box2d_c.Pointers.Joint_Pointer;

   function  b2d_new_cone_twist_Joint (Object_A : in box2d_c.Pointers.Object_Pointer;
Object_B : in box2d_c.Pointers.Object_Pointer;
Frame_A : in c_math_c.Matrix_4x4.Pointer;
Frame_B : in c_math_c.Matrix_4x4.Pointer) return box2d_c.Pointers.Joint_Pointer;

   function  b2d_new_slider_Joint (Object_A : in box2d_c.Pointers.Object_Pointer;
Object_B : in box2d_c.Pointers.Object_Pointer;
Frame_A : in c_math_c.Matrix_4x4.Pointer;
Frame_B : in c_math_c.Matrix_4x4.Pointer) return box2d_c.Pointers.Joint_Pointer;

   function  b2d_new_ball_Joint (Object_A : in box2d_c.Pointers.Object_Pointer;
Object_B : in box2d_c.Pointers.Object_Pointer;
Pivot_in_A : in c_math_c.Vector_3.Pointer;
Pivot_in_B : in c_math_c.Vector_3.Pointer) return box2d_c.Pointers.Joint_Pointer;

   function  b2d_Joint_user_Data (Self : in box2d_c.Pointers.Joint_Pointer) return swig.void_ptr;

   procedure b2d_Joint_user_Data_is (Self : in box2d_c.Pointers.Joint_Pointer;
Now : in swig.void_ptr);

   function  b2d_Joint_Object_A (Self : in box2d_c.Pointers.Joint_Pointer) return box2d_c.Pointers.Object_Pointer;

   function  b2d_Joint_Object_B (Self : in box2d_c.Pointers.Joint_Pointer) return box2d_c.Pointers.Object_Pointer;

   function  b2d_Joint_Frame_A (Self : in box2d_c.Pointers.Joint_Pointer) return c_math_c.Matrix_4x4.Item;

   function  b2d_Joint_Frame_B (Self : in box2d_c.Pointers.Joint_Pointer) return c_math_c.Matrix_4x4.Item;

   procedure b2d_Joint_Frame_A_is (Self : in box2d_c.Pointers.Joint_Pointer;
Now : in c_math_c.Matrix_4x4.Pointer);

   procedure b2d_Joint_Frame_B_is (Self : in box2d_c.Pointers.Joint_Pointer;
Now : in c_math_c.Matrix_4x4.Pointer);

   procedure b2d_Joint_set_local_Anchor (Self : in box2d_c.Pointers.Joint_Pointer;
is_Anchor_A : in swig.bool;
local_Anchor : in c_math_c.Vector_3.Pointer);

   function  b2d_Joint_is_Limited (Self : in box2d_c.Pointers.Joint_Pointer;
DoF : in interfaces.c.int) return swig.bool;

   function  b2d_Joint_Extent (Self : in box2d_c.Pointers.Joint_Pointer;
DoF : in interfaces.c.int) return swig.bool;

   procedure b2d_Joint_Velocity_is (Self : in box2d_c.Pointers.Joint_Pointer;
DoF : in interfaces.c.int;
Now : in c_math_c.Real);

   function  b2d_Joint_reaction_Force (Self : in box2d_c.Pointers.Joint_Pointer) return c_math_c.Vector_3.Item;

   function  b2d_Joint_reaction_Torque (Self : in box2d_c.Pointers.Joint_Pointer) return c_math_c.Real;

   procedure b2d_Joint_hinge_Limits_are (Self : in box2d_c.Pointers.Joint_Pointer;
Low : in c_math_c.Real;
High : in c_math_c.Real);

   function  b2d_new_Space  return box2d_c.Pointers.Space_Pointer;

   procedure b2d_free_Space (Self : in box2d_c.Pointers.Space_Pointer);

   procedure b2d_Space_add_Object (Self : in box2d_c.Pointers.Space_Pointer;
the_Object : in box2d_c.Pointers.Object_Pointer);

   procedure b2d_Space_rid_Object (Self : in box2d_c.Pointers.Space_Pointer;
the_Object : in box2d_c.Pointers.Object_Pointer);

   procedure b2d_Space_add_Joint (Self : in box2d_c.Pointers.Space_Pointer;
the_Joint : in box2d_c.Pointers.Joint_Pointer);

   procedure b2d_Space_rid_Joint (Self : in box2d_c.Pointers.Space_Pointer;
the_Joint : in box2d_c.Pointers.Joint_Pointer);

   function  b2d_b2Joint_user_Data (the_Joint : in box2d_c.Pointers.b2Joint_Pointer) return swig.void_ptr;

   function  b2d_Space_first_Joint (Self : in box2d_c.Pointers.Space_Pointer) return box2d_c.joint_Cursor.Item;

   procedure b2d_Space_next_Joint (Cursor : in box2d_c.joint_Cursor.Pointer);

   function  b2d_Space_joint_Element (Cursor : in box2d_c.joint_Cursor.Pointer) return box2d_c.Pointers.b2Joint_Pointer;

   procedure b2d_Space_Gravity_is (Self : in box2d_c.Pointers.Space_Pointer;
Now : in c_math_c.Vector_3.Pointer);

   procedure b2d_Space_evolve (Self : in box2d_c.Pointers.Space_Pointer;
By : in interfaces.c.c_float);

   function  b2d_Space_cast_Ray (Self : in box2d_c.Pointers.Space_Pointer;
From : in c_math_c.Vector_3.Pointer;
To : in c_math_c.Vector_3.Pointer) return box2d_c.b2d_ray_Collision.Item;

   function  b2d_space_contact_Count (Self : in box2d_c.Pointers.Space_Pointer) return interfaces.c.int;

   function  b2d_space_Contact (Self : in box2d_c.Pointers.Space_Pointer;
contact_Id : in interfaces.c.int) return box2d_c.b2d_Contact.Item;









private



   pragma Import (C, b2d_new_Circle, "Ada_b2d_new_Circle");
   pragma Import (C, b2d_new_Polygon, "Ada_b2d_new_Polygon");
   pragma Import (C, b2d_new_Box, "Ada_b2d_new_Box");
   pragma Import (C, b2d_new_Capsule, "Ada_b2d_new_Capsule");
   pragma Import (C, b2d_new_Cone, "Ada_b2d_new_Cone");
   pragma Import (C, b2d_new_convex_Hull, "Ada_b2d_new_convex_Hull");
   pragma Import (C, b2d_new_Cylinder, "Ada_b2d_new_Cylinder");
   pragma Import (C, b2d_new_Heightfield, "Ada_b2d_new_Heightfield");
   pragma Import (C, b2d_new_multiSphere, "Ada_b2d_new_multiSphere");
   pragma Import (C, b2d_new_Plane, "Ada_b2d_new_Plane");
   pragma Import (C, b2d_new_Sphere, "Ada_b2d_new_Sphere");
   pragma Import (C, b2d_free_Shape, "Ada_b2d_free_Shape");
   pragma Import (C, b2d_Shape_user_Data, "Ada_b2d_Shape_user_Data");
   pragma Import (C, b2d_Shape_user_Data_is, "Ada_b2d_Shape_user_Data_is");
   pragma Import (C, b2d_shape_Scale_is, "Ada_b2d_shape_Scale_is");
   pragma Import (C, b2d_new_Object, "Ada_b2d_new_Object");
   pragma Import (C, b2d_free_Object, "Ada_b2d_free_Object");
   pragma Import (C, b2d_Object_Scale_is, "Ada_b2d_Object_Scale_is");
   pragma Import (C, b2d_Object_Shape, "Ada_b2d_Object_Shape");
   pragma Import (C, b2d_Object_user_Data, "Ada_b2d_Object_user_Data");
   pragma Import (C, b2d_Object_user_Data_is, "Ada_b2d_Object_user_Data_is");
   pragma Import (C, b2d_Object_Mass, "Ada_b2d_Object_Mass");
   pragma Import (C, b2d_Object_Friction_is, "Ada_b2d_Object_Friction_is");
   pragma Import (C, b2d_Object_Restitution_is, "Ada_b2d_Object_Restitution_is");
   pragma Import (C, b2d_Object_Site, "Ada_b2d_Object_Site");
   pragma Import (C, b2d_Object_Site_is, "Ada_b2d_Object_Site_is");
   pragma Import (C, b2d_Object_Spin, "Ada_b2d_Object_Spin");
   pragma Import (C, b2d_Object_Spin_is, "Ada_b2d_Object_Spin_is");
   pragma Import (C, b2d_Object_xy_Spin, "Ada_b2d_Object_xy_Spin");
   pragma Import (C, b2d_Object_xy_Spin_is, "Ada_b2d_Object_xy_Spin_is");
   pragma Import (C, b2d_Object_Transform, "Ada_b2d_Object_Transform");
   pragma Import (C, b2d_Object_Transform_is, "Ada_b2d_Object_Transform_is");
   pragma Import (C, b2d_Object_Speed, "Ada_b2d_Object_Speed");
   pragma Import (C, b2d_Object_Speed_is, "Ada_b2d_Object_Speed_is");
   pragma Import (C, b2d_Object_Gyre, "Ada_b2d_Object_Gyre");
   pragma Import (C, b2d_Object_Gyre_is, "Ada_b2d_Object_Gyre_is");
   pragma Import (C, b2d_Object_apply_Force, "Ada_b2d_Object_apply_Force");
   pragma Import (C, b2d_Object_apply_Torque, "Ada_b2d_Object_apply_Torque");
   pragma Import (C, b2d_Object_apply_Torque_impulse, "Ada_b2d_Object_apply_Torque_impulse");
   pragma Import (C, b2d_dump, "Ada_b2d_dump");
   pragma Import (C, b2d_new_hinge_Joint_with_local_anchors, "Ada_b2d_new_hinge_Joint_with_local_anchors");
   pragma Import (C, b2d_new_hinge_Joint, "Ada_b2d_new_hinge_Joint");
   pragma Import (C, b2d_free_hinge_Joint, "Ada_b2d_free_hinge_Joint");
   pragma Import (C, b2d_new_space_hinge_Joint, "Ada_b2d_new_space_hinge_Joint");
   pragma Import (C, b2d_new_DoF6_Joint, "Ada_b2d_new_DoF6_Joint");
   pragma Import (C, b2d_new_cone_twist_Joint, "Ada_b2d_new_cone_twist_Joint");
   pragma Import (C, b2d_new_slider_Joint, "Ada_b2d_new_slider_Joint");
   pragma Import (C, b2d_new_ball_Joint, "Ada_b2d_new_ball_Joint");
   pragma Import (C, b2d_Joint_user_Data, "Ada_b2d_Joint_user_Data");
   pragma Import (C, b2d_Joint_user_Data_is, "Ada_b2d_Joint_user_Data_is");
   pragma Import (C, b2d_Joint_Object_A, "Ada_b2d_Joint_Object_A");
   pragma Import (C, b2d_Joint_Object_B, "Ada_b2d_Joint_Object_B");
   pragma Import (C, b2d_Joint_Frame_A, "Ada_b2d_Joint_Frame_A");
   pragma Import (C, b2d_Joint_Frame_B, "Ada_b2d_Joint_Frame_B");
   pragma Import (C, b2d_Joint_Frame_A_is, "Ada_b2d_Joint_Frame_A_is");
   pragma Import (C, b2d_Joint_Frame_B_is, "Ada_b2d_Joint_Frame_B_is");
   pragma Import (C, b2d_Joint_set_local_Anchor, "Ada_b2d_Joint_set_local_Anchor");
   pragma Import (C, b2d_Joint_is_Limited, "Ada_b2d_Joint_is_Limited");
   pragma Import (C, b2d_Joint_Extent, "Ada_b2d_Joint_Extent");
   pragma Import (C, b2d_Joint_Velocity_is, "Ada_b2d_Joint_Velocity_is");
   pragma Import (C, b2d_Joint_reaction_Force, "Ada_b2d_Joint_reaction_Force");
   pragma Import (C, b2d_Joint_reaction_Torque, "Ada_b2d_Joint_reaction_Torque");
   pragma Import (C, b2d_Joint_hinge_Limits_are, "Ada_b2d_Joint_hinge_Limits_are");
   pragma Import (C, b2d_new_Space, "Ada_b2d_new_Space");
   pragma Import (C, b2d_free_Space, "Ada_b2d_free_Space");
   pragma Import (C, b2d_Space_add_Object, "Ada_b2d_Space_add_Object");
   pragma Import (C, b2d_Space_rid_Object, "Ada_b2d_Space_rid_Object");
   pragma Import (C, b2d_Space_add_Joint, "Ada_b2d_Space_add_Joint");
   pragma Import (C, b2d_Space_rid_Joint, "Ada_b2d_Space_rid_Joint");
   pragma Import (C, b2d_b2Joint_user_Data, "Ada_b2d_b2Joint_user_Data");
   pragma Import (C, b2d_Space_first_Joint, "Ada_b2d_Space_first_Joint");
   pragma Import (C, b2d_Space_next_Joint, "Ada_b2d_Space_next_Joint");
   pragma Import (C, b2d_Space_joint_Element, "Ada_b2d_Space_joint_Element");
   pragma Import (C, b2d_Space_Gravity_is, "Ada_b2d_Space_Gravity_is");
   pragma Import (C, b2d_Space_evolve, "Ada_b2d_Space_evolve");
   pragma Import (C, b2d_Space_cast_Ray, "Ada_b2d_Space_cast_Ray");
   pragma Import (C, b2d_space_contact_Count, "Ada_b2d_space_contact_Count");
   pragma Import (C, b2d_space_Contact, "Ada_b2d_space_Contact");



end box2d_c.Binding;
