--- ray/src/common/mat4.h 2003/05/13 17:58:32 2.6 +++ ray/src/common/mat4.h 2003/06/30 14:59:11 2.11 @@ -1,19 +1,20 @@ -/* RCSid $Id: mat4.h,v 2.6 2003/05/13 17:58:32 greg Exp $ */ +/* RCSid $Id: mat4.h,v 2.11 2003/06/30 14:59:11 schorsch Exp $ */ /* * Definitions for 4x4 matrix operations */ +#ifndef _RAD_MAT4_H_ +#define _RAD_MAT4_H_ +#ifdef __cplusplus +extern "C" { +#endif -#include "copyright.h" +#include #include "fvect.h" -typedef FLOAT MAT4[4][4]; +typedef RREAL MAT4[4][4]; -#ifdef BSD -#define copymat4(m4a,m4b) bcopy((void *)m4b,(void *)m4a,sizeof(MAT4)) -#else #define copymat4(m4a,m4b) (void)memcpy((void *)m4a,(void *)m4b,sizeof(MAT4)) -#endif #define MAT4IDENT { {1.,0.,0.,0.}, {0.,1.,0.,0.}, \ {0.,0.,1.,0.}, {0.,0.,0.,1.} } @@ -22,18 +23,15 @@ extern MAT4 m4ident; #define setident4(m4) copymat4(m4, m4ident) -#ifdef NOPROTO -extern void multmat4(); -extern void multv3(); -extern void multp3(); -extern int invmat4(); - -#else - extern void multmat4(MAT4 m4a, MAT4 m4b, MAT4 m4c); extern void multv3(FVECT v3a, FVECT v3b, MAT4 m4); extern void multp3(FVECT p3a, FVECT p3b, MAT4 m4); extern int invmat4(MAT4 inverse, MAT4 mat); + +#ifdef __cplusplus +} #endif +#endif /* _RAD_MAT4_H_ */ +