コード例 #1
0
        /// <summary>
        /// DetectAllCollisions
        /// </summary>
        /// <param name="bodies"></param>
        /// <param name="collisionFunctor"></param>
        /// <param name="collisionPredicate"></param>
        /// <param name="collTolerance"></param>
        public override void DetectAllCollisions(List <JigLibX.Physics.Body> bodies, CollisionFunctor collisionFunctor, CollisionSkinPredicate2 collisionPredicate, float collTolerance)
        {
            skinTester_.Set(this, collisionFunctor, collisionPredicate, collTolerance);

            MaybeSort();
            //  I know that each skin for the bodies is already in my list of skins.
            //  Thus, I can do collision between all skins, culling out non-active bodies.
            int nSkins = skins_.Count;

            active_.Clear();

#if WINDOWS_PHONE
            for (int i = 0; i != nSkins; ++i)
            {
                AddToActive(skins_[i], skinTester_);
            }
#else
            // BEN-OPTIMISATION: unsafe, remove array boundary checks.
            unsafe
            {
                for (int i = 0; i != nSkins; ++i)
                {
                    AddToActive(skins_[i], skinTester_);
                }
            }
#endif
        }
コード例 #2
0
        public override void DetectAllCollisions(List <JigLibX.Physics.Body> bodies, CollisionFunctor collisionFunctor, CollisionSkinPredicate2 collisionPredicate, float collTolerance)
        {
            skinTester_.Set(this, collisionFunctor, collisionPredicate, collTolerance);
            MaybeSort();
            //  I know that each skin for the bodies is already in my list of skins.
            //  Thus, I can do collision between all skins, culling out non-active bodies.
            int nSkins = skins_.Count;

            active_.Clear();
            //  sweep the sorted list for potential overlaps
            for (int i = 0; i != nSkins; ++i)
            {
                AddToActive(skins_[i], skinTester_);
            }
        }
コード例 #3
0
ファイル: CollisionSystemSAP.cs プロジェクト: jdarc/jiglibx
        public override void DetectAllCollisions(List <Physics.Body> bodies, CollisionFunctor collisionFunctor, CollisionSkinPredicate2 collisionPredicate, float collTolerance)
        {
            skinTester_.Set(this, collisionFunctor, collisionPredicate, collTolerance);

            MaybeSort();


            var nSkins = skins_.Count;

            active_.Clear();


            unsafe
            {
                for (var i = 0; i != nSkins; ++i)
                {
                    AddToActive(skins_[i], skinTester_);
                }
            }
        }