ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/mat4.h
Revision: 2.5
Committed: Tue Feb 25 02:47:21 2003 UTC (21 years, 2 months ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: rad3R5
Changes since 2.4: +2 -57 lines
Log Message:
Replaced inline copyright notice with #include "copyright.h"

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     #define copymat4(m4a,m4b) bcopy((char *)m4b,(char *)m4a,sizeof(MAT4))
14     #else
15     #define copymat4(m4a,m4b) (void)memcpy((char *)m4a,(char *)m4b,sizeof(MAT4))
16     #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