[38ba34]: / Body / AAUHuman / Arm / ScapulaConoideumDriver.any

Download this file

42 lines (32 with data), 1.9 kB

//This is included from jnt.any when no shoulder rhythm is included.
// This is its own include file, so the calibration studies can reuse
// the drivers. 

//Replaced by rhythm.
AnyKinEqSimpleDriver ScapulaTSThoraxNodeDriver = 
{
  AnyKinMeasure &Measure1=.ScapulaTSThoraxMeasure ;
  DriverPos = {0};
  DriverVel = {0};
  Reaction.Type = {Off};
};


//Replaced by rhythm
AnyKinEqSimpleDriver ConoideumLigamentDrv ={
  
  //This the position of conoid node on clavicual unscaled
  AnyVec3  ClaviculaConoidR=..Seg.Clavicula.Data.NeutralPositionOnPelvis_pos+ ..Seg.Clavicula.Data.conoid_pos*..Seg.Clavicula.Data.Clavicula_Axes';  
    
  //This the position of conoid node on clavicual unscaled
  AnyVec3  ScapulaConoidR=..Seg.Scapula.Data.NeutralPositionOnPelvis_pos+ ..Seg.Scapula.Data.conoid_pos*..Seg.Scapula.Data.Scapula_Axes';
  
  AnyVec3 StandardConoidVector= ClaviculaConoidR-ScapulaConoidR;
  
  #if BM_ARM_DELTOID_WRAPPING == _DELTOID_WRAPPING_RAKE_
  // This scaling factor measures unscaled and scaled thickness of scapula segment to assess the relative change in conoid ligament
  AnyVar ScaleFactor = vnorm (..Seg.Scapula.O_deltoideus_scapular_part_5.sRel -..Seg.Scapula.O_deltoideus_scapular_part_3.sRel) 
        / vnorm(..Seg.Scapula.Data.O_deltoideus_scapular_part_5_pos -..Seg.Scapula.Data.O_deltoideus_scapular_part_3_pos) ;
  #else
  AnyVar ScaleFactor = vnorm (..Seg.Scapula.O_deltoideus_lateral_part_4.sRel -..Seg.Scapula.O_deltoideus_lateral_part_1.sRel) 
  / vnorm(..Seg.Scapula.Data.O_deltoideus_lateral_part_4_pos -..Seg.Scapula.Data.O_deltoideus_lateral_part_1_pos) ;
  #endif
    
  AnyFloat ScaleStdConoidVectorLength = vnorm(StandardConoidVector)*ScaleFactor;
  
  AnyKinPLine &ref=.ConoideumLigament;
  DriverPos={ScaleStdConoidVectorLength};
  DriverVel={0};
  Reaction.Type={Off};
};