9 Examples of GUIDE UIs
handles.light = hlight;
handles.tform = hgrotate;
handles.hmesh = hmesh;
handles.azimuth = 0.;
handles.cmap = cmap;
guidata(gcf,handles);
The call to guidata caches the data added to handles.
Moving either of the sliders sets both the elevation and the azimuth of the light source,
although each slider changes only one. The code in the callback for varying the elevation
of the light is
function sunelslider_Callback(hObject, eventdata, handles)
hlight = handles.light; % Get handle to light object
sunaz = get(handles.sunazslider,'value'); % Get current light azimuth
sunel = get(hObject,'value'); % Varies from -72.8 -> 72.8 deg
lightangle(hlight,sunaz,sunel) % Set the new light angle
The callback for the light azimuth slider works similarly, querying the elevation slider's
setting to keep that value from being changed in the call to lightangle.