76 lines (58 with data), 2.3 kB
// ************************************
// Drivers for the left arm
// ************************************
#if BM_ARM_LEFT & (BM_ARM_SHOULDER_RHYTHM == OFF)
//Sterno clavicular joint driver
AnyKinEqInterPolDriver SCDriverLeft ={
AnyKinMeasure& ref1 =...BodyModel.Interface.Left.SternoClavicularProtraction;
AnyKinMeasure& ref2 =...BodyModel.Interface.Left.SternoClavicularElevation;
Data = pi/180*{
.JntPos.Right.SternoClavicularProtractionVec,
.JntPos.Right.SternoClavicularElevationVec
};
T=.JntPos.Right.SternoClavicularTime;
Type=Bspline;
Reaction.Type={Off,Off};
};
#endif
//Glenohumeral joint driver
AnyKinEqInterPolDriver GHDriverLeft={
AnyKinMeasure& ref1 =...BodyModel.Interface.Left.GlenohumeralAbduction;
AnyKinMeasure& ref2 =...BodyModel.Interface.Left.GlenohumeralFlexion;
AnyKinMeasure& ref3 =...BodyModel.Interface.Left.GlenohumeralExternalRotation;
Data=pi/180*{
.JntPos.Right.GlenohumeralAbductionVec, //GH joint
.JntPos.Right.GlenohumeralFlexionVec, //GH joint
.JntPos.Right.GlenohumeralExternalRotationVec //GH joint
};
T=.JntPos.Right.GlenohumeralTime;
Type=Bspline;
Reaction.Type={Off,Off,Off};
};
//Elbow flexion driver
AnyKinEqInterPolDriver ElbowFEDriverLeft={
AnyKinMeasureOrg &Elbow =...BodyModel.Interface.Left.ElbowFlexion;
Data=pi/180*{.JntPos.Right.ElbowFlexionVec};
T=.JntPos.Right.ElbowFlexionTime;
Type=Bspline;
Reaction.Type={Off};
};
//Elbow pronation driver
AnyKinEqInterPolDriver ElbowPSDriverLeft={
AnyKinMeasure& Elbow =...BodyModel.Interface.Left.ElbowPronation;
Data = pi/180*{.JntPos.Right.ElbowPronationVec };
Type=Bspline;
T=.JntPos.Right.ElbowPronationTime;
Reaction.Type={Off};
};
//Wrist driver
AnyKinEqInterPolDriver WristDriverLeft ={
AnyKinMeasure& ref1 =...BodyModel.Interface.Left.WristFlexion;
AnyKinMeasure& ref2 =...BodyModel.Interface.Left.WristAbduction;
T=.JntPos.Left.WristTime;
Data = pi/180*{
.JntPos.Left.WristFlexionVec,
.JntPos.Left.WristAbductionVec};
Reaction.Type={Off,Off};
Type=Bspline;
};