Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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));
        }