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

Comparing ray/src/common/tmprivat.h (file contents):
Revision 3.5 by gwlarson, Mon Aug 17 17:58:46 1998 UTC vs.
Revision 3.6 by greg, Sat Feb 22 02:07:22 2003 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1998 Silicon Graphics, Inc. */
2 <
3 < /* SCCSid "$SunId$ SGI" */
4 <
1 > /* RCSid: $Id$ */
2   /*
3   * Private header file for tone mapping routines.
4   */
5  
6 < #undef  NOPROTO
7 < #define NOPROTO         1
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   #ifndef MEM_PTR
64 < #define MEM_PTR         char *
64 > #define MEM_PTR         void *
65   #endif
66   #include        "color.h"
67   #include        "tonemap.h"
68  
69 + #ifdef __cplusplus
70 + extern "C" {
71 + #endif
72 +
73                                  /* required constants */
74   #ifndef M_LN2
75   #define M_LN2           0.69314718055994530942
# Line 29 | Line 85
85   #define MINLDMAX        1.
86   #define DEFLDMAX        100.
87  
88 < #define BRT2SCALE       ((int)(M_LN2*TM_BRTSCALE+.5))
88 > #define BRT2SCALE(l2)   (int)(M_LN2*TM_BRTSCALE*(l2) + ((l2)>0 ? .5 : -.5))
89  
90   #define HISTEP          8               /* steps in BRTSCALE for each bin */
91  
# Line 64 | Line 120 | MEM_PTR                calloc();
120   #endif
121   extern int      tmErrorReturn();
122  
123 +                                                /* lookup for mesopic scaling */
124 + extern BYTE     tmMesofact[BMESUPPER-BMESLOWER];
125 +
126 + extern void     tmMkMesofact();                 /* build tmMesofact */
127 +
128   #define returnErr(code) return(tmErrorReturn(funcName,code))
129   #define returnOK        return(TM_E_OK)
130  
131   #define FEQ(a,b)        ((a) < (b)+1e-5 && (b) < (a)+1e-5)
132  
133 < #define PRIMEQ(p1,p2)   (FEQ((p1)[0][0],(p2)[0][0])&&FEQ((p1)[0][1],(p2)[0][2])\
134 <                        &&FEQ((p1)[1][0],(p2)[1][0])&&FEQ((p1)[1][1],(p2)[1][2])\
135 <                        &&FEQ((p1)[2][0],(p2)[2][0])&&FEQ((p1)[2][1],(p2)[2][2])\
136 <                        &&FEQ((p1)[3][0],(p2)[3][0])&&FEQ((p1)[3][1],(p2)[3][2]))
133 > #define PRIMEQ(p1,p2)   (FEQ((p1)[0][0],(p2)[0][0])&&FEQ((p1)[0][1],(p2)[0][1])\
134 >                        &&FEQ((p1)[1][0],(p2)[1][0])&&FEQ((p1)[1][1],(p2)[1][1])\
135 >                        &&FEQ((p1)[2][0],(p2)[2][0])&&FEQ((p1)[2][1],(p2)[2][1])\
136 >                        &&FEQ((p1)[3][0],(p2)[3][0])&&FEQ((p1)[3][1],(p2)[3][1]))
137 >
138 > #ifdef __cplusplus
139 > }
140 > #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines