This is light.h in view mode; [Download] [Up]
/*
* light.h
*
* Copyright (C) 1989, 1991, Craig E. Kolb
* All rights reserved.
*
* This software may be freely copied, modified, and redistributed
* provided that this copyright notice is preserved on all copies.
*
* You may not distribute this software, in whole or in part, as part of
* any commercial product without the express consent of the authors.
*
* There is no warranty or other guarantee of fitness of this software
* for any purpose. It is provided solely "as is".
*
* $Id$
*
* $Log$
*/
#ifndef LIGHT_H
#define LIGHT_H
#include "libobj/object.h"
#define SHADOW_NONE 001
#define SHADOW_TRANSP 002
#define SHADOW_CSG 004
#define SHADOW_CACHE 010
#define NOSHADOWS(f) ((f) & SHADOW_NONE)
#define SHADOWTRANSP(f) ((f) & SHADOW_TRANSP)
#define SHADOWCSG(f) ((f) & SHADOW_CSG)
#define SHADOWCACHE(f) ((f) & SHADOW_CACHE)
#define SHADOW_EPSILON (4. * EPSILON)
typedef char * LightRef;
typedef struct {
struct Object *obj; /* Pointer to cached object */
Matrix trans; /* World-to-object transformation */
char dotrans; /* TRUE if above trans is non-identity */
} ShadowCache;
typedef struct {
int (*intens)();
void (*dir)();
} LightMethods;
typedef struct Light {
Color color;
LightRef light;
LightMethods *methods;
ShadowCache *cache;
struct Light *next;
} Light;
extern LightMethods *LightMethodsCreate();
extern Light *LightCreate();
extern void LightAllocateCache(), LightAddToDefined();
extern int LightIntens(), LightDirection();
extern void ShadowSetOptions(), ShadowStats();
#endif /* LIGHT_H */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.