Skip to content
Snippets Groups Projects
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