Summary of Light Objects
C Summary
Constants
Light Types
#define kQ3LightTypeAmbient Q3_OBJECT_TYPE('a','m','b','n')
#define kQ3LightTypeDirectional Q3_OBJECT_TYPE('d','r','c','t')
#define kQ3LightTypePoint Q3_OBJECT_TYPE('p','n','t','l')
#define kQ3LightTypeSpot Q3_OBJECT_TYPE('s','p','o','t')
Light Attenuation Values
typedef enum TQ3AttenuationType {
kQ3AttenuationTypeNone,
kQ3AttenuationTypeInverseDistance,
kQ3AttenuationTypeInverseDistanceSquared
} TQ3AttenuationType;
Light Fall-Off Values
typedef enum TQ3FallOffType {
kQ3FallOffTypeNone,
kQ3FallOffTypeLinear,
kQ3FallOffTypeExponential,
kQ3FallOffTypeCosine
} TQ3FallOffType;
Data Types
Light Data Structure
typedef struct TQ3LightData {
TQ3Boolean isOn;
float brightness;
TQ3ColorRGB color;
} TQ3LightData;
Directional Light Data Structure
typedef struct TQ3DirectionalLightData {
TQ3LightData lightData;
TQ3Boolean castsShadows;
TQ3Vector3D direction;
} TQ3DirectionalLightData;
Point Light Data Structure
typedef struct TQ3PointLightData {
TQ3LightData lightData;
TQ3Boolean castsShadows;
TQ3AttenuationType attenuation;
TQ3Point3D location;
} TQ3PointLightData;
Spot Light Data Structure
typedef struct TQ3SpotLightData {
TQ3LightData lightData;
TQ3Boolean castsShadows;
TQ3AttenuationType attenuation;
TQ3Point3D location;
TQ3Vector3D direction;
float hotAngle;
float outerAngle;
TQ3FallOffType fallOff;
} TQ3SpotLightData;
Light Objects Routines
Managing Lights
TQ3ObjectType Q3Light_GetType(TQ3LightObject light);
TQ3Status Q3Light_GetState(TQ3LightObject light, TQ3Boolean *isOn);
TQ3Status Q3Light_SetState(TQ3LightObject light, TQ3Boolean isOn);
TQ3Status Q3Light_GetBrightness (
TQ3LightObject light, float *brightness);
TQ3Status Q3Light_SetBrightness (
TQ3LightObject light, float brightness);
TQ3Status Q3Light_GetColor(TQ3LightObject light, TQ3ColorRGB *color);
TQ3Status Q3Light_SetColor(TQ3LightObject light,
const TQ3ColorRGB *color);
TQ3Status Q3Light_GetData(TQ3LightObject light,
TQ3LightData *lightData);
TQ3Status Q3Light_SetData(TQ3LightObject light,
const TQ3LightData *lightData);
Managing Ambient Light
TQ3LightObject Q3AmbientLight_New (
const TQ3LightData *lightData);
TQ3Status Q3AmbientLight_GetData (
TQ3LightObject light,
TQ3LightData *lightData);
TQ3Status Q3AmbientLight_SetData (
TQ3LightObject light,
const TQ3LightData *lightData);
Managing Directional Lights
TQ3LightObject Q3DirectionalLight_New (
const TQ3DirectionalLightData
*directionalLightData);
TQ3Status Q3DirectionalLight_GetCastShadowsState (
TQ3LightObject light,
TQ3Boolean *castsShadows);
TQ3Status Q3DirectionalLight_SetCastShadowsState (
TQ3LightObject light,
TQ3Boolean castsShadows);
TQ3Status Q3DirectionalLight_GetDirection (
TQ3LightObject light,
TQ3Vector3D *direction);
TQ3Status Q3DirectionalLight_SetDirection (
TQ3LightObject light,
const TQ3Vector3D *direction);
TQ3Status Q3DirectionalLight_GetData (
TQ3LightObject light,
TQ3DirectionalLightData *directionalLightData);
TQ3Status Q3DirectionalLight_SetData (
TQ3LightObject light,
const TQ3DirectionalLightData
*directionalLightData);
Managing Point Lights
TQ3LightObject Q3PointLight_New(const TQ3PointLightData *pointLightData);
TQ3Status Q3PointLight_GetCastShadowsState (
TQ3LightObject light,
TQ3Boolean *castsShadows);
TQ3Status Q3PointLight_SetCastShadowsState (
TQ3LightObject light,
TQ3Boolean castsShadows);
TQ3Status Q3PointLight_GetAttenuation (
TQ3LightObject light,
TQ3AttenuationType *attenuation);
TQ3Status Q3PointLight_SetAttenuation (
TQ3LightObject light,
TQ3AttenuationType attenuation);
TQ3Status Q3PointLight_GetLocation (
TQ3LightObject light,
TQ3Point3D *location);
TQ3Status Q3PointLight_SetLocation (
TQ3LightObject light,
const TQ3Point3D *location);
TQ3Status Q3PointLight_GetData(TQ3LightObject light,
TQ3PointLightData *pointLightData);
TQ3Status Q3PointLight_SetData(TQ3LightObject light,
const TQ3PointLightData *pointLightData);
Managing Spot Lights
TQ3LightObject Q3SpotLight_New(const TQ3SpotLightData *spotLightData);
TQ3Status Q3SpotLight_GetCastShadowsState (
TQ3LightObject light,
TQ3Boolean *castsShadows);
TQ3Status Q3SpotLight_SetCastShadowsState (
TQ3LightObject light,
TQ3Boolean castsShadows);
TQ3Status Q3SpotLight_GetAttenuation (
TQ3LightObject light,
TQ3AttenuationType *attenuation);
TQ3Status Q3SpotLight_SetAttenuation (
TQ3LightObject light,
TQ3AttenuationType attenuation);
TQ3Status Q3SpotLight_GetLocation (
TQ3LightObject light,
TQ3Point3D *location);
TQ3Status Q3SpotLight_SetLocation (
TQ3LightObject light,
const TQ3Point3D *location);
TQ3Status Q3SpotLight_GetDirection (
TQ3LightObject light,
TQ3Vector3D *direction);
TQ3Status Q3SpotLight_SetDirection (
TQ3LightObject light,
const TQ3Vector3D *direction);
TQ3Status Q3SpotLight_GetHotAngle (
TQ3LightObject light, float *hotAngle);
TQ3Status Q3SpotLight_SetHotAngle (
TQ3LightObject light, float hotAngle);
TQ3Status Q3SpotLight_GetOuterAngle (
TQ3LightObject light, float *outerAngle);
TQ3Status Q3SpotLight_SetOuterAngle (
TQ3LightObject light, float outerAngle);
TQ3Status Q3SpotLight_GetFallOff (
TQ3LightObject light,
TQ3FallOffType *fallOff);
TQ3Status Q3SpotLight_SetFallOff (
TQ3LightObject light,
TQ3FallOffType fallOff);
TQ3Status Q3SpotLight_GetData(TQ3LightObject light,
TQ3SpotLightData *spotLightData);
TQ3Status Q3SpotLight_SetData(TQ3LightObject light,
const TQ3SpotLightData *spotLightData);
Notices
| kQ3NoticeInvalidAttenuationTypeUsingInternalDefaults | Attenuation type is invalid |