-- 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_3x3 is

   -- Item
   --

   type Item is record
      m00 : aliased c_math_c.Real;
      m01 : aliased c_math_c.Real;
      m02 : aliased c_math_c.Real;
      m10 : aliased c_math_c.Real;
      m11 : aliased c_math_c.Real;
      m12 : aliased c_math_c.Real;
      m20 : aliased c_math_c.Real;
      m21 : aliased c_math_c.Real;
      m22 : aliased c_math_c.Real;
   end record;

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

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

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

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

   function construct return c_math_c.Matrix_3x3.Item;

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

   function construct
     (m00 : in c_math_c.Real;
      m01 : in c_math_c.Real;
      m02 : in c_math_c.Real;
      m10 : in c_math_c.Real;
      m11 : in c_math_c.Real;
      m12 : in c_math_c.Real;
      m20 : in c_math_c.Real;
      m21 : in c_math_c.Real;
      m22 : in c_math_c.Real) return c_math_c.Matrix_3x3.Item;

private

   function construct_v1 return c_math_c.Matrix_3x3.Item;

   function construct return c_math_c.Matrix_3x3.Item renames construct_v1;

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

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

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

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

   function construct_v3
     (m00 : in c_math_c.Real;
      m01 : in c_math_c.Real;
      m02 : in c_math_c.Real;
      m10 : in c_math_c.Real;
      m11 : in c_math_c.Real;
      m12 : in c_math_c.Real;
      m20 : in c_math_c.Real;
      m21 : in c_math_c.Real;
      m22 : in c_math_c.Real) return c_math_c.Matrix_3x3.Item;

   function construct
     (m00 : in c_math_c.Real;
      m01 : in c_math_c.Real;
      m02 : in c_math_c.Real;
      m10 : in c_math_c.Real;
      m11 : in c_math_c.Real;
      m12 : in c_math_c.Real;
      m20 : in c_math_c.Real;
      m21 : in c_math_c.Real;
      m22 : in c_math_c.Real) return c_math_c.Matrix_3x3.Item renames
     construct_v3;

   pragma Import (C, construct_v3, "Ada_new_Matrix_3x3__SWIG_2");

end c_math_c.Matrix_3x3;
