Skip to content
Snippets Groups Projects
Commit 18e5ad8e authored by leprob001's avatar leprob001
Browse files

Added "True distance" option to trajectory output plot.

parent 7d3f4d6a
No related branches found
No related tags found
No related merge requests found
......@@ -23,4 +23,3 @@ artoaWorkspace.toaData = artoa.soundsources.recalculateToaData( ...
artoa.controller.edit.timeOfArrival.plot();
end
function [] = checkboxTrueDistance(~, event)
%CHECKBOXTRUEDISTANCE Summary of this function goes here
% Detailed explanation goes here
global artoaWorkspace artoaGui;
%% Update state
artoaWorkspace.trajectoryOutput.enableTrueDistance = logical(event.Source.Value);
%% Add or remove listener
if artoaWorkspace.trajectoryOutput.enableTrueDistance ...
&& ~artoa.data.hasMember(artoaGui, {'trajectoryOutput', 'listenerYLim'})
artoaGui.trajectoryOutput.listenerYLim = addlistener( ...
artoaGui.trajectoryOutput.axesTrajectoryOutput, ...
'YLim', ...
'PostSet', ...
@artoa.controller.track.trajectoryOutput.listenerUpdateTrueDistance ...
);
% trigger listener
artoaGui.trajectoryOutput.axesTrajectoryOutput.YLim = artoaGui.trajectoryOutput.axesTrajectoryOutput.YLim;
elseif ~artoaWorkspace.trajectoryOutput.enableTrueDistance ...
&& artoa.data.hasMember(artoaGui, {'trajectoryOutput', 'listenerYLim'})
delete(artoaGui.trajectoryOutput.listenerYLim);
artoaGui.trajectoryOutput = rmfield(artoaGui.trajectoryOutput, 'listenerYLim');
% reset aspect ratio
daspect(artoaGui.trajectoryOutput.axesTrajectoryOutput, 'auto');
artoaGui.trajectoryOutput.axesTrajectoryOutput.YLimMode = 'auto';
end
end
function [] = listenerUpdateTrueDistance(~, pEventObject)
%LISTENERUPDATETRUEDISTANCE Summary of this function goes here
% Detailed explanation goes here
global artoaGui;
%% Save plot size
position = pEventObject.AffectedObject.Position;
%% Get required variables
yMean = mean(pEventObject.AffectedObject.YLim);
scale = cos(deg2rad(yMean));
%% Set aspect ratio
daspect(artoaGui.trajectoryOutput.axesTrajectoryOutput, [ ...
1, ...
scale, ...
1 ...
]);
%% Restore plot position
pEventObject.AffectedObject.Position = position;
pEventObject.AffectedObject.Position
end
......@@ -20,7 +20,7 @@ callbacks = struct();
callbacks.CloseRequestFcn = @artoa.controller.track.trajectoryOutput.close;
callbacks.buttonDeleteSingle = @artoa.controller.track.trajectoryOutput.buttonDeleteSelectedTrajectory;
callbacks.buttonDeleteAll = @artoa.controller.track.trajectoryOutput.buttonDeleteAllTrajectories;
callbacks.checkboxMercator = @artoa.controller.track.trajectoryOutput.checkboxEnableMercatorProjection;
callbacks.checkboxTrueDistance = @artoa.controller.track.trajectoryOutput.checkboxTrueDistance;
callbacks.checkboxTrackVisible = '';
callbacks.buttonTrackInfos = '';
callbacks.buttonVelocities = '';
......@@ -41,6 +41,7 @@ if ~isfield(artoaWorkspace, 'trajectoryOutput')
artoaWorkspace.trajectoryOutput.showPositionDates = true;
artoaWorkspace.trajectoryOutput.enableMercatorProjection = false;
artoaWorkspace.trajectoryOutput.syncZoomToaWindow = true;
artoaWorkspace.trajectoryOutput.enableTrueDistance = false;
end
%% Add listener to sync zoom of TOA window
......@@ -82,6 +83,12 @@ if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'enableMercatorProj
else
artoaGui.trajectoryOutput.checkboxMercator.Value = false;
end
if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'enableTrueDistance'})
artoaGui.trajectoryOutput.checkboxTrueDistance.Value = ...
artoaWorkspace.trajectoryOutput.enableTrueDistance;
else
artoaGui.trajectoryOutput.checkboxTrueDistance.Value = false;
end
if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'syncZoomToaWindow'})
artoaGui.trajectoryOutput.checkboxSynchronizeZoomToaWindow.Value = ...
artoaWorkspace.trajectoryOutput.syncZoomToaWindow;
......
......@@ -39,10 +39,6 @@ if pAsMercator
'MLabelLocation', 1, ...
'PLabelLocation', 1 ...
);
% 'MapLonLimit', [minLon maxLon], ...
% 'MapLatLimit', [minLat maxLat] ...
% );
%geoshow(landareas,'FaceColor',[1 1 .5],'EdgeColor',[.6 .6 .6]);
else
artoaGui.trajectoryOutput.axesTrajectoryOutput = axes(artoaGui.figures.trajectoryOutput);
end
......
......@@ -12,7 +12,7 @@ availableCallbacks = { ...
'CloseRequestFcn', ...
'buttonDeleteSingle', ...
'buttonDeleteAll', ...
'checkboxMercator', ...
'checkboxTrueDistance'...
'checkboxTrackVisible', ...
'tableGeneratedTracksSelect', ...
'checkboxShowPositionDates', ...
......@@ -263,14 +263,24 @@ artoaGui.trajectoryOutput.frameDisplayOptions = uipanel( ...
'Position', [rightSidebarLeft .25 rightSidebarWidth .25] ...
);
artoaGui.trajectoryOutput.checkboxMercator = uicontrol( ...
% artoaGui.trajectoryOutput.checkboxMercator = uicontrol( ...
% 'Parent', artoaGui.trajectoryOutput.frameDisplayOptions, ...
% 'String', 'Mercator projection', ...
% 'Style', 'CheckBox', ...
% 'FontSize', 8, ...
% 'Units', 'normalized', ...
% 'Position', [.1 .8 .8 .175], ...
% 'CallBack', pCallbacks.checkboxMercator ...
% );
artoaGui.trajectoryOutput.checkboxTrueDistance = uicontrol( ...
'Parent', artoaGui.trajectoryOutput.frameDisplayOptions, ...
'String', 'Mercator projection', ...
'String', 'True distance', ...
'Style', 'CheckBox', ...
'FontSize', 8, ...
'Units', 'normalized', ...
'Position', [.1 .8 .8 .175], ...
'CallBack', pCallbacks.checkboxMercator ...
'CallBack', pCallbacks.checkboxTrueDistance ...
);
artoaGui.trajectoryOutput.checkboxShowPositionDates = uicontrol( ...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment