예제 #1
0
파일: Simplex.cs 프로젝트: pabllopf/Alis
        /// <summary>
        ///     Gets the witness points using the specified p a
        /// </summary>
        /// <param name="pA">The </param>
        /// <param name="pB">The </param>
        internal unsafe void GetWitnessPoints(Vec2 *pA, Vec2 *pB)
        {
            switch (Count)
            {
            case 0:
                Box2DxDebug.Assert(false);
                break;

            case 1:
                *pA = V1.Wa;
                *pB = V1.Wb;
                break;

            case 2:
                *pA = V1.A * V1.Wa + V2.A * V2.Wa;
                *pB = V1.A * V1.Wb + V2.A * V2.Wb;
                break;

            case 3:
                *pA = V1.A * V1.Wa + V2.A * V2.Wa + V3.A * V3.Wa;
                *pB = *pA;
                break;

            default:
                Box2DxDebug.Assert(false);
                break;
            }
        }
예제 #2
0
        internal unsafe void GetWitnessPoints(Vec2 *pA, Vec2 *pB)
        {
            switch (_count)
            {
            case 0:
                Box2DNetDebug.Assert(false);
                break;

            case 1:
                *pA = _v1.wA;
                *pB = _v1.wB;
                break;

            case 2:
                *pA = _v1.a * _v1.wA + _v2.a * _v2.wA;
                *pB = _v1.a * _v1.wB + _v2.a * _v2.wB;
                break;

            case 3:
                *pA = _v1.a * _v1.wA + _v2.a * _v2.wA + _v3.a * _v3.wA;
                *pB = *pA;
                break;

            default:
                Box2DNetDebug.Assert(false);
                break;
            }
        }