private bool MoveLimit(int _nIdx) { CSwayParamDetail cswayParamDetail = this.m_Param.listDetail[_nIdx]; SpringCtrl.CSpringPoint cspringPoint = this.m_listSpringCtrl[_nIdx].listPoint[0]; cspringPoint.vPos.x = (__Null)(double)Mathf.Clamp((float)cspringPoint.vPos.x, (float)cswayParamDetail.vLimitMinT.x, (float)cswayParamDetail.vLimitMaxT.x); cspringPoint.vPos.y = (__Null)(double)Mathf.Clamp((float)cspringPoint.vPos.y, (float)cswayParamDetail.vLimitMinT.y, (float)cswayParamDetail.vLimitMaxT.y); cspringPoint.vPos.z = (__Null)(double)Mathf.Clamp((float)cspringPoint.vPos.z, (float)cswayParamDetail.vLimitMinT.z, (float)cswayParamDetail.vLimitMaxT.z); return(true); }
private bool CalcRot(int _nIdx) { CSwayParamDetail cswayParamDetail = this.m_Param.listDetail[_nIdx]; SpringCtrl.CSpringPoint cspringPoint = this.m_listSpringCtrl[_nIdx].listPoint[0]; this.m_listRot[_nIdx] = Vector3.get_zero(); int index1 = cspringPoint.vPos.y < 0.0 ? 1 : 0; int index2 = cspringPoint.vPos.x < 0.0 ? 1 : 0; float num1 = 0.0f; float num2 = 0.0f; float[] numArray1 = new float[2] { (float)cswayParamDetail.vLimitMaxT.y, (float)cswayParamDetail.vLimitMinT.y }; float[] numArray2 = new float[2] { (float)cswayParamDetail.vLimitMaxT.x, (float)cswayParamDetail.vLimitMinT.x }; float[] numArray3 = new float[2] { (float)cswayParamDetail.vLimitMaxR.y, (float)cswayParamDetail.vLimitMinR.y }; float[] numArray4 = new float[2] { (float)cswayParamDetail.vLimitMaxR.x, (float)cswayParamDetail.vLimitMinR.x }; if ((double)numArray1[index1] == 1.0) { num1 = (float)-cspringPoint.vPos.y / numArray1[index1]; } if ((double)numArray2[index2] == 1.0) { num2 = (float)cspringPoint.vPos.x / numArray2[index2]; } Vector3 vector3 = this.m_listRot[_nIdx]; ((Vector3) ref vector3).Set(numArray4[index1] * num1, numArray3[index2] * num2, 0.0f); return(true); }
public bool CatchProc(Transform _transRef, float _fmx, float _fmy, int _nBoneIdx) { bool flag1 = true; FakeTransform _ftransBlend = new FakeTransform(); bool flag2 = flag1 & this.CalcBlendMatrixT(_ftransBlend, this.m_listBone[_nBoneIdx], true, this.m_Param.listDetail[_nBoneIdx]); Vector3 vector3_1; ((Vector3) ref vector3_1).\u002Ector(_fmx, _fmy, 0.0f); Vector3 vector3_2 = _transRef.TransformPoint(vector3_1); this.m_listObjCalc[0].get_transform().Identity(); this.m_listObjCalc[0].get_transform().set_position(_ftransBlend.Pos); this.m_listObjCalc[0].get_transform().set_rotation(_ftransBlend.Rot); this.m_listObjCalc[0].get_transform().set_localScale(_ftransBlend.Scale); Vector3 vector3_3 = this.m_listObjCalc[0].get_transform().InverseTransformVector(_transRef.get_position()); Vector3 vector3_4 = Vector3.op_Subtraction(this.m_listObjCalc[0].get_transform().InverseTransformVector(vector3_2), vector3_3); SpringCtrl.CSpringPoint cspringPoint = this.m_listSpringCtrl[_nBoneIdx].listPoint[0]; cspringPoint.vPos = Vector3.op_Addition(cspringPoint.vPos, vector3_4); return(flag2 & this.MoveLimit(_nBoneIdx)); }