diff --git a/ShoulderCase/@Muscle/measureHumerusContactPoint.m b/ShoulderCase/@Muscle/measureHumerusContactPoint.m index 04f83a7..09c4ebe 100644 --- a/ShoulderCase/@Muscle/measureHumerusContactPoint.m +++ b/ShoulderCase/@Muscle/measureHumerusContactPoint.m @@ -1,38 +1,38 @@ function measureHumerusContactPoint(obj) humerus = obj.container.shoulder.humerus; humeralHeadContactPointFinder = SphereContactPoint(... Sphere(humerus.center, humerus.radius)); muscleInsertion = getInsertion(obj, humerus); humeralHeadContactPointFinder.setAnchorPoint(muscleInsertion); obj.forceApplicationPoint = []; % find one force application point for each subdivision's centroid for i = 1:size(obj.centroid, 1) humeralHeadContactPointFinder.setPolarPoint(obj.centroid(i,:)); if humeralHeadContactPointFinder.sphereIsBetweenAnchorAndPolarPoints() forceApplicationPoint = humeralHeadContactPointFinder.getContactPoint(); else forceApplicationPoint = muscleInsertion; end obj.forceApplicationPoint =... [obj.forceApplicationPoint; forceApplicationPoint]; end end function output = getInsertion(obj, humerus) if ismember(obj.getFullName(), string(fields(humerus.insertions))) muscleInsertion = humerus.insertions.(obj.getFullName()); % if not segmented, teres minor insertion is set to the same point as % infraspinatus insertion elseif isequal(obj.getFullName(), "teres_minor")... - & ismember("infraspinatus", string(fields(humerus))) + & ismember("infraspinatus", string(fields(humerus.insertions))) muscleInsertion = humerus.insertions.("infraspinatus"); % if not segmented, muscle humeral head insertion is estimated to be the most % lateral point of the humeral head fitted sphere else MLAxis = obj.container.shoulder.scapula.coordSys.ML; muscleInsertion = humerus.center + humerus.radius * MLAxis; end output = muscleInsertion; end \ No newline at end of file