ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/mat4.h
Revision: 2.6
Committed: Tue May 13 17:58:32 2003 UTC (20 years, 11 months ago) by greg
Content type: text/plain
Branch: MAIN
Changes since 2.5: +2 -2 lines
Log Message:
Changed (char *) casts for memory copies to (void *) and other fixes

File Contents

# User Rev Content
1 greg 2.5 /* RCSid $Id$ */
2 greg 1.1 /*
3     * Definitions for 4x4 matrix operations
4     */
5    
6 greg 2.5 #include "copyright.h"
7 greg 2.4
8 greg 1.1 #include "fvect.h"
9    
10 greg 1.3 typedef FLOAT MAT4[4][4];
11 greg 1.1
12     #ifdef BSD
13 greg 2.6 #define copymat4(m4a,m4b) bcopy((void *)m4b,(void *)m4a,sizeof(MAT4))
14 greg 1.1 #else
15 greg 2.6 #define copymat4(m4a,m4b) (void)memcpy((void *)m4a,(void *)m4b,sizeof(MAT4))
16 greg 1.1 #endif
17 greg 1.2
18 greg 2.2 #define MAT4IDENT { {1.,0.,0.,0.}, {0.,1.,0.,0.}, \
19     {0.,0.,1.,0.}, {0.,0.,0.,1.} }
20 greg 1.2
21     extern MAT4 m4ident;
22    
23     #define setident4(m4) copymat4(m4, m4ident)
24 greg 2.4
25     #ifdef NOPROTO
26    
27     extern void multmat4();
28     extern void multv3();
29     extern void multp3();
30     extern int invmat4();
31    
32     #else
33    
34     extern void multmat4(MAT4 m4a, MAT4 m4b, MAT4 m4c);
35     extern void multv3(FVECT v3a, FVECT v3b, MAT4 m4);
36     extern void multp3(FVECT p3a, FVECT p3b, MAT4 m4);
37     extern int invmat4(MAT4 inverse, MAT4 mat);
38    
39     #endif