bool _SolveLimbTranslate( Limb limb, out Vector3 origTranslate )
{
origTranslate = Vector3.zero;
float lerpRate = (limb == arms) ? _solverCaches.limbArmRate : _solverCaches.limbLegRate;
if( limb.targetBeginPosEnabled[0] && limb.targetBeginPosEnabled[1] ) {
origTranslate = Vector3.Lerp( this.origTranslate[0], this.origTranslate[1], lerpRate );
} else if( limb.targetBeginPosEnabled[0] || limb.targetBeginPosEnabled[1] ) {
int i0 = limb.targetBeginPosEnabled[0] ? 0 : 1;
float lerpRate1to0 = limb.targetBeginPosEnabled[0] ? (1.0f - lerpRate) : lerpRate;
origTranslate = this.origTranslate[i0] * lerpRate1to0;
}
return (origTranslate != Vector3.zero);
}