-
Notifications
You must be signed in to change notification settings - Fork 3
/
LIGHT3D.h
executable file
·75 lines (66 loc) · 1.65 KB
/
LIGHT3D.h
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
#ifndef _LIGHT3D_H_
#define _LIGHT3D_H_
#include "INSTANCE.h"
#include "PSX_STRUCTS.h"
typedef struct LightTableEntry {
signed short r;
signed short g;
signed short b;
signed short radius;
};
typedef struct LightInstance {
Instance* lightInstance;
long r;
long g;
long b;
signed short radius;
unsigned char segment;
unsigned char flags;
};
typedef struct LightGroup {
struct MATRIX lightMatrix;
struct MATRIX colorMatrix;
} LightGroup;
typedef struct LightList {
struct CVECTOR ambient;
long numLightGroups;
LightGroup* lightGroupList;
} LightList;
typedef struct PointLight {
struct NodeType node;
unsigned char r;
unsigned char g;
unsigned char b;
unsigned char flags;
Position position;
signed short radius;
long radiusSquared;
} PointLight;
typedef struct SpotLight {
struct NodeType node;
unsigned char r;
unsigned char g;
unsigned char b;
unsigned char flags;
Position centroid;
signed short radius;
long radiusSquared;
Position position;
Position direction;
signed short cosFalloffAngle;
signed short attenuationScale;
} SpotLight;
typedef struct LightInfo {
long numPointLights;
PointLight pointLightPool[];
struct NodeType usedPointLightList;
struct NodeType freePointLightList;
struct NodeType activePointLightList;
long numSpotLights;
SpotLight spotLightPool[];
struct NodeType usedSpotLightList;
struct NodeType freeSpotLightList;
struct NodeType activeSpotLightList;
long numSavedColors;
} LightInfo;
#endif