classdef ShoulderCasePlotter < handle % Create a figure with ShoulderCase's plots % and buttons to toggle the data visualisation. % % Used by the ShoulderCase.plot() method. properties (Access = private) SCase shoulderSide = "right" fig axesHandle axesLink axesCamera lightHandle plotHandle buttonHandle options = {'landmarks',... 'scapula surface',... 'glenoid surface',... 'coordinate system',... 'centered coordinate system',... 'rotator cuff',... 'difference'}; end methods (Access = ?ShoulderCase) function obj = ShoulderCasePlotter(SCase, varargin) obj.SCase = SCase; if nargin > 1 obj.shoulderSide = varargin{1}; end obj.fig = figure('Name',SCase.id,... 'NumberTitle','off',... 'units','normalized',... 'outerposition',[0 0 1 1]); obj.axesHandle = containers.Map; obj.plotHandle = {}; obj.buttonHandle = {}; obj.initializeAxes(); obj.configCamera(); obj.plot(); obj.linkAxes(); obj.initializeButton(); axes(obj.axesHandle('scapula')); end end methods (Access = private) initializeAxes(obj); initializeButton(obj); plot(obj); configCamera(obj); linkAxes(obj); end end