248 lines (190 with data), 7.5 kB
//Interface for trunk
AnyFolder Spine =
{
AnyKinMeasureOrg &SacrumPelvis = ..JointsLumbar.SacrumPelvisJnt;
AnyKinMeasureOrg &L5Sacrum = ..JointsLumbar.L5SacrumJnt;
AnyKinMeasureOrg &L4L5 = ..JointsLumbar.L4L5Jnt;
AnyKinMeasureOrg &L3L4 = ..JointsLumbar.L3L4Jnt;
AnyKinMeasureOrg &L2L3 = ..JointsLumbar.L2L3Jnt;
AnyKinMeasureOrg &L1L2 = ..JointsLumbar.L1L2Jnt;
AnyKinMeasureOrg &T12L1 = ..JointsLumbar.T12L1Jnt;
AnyKinMeasureOrg &T1C7 = ..JointsCervicalSpine.T1C7Jnt;
AnyKinMeasureOrg &C7C6 = ..JointsCervicalSpine.C7C6Jnt;
AnyKinMeasureOrg &C6C5 = ..JointsCervicalSpine.C6C5Jnt;
AnyKinMeasureOrg &C5C4 = ..JointsCervicalSpine.C5C4Jnt;
AnyKinMeasureOrg &C4C3 = ..JointsCervicalSpine.C4C3Jnt;
AnyKinMeasureOrg &C3C2 = ..JointsCervicalSpine.C3C2Jnt;
AnyKinMeasureOrg &C2C1 = ..JointsCervicalSpine.C2C1Jnt;
AnyKinMeasureOrg &C1C0 = ..JointsCervicalSpine.C1C0Jnt;
};
// Rotational measures used for joint nuscles
AnyKinRotational L5SacrumJntMus =
{
Type = RotAxesAngles;
AngVelOnOff = On;
AnyRefFrame &SacrumNode = ...Trunk.SegmentsLumbar.SacrumSeg.SacrumL5JntNode;
AnyRefFrame &L5Node = ...Trunk.SegmentsLumbar.L5Seg.L5SacrumJntNode;
};
AnyKinRotational L4L5JntMus =
{
Type = RotAxesAngles;
AngVelOnOff = On;
AnyRefFrame &L5Node = ...Trunk.SegmentsLumbar.L5Seg.L4L5JntNode;
AnyRefFrame &L4Node = ...Trunk.SegmentsLumbar.L4Seg.L4L5JntNode;
};
AnyKinRotational L3L4JntMus =
{
Type = RotAxesAngles;
AngVelOnOff = On;
AnyRefFrame &L4Node = ...Trunk.SegmentsLumbar.L4Seg.L3L4JntNode;
AnyRefFrame &L3Node = ...Trunk.SegmentsLumbar.L3Seg.L3L4JntNode;
};
AnyKinRotational L2L3JntMus =
{
Type = RotAxesAngles;
AngVelOnOff = On;
AnyRefFrame &L3Node = ...Trunk.SegmentsLumbar.L3Seg.L2L3JntNode;
AnyRefFrame &L2Node = ...Trunk.SegmentsLumbar.L2Seg.L2L3JntNode;
};
AnyKinRotational L1L2JntMus =
{
Type = RotAxesAngles;
AngVelOnOff = On;
AnyRefFrame &L2Node = ...Trunk.SegmentsLumbar.L2Seg.L1L2JntNode;
AnyRefFrame &L1Node = ...Trunk.SegmentsLumbar.L1Seg.L1L2JntNode;
};
AnyKinRotational T12L1JntMus =
{
Type = RotAxesAngles;
AngVelOnOff = On;
AnyRefFrame &L1Node = ...Trunk.SegmentsLumbar.L1Seg.T12L1JntNode;
AnyRefFrame &T12Node = ...Trunk.SegmentsThorax.T12Seg.T12L1JntNode;
};
AnyKinRotational T1C7JntMus =
{
Type = RotAxesAngles;
AngVelOnOff = On;
AnyRefFrame &T1Node = ...Trunk.SegmentsThorax.T1Seg.T1C7JntNode;
AnyRefFrame &C7Node = ...Trunk.SegmentsCervicalSpine.C7Seg.T1C7JntNode;
};
AnyKinRotational C7C6JntMus =
{
Type = RotAxesAngles;
AngVelOnOff = On;
AnyRefFrame &C7Node = ...Trunk.SegmentsCervicalSpine.C7Seg.C7C6JntNode;
AnyRefFrame &C6Node = ...Trunk.SegmentsCervicalSpine.C6Seg.C7C6JntNode;
};
AnyKinRotational C6C5JntMus =
{
Type = RotAxesAngles;
AngVelOnOff = On;
AnyRefFrame &C6Node = ...Trunk.SegmentsCervicalSpine.C6Seg.C6C5JntNode;
AnyRefFrame &C5Node = ...Trunk.SegmentsCervicalSpine.C5Seg.C6C5JntNode;
};
AnyKinRotational C5C4JntMus =
{
Type = RotAxesAngles;
AngVelOnOff = On;
AnyRefFrame &C5Node = ...Trunk.SegmentsCervicalSpine.C5Seg.C5C4JntNode;
AnyRefFrame &C4Node = ...Trunk.SegmentsCervicalSpine.C4Seg.C5C4JntNode;
};
AnyKinRotational C4C3JntMus =
{
Type = RotAxesAngles;
AngVelOnOff = On;
AnyRefFrame &C4Node = ...Trunk.SegmentsCervicalSpine.C4Seg.C4C3JntNode;
AnyRefFrame &C3Node = ...Trunk.SegmentsCervicalSpine.C3Seg.C4C3JntNode;
};
AnyKinRotational C3C2JntMus =
{
Type = RotAxesAngles;
AngVelOnOff = On;
AnyRefFrame &C3Node = ...Trunk.SegmentsCervicalSpine.C3Seg.C3C2JntNode;
AnyRefFrame &C2Node = ...Trunk.SegmentsCervicalSpine.C2Seg.C3C2JntNode;
};
AnyKinRotational C2C1JntMus =
{
Type = RotAxesAngles;
AngVelOnOff = On;
AnyRefFrame &C2Node = ...Trunk.SegmentsCervicalSpine.C2Seg.C2C1JntNode;
AnyRefFrame &C1Node = ...Trunk.SegmentsCervicalSpine.C1Seg.C2C1JntNode;
};
AnyKinRotational C1C0JntMus =
{
Type = RotAxesAngles;
AngVelOnOff = On;
AnyRefFrame &C1Node = ...Trunk.SegmentsCervicalSpine.C1Seg.C1C0JntNode;
AnyRefFrame &C0Node = ...Trunk.SegmentsCervicalSpine.SkullSeg.C1C0JntNode;
};
// End of rotational measures used for joint nuscles
AnyKinMeasureOrg PelvisPosX ={
AnyKinLinear lin ={};
// The linear position of pelvis is given by a frame at the midpoints between the ASIS
lin = {AnyRefFrame &ref2 =....Trunk.SegmentsLumbar.PelvisSeg.AnatomicalFrame; };
MeasureOrganizer={0};
};
AnyKinMeasureOrg PelvisPosY ={
AnyKinLinear &ref=.PelvisPosX.lin;
MeasureOrganizer={1};
};
AnyKinMeasureOrg PelvisPosZ ={
AnyKinLinear &ref=.PelvisPosX.lin;
MeasureOrganizer={2};
};
AnyKinMeasureOrg PelvisRotX ={
AnyKinRotational rot = {Type=RotAxesAngles;};
//The pelvis frame is added in its own scope to allow the user to
//inject another reference as the first member to override the implicit
//default global frame
rot = {AnyRefFrame &ref2 =....Trunk.SegmentsLumbar.PelvisSeg.AnatomicalFrameTrunk; };
MeasureOrganizer={2};
};
AnyKinMeasureOrg PelvisRotY ={
AnyKinRotational &ref=.PelvisRotX.rot;
MeasureOrganizer={1};
};
AnyKinMeasureOrg PelvisRotZ ={
AnyKinRotational &ref=.PelvisRotX.rot;
MeasureOrganizer={0};
};
AnyKinRotational PelvisRotVec = {
Type = RotVector;
AnyRefFrame &ref =...Trunk.SegmentsLumbar.PelvisSeg.AnatomicalFrameTrunk;
};
AnyKinMeasureOrg PelvisThoraxExtension={
AnyKinRotational &ref=...Trunk.JointsLumbar.PelvisThoraxRotMeasure;
MeasureOrganizer={2};
};
AnyKinMeasureOrg PelvisThoraxLateralBending={
AnyKinRotational &ref=...Trunk.JointsLumbar.PelvisThoraxRotMeasure;
MeasureOrganizer={0};
};
AnyKinMeasureOrg PelvisThoraxRotation={
AnyKinRotational &ref=...Trunk.JointsLumbar.PelvisThoraxRotMeasure;
MeasureOrganizer={1};
};
AnyKinMeasure& SkullThoraxFlexion = ..Trunk.JointsCervicalSpine.Flexion.SkullThoraxFlexion;
AnyKinMeasureOrg PelvisT12Extension={
AnyKinRotational &ref=...Trunk.JointsLumbar.PelvisT12RotMeasure;
MeasureOrganizer={2};
};
AnyKinMeasureOrg PelvisT12LateralBending={
AnyKinRotational &ref=...Trunk.JointsLumbar.PelvisT12RotMeasure;
MeasureOrganizer={0};
};
AnyKinMeasureOrg PelvisT12Rotation={
AnyKinRotational &ref=...Trunk.JointsLumbar.PelvisT12RotMeasure;
MeasureOrganizer={1};
};
AnyKinMeasure& SkullThoraxLateralBending = ..Trunk.JointsCervicalSpine.LateralBending.SkullThoraxLateralBending;
AnyKinMeasure& SkullThoraxRotation = ..Trunk.JointsCervicalSpine.Rotation.SkullThoraxRotation;
//Make references to contact points on the spine
AnyRefNode & Seat1RContactNode= ..Trunk.SegmentsLumbar.PelvisSeg.Seat1RContactNode;
AnyRefNode & Seat2RContactNode= ..Trunk.SegmentsLumbar.PelvisSeg.Seat2RContactNode;
AnyRefNode & Seat3RContactNode= ..Trunk.SegmentsLumbar.PelvisSeg.Seat3RContactNode;
AnyRefNode & Seat4RContactNode= ..Trunk.SegmentsLumbar.PelvisSeg.Seat4RContactNode;
AnyRefNode & Seat1LContactNode= ..Trunk.SegmentsLumbar.PelvisSeg.Seat1LContactNode;
AnyRefNode & Seat2LContactNode= ..Trunk.SegmentsLumbar.PelvisSeg.Seat2LContactNode;
AnyRefNode & Seat3LContactNode= ..Trunk.SegmentsLumbar.PelvisSeg.Seat3LContactNode;
AnyRefNode & Seat4LContactNode= ..Trunk.SegmentsLumbar.PelvisSeg.Seat4LContactNode;
AnyRefNode & SacrumContactNode = ..Trunk.SegmentsLumbar.SacrumSeg.SacrumContactNode;