function output = plot3(obj) muscleColor = containers.Map; muscleColor("SC") = "b"; muscleColor("SS") = "r"; muscleColor("IS") = "g"; muscleColor("TM") = "y"; plotHandle = []; for muscleName = ["SC", "SS", "IS", "TM"] try % Plot segmentations centroidPoint = obj.(muscleName).centroid; plotHandle(end+1) = scatter3(centroidPoint(:,1), centroidPoint(:,2), centroidPoint(:,3),... "MarkerEdgeColor", muscleColor(muscleName),... "MarkerFaceColor", muscleColor(muscleName)); hold on contourPoints = obj.(muscleName).getMaskCoordinates("Contour"); plotHandle(end+1) = scatter3(contourPoints(:,1), contourPoints(:,2), contourPoints(:,3),... "MarkerEdgeColor", muscleColor(muscleName)); % Plot muscle contact point with humeral head humeralContactPoint = obj.(muscleName).forceApplicationPoint; plotHandle(end+1) = plot(... Vector(centroidPoint, humeralContactPoint),... "Color", muscleColor(muscleName),... "LineWidth", 2); plotHandle(end+1) = scatter3(... humeralContactPoint(1),... humeralContactPoint(2),... humeralContactPoint(3),... "MarkerFaceColor", muscleColor(muscleName),... "MarkerEdgeColor", "magenta"); end end output = plotHandle; end