59 lines (46 with data), 1.4 kB
AnyFolder &Trunk=..Trunk;
//Right leg
Seg.Thigh.Axes0 =
Trunk.SegmentsLumbar.PelvisSeg.Axes0*
Seg.Pelvis.ARel*
Seg.Pelvis.HipJoint.ARel*
Seg.Pelvis.HipJoint.RotNode.ARel*
RotMat((pi/180)*.JointPos.HipFlexion,z)*
RotMat((pi/180)*.JointPos.HipAbduction,x)*
RotMat((pi/180)*.JointPos.HipExternalRotation,y)*
Seg.Thigh.HipJoint.RotNode.ARel'*
Seg.Thigh.HipJoint.ARel';
//shank
Seg.Shank.Axes0 =
Seg.Thigh.Axes0*
Seg.Thigh.KneeJoint.ARel*
Seg.Thigh.KneeJoint.RotNode.ARel*
RotMat((-pi/180)*.JointPos.KneeFlexion,z)*
Seg.Shank.KneeJoint.RotNode.ARel'*
Seg.Shank.KneeJoint.ARel';
//Patella
Seg.Patella.Axes0 = Seg.Thigh.Axes0*
Seg.Thigh.PatellaFemurJoint.ARel*
Seg.Thigh.PatellaFemurJoint.RotNode.ARel*
RotMat((-pi/180)*.JointPos.KneeFlexion,z)*
Seg.Patella.PatellaFemurJoint.RotNode.ARel'*
Seg.Patella.PatellaFemurJoint.ARel';
//Seg.Patella.Axes0 = Seg.Shank.Axes0;
#if BM_FOOT_MODEL == _FOOT_MODEL_DEFAULT_
//Talus
Seg.Talus.Axes0 =
Seg.Shank.Axes0*
Seg.Shank.AnkleJoint.ARel*
//Seg.Shank.AnkleJoint.RotNode.ARel*
RotMat((-pi/180)*.JointPos.AnklePlantarFlexion ,z)*
//Seg.Talus.AnkleJoint.RotNode.ARel'*
Seg.Talus.AnkleJoint.ARel';
//Foot
Seg.Foot.Axes0 =
Seg.Talus.Axes0*
Seg.Talus.SubTalarJoint.ARel*
//Seg.Talus.SubTalarJoint.RotNode.ARel*
RotMat((pi/180)*.JointPos.SubTalarEversion ,z)*
//Seg.Foot.SubTalarJoint.RotNode.ARel'*
Seg.Foot.SubTalarJoint.ARel';
#endif