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

package c_math_c.Matrix_4x4 is

   -- Item
   --

   type Item is record
      m00 : aliased c_math_c.Real;
      m01 : aliased c_math_c.Real;
      m02 : aliased c_math_c.Real;
      m03 : aliased c_math_c.Real;
      m10 : aliased c_math_c.Real;
      m11 : aliased c_math_c.Real;
      m12 : aliased c_math_c.Real;
      m13 : aliased c_math_c.Real;
      m20 : aliased c_math_c.Real;
      m21 : aliased c_math_c.Real;
      m22 : aliased c_math_c.Real;
      m23 : aliased c_math_c.Real;
      m30 : aliased c_math_c.Real;
      m31 : aliased c_math_c.Real;
      m32 : aliased c_math_c.Real;
      m33 : aliased c_math_c.Real;
   end record;

   -- Items
   --
   type Items is
     array (Interfaces.C.size_t range <>) of aliased c_math_c.Matrix_4x4.Item;

   -- Pointer
   --
   type Pointer is access all c_math_c.Matrix_4x4.Item;

   -- Pointers
   --
   type Pointers is
     array
       (Interfaces.C.size_t range <>) of aliased c_math_c.Matrix_4x4.Pointer;

   -- Pointer_Pointer
   --
   type Pointer_Pointer is access all c_math_c.Matrix_4x4.Pointer;

   function construct return c_math_c.Matrix_4x4.Item;

   function construct
     (First : in c_math_c.Pointers.Real_Pointer)
      return c_math_c.Matrix_4x4.Item;

private

   function construct_v1 return c_math_c.Matrix_4x4.Item;

   function construct return c_math_c.Matrix_4x4.Item renames construct_v1;

   pragma Import (C, construct_v1, "Ada_new_Matrix_4x4__SWIG_0");

   function construct_v2
     (First : in c_math_c.Pointers.Real_Pointer)
      return c_math_c.Matrix_4x4.Item;

   function construct
     (First : in c_math_c.Pointers.Real_Pointer)
      return c_math_c.Matrix_4x4.Item renames
     construct_v2;

   pragma Import (C, construct_v2, "Ada_new_Matrix_4x4__SWIG_1");

end c_math_c.Matrix_4x4;
