function measureAnteroPosteriorImbalance(obj) scapulaCS = obj.shoulder.scapula.coordSys; forceResultant = Vector(scapulaCS.origin, scapulaCS.origin)... + obj.SC.forceVector... + obj.SS.forceVector... + obj.IS.forceVector... + obj.TM.forceVector; % Take infero-superior orthogonal component <=> project on scapular axial plane inferoSuperior = Vector(scapulaCS.origin, scapulaCS.origin + scapulaCS.IS); imbalanceVector = inferoSuperior.orthogonalComplementTo(forceResultant); lateroMedial = Vector(scapulaCS.origin, scapulaCS.origin - scapulaCS.ML); anteroPosterior = Vector(scapulaCS.origin, scapulaCS.origin - scapulaCS.PA); % posterior imbalance is positive obj.anteroPosteriorImbalance = ... sign(dot(imbalanceVector, anteroPosterior)) *... rad2deg(lateroMedial.angle(imbalanceVector)); end