indexing description: "OpenGL light funcitons" date: "$Date$" revision: "$Revision$" class EMGL_LIGHT inherit EMGL_FUNCTIONS export {NONE} all end EMGL_SETTINGS export {NONE} all end create make feature {NONE} -- Initialization make( a_light_id: INTEGER ) is -- Create a opengl light require is_valid_light( a_light_id ) do light := a_light_id ensure valid_light: is_valid_light( light ) end feature -- Status light:INTEGER is_valid_light( light_id: INTEGER ):BOOLEAN is -- Is `light_id' valid? do result := Em_gl_light0 <= light_id and light_id < Em_gl_light0+emgl_get_integer(em_gl_max_lights) end feature {NONE} light_count: INTEGER is -- Counts the number of currently enabled lights local i: INTEGER do result := 0 from i:= em_gl_light0 until i>em_gl_light0+emgl_get_integer(em_gl_max_lights) loop if emgl_is_enabled ( i ) then result := result + 1 end i := i + 1 end end feature is_enabled: BOOLEAN is -- Is the light turned on? require valid_light: is_valid_light( light ) do result := emgl_get_boolean ( light ) end enable is -- Turn the light on require valid_light: is_valid_light( light ) do emgl_enable( em_gl_lighting ) emgl_enable( light ) end disable is -- Turn the light off require valid_light: is_valid_light( light ) do emgl_disable( light ) if light_count=0 then emgl_disable( em_gl_lighting ) end end feature --general function wrapper get_lightfv ( pname:INTEGER; params:POINTER ) is --Wrap the OpenGL function `gl_get_lightfv` require valid_light: is_valid_light( light ) do gl_get_lightfv_external( light, pname, params ) end get_lightiv ( pname:INTEGER; params:POINTER ) is --Wrap the OpenGL function `gl_get_lightiv` require valid_light: is_valid_light( light ) do gl_get_lightiv_external( light, pname, params ) end lightf ( pname:INTEGER; param:REAL ) is --Wrap the OpenGL function `gl_lightf` require valid_light: is_valid_light( light ) do gl_lightf_external( light, pname, param ) end lightfv ( pname:INTEGER; params:POINTER ) is --Wrap the OpenGL function `gl_lightfv` require valid_light: is_valid_light( light ) do gl_lightfv_external( light, pname, params ) end lighti ( pname:INTEGER; param:INTEGER ) is --Wrap the OpenGL function `gl_lighti` require valid_light: is_valid_light( light ) do gl_lighti_external( light, pname, param ) end lightiv ( pname:INTEGER; params:POINTER ) is --Wrap the OpenGL function `gl_lightiv` require valid_light: is_valid_light( light ) do gl_lightiv_external( light, pname, params ) end end