#ifndef __PMAT4FGL3C_H__ #define __PMAT4FGL3C_H__ #include #include #include #include #include "ptmatrice4fc.h" #ifdef __cplusplus extern "C" { #endif ///structure qui permet de gérer les matrice 4×4 de OpenGl 3 qui peuvent se sauvegarder (avec des push et des pop) struct PMat4fGl3cStrutc{ PtMatrice4fc mat; struct PMat4fGl3cStrutc* savePrevMat; }; typedef struct PMat4fGl3cStrutc PMat4fGl3; PMat4fGl3 * createPMat4fGl3(); void freePMat4fGl3(PMat4fGl3* mat); void pushPMat4fGl3(PMat4fGl3* mat); int popPMat4fGl3(PMat4fGl3* mat); void depilerPMat4fGl3(PMat4fGl3* mat); void loadIdentityPMat4fGl3(PMat4fGl3* mat); void translatePMat4fGl3(PMat4fGl3* mat, float x, float y, float z); void scalePMat4fGl3(PMat4fGl3* mat, float x, float y, float z); void rotatePMat4fGl3Rad(PMat4fGl3* mat, float angleRad, float x, float y, float z); void rotatePMat4fGl3Deg(PMat4fGl3* mat, float angleDeg, float x, float y, float z); void perspectivePMat4fGl3Rad(PMat4fGl3* mat, float angleRad, float ratio, float near, float far); void perspectivePMat4fGl3Deg(PMat4fGl3* mat, float angleDeg, float ratio, float near, float far); void lookAtPMat4fGl3(PMat4fGl3* mat, float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ); #ifdef __cplusplus } /* closing brace for extern "C" */ #endif #endif