/usr/include/geomview/appearance.h is in libgeomview-dev 1.9.4-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 | /* Copyright (C) 1992-1998 The Geometry Center
* Copyright (C) 1998-2000 Stuart Levy, Tamara Munzner, Mark Phillips
* Copyright (C) 2007 Claus-Justus Heine
*
* This file is part of Geomview.
*
* Geomview is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* Geomview is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with Geomview; see the file COPYING. If not, write
* to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139,
* USA, or visit http://www.gnu.org.
*/
/* Authors: Charlie Gunn, Stuart Levy, Tamara Munzner, Mark Phillips */
#ifndef APPEARANCEDEF
#define APPEARANCEDEF
/*
#define AP_IDEBUG before #including this file to compile for
debugging
*/
#include <stdarg.h>
#include "ooglutil.h"
#include "transobj.h"
#include "3d.h"
#include "color.h"
#include "streampool.h"
#include "dbllist.h"
#define DONE 1
#define ANOTHER 2
typedef struct LtLight {
REFERENCEFIELDS;
Color ambient;
Color color;
Point position; /* application-specified light position */
Point globalposition; /* real light position; set & used only by mg */
float intensity;
int Private; /* private part; used only by mg */
short location; /* How to interpret the "position": */
#define LTF_GLOBAL 0x0 /* global coordinate system */
#define LTF_CAMERA 0x1 /* camera coordinates */
#define LTF_LOCAL 0x2 /* local coordinates
* where appearance is attached. */
short changed;
} LtLight;
#define AP_MAXLIGHTS 8
typedef struct LmLighting {
REFERENCEFIELDS;
int valid, override; /* LMF_* inheritance bits */
Color ambient;
int localviewer;
float attenconst, attenmult, attenmult2;
LtLight *lights[AP_MAXLIGHTS];
int Private;
int changed;
} LmLighting;
#define LM_ANY_LIGHTS(lm) ((lm)->lights[0] != NULL)
#define LM_FOR_ALL_LIGHTS(lm, i,lp) for((i)=0, (lp) = &(lm)->lights[0]; \
(i)<AP_MAXLIGHTS && *(lp) != NULL; (i)++, (lp)++)
typedef struct Material {
REFERENCEFIELDS;
int valid, override; /* MTF_* inheritance bits */
Color emission;
Color ambient;
ColorA diffuse; /* diffuse.a === material alpha */
Color specular;
float shininess;
float ka, kd, ks;
Color edgecolor; /* Color for polygon edges and other vectors */
Color normalcolor; /* Color for surface-normal vectors */
int Private;
int changed;
} Material;
/* The pixmap image underlying a texture. We define a separate
* Lisp-object such that sharing of image data is possible (and can be
* implemented more cleanly than before).
*
* The image format does not interprete the image data, it just
* records the number of channels. However: the corresponding I/O
* routines always read data in RGB(A) format, or LUMINANCE(-ALPHA)
* format.
*
* The pixmap is in Cartesian coordinates, i.e. row 0/col 0
* corresponds to the LOWER-LEFT corner.
*/
typedef struct Image {
REFERENCEFIELDS;
int width; /* width in pixels */
int height; /* height in pixels */
int channels; /* number of channels */
int maxval; /* maximum intensity value of a channel */
char *data; /* image data, row by row, if depth > 8 then the
* most significant byte comes first (BIG-ENDIAN).
*/
} Image;
typedef struct TxUser TxUser;
/* Textures are bulky and need active management! */
struct TxUser {
struct TxUser *next; /* Next user in tx->users list */
struct Texture *tx; /* Which texture is ours? */
int id; /* Slot for e.g. graphics-system texture id */
void *ctx; /* Slot for e.g. mg context */
void *data; /* Any other data the user needs */
int flags; /* flags for user to determine usage */
int (*needed)(TxUser *); /* user answers "d'you still need this?" */
void (*purge)(TxUser *); /* request to user to purge this texture */
};
typedef struct Texture {
REFERENCEFIELDS;
Image *image; /* underlying pixmap */
Handle *imghandle;
Transform tfm; /* texture-coord transformation */
Handle *tfmhandle;
unsigned int flags; /* clamp, etc. */
enum apply_enum {
tx_modulate,
tx_decal,
tx_blend,
tx_replace
} apply; /* Application style
* (TXF_DECAL, TXF_MODULATE, TXF_BLEND, TXF_REPLACE)
*/
Color background; /* background color for TXF_BLEND */
TxUser *users; /* Users of this texture register here */
#if 0
int coords; /* Texture-coord auto generation (not implemented) */
#endif
/*****************************************/
/* the old and deprecated way to do stuff */
char *filename; /* ppm or pgm (.Z) file */
char *alphafilename; /* If present, this is a .pgm (.Z) file */
/*****************************************/
DblListNode loadnode;
} Texture;
extern DblListNode AllLoadedTextures; /* List of em */
typedef struct Appearance {
REFERENCEFIELDS;
Material *mat, *backmat; /* material properties */
LmLighting *lighting; /* attached lighting */
Texture *tex; /* Texture-map object */
unsigned int flag; /* APF_* shading,faces/edges,normals,transparency */
unsigned int valid; /* APF_* bits control inheritance of these fields */
unsigned int override; /* same APF_* flags: parent overrides child */
float nscale; /* scale factor for drawing normals */
int linewidth; /* how wide do lines appear (pixels) ? */
int shading; /* APF_{CONSTANT,FLAT,SMOOTH} */
short dice[2]; /* u, v patch dicing parameters */
} Appearance;
extern HandleOps AppearanceOps;
extern HandleOps ImageOps;
extern HandleOps TextureOps;
/* the following tokens are used in LtSet and LtGet */
#define LT_END 700
#define LT_AMBIENT 701 /* Color ambient */
#define LT_COLOR 702 /* Color color */
#define LT_POSITION 703 /* Point position */
#define LT_INTENSITY 704 /* double intensity */
#define LT_LOCATION 705 /* int location: LTF_{GLOBAL,CAMERA,LOCAL} */
#define LT_ABLOCK 706 /* void **ablock ??? cH: unimplemented ??? */
/* the following tokens are used in LmSet and LmGet */
#define LM_END 600
#define LM_AMBIENT 601 /* Color ambient */
#define LM_LOCALVIEWER 602 /* int localviewer */
#define LM_ATTENC 603 /* double attenconst */
#define LM_ATTENM 604 /* double attenmult */
#define LM_ATTEN2 612 /* double attenmult2 */
#define LM_LtSet 605 /* ... */
#define LM_LIGHT 606 /* LtLight *light */
#define LM_VALID 607 /* int mask (Get only) */
#define LM_INVALID 608 /* int mask (unsets valid bits) */
#define LM_OVERRIDE 609 /* int mask (sets override bits) */
#define LM_NOOVERRIDE 610 /* int mask (unsets override bits) */
#define LM_REPLACELIGHTS 611 /* int replace */
#define LM_ABLOCK 613 /* void **ablock ??? cH: unimplemented ??? */
/* the following tokens are used in MtSet and MtGet */
#define MT_END 500
#define MT_EMISSION 501 /* Color *emission */
#define MT_AMBIENT 502 /* Color *ambient */
#define MT_DIFFUSE 503 /* Color *diffuse */
#define MT_SPECULAR 504 /* Color *specular */
#define MT_Ka 505 /* double ka */
#define MT_Kd 506 /* double kd */
#define MT_Ks 507 /* double ks */
#define MT_ALPHA 508 /* double alpha */
#define MT_SHININESS 509 /* double shininess */
#define MT_EDGECOLOR 510 /* Color *edgecolor (for edges & vectors) */
#define MT_NORMALCOLOR 511 /* Color *normalcolor (for surface normals) */
#define MT_VALID 512 /* int mask (Get only) */
#define MT_INVALID 513 /* int mask (unsets valid bits) */
#define MT_OVERRIDE 514 /* int mask (sets override bits) */
#define MT_NOOVERRIDE 515 /* int mask (unsets override bits) */
#define MT_ABLOCK 516 /* void **ablock ??? cH: unimplemented ??? */
/* the following tokens are used in ApSet and ApGet */
#define AP_END 400
#define AP_DO 401 /* int mask (set flag bits) */
#define AP_DONT 402 /* int mask (unset flag bits) */
#define AP_MAT 403 /* Material *mat */
#define AP_MtSet 404 /* ... */
#define AP_LGT 405 /* LmLighting *lgt */
#define AP_LmSet 406 /* ... */
#define AP_NORMSCALE 407 /* float nscale */
#define AP_LINEWIDTH 408 /* int linewidth */
#define AP_VALID 409 /* int mask (Get only) */
#define AP_INVALID 410 /* int mask (unsets valid bits) */
#define AP_OVERRIDE 411 /* int mask (sets override bits) */
#define AP_NOOVERRIDE 412 /* int mask (unsets override bits) */
#define AP_SHADING 413 /* int shading (set to APF_{CONSTANT,FLAT,SMOOTH} */
#define AP_BACKMAT 414 /* Material *backmaterial */
#define AP_ABLOCK 415 /* void **ablock ??? cH: unimplemented ??? */
#define AP_DICE 416 /* int udice, vdice (set); int dice[2] (get) */
#define AP_TEXTURE 417 /* Texture *tx */
#define AP_TxSet 418 /* ... */
/* Flags to ApMerge, etc. */
#define APF_INPLACE 0x1 /* Merge in place */
#define APF_OVEROVERRIDE 0x2 /* src replaces dst even without src override */
/* This model of texture-mapping shamelessly stolen
* from GL/Open-GL
*/
#define TXMAGIC OOGLMagic('t', 1)
#define TX_DOCLAMP 450
#define TXF_SCLAMP 0x1 /* Clamp if s outside 0..1 (else wrap) */
#define TXF_TCLAMP 0x2 /* Clamp if t outside 0..1 (else wrap) */
#define TXF_LOADED 0x4 /* Has this texture been loaded?
* (tried to read those files yet?)
*/
#define TXF_RGBA 0x8 /* In loaded data, is R first byte? (else ABGR) */
#define TXF_USED 0x10 /* "Recently rendered a geom containing this texture"*/
#define TX_APPLY 451 /* Interpret texture values to... */
#define TXF_MODULATE tx_modulate
#define TXF_DECAL tx_decal
#define TXF_BLEND tx_blend
#define TXF_REPLACE tx_replace
#define TX_HANDLE_IMAGE 452
#define TX_HANDLE_TRANSFORM 453
#define TX_BACKGROUND 454
#define TX_FILE 455 /* deprecated (really?) */
#define TX_ALPHAFILE 456 /* deprecated (really?) */
#define TX_CHANNELS 457 /* deprecated (really?) */
#define TX_XSIZE 458 /* deprecated (really?) */
#define TX_YSIZE 459 /* deprecated (really?) */
#if 0 /* not implemented */
#define TX_COORDS 458 /* Texture coordinates come from... */
#define TXF_COORD_GIVEN 0 /* given as part of object (default) In
* fact, only TXF_COORD_GIVEN works now.
*/
# define TXF_COORD_LOCAL 1 /* In coord system of texture map */
# define TXF_COORD_CAMERA 2 /* In camera coords */
# define TXF_COORD_NORMAL 3 /* Taken from surface-normal, for env map */
#endif
#define TX_ABLOCK 464 /* ??? cH: unimplemented ??? */
#define TX_END 465
#define IMGMAGIC OOGLMagic('i', 1)
/* ImgSet() commands */
#define IMG_WIDTH 1000
#define IMG_HEIGHT 1001
#define IMG_CHANNELS 1002
#define IMG_MAXVAL 1003
#define IMG_DATA 1004
#define IMG_DATA_CHAN_FILE 1005 /* CHMASK, FILTER/NULL, FILENAME */
#define IMG_DATA_CHAN_DATA 1006 /* CHMASK, FILTER/NULL, DATA, DATASZ */
#define IMGF_LUMINANCE 0x1
#define IMGF_LUMINANCE_ALPHA 0x3
#define IMGF_RGB 0x7
#define IMGF_RGBA 0xf
#define IMGF_ALPHA 0x100
#define IMGF_AUTO 0x200
#define IMG_END 1042
typedef struct TxST
{
float s;
float t;
} TxST;
/* Transformation of (s,t)-texture co-ordinates. (s,t,r,q) with r = 0,
* q = 1
*/
static inline void TxSTTransform(Transform T, TxST *in, TxST *out)
{
float s, t, q;
if (T == NULL || T == TM_IDENTITY) {
*out = *in;
return;
}
s = in->s;
t = in->t;
q = T[TMX][TMW]*s + T[TMY][TMW]*t + T[TMW][TMW];
if(q != 1.0) {
q = 1.0 / q;
out->s = q * (s*T[TMX][TMX] + t*T[TMY][TMX] + T[TMW][TMX]);
out->t = q * (s*T[TMX][TMY] + t*T[TMY][TMY] + T[TMW][TMY]);
} else {
out->s = s*T[TMX][TMX] + t*T[TMY][TMX] + T[TMW][TMX];
out->t = s*T[TMX][TMY] + t*T[TMY][TMY] + T[TMW][TMY];
}
}
Appearance * ApCreate( int attr, ... );
Appearance * ApSet( Appearance *ap, int attr, ... );
Appearance * _ApSet(Appearance *ap, int attr1, va_list *alist);
int ApGet( Appearance *ap, int attr, void *valuep );
void ApDelete( Appearance *ap );
Appearance * ApDefault( Appearance *ap );
Appearance * ApCopy(const Appearance *from, Appearance *into );
Appearance * ApMerge(const Appearance *src, Appearance *dst, int inplace );
Appearance * ApFLoad(IOBFILE *inf, char *fname);
Appearance * ApCopyShared(const Appearance *ap, Appearance *into );
Appearance * ApFSave(Appearance *ap, FILE *f, char *fname);
int ApStreamIn(Pool *p, Handle **hp, Appearance **app);
int ApStreamOut(Pool *p, Handle *h, Appearance *ap);
/* Force 'override' bits on (for all valid fields)
* or off, in an Appearance.
*/
void ApUseOverrides( Appearance *ap, int use_overrides );
/* Erase fields in 'dst' corresponding to any in 'src';
* allows 'src' settings to propagate through 'dst',
* when 'dst' is its child.
*/
void ApLetPropagate( Appearance *src, Appearance *dst );
int TxStreamIn( Pool *, Handle **, Texture ** );
int TxStreamOut( Pool *, Handle *, Texture * );
void TxDelete( Texture * );
int ImgStreamIn(Pool *p, Handle **hp, Image **imgp);
int ImgStreamOut(Pool *p, Handle *h, Image *tx);
Image *ImgFSave(Image *img, FILE *outf, char *fname);
void ImgDelete(Image *img);
Image *ImgCreate(int a1, ...);
int ImgWritePGM(Image *img, int channel, bool compressed, char **buffer);
int ImgWritePNM(Image *img, unsigned chmask, bool compressed, char **buffer);
int ImgWritePAM(Image *img, unsigned chmask, bool compressed, char **buffer);
bool ImgWriteFilter(Image *img, unsigned chmask, const char *filter);
Texture * TxFLoad( IOBFILE *inf, char *fname );
Texture * TxFSave(Texture *tx, FILE *outf, char *fname);
Texture * TxSet( Texture *, int attr, ... );
Texture * TxCreate( int attr, ... );
Texture * TxCopy( Texture *src, Texture *dst );
Texture * TxMerge( Texture *src, Texture *dst, int mergeflags );
void TxPurge( Texture * );
TxUser *TxAddUser(Texture *, int id,
int (*needed)(TxUser *), void (*purge)(TxUser *));
void TxRemoveUser(TxUser *user);
#ifndef AP_IDEBUG
Material * MtCreate( int attr, ... );
Material * MtSet( Material *, int attr, ... );
#endif
int MtGet( Material *, int attr, void *valuep );
void MtDelete( Material * );
Material * MtDefault( Material * );
Material * MtLoad( Material *, char *filename );
Material * MtCopy( Material *from, Material *into );
Material * MtMerge( Material *src, Material *dst, int inplace );
Material * MtFLoad( Material *into, IOBFILE *stream, char *filename );
int MtSave( Material *, char *filename );
int MtFSave( Material *mat, FILE *stream, Pool *p );
void MtPrint( Material * );
#ifndef AP_IDEBUG
LtLight * LtCreate( int attr, ... );
LtLight * LtSet( LtLight *, int attr, ... );
#endif
int LtGet( LtLight *, int attr, void *valuep );
void LtDelete( LtLight * );
LtLight * LtCopy( LtLight *, LtLight * );
LtLight * LtMerge( LtLight *, LtLight * );
LtLight * LtDefault( LtLight * );
void LtProperties( LtLight *, float, Color *, Point * );
LtLight * LtFLoad( LtLight *, IOBFILE *, char *filename);
#define LTMAGIC OOGLMagic('l', 2)
#ifndef AP_IDEBUG
LmLighting * LmCreate( int attr, ... );
LmLighting * LmSet( LmLighting *, int attr, ... );
#endif
int LmGet( LmLighting *, int attr, void *valuep );
void LmDelete( LmLighting * );
void LmDelete( LmLighting * );
void LmDefault( LmLighting * );
LmLighting * LmLoad( LmLighting *, char *filename );
LmLighting * LmFLoad( LmLighting *, IOBFILE *, char *filename );
void LmSave( LmLighting *, char *filename );
void LmFSave( LmLighting *, FILE *, char *filename, Pool *p );
LmLighting * LmMerge( LmLighting *src, LmLighting *dst, int inplace );
LmLighting * LmCopy( LmLighting *src, LmLighting *dst );
void LmAddLight( LmLighting *dst, LtLight *light );
void LmRemoveLight( LmLighting *dst, LtLight *light );
void LmCopyLights( LmLighting *src, LmLighting *dst );
void LmDeleteLights( LmLighting *lm );
#define LIGHTINGMAGIC OOGLMagic('l', 1)
#define LMF_LOCALVIEWER 0x1 /* Local viewer (flag valid) */
#define LMF_AMBIENT 0x2 /* Ambient light color */
#define LMF_ATTENC 0x4 /* attenuation constant factor */
#define LMF_ATTENM 0x8 /* attenuation linear factor */
#define LMF_ATTEN2 0x20 /* 1/r^2 attenuation factor */
#define LMF_REPLACELIGHTS 0x10 /* When merging, use only new lights, not union */
#define MATMAGIC OOGLMagic('m', 1)
#define MTF_EMISSION 0x1
#define MTF_AMBIENT 0x2
#define MTF_DIFFUSE 0x4
#define MTF_SPECULAR 0x8
#define MTF_Ka 0x10
#define MTF_Kd 0x20
#define MTF_Ks 0x40
#define MTF_ALPHA 0x80
#define MTF_SHININESS 0x100
#define MTF_EDGECOLOR 0x200
#define MTF_NORMALCOLOR 0x400
#define APMAGIC OOGLMagic('a', 1)
/* The following bits are used in 'flag', 'valid', 'override' */
#define APF_FACEDRAW 0x2 /* Draw faces */
#define APF_EDGEDRAW 0x10 /* Draw edges */
#define APF_TRANSP 0x20 /* Enable transparency */
#define APF_EVERT 0x40 /* Evert surface normals */
#define APF_NORMALDRAW 0x80 /* Draw surface normals */
#define APF_VECTDRAW 0x100 /* Draw vectors/points */
#define APF_KEEPCOLOR 0x200 /* Not susceptible to N-D coloring */
#define APF_TEXTURE 0x400 /* Enable texture mapping */
#define APF_BACKCULL 0x800 /* Enable back-face culling */
#define APF_SHADELINES 0x2000 /* Enable line (edge & vect) lighting&shading */
#define APF_CONCAVE 0x4000 /* Expect concave polygons */
#define APF_TXMIPMAP 0x8000 /* Mip-mapped textures */
#define APF_TXMIPINTERP 0x10000 /* Interpolate between mipmaps */
#define APF_TXLINEAR 0x20000 /* Interpolate between texture pixels */
/* The following bits are used in 'valid', 'override' */
#define APF_SHADING 0x1 /* Use 'shading' value */
#define APF_NORMSCALE 0x4 /* Use 'nscale' value to draw normals */
#define APF_LINEWIDTH 0x8 /* Use 'linewidth' value */
#define APF_DICE 0x1000 /* Dicing (use udice, vdice fields) */
/* Possible values for ap->shading field; these MUST be consecutive !!
(code outside the appearance library depends on this fact) */
#define APF_CONSTANT 0 /* constant-colored (unlighted) faces */
#define APF_FLAT 1 /* Flat-shaded, lighted faces */
#define APF_SMOOTH 2 /* Gouraud-shaded faces, with lighting */
#define APF_CSMOOTH 3 /* Gouraud-shaded faces, without lighting */
#define APF_VCFLAT 4 /* Gouraud-coloured, but flat faces */
#define IS_SMOOTH(shading) ((shading) >= APF_SMOOTH)
#define IS_SHADED(shading) \
((1<<(shading)) & ((1<<APF_FLAT)|(1<<APF_SMOOTH)|(1<<APF_VCFLAT)))
#ifdef AP_IDEBUG
Appearance * ApCreate();
Appearance * ApSet();
Material * MtCreate();
Material * MtSet();
LtLight * LtCreate();
LtLight * LtSet();
LmLighting * LmCreate();
LmLighting * LmSet();
int lt_end = LT_END;
int lt_ambient = LT_AMBIENT;
int lt_color = LT_COLOR;
int lt_position = LT_POSITION;
int lt_intensity = LT_INTENSITY;
int lm_end = LM_END;
int lm_ambient = LM_AMBIENT;
int lm_localviewer = LM_LOCALVIEWER;
int lm_attenc = LM_ATTENC;
int lm_attenm = LM_ATTENM;
int lm_ltset = LM_LtSet;
int lm_light = LM_LIGHT;
int lm_valid = LM_VALID;
int lm_invalid = LM_INVALID;
int lm_override = LM_OVERRIDE;
int lm_nooverride = LM_NOOVERRIDE;
int mt_end = MT_END;
int mt_emission = MT_EMISSION;
int mt_ambient = MT_AMBIENT;
int mt_diffuse = MT_DIFFUSE;
int mt_specular = MT_SPECULAR;
int mt_ka = MT_Ka;
int mt_kd = MT_Kd;
int mt_ks = MT_Ks;
int mt_alpha = MT_ALPHA;
int mt_shininess = MT_SHININESS;
int mt_valid = MT_VALID;
int mt_invalid = MT_INVALID;
int mt_override = MT_OVERRIDE;
int mt_nooverride = MT_NOOVERRIDE;
int ap_end = AP_END;
int ap_do = AP_DO;
int ap_dont = AP_DONT ;
int ap_mat = AP_MAT;
int ap_mtset = AP_MtSet;
int ap_lgt = AP_LGT;
int ap_lmset = AP_LmSet;
int ap_normscale = AP_NORMSCALE;
int ap_linewidth = AP_LINEWIDTH;
int ap_valid = AP_VALID;
int ap_invalid = AP_INVALID;
int ap_override = AP_OVERRIDE;
int ap_nooverride = AP_NOOVERRIDE;
int ap_shading = AP_SHADING;
int lmf_localviewer = LMF_LOCALVIEWER;
int lmf_ambient = LMF_AMBIENT;
int lmf_attenc = LMF_ATTENC;
int lmf_attenm = LMF_ATTENM;
int lmf_replacelights = LMF_REPLACELIGHTS;
int mtf_emission = MTF_EMISSION;
int mtf_ambient = MTF_AMBIENT;
int mtf_diffuse = MTF_DIFFUSE;
int mtf_specular = MTF_SPECULAR;
int mtf_ka = MTF_Ka;
int mtf_kd = MTF_Kd;
int mtf_ks = MTF_Ks;
int mtf_alpha = MTF_ALPHA;
int mtf_shininess = MTF_SHININESS;
int apf_facedraw = APF_FACEDRAW;
int apf_edgedraw = APF_EDGEDRAW;
int apf_transp = APF_TRANSP;
int apf_evert = APF_EVERT;
int apf_shading = APF_SHADING;
int apf_normscale = APF_NORMSCALE;
int apf_linewidth = APF_LINEWIDTH;
int apf_constant = APF_CONSTANT;
int apf_flat = APF_FLAT;
int apf_smooth = APF_SMOOTH;
#endif /* AP_IDEBUG */
#endif /* APPEARANCEDEF */
/*
* Local Variables: ***
* mode: c ***
* c-basic-offset: 4 ***
* End: ***
*/
|