[bfdf16]: / Body / AAUHuman / Trunk / Interface.any

Download this file

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;