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