
// generated from codegen/templates/_matrixtype.hpp

#ifndef E_MATH_MATRIXTYPE_HPP
#define E_MATH_MATRIXTYPE_HPP

// python
#define PY_SSIZE_T_CLEAN
#include <Python.h>
// glm
#include <glm/glm.hpp>
#include <glm/ext.hpp>



typedef glm::tmat2x2<double, glm::defaultp> DMatrix2x2Glm;

struct DMatrix2x2
{
    PyObject_HEAD
    PyObject *weakreflist;
    DMatrix2x2Glm *glm;
};

struct DMatrix2x2Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    DMatrix2x2Glm *glm;
};



typedef glm::tmat2x2<float, glm::defaultp> FMatrix2x2Glm;

struct FMatrix2x2
{
    PyObject_HEAD
    PyObject *weakreflist;
    FMatrix2x2Glm *glm;
};

struct FMatrix2x2Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    FMatrix2x2Glm *glm;
};



typedef glm::tmat2x3<double, glm::defaultp> DMatrix2x3Glm;

struct DMatrix2x3
{
    PyObject_HEAD
    PyObject *weakreflist;
    DMatrix2x3Glm *glm;
};

struct DMatrix2x3Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    DMatrix2x3Glm *glm;
};



typedef glm::tmat2x3<float, glm::defaultp> FMatrix2x3Glm;

struct FMatrix2x3
{
    PyObject_HEAD
    PyObject *weakreflist;
    FMatrix2x3Glm *glm;
};

struct FMatrix2x3Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    FMatrix2x3Glm *glm;
};



typedef glm::tmat2x4<double, glm::defaultp> DMatrix2x4Glm;

struct DMatrix2x4
{
    PyObject_HEAD
    PyObject *weakreflist;
    DMatrix2x4Glm *glm;
};

struct DMatrix2x4Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    DMatrix2x4Glm *glm;
};



typedef glm::tmat2x4<float, glm::defaultp> FMatrix2x4Glm;

struct FMatrix2x4
{
    PyObject_HEAD
    PyObject *weakreflist;
    FMatrix2x4Glm *glm;
};

struct FMatrix2x4Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    FMatrix2x4Glm *glm;
};



typedef glm::tmat3x2<double, glm::defaultp> DMatrix3x2Glm;

struct DMatrix3x2
{
    PyObject_HEAD
    PyObject *weakreflist;
    DMatrix3x2Glm *glm;
};

struct DMatrix3x2Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    DMatrix3x2Glm *glm;
};



typedef glm::tmat3x2<float, glm::defaultp> FMatrix3x2Glm;

struct FMatrix3x2
{
    PyObject_HEAD
    PyObject *weakreflist;
    FMatrix3x2Glm *glm;
};

struct FMatrix3x2Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    FMatrix3x2Glm *glm;
};



typedef glm::tmat3x3<double, glm::defaultp> DMatrix3x3Glm;

struct DMatrix3x3
{
    PyObject_HEAD
    PyObject *weakreflist;
    DMatrix3x3Glm *glm;
};

struct DMatrix3x3Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    DMatrix3x3Glm *glm;
};



typedef glm::tmat3x3<float, glm::defaultp> FMatrix3x3Glm;

struct FMatrix3x3
{
    PyObject_HEAD
    PyObject *weakreflist;
    FMatrix3x3Glm *glm;
};

struct FMatrix3x3Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    FMatrix3x3Glm *glm;
};



typedef glm::tmat3x4<double, glm::defaultp> DMatrix3x4Glm;

struct DMatrix3x4
{
    PyObject_HEAD
    PyObject *weakreflist;
    DMatrix3x4Glm *glm;
};

struct DMatrix3x4Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    DMatrix3x4Glm *glm;
};



typedef glm::tmat3x4<float, glm::defaultp> FMatrix3x4Glm;

struct FMatrix3x4
{
    PyObject_HEAD
    PyObject *weakreflist;
    FMatrix3x4Glm *glm;
};

struct FMatrix3x4Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    FMatrix3x4Glm *glm;
};



typedef glm::tmat4x2<double, glm::defaultp> DMatrix4x2Glm;

struct DMatrix4x2
{
    PyObject_HEAD
    PyObject *weakreflist;
    DMatrix4x2Glm *glm;
};

struct DMatrix4x2Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    DMatrix4x2Glm *glm;
};



typedef glm::tmat4x2<float, glm::defaultp> FMatrix4x2Glm;

struct FMatrix4x2
{
    PyObject_HEAD
    PyObject *weakreflist;
    FMatrix4x2Glm *glm;
};

struct FMatrix4x2Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    FMatrix4x2Glm *glm;
};



typedef glm::tmat4x3<double, glm::defaultp> DMatrix4x3Glm;

struct DMatrix4x3
{
    PyObject_HEAD
    PyObject *weakreflist;
    DMatrix4x3Glm *glm;
};

struct DMatrix4x3Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    DMatrix4x3Glm *glm;
};



typedef glm::tmat4x3<float, glm::defaultp> FMatrix4x3Glm;

struct FMatrix4x3
{
    PyObject_HEAD
    PyObject *weakreflist;
    FMatrix4x3Glm *glm;
};

struct FMatrix4x3Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    FMatrix4x3Glm *glm;
};



typedef glm::tmat4x4<double, glm::defaultp> DMatrix4x4Glm;

struct DMatrix4x4
{
    PyObject_HEAD
    PyObject *weakreflist;
    DMatrix4x4Glm *glm;
};

struct DMatrix4x4Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    DMatrix4x4Glm *glm;
};



typedef glm::tmat4x4<float, glm::defaultp> FMatrix4x4Glm;

struct FMatrix4x4
{
    PyObject_HEAD
    PyObject *weakreflist;
    FMatrix4x4Glm *glm;
};

struct FMatrix4x4Array
{
    PyObject_HEAD
    PyObject *weakreflist;
    size_t length;
    FMatrix4x4Glm *glm;
};



#endif
