]> git.mxchange.org Git - simgear.git/blobdiff - Math/MAT3mat.c
FreeBSD support.
[simgear.git] / Math / MAT3mat.c
index 02518afb5d71ef2231f5d359ff308d1847bb8ffc..6eb74cb1cab30d81348406a912378643f5f482d5 100644 (file)
@@ -5,13 +5,20 @@
  * This file contains routines that operate solely on matrices.
  * -------------------------------------------------------------------------*/
 
-#include <string.h>
-#include "mat3defs.h"
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
 
 #ifdef WIN32
-#include <memory.h>      /* required for memset() and memcpy() */
+#  include <memory.h>      /* required for memset() and memcpy() */
 #endif
 
+#include <string.h>
+#include <Math/mat3defs.h>
+
+#define USE_MEM
+
 /* #include "macros.h" */
 
 /* --------------------------  Static Routines ---------------------------- */
@@ -21,6 +28,8 @@
 /* --------------------------  Public Routines ---------------------------- */
 
 
+#if !defined( USE_XTRA_MAT3_INLINES )
+
 /*
  * Sets a matrix to identity.
  */
@@ -30,8 +39,8 @@ MAT3identity (register MAT3mat mat)
 {
    register int i;
 
-#ifdef WIN32
-   memset(mat,0x00, sizeof(MAT3mat));
+#ifdef USE_MEM /* WIN32 */
+   memset(mat, 0x00, sizeof(MAT3mat));
 #else
    bzero (mat, sizeof(MAT3mat));
 #endif
@@ -47,7 +56,7 @@ MAT3identity (register MAT3mat mat)
 void
 MAT3zero (MAT3mat mat)
 {
-#ifdef WIN32
+#ifdef USE_MEM /* WIN32 */
    memset(mat,0x00, sizeof(MAT3mat));
 #else
    bzero (mat, sizeof(MAT3mat));
@@ -62,7 +71,7 @@ MAT3zero (MAT3mat mat)
 void
 MAT3copy(MAT3mat to, MAT3mat from)
 {
-#ifdef WIN32
+#ifdef USE_MEM /* WIN32 */
     memcpy(to, from, sizeof(MAT3mat));
 #else
     bcopy(from, to, sizeof(MAT3mat));
@@ -75,9 +84,7 @@ MAT3copy(MAT3mat to, MAT3mat from)
  */
 
 void
-MAT3mult (result_mat, mat1, mat2)
-MAT3mat result_mat;
-register MAT3mat mat1, mat2;
+MAT3mult (double (*result_mat)[4], register double (*mat1)[4], register double (*mat2)[4])
 {
    register int i, j;
    MAT3mat     tmp_mat;
@@ -90,6 +97,7 @@ register MAT3mat mat1, mat2;
                       mat1[i][3] * mat2[3][j]);
    MAT3copy (result_mat, tmp_mat);
 }
+#endif // !defined( USE_XTRA_MAT3_INLINES )
 
 /*
  * This returns the transpose of a matrix.  The result matrix may be
@@ -97,9 +105,7 @@ register MAT3mat mat1, mat2;
  */
 
 void
-MAT3transpose (result_mat, mat)
-MAT3mat result_mat;
-register MAT3mat mat;
+MAT3transpose (double (*result_mat)[4], register double (*mat)[4])
 {
    register int i, j;
    MAT3mat     tmp_mat;
@@ -117,9 +123,7 @@ register MAT3mat mat;
  */
 
 void
-MAT3print(mat, fp)
-MAT3mat mat;
-FILE   *fp;
+MAT3print(double (*mat)[4], FILE *fp)
 {
    MAT3print_formatted(mat, fp, CNULL, CNULL, CNULL, CNULL);
 }
@@ -131,10 +135,7 @@ FILE       *fp;
  */
 
 void
-MAT3print_formatted(mat, fp, title, head, format, tail)
-MAT3mat mat;
-FILE   *fp;
-char   *title, *head, *format, *tail;
+MAT3print_formatted(double (*mat)[4], FILE *fp, char *title, char *head, char *format, char *tail)
 {
    register int i, j;