--- ray/src/common/tonemap.c 2003/02/22 02:07:22 3.9
+++ ray/src/common/tonemap.c 2003/09/18 20:18:19 3.14
@@ -1,5 +1,5 @@
#ifndef lint
-static const char RCSid[] = "$Id: tonemap.c,v 3.9 2003/02/22 02:07:22 greg Exp $";
+static const char RCSid[] = "$Id: tonemap.c,v 3.14 2003/09/18 20:18:19 greg Exp $";
#endif
/*
* Tone mapping functions.
@@ -9,62 +9,7 @@ static const char RCSid[] = "$Id: tonemap.c,v 3.9 2003
* Externals declared in tonemap.h
*/
-/* ====================================================================
- * The Radiance Software License, Version 1.0
- *
- * Copyright (c) 1990 - 2002 The Regents of the University of California,
- * through Lawrence Berkeley National Laboratory. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes Radiance software
- * (http://radsite.lbl.gov/)
- * developed by the Lawrence Berkeley National Laboratory
- * (http://www.lbl.gov/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Radiance," "Lawrence Berkeley National Laboratory"
- * and "The Regents of the University of California" must
- * not be used to endorse or promote products derived from this
- * software without prior written permission. For written
- * permission, please contact radiance@radsite.lbl.gov.
- *
- * 5. Products derived from this software may not be called "Radiance",
- * nor may "Radiance" appear in their name, without prior written
- * permission of Lawrence Berkeley National Laboratory.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL Lawrence Berkeley National Laboratory OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of Lawrence Berkeley National Laboratory. For more
- * information on Lawrence Berkeley National Laboratory, please see
- * .
- */
+#include "copyright.h"
#include
#include
@@ -217,7 +162,7 @@ COLOR *scan;
int len;
{
static char funcName[] = "tmCvColors";
- static COLOR csmall = {1e-6, 1e-6, 1e-6};
+ static COLOR csmall = {.5*MINLUM, .5*MINLUM, .5*MINLUM};
COLOR cmon;
double lum, slum;
register double d;
@@ -225,7 +170,7 @@ int len;
if (tmTop == NULL)
returnErr(TM_E_TMINVAL);
- if (ls == NULL | scan == NULL | len < 0)
+ if ((ls == NULL) | (scan == NULL) | (len < 0))
returnErr(TM_E_ILLEGAL);
for (i = len; i--; ) {
if (tmNeedMatrix(tmTop)) /* get monitor RGB */
@@ -298,7 +243,7 @@ int len;
if (tmTop == NULL)
returnErr(TM_E_TMINVAL);
- if (ls == NULL | scan == NULL | len < 0)
+ if ((ls == NULL) | (scan == NULL) | (len < 0))
returnErr(TM_E_ILLEGAL);
for (i = len; i--; )
if (scan[i] <= TM_NOLUM) {
@@ -445,7 +390,7 @@ double Ldmax;
float *cumf;
int brt0, histlen, threshold, ceiling, trimmings;
double logLddyn, Ldmin, Ldavg, Lwavg, Tr, Lw, Ld;
- int4 histot;
+ int32 histot;
double sum;
register double d;
register int i, j;
@@ -470,7 +415,7 @@ double Ldmax;
histot += tmTop->histo[i];
sum += (j -= HISTEP) * tmTop->histo[i];
}
- threshold = histot*.025 + .5;
+ threshold = histot*0.005 + .5;
if (threshold < 4)
returnErr(TM_E_TMFAIL);
Lwavg = tmLuminance( (double)sum / histot );
@@ -483,7 +428,7 @@ double Ldmax;
/* clamp histogram */
histo = (int *)malloc(histlen*sizeof(int));
cumf = (float *)malloc((histlen+2)*sizeof(float));
- if (histo == NULL | cumf == NULL)
+ if ((histo == NULL) | (cumf == NULL))
returnErr(TM_E_NOMEM);
cumf[histlen+1] = 1.; /* guard for assignment code */
for (i = histlen; i--; ) /* make malleable copy */
@@ -547,11 +492,11 @@ register BYTE *cs;
int len;
{
static char funcName[] = "tmMapPixels";
- register int4 li, pv;
+ register int32 li, pv;
if (tmTop == NULL || tmTop->lumap == NULL)
returnErr(TM_E_TMINVAL);
- if (ps == NULL | ls == NULL | len < 0)
+ if ((ps == NULL) | (ls == NULL) | (len < 0))
returnErr(TM_E_ILLEGAL);
while (len--) {
if ((li = *ls++) < tmTop->mbrmin) {
@@ -593,7 +538,7 @@ register struct tmStruct *tms;
{
register struct tmStruct *tms2;
/* special cases first */
- if (tms == NULL | tmTop == NULL)
+ if ((tms == NULL) | (tmTop == NULL))
return(0);
if (tms == tmTop) {
tmTop = tms->tmprev;