35 lines
1.4 KiB
Matlab
35 lines
1.4 KiB
Matlab
function updatePlots(obj)
|
|
arguments (Input)
|
|
obj (1, 1) {mustBeA(obj, 'agent')};
|
|
end
|
|
arguments (Output)
|
|
end
|
|
|
|
% Scatterplot point positions
|
|
for ii = 1:size(obj.scatterPoints, 1)
|
|
obj.scatterPoints(ii).XData = obj.pos(1);
|
|
obj.scatterPoints(ii).YData = obj.pos(2);
|
|
obj.scatterPoints(ii).ZData = obj.pos(3);
|
|
end
|
|
|
|
% Find change in agent position since last timestep
|
|
deltaPos = obj.pos - obj.lastPos;
|
|
|
|
% Collision geometry edges
|
|
for jj = 1:size(obj.collisionGeometry.lines, 2)
|
|
% Update plotting
|
|
for ii = 1:size(obj.collisionGeometry.lines(:, jj), 1)
|
|
obj.collisionGeometry.lines(ii, jj).XData = obj.collisionGeometry.lines(ii, jj).XData + deltaPos(1);
|
|
obj.collisionGeometry.lines(ii, jj).YData = obj.collisionGeometry.lines(ii, jj).YData + deltaPos(2);
|
|
obj.collisionGeometry.lines(ii, jj).ZData = obj.collisionGeometry.lines(ii, jj).ZData + deltaPos(3);
|
|
end
|
|
end
|
|
|
|
% Update FOV geometry surfaces
|
|
for jj = 1:size(obj.fovGeometry.surface, 2)
|
|
% Update each plot
|
|
obj.fovGeometry.surface(jj).XData = obj.fovGeometry.surface(jj).XData + deltaPos(1);
|
|
obj.fovGeometry.surface(jj).YData = obj.fovGeometry.surface(jj).YData + deltaPos(2);
|
|
obj.fovGeometry.surface(jj).ZData = obj.fovGeometry.surface(jj).ZData + deltaPos(3);
|
|
end
|
|
end |