From 10169d259744f33c5c46b6b62349ee6a31cc7a32 Mon Sep 17 00:00:00 2001
From: Lewin Probst <info@emirror.de>
Date: Thu, 12 Dec 2019 14:21:14 +0100
Subject: [PATCH] The soundsources are now plot in its applied colors.

---
 VERSION                                            |  2 +-
 .../+controller/+edit/updateAvailablePlots.m       |  7 ++++---
 .../buttonDeleteAllTrajectories.m                  |  2 --
 .../buttonDeleteSelectedTrajectory.m               |  2 --
 .../+controller/+track/+trajectoryOutput/open.m    |  4 ----
 .../+controller/+track/+trajectoryOutput/plot.m    |  7 +++++++
 .../+trajectoryOutput/updateTableGeneratedTracks.m |  2 +-
 lib/+artoa/+gui/+edit/offsets.m                    |  1 -
 lib/+artoa/+soundsources/scatterPositions.m        | 14 +++++++++++---
 9 files changed, 24 insertions(+), 17 deletions(-)

diff --git a/VERSION b/VERSION
index c2807f7..acfba60 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-140
\ No newline at end of file
+141
\ No newline at end of file
diff --git a/lib/+artoa/+controller/+edit/updateAvailablePlots.m b/lib/+artoa/+controller/+edit/updateAvailablePlots.m
index 4df49fc..8fa204a 100644
--- a/lib/+artoa/+controller/+edit/updateAvailablePlots.m
+++ b/lib/+artoa/+controller/+edit/updateAvailablePlots.m
@@ -3,14 +3,15 @@ function [] = updateAvailablePlots()
 
 global artoaGui;
 
-plotsToUpdate = {'editTemperature', 'editPressure', 'editTimeOfArrival'};
-controllerPackageNames = {'temperature', 'pressure', 'timeOfArrival'};
+plotsToUpdate = {'editTemperature', 'editPressure', 'editTimeOfArrival', 'trajectoryOutput'};
+controllerPackageNames = {'temperature', 'pressure', 'timeOfArrival', 'trajectoryOutput'};
+controllerCategoryNames = {'edit', 'edit', 'edit', 'track'};
 
 for i = 1:length(plotsToUpdate)
     if ~isfield(artoaGui, plotsToUpdate{i})
         continue;
     end
-    artoa.controller.edit.(controllerPackageNames{i}).plot();
+    artoa.controller.(controllerCategoryNames{i}).(controllerPackageNames{i}).plot();
 end
 
 end
diff --git a/lib/+artoa/+controller/+track/+trajectoryOutput/buttonDeleteAllTrajectories.m b/lib/+artoa/+controller/+track/+trajectoryOutput/buttonDeleteAllTrajectories.m
index 013b8bd..a350118 100644
--- a/lib/+artoa/+controller/+track/+trajectoryOutput/buttonDeleteAllTrajectories.m
+++ b/lib/+artoa/+controller/+track/+trajectoryOutput/buttonDeleteAllTrajectories.m
@@ -15,9 +15,7 @@ artoaWorkspace.trajectoryOutput.trajectories = {};
 %% Update table
 artoa.controller.track.trajectoryOutput.updateTableGeneratedTracks();
 %% Plot again
-artoa.controller.track.trajectoryOutput.hideTrajectoryAxes();
 artoa.controller.track.trajectoryOutput.plot(artoaWorkspace.trajectoryOutput.enableMercatorProjection);
-artoa.controller.track.trajectoryOutput.showTrajectoryAxes();
 
 end
 
diff --git a/lib/+artoa/+controller/+track/+trajectoryOutput/buttonDeleteSelectedTrajectory.m b/lib/+artoa/+controller/+track/+trajectoryOutput/buttonDeleteSelectedTrajectory.m
index fe67e26..a269ef8 100644
--- a/lib/+artoa/+controller/+track/+trajectoryOutput/buttonDeleteSelectedTrajectory.m
+++ b/lib/+artoa/+controller/+track/+trajectoryOutput/buttonDeleteSelectedTrajectory.m
@@ -27,8 +27,6 @@ artoaWorkspace.trajectoryOutput.trajectories = ...
 %% Update table
 artoa.controller.track.trajectoryOutput.updateTableGeneratedTracks();
 %% Plot again
-artoa.controller.track.trajectoryOutput.hideTrajectoryAxes();
 artoa.controller.track.trajectoryOutput.plot(artoaWorkspace.trajectoryOutput.enableMercatorProjection);
-artoa.controller.track.trajectoryOutput.showTrajectoryAxes();
 
 end
diff --git a/lib/+artoa/+controller/+track/+trajectoryOutput/open.m b/lib/+artoa/+controller/+track/+trajectoryOutput/open.m
index 8ab1567..8352b73 100644
--- a/lib/+artoa/+controller/+track/+trajectoryOutput/open.m
+++ b/lib/+artoa/+controller/+track/+trajectoryOutput/open.m
@@ -9,9 +9,7 @@ global artoaGui artoaWorkspace;
 if isfield(artoaGui.figures, 'trajectoryOutput')
     figure(artoaGui.figures.trajectoryOutput);
     artoa.controller.track.trajectoryOutput.updateTableGeneratedTracks();
-    artoa.controller.track.trajectoryOutput.hideTrajectoryAxes();
     artoa.controller.track.trajectoryOutput.plot(artoaWorkspace.trajectoryOutput.enableMercatorProjection);
-    artoa.controller.track.trajectoryOutput.showTrajectoryAxes();
     return
 end
 
@@ -97,9 +95,7 @@ else
 end
 
 %% Plot everything available
-artoa.controller.track.trajectoryOutput.hideTrajectoryAxes();
 artoa.controller.track.trajectoryOutput.plot(artoaWorkspace.trajectoryOutput.enableMercatorProjection);
-artoa.controller.track.trajectoryOutput.showTrajectoryAxes();
 
 end
 
diff --git a/lib/+artoa/+controller/+track/+trajectoryOutput/plot.m b/lib/+artoa/+controller/+track/+trajectoryOutput/plot.m
index 5e3a516..54b6f0e 100644
--- a/lib/+artoa/+controller/+track/+trajectoryOutput/plot.m
+++ b/lib/+artoa/+controller/+track/+trajectoryOutput/plot.m
@@ -4,6 +4,11 @@ function [] = plot(pPlotAsMap)
 
 global artoaGui artoaWorkspace;
 
+%% Parameter check
+if nargin == 0
+    pPlotAsMap = false;
+end
+
 %% Set current axes
 artoaGui.figures.trajectoryOutput.CurrentAxes = artoaGui.trajectoryOutput.axesTrajectoryOutput;
 
@@ -29,6 +34,8 @@ artoa.controller.track.trajectoryOutput.clearTrajectoryPlot();
 ] = artoa.soundsources.scatterPositions( ...
         artoaGui.trajectoryOutput.axesTrajectoryOutput, ...
         artoaWorkspace.filteredSoundsources, ...
+        artoaWorkspace.soundsourceColorRegister, ...
+        artoaWorkspace.soundsourceColors, ...
         pPlotAsMap ...
 );
 
diff --git a/lib/+artoa/+controller/+track/+trajectoryOutput/updateTableGeneratedTracks.m b/lib/+artoa/+controller/+track/+trajectoryOutput/updateTableGeneratedTracks.m
index 815efed..984a2b5 100644
--- a/lib/+artoa/+controller/+track/+trajectoryOutput/updateTableGeneratedTracks.m
+++ b/lib/+artoa/+controller/+track/+trajectoryOutput/updateTableGeneratedTracks.m
@@ -8,7 +8,7 @@ global artoaGui artoaWorkspace;
 if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'trajectories'})
     trajectories = artoaWorkspace.trajectoryOutput.trajectories;
 else
-    return;
+    trajectories = {};
 end
 
 %% Handle check
diff --git a/lib/+artoa/+gui/+edit/offsets.m b/lib/+artoa/+gui/+edit/offsets.m
index 66cdb1c..58c0401 100644
--- a/lib/+artoa/+gui/+edit/offsets.m
+++ b/lib/+artoa/+gui/+edit/offsets.m
@@ -53,7 +53,6 @@ left = 0.03;
 fullwidth = 1 - (2 * left);
 
 %% Initialize offset table
-
 artoaGui.editOffsets.tableSoundsourceOffsets = uitable( ...
     artoaGui.figures.editOffsets, ...
     'Units', 'normalized', ...
diff --git a/lib/+artoa/+soundsources/scatterPositions.m b/lib/+artoa/+soundsources/scatterPositions.m
index f22f2f3..2931f14 100644
--- a/lib/+artoa/+soundsources/scatterPositions.m
+++ b/lib/+artoa/+soundsources/scatterPositions.m
@@ -1,4 +1,4 @@
-function [scatterHandle, textHandles] = scatterPositions(pAxesHandle, pSoundsources, pPlotAsMap)
+function [scatterHandle, textHandles] = scatterPositions(pAxesHandle, pSoundsources, pSoundsourceColorRegister, pSoundsourceColors, pPlotAsMap)
 %PLOT Summary of this function goes here
 %   Detailed explanation goes here
 
@@ -9,10 +9,15 @@ plot_names = fnames;
 
 lat = NaN(length(fnames), 1);
 lon = NaN(length(fnames), 1);
+color = repmat([0 0 0], length(fnames), 1);
 
 for i = 1:length(fnames)
     lat(i) = pSoundsources.(fnames{i}).position(1);
     lon(i) = pSoundsources.(fnames{i}).position(2);
+    index = artoa.soundsources.colorregister.getColorIndex(fnames{i}, pSoundsourceColorRegister);
+    if index > 0
+        color(i, :) = pSoundsourceColors(index, :);
+    end
     plot_names{i} = {'', ['  ' plot_names{i}]};
 end
 
@@ -24,12 +29,15 @@ axes(pAxesHandle);
 hold(pAxesHandle, 'on');
 
 if pPlotAsMap
-    scatterHandle = scatterm(pAxesHandle, lat, lon, [], [0 0 0]);
+    scatterHandle = scatterm(pAxesHandle, lat, lon, [], color);
     %textHandles = text(pAxesHandle, lon, lat, plot_names, 'Color', [0 0 0]);
     textHandles = textm(lat, lon, plot_names, 'Color', [0 0 0]);
 else
-    scatterHandle = scatter(pAxesHandle, lon, lat, [], [0 0 0]);
+    scatterHandle = scatter(pAxesHandle, lon, lat, [], color);
     textHandles = text(pAxesHandle, lon, lat, plot_names, 'Color', [0 0 0]);
+    for i = 1:length(textHandles)
+        textHandles(i).Color = color(i, :);
+    end
 end
 hold(pAxesHandle, 'off');
 
-- 
GitLab