run.m 1.49 KiB
function [] = run(~, ~)
%RUN Summary of this function goes here
% Detailed explanation goes here
global artoaWorkspace artoaGui;
%% Validate soundsource table input
usedSoundsourceCombinations = find(artoaWorkspace.trackParameter.soundsourceCombinations.use);
soundsourceCombinationsToValidate = artoaWorkspace.trackParameter.soundsourceCombinations(usedSoundsourceCombinations, :);
[success, message] = artoa.controller.track.parameter.validateCombinationsInput( ...
soundsourceCombinationsToValidate ...
);
if ~success
errordlg(message, 'Input error');
return;
end
%% Prepare variable if required
if ~artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'trajectories'})
artoaWorkspace.trajectoryOutput.trajectories = {};
end
%% Calculate trajectory
trajectoryObject = artoa.controller.track.calculateTrajectoryObject();
if islogical(trajectoryObject)
return;
end
%% Generate trajectory id
if isempty(artoaWorkspace.trajectoryOutput.trajectories)
trajectoryObject.id = 1;
else
trajectoryObject.id = artoaWorkspace.trajectoryOutput.trajectories{end}.id + 1;
end
trajectoryObject.hidden = false;
% store to workspace
artoaWorkspace.trajectoryOutput.trajectories{end + 1} = trajectoryObject;
%% Open track gui
artoa.controller.track.trajectoryOutput.open();
%% Update table of trajectory to profile if existent
if artoa.data.hasMember(artoaGui, 'trajectoryToProfiles')
artoaGui.trajectoryToProfiles.updateTrajectoryTable(artoaWorkspace.trajectoryOutput.trajectories);
end
end