72 lines (57 with data), 2.2 kB
// ************************************
// Drivers for the right arm
// ************************************
#if BM_ARM_RIGHT & (BM_ARM_SHOULDER_RHYTHM == 0)
//Sterno clavicular joint driver
AnyKinEqInterPolDriver SCDriverRight ={
AnyKinMeasure& ref1 =...BodyModel.Interface.Right.SternoClavicularProtraction;
AnyKinMeasure& ref2 =...BodyModel.Interface.Right.SternoClavicularElevation;
Data = pi/180*{
.JntPos.Left.SternoClavicularProtractionVec,
.JntPos.Left.SternoClavicularElevationVec
};
T=.JntPos.Left.SternoClavicularTime;
Type=Bspline ;
Reaction.Type={Off,Off};
};
#endif
//Glenohumeral joint
AnyKinEqInterPolDriver GHDriverRight={
AnyKinMeasure& ref1 =...BodyModel.Interface.Right.GlenohumeralAbduction;
AnyKinMeasure& ref2 =...BodyModel.Interface.Right.GlenohumeralFlexion;
AnyKinMeasure& ref3 =...BodyModel.Interface.Right.GlenohumeralExternalRotation;
Data=pi/180*{
.JntPos.Left.GlenohumeralAbductionVec, //GH joint
.JntPos.Left.GlenohumeralFlexionVec, //GH joint
.JntPos.Left.GlenohumeralExternalRotationVec //GH joint
};
T=.JntPos.Left.GlenohumeralTime;
Type=Bspline;
Reaction.Type={Off,Off,Off};
};
//Elbow flexion driver
AnyKinEqInterPolDriver ElbowFlexionDriverRight={
AnyKinMeasureOrg &Elbow =...BodyModel.Interface.Right.ElbowFlexion;
Data=pi/180*{.JntPos.Left.ElbowFlexionVec};
T=.JntPos.Left.ElbowFlexionTime;
Type=Bspline;
Reaction.Type={Off};
};
//Elbow pronation driver
AnyKinEqInterPolDriver ElbowPronationDriverRight={
AnyKinMeasure& Elbow =...BodyModel.Interface.Right.ElbowPronation;
Data= pi/180*{.JntPos.Left.ElbowPronationVec };
T=.JntPos.Left.ElbowPronationTime;
Type=Bspline; Reaction.Type={Off};
};
//Wrist driver
AnyKinEqInterPolDriver WristDriverRight ={
AnyKinMeasure& ref1 =...BodyModel.Interface.Right.WristFlexion;
AnyKinMeasure& ref2 =...BodyModel.Interface.Right.WristAbduction;
Data = pi/180*{
.JntPos.Left.WristFlexionVec,
.JntPos.Left.WristAbductionVec};
Type=Bspline;
T=.JntPos.Left.WristTime;
Reaction.Type={Off,Off};
};