ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/mat4.h
(Generate patch)

Comparing ray/src/common/mat4.h (file contents):
Revision 1.1 by greg, Sat Dec 15 14:18:18 1990 UTC vs.
Revision 2.4 by greg, Sat Feb 22 02:07:22 2003 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1990 Regents of the University of California */
2 <
3 < /* SCCSid "$SunId$ LBL" */
4 <
1 > /* RCSid: $Id$ */
2   /*
3   * Definitions for 4x4 matrix operations
4   */
5  
6 + /* ====================================================================
7 + * The Radiance Software License, Version 1.0
8 + *
9 + * Copyright (c) 1990 - 2002 The Regents of the University of California,
10 + * through Lawrence Berkeley National Laboratory.   All rights reserved.
11 + *
12 + * Redistribution and use in source and binary forms, with or without
13 + * modification, are permitted provided that the following conditions
14 + * are met:
15 + *
16 + * 1. Redistributions of source code must retain the above copyright
17 + *         notice, this list of conditions and the following disclaimer.
18 + *
19 + * 2. Redistributions in binary form must reproduce the above copyright
20 + *       notice, this list of conditions and the following disclaimer in
21 + *       the documentation and/or other materials provided with the
22 + *       distribution.
23 + *
24 + * 3. The end-user documentation included with the redistribution,
25 + *           if any, must include the following acknowledgment:
26 + *             "This product includes Radiance software
27 + *                 (http://radsite.lbl.gov/)
28 + *                 developed by the Lawrence Berkeley National Laboratory
29 + *               (http://www.lbl.gov/)."
30 + *       Alternately, this acknowledgment may appear in the software itself,
31 + *       if and wherever such third-party acknowledgments normally appear.
32 + *
33 + * 4. The names "Radiance," "Lawrence Berkeley National Laboratory"
34 + *       and "The Regents of the University of California" must
35 + *       not be used to endorse or promote products derived from this
36 + *       software without prior written permission. For written
37 + *       permission, please contact [email protected].
38 + *
39 + * 5. Products derived from this software may not be called "Radiance",
40 + *       nor may "Radiance" appear in their name, without prior written
41 + *       permission of Lawrence Berkeley National Laboratory.
42 + *
43 + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
44 + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
45 + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
46 + * DISCLAIMED.   IN NO EVENT SHALL Lawrence Berkeley National Laboratory OR
47 + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
48 + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
49 + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
50 + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
51 + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
52 + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
53 + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
54 + * SUCH DAMAGE.
55 + * ====================================================================
56 + *
57 + * This software consists of voluntary contributions made by many
58 + * individuals on behalf of Lawrence Berkeley National Laboratory.   For more
59 + * information on Lawrence Berkeley National Laboratory, please see
60 + * <http://www.lbl.gov/>.
61 + */
62 +
63   #include  "fvect.h"
64  
65 < typedef double  MAT4[4][4];
65 > typedef FLOAT  MAT4[4][4];
66  
67   #ifdef  BSD
68   #define  copymat4(m4a,m4b)      bcopy((char *)m4b,(char *)m4a,sizeof(MAT4))
69   #else
70   #define  copymat4(m4a,m4b)      (void)memcpy((char *)m4a,(char *)m4b,sizeof(MAT4))
71 < extern char  *memcpy();
71 > #endif
72 >
73 > #define  MAT4IDENT              { {1.,0.,0.,0.}, {0.,1.,0.,0.}, \
74 >                                {0.,0.,1.,0.}, {0.,0.,0.,1.} }
75 >
76 > extern MAT4  m4ident;
77 >
78 > #define  setident4(m4)          copymat4(m4, m4ident)
79 >
80 > #ifdef NOPROTO
81 >
82 > extern void     multmat4();
83 > extern void     multv3();
84 > extern void     multp3();
85 > extern int      invmat4();
86 >
87 > #else
88 >
89 > extern void     multmat4(MAT4 m4a, MAT4 m4b, MAT4 m4c);
90 > extern void     multv3(FVECT v3a, FVECT v3b, MAT4 m4);
91 > extern void     multp3(FVECT p3a, FVECT p3b, MAT4 m4);
92 > extern int      invmat4(MAT4 inverse, MAT4 mat);
93 >
94   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines