public void Process() { if (null != this.additive_parent) { BoneController.LiteTransform deltaTransform = this.additive_parent.GetDeltaTransform(this.add_local); if (this.add_move) { base.transform.localPosition += deltaTransform.position * this.additive_rate; } if (this.add_rotate) { Quaternion quaternion; if (0f <= this.additive_rate) { quaternion = Quaternion.Slerp(Quaternion.identity, deltaTransform.rotation, this.additive_rate); } else { Quaternion quaternion2 = Quaternion.Inverse(deltaTransform.rotation); quaternion = Quaternion.Slerp(Quaternion.identity, quaternion2, -this.additive_rate); } base.transform.localRotation *= quaternion; } } }
public BoneController.LiteTransform GetDeltaTransform(bool is_add_local) { BoneController.LiteTransform result; if (is_add_local) { result = new BoneController.LiteTransform(base.transform.position - this.prev_global_.position, Quaternion.Inverse(this.prev_global_.rotation) * base.transform.rotation); } else { result = new BoneController.LiteTransform(base.transform.localPosition - this.prev_local_.position, Quaternion.Inverse(this.prev_local_.rotation) * base.transform.localRotation); } return(result); }