41 lines
1.4 KiB
Matlab
41 lines
1.4 KiB
Matlab
function [obj, f] = plot(obj)
|
|
arguments (Input)
|
|
obj (1, 1) {mustBeA(obj, 'miSim')};
|
|
end
|
|
arguments (Output)
|
|
obj (1, 1) {mustBeA(obj, 'miSim')};
|
|
f (1, 1) {mustBeA(f, 'matlab.ui.Figure')};
|
|
end
|
|
|
|
% Plot domain
|
|
[obj.domain, f] = obj.domain.plotWireframe(obj.spatialPlotIndices);
|
|
|
|
% Plot obstacles
|
|
for ii = 1:size(obj.obstacles, 1)
|
|
[obj.obstacles{ii}, f] = obj.obstacles{ii}.plotWireframe(obj.spatialPlotIndices, f);
|
|
end
|
|
|
|
% Plot objective gradient
|
|
f = obj.domain.objective.plot(obj.objectivePlotIndices, f);
|
|
|
|
% Plot agents and their collision geometries
|
|
for ii = 1:size(obj.agents, 1)
|
|
[obj.agents{ii}, f] = obj.agents{ii}.plot(obj.spatialPlotIndices, f);
|
|
end
|
|
|
|
% Plot communication links
|
|
[obj, f] = obj.plotConnections(obj.spatialPlotIndices, f);
|
|
|
|
% Plot abstract network graph
|
|
[obj, f] = obj.plotGraph(obj.networkGraphIndex, f);
|
|
|
|
% Plot domain partitioning
|
|
[obj, f] = obj.plotPartitions(obj.partitionGraphIndex, f);
|
|
|
|
% Enforce plot limits
|
|
for ii = 1:size(obj.spatialPlotIndices, 2)
|
|
xlim(f.Children(1).Children(obj.spatialPlotIndices(ii)), [obj.domain.minCorner(1), obj.domain.maxCorner(1)]);
|
|
ylim(f.Children(1).Children(obj.spatialPlotIndices(ii)), [obj.domain.minCorner(2), obj.domain.maxCorner(2)]);
|
|
zlim(f.Children(1).Children(obj.spatialPlotIndices(ii)), [obj.domain.minCorner(3), obj.domain.maxCorner(3)]);
|
|
end
|
|
end |