Mercurial > hg > forks > bilotrip-mj12
view src/mat4.h @ 45:d85542c96791
Clean up the build some more, move platform specifics again.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 06 Aug 2013 00:23:45 +0300 |
parents | 785057719d9b |
children |
line wrap: on
line source
/* ============================================================================ * Freetype GL - A C OpenGL Freetype engine * Platform: Any * WWW: http://code.google.com/p/freetype-gl/ * ---------------------------------------------------------------------------- * Copyright 2011,2012 Nicolas P. Rougier. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY NICOLAS P. ROUGIER ''AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL NICOLAS P. ROUGIER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * The views and conclusions contained in the software and documentation are * those of the authors and should not be interpreted as representing official * policies, either expressed or implied, of Nicolas P. Rougier. * ============================================================================ */ #ifndef __MAT4_H__ #define __MAT4_H__ #ifdef __cplusplus extern "C" { #endif /** * */ typedef union { float data[16]; /**< All compoments at once */ struct { float m00, m01, m02, m03; float m10, m11, m12, m13; float m20, m21, m22, m23; float m30, m31, m32, m33; }; } mat4; mat4 * mat4_new( void ); void mat4_set_identity( mat4 *self ); void mat4_set_zero( mat4 *self ); void mat4_multiply( mat4 *self, mat4 *other ); void mat4_set_orthographic( mat4 *self, float left, float right, float bottom, float top, float znear, float zfar ); void mat4_set_perspective( mat4 *self, float fovy, float aspect, float zNear, float zFar); void mat4_set_frustum( mat4 *self, float left, float right, float bottom, float top, float znear, float zfar ); void mat4_set_rotation( mat4 *self, float angle, float x, float y, float z); void mat4_set_translation( mat4 *self, float x, float y, float z); void mat4_set_scaling( mat4 *self, float x, float y, float z); void mat4_rotate( mat4 *self, float angle, float x, float y, float z); void mat4_translate( mat4 *self, float x, float y, float z); void mat4_scale( mat4 *self, float x, float y, float z); #ifdef __cplusplus } #endif #endif /* __MAT4_H__ */