void pinq_light_source_rep(
Pint ws_id, /* workstation identifier */ Pint index, /* light source index */ Pinq_type type, /* type of returned values */ Pint *error_ind, /* (out) error indicator */ Plight_source_rep *rep /* (out) light source representation */
)
typedef enum {
PINQ_SET,
PINQ_REALIZED
} Pinq_type ;
typedef struct {
Pint type; /* light source type */
union Plight_source_rep_data {
struct Plight_source_rep_amb {
Pgcolr colr;
} amb;
struct Plight_source_rep_dir {
Pgcolr colr;
Pvec3 dir;
} dir;
struct Plight_source_rep_pos {
Pgcolr colr;
Ppoint3 pos;
Pfloat c1;
Pfloat c2;
} pos;
struct Plight_source_rep_spot {
Pgcolr colr;
Ppoint3 pos;
Pvec3 dir;
Pfloat concent_exp;
Pfloat c1;
Pfloat c2;
Pfloat spread_angle;
} spot;
} data;
} Plight_source_rep;
If the specified light source index is not present in the light source table, and the specified type of returned value is REALIZED, the representation for light source index 1 is returned.
If the inquired information is not available, the values returned in the output parameters are implementation dependent and the error indicator is set to one of the following error numbers to indicate the reason for non-availability: