| 5 | 
  | 
 * Convert Radiance -> OpenGL surfaces. | 
| 6 | 
  | 
 */ | 
| 7 | 
  | 
 | 
| 8 | 
< | 
/* ==================================================================== | 
| 9 | 
< | 
 * The Radiance Software License, Version 1.0 | 
| 10 | 
< | 
 * | 
| 11 | 
< | 
 * Copyright (c) 1990 - 2002 The Regents of the University of California, | 
| 12 | 
< | 
 * through Lawrence Berkeley National Laboratory.   All rights reserved. | 
| 13 | 
< | 
 * | 
| 14 | 
< | 
 * Redistribution and use in source and binary forms, with or without | 
| 15 | 
< | 
 * modification, are permitted provided that the following conditions | 
| 16 | 
< | 
 * are met: | 
| 17 | 
< | 
 * | 
| 18 | 
< | 
 * 1. Redistributions of source code must retain the above copyright | 
| 19 | 
< | 
 *         notice, this list of conditions and the following disclaimer. | 
| 20 | 
< | 
 * | 
| 21 | 
< | 
 * 2. Redistributions in binary form must reproduce the above copyright | 
| 22 | 
< | 
 *       notice, this list of conditions and the following disclaimer in | 
| 23 | 
< | 
 *       the documentation and/or other materials provided with the | 
| 24 | 
< | 
 *       distribution. | 
| 25 | 
< | 
 * | 
| 26 | 
< | 
 * 3. The end-user documentation included with the redistribution, | 
| 27 | 
< | 
 *           if any, must include the following acknowledgment: | 
| 28 | 
< | 
 *             "This product includes Radiance software | 
| 29 | 
< | 
 *                 (http://radsite.lbl.gov/) | 
| 30 | 
< | 
 *                 developed by the Lawrence Berkeley National Laboratory | 
| 31 | 
< | 
 *               (http://www.lbl.gov/)." | 
| 32 | 
< | 
 *       Alternately, this acknowledgment may appear in the software itself, | 
| 33 | 
< | 
 *       if and wherever such third-party acknowledgments normally appear. | 
| 34 | 
< | 
 * | 
| 35 | 
< | 
 * 4. The names "Radiance," "Lawrence Berkeley National Laboratory" | 
| 36 | 
< | 
 *       and "The Regents of the University of California" must | 
| 37 | 
< | 
 *       not be used to endorse or promote products derived from this | 
| 38 | 
< | 
 *       software without prior written permission. For written | 
| 39 | 
< | 
 *       permission, please contact [email protected]. | 
| 40 | 
< | 
 * | 
| 41 | 
< | 
 * 5. Products derived from this software may not be called "Radiance", | 
| 42 | 
< | 
 *       nor may "Radiance" appear in their name, without prior written | 
| 43 | 
< | 
 *       permission of Lawrence Berkeley National Laboratory. | 
| 44 | 
< | 
 * | 
| 45 | 
< | 
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | 
| 46 | 
< | 
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | 
| 47 | 
< | 
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 
| 48 | 
< | 
 * DISCLAIMED.   IN NO EVENT SHALL Lawrence Berkeley National Laboratory OR | 
| 49 | 
< | 
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 
| 50 | 
< | 
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 
| 51 | 
< | 
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | 
| 52 | 
< | 
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 
| 53 | 
< | 
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | 
| 54 | 
< | 
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | 
| 55 | 
< | 
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | 
| 56 | 
< | 
 * SUCH DAMAGE. | 
| 57 | 
< | 
 * ==================================================================== | 
| 58 | 
< | 
 * | 
| 59 | 
< | 
 * This software consists of voluntary contributions made by many | 
| 60 | 
< | 
 * individuals on behalf of Lawrence Berkeley National Laboratory.   For more | 
| 61 | 
< | 
 * information on Lawrence Berkeley National Laboratory, please see | 
| 62 | 
< | 
 * <http://www.lbl.gov/>. | 
| 63 | 
< | 
 */ | 
| 8 | 
> | 
#include "copyright.h" | 
| 9 | 
  | 
 | 
| 10 | 
  | 
#include "radogl.h" | 
| 11 | 
  | 
 | 
| 111 | 
  | 
{ | 
| 112 | 
  | 
        if ((gluto = gluNewTess()) == NULL) | 
| 113 | 
  | 
                error(INTERNAL, "gluNewTess failed"); | 
| 114 | 
< | 
        gluTessCallback(gluto, GLU_TESS_BEGIN, (_GLUfuncptr)glBegin); | 
| 115 | 
< | 
        gluTessCallback(gluto, GLU_TESS_VERTEX, (_GLUfuncptr)glVertex3dv); | 
| 114 | 
> | 
        gluTessCallback(gluto, GLU_TESS_BEGIN, glBegin); | 
| 115 | 
> | 
        gluTessCallback(gluto, GLU_TESS_VERTEX, glVertex3dv); | 
| 116 | 
  | 
        gluTessCallback(gluto, GLU_TESS_END, glEnd); | 
| 117 | 
  | 
        gluTessCallback(gluto, GLU_TESS_COMBINE, myCombine); | 
| 118 | 
  | 
        gluTessCallback(gluto, GLU_TESS_ERROR, glu_error); | 
| 142 | 
  | 
                objerror(o, USER, "bad # real arguments"); | 
| 143 | 
  | 
        area = polyarea(cent, norm, o->oargs.nfargs/3, (FVECT *)o->oargs.farg); | 
| 144 | 
  | 
        if (area <= FTINY) | 
| 145 | 
< | 
                return; | 
| 145 | 
> | 
                return(0); | 
| 146 | 
  | 
        if (dolights)                                   /* check for source */ | 
| 147 | 
  | 
                doflatsrc((MATREC *)o->os, cent, norm, area); | 
| 148 | 
  | 
        setmaterial((MATREC *)o->os, cent, 1);          /* set material */ | 
| 177 | 
  | 
                                        (GLdouble)o->oargs.farg[3*i+1], | 
| 178 | 
  | 
                                        (GLdouble)o->oargs.farg[3*i+2]); | 
| 179 | 
  | 
        } | 
| 180 | 
+ | 
        return(0); | 
| 181 | 
  | 
} | 
| 182 | 
  | 
 | 
| 183 | 
  | 
 | 
| 208 | 
  | 
                o->otype = o->otype==OBJ_SPHERE ? OBJ_BUBBLE : OBJ_SPHERE; | 
| 209 | 
  | 
                o->oargs.farg[3] = -o->oargs.farg[3]; | 
| 210 | 
  | 
        } else if (o->oargs.farg[3] <= FTINY) | 
| 211 | 
< | 
                return; | 
| 211 | 
> | 
                return(0); | 
| 212 | 
  | 
        if (dolights) | 
| 213 | 
  | 
                dosphsrc((MATREC *)o->os, o->oargs.farg, | 
| 214 | 
  | 
                                PI*o->oargs.farg[3]*o->oargs.farg[3]); | 
| 224 | 
  | 
                        (GLdouble)o->oargs.farg[2]); | 
| 225 | 
  | 
        gluSphere(gluqo, (GLdouble)o->oargs.farg[3], NSLICES, NSTACKS); | 
| 226 | 
  | 
        glPopMatrix(); | 
| 227 | 
+ | 
        return(0); | 
| 228 | 
  | 
} | 
| 229 | 
  | 
 | 
| 230 | 
  | 
 | 
| 288 | 
  | 
        gluCylinder(gluqo, o->oargs.farg[6], o->oargs.farg[iscyl ? 6 : 7], | 
| 289 | 
  | 
                        h, NSLICES, 1); | 
| 290 | 
  | 
        glPopMatrix(); | 
| 291 | 
+ | 
        return(0); | 
| 292 | 
  | 
} | 
| 293 | 
  | 
 | 
| 294 | 
  | 
 | 
| 338 | 
  | 
                glRotated(d, (GLdouble)x1, (GLdouble)y1, 0.); | 
| 339 | 
  | 
        gluDisk(gluqo, o->oargs.farg[6], o->oargs.farg[7], NSLICES, 1); | 
| 340 | 
  | 
        glPopMatrix(); | 
| 341 | 
+ | 
        return(0); | 
| 342 | 
  | 
} |