20 LightObj() : mFlag(0) {}
23 LightObj& operator=(
const LightObj& rOther);
25 operator GXLightObj*() {
28 operator const GXLightObj*()
const {
34 void InitLightColor(GXColor color);
35 void InitLightPos(f32 x, f32 y, f32 z);
36 void InitLightDir(f32 nx, f32 ny, f32 nz);
37 void InitSpecularDir(f32 nx, f32 ny, f32 nz);
38 void InitLightSpot(f32 cutoff, GXSpotFn spotFn);
39 void InitLightAttnA(f32 aa, f32 ab, f32 ac);
40 void InitLightDistAttn(f32 distance, f32 brightness,
41 GXDistAttnFn distAttnFn);
42 void InitLightAttnK(f32 ka, f32 kb, f32 kc);
43 void InitLightShininess(f32 shininess);
51 mFlag |= FLAG_ENABLE_LIGHT;
54 mFlag &= ~FLAG_ENABLE_LIGHT;
57 bool IsEnable()
const {
58 return (mFlag & FLAG_ENABLE_LIGHT) ? true :
false;
61 bool IsSpotLight()
const {
62 return (mFlag & FLAG_SPOT) ? true :
false;
64 bool IsSpecularLight()
const {
65 return (mFlag & FLAG_SPECULAR) ? true :
false;
67 bool IsSpecularDir()
const {
68 return (mFlag & FLAG_SPECULAR_DIR) ? true :
false;
71 bool IsColorEnable()
const {
72 return !(mFlag & FLAG_DISABLE_COLOR);
75 mFlag |= FLAG_DISABLE_COLOR;
78 bool IsAlphaEnable()
const {
79 return !(mFlag & FLAG_DISABLE_ALPHA);
82 mFlag |= FLAG_DISABLE_ALPHA;
85 bool IsDiffuseLight()
const {
86 return !IsSpotLight() && !IsSpecularLight();
92 FLAG_SPECULAR = (1 << 1),
93 FLAG_ENABLE_LIGHT = (1 << 2),
94 FLAG_SPECULAR_DIR = (1 << 3),
95 FLAG_DISABLE_COLOR = (1 << 4),
96 FLAG_DISABLE_ALPHA = (1 << 5)