The light's position in eye coordinates (x right, y up, z toward the
viewer): [x, y, z, 0] for a directional light from direction (x, y, z),
[x, y, z, 1] for a point light (OpenFrames' setLightPosition; default
[0, 0, 1, 0], a headlight).
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Source Code
subroutine set_light_position(self,position)class(WindowProxy),intent(inout)::selfreal(wp),intent(in)::position(4)!! [x, y, z, w], eye coordinates (not all 0)if(all(position(1:3)==0.0_wp).and.position(4)==0.0_wp)returnself%light_position_=positioncall apply_window_light(self)end subroutine set_light_position