Exemplo n.º 1
0
 public void Update <TCollision, TConstraint>(ref CollidablePairPointers pointers, ref TCollision collisionCache, ref TConstraint constraintCache, int manifoldTypeAsConstraintType)
     where TCollision : IPairCacheEntry where TConstraint : IPairCacheEntry
 {
     WorkerCacheAdd(ref collisionCache, ref constraintCache, manifoldTypeAsConstraintType, out pointers);
 }
Exemplo n.º 2
0
        private unsafe void WorkerCacheAdd <TCollision, TConstraint>(ref TCollision collisionCache, ref TConstraint constraintCache, int manifoldTypeAsConstraintType, out CollidablePairPointers pointers)
            where TCollision : IPairCacheEntry where TConstraint : IPairCacheEntry
        {
            pointers.ConstraintCache = new PairCacheIndex(workerIndex, manifoldTypeAsConstraintType, constraintCaches[constraintCache.TypeId].Add(ref constraintCache, minimumPerTypeCapacity, pool));

            if (typeof(TCollision) == typeof(EmptyCollisionCache))
            {
                pointers.CollisionDetectionCache = new PairCacheIndex();
            }
            else
            {
                pointers.CollisionDetectionCache = new PairCacheIndex(workerIndex, collisionCache.TypeId, collisionCaches[collisionCache.TypeId].Add(ref collisionCache, minimumPerTypeCapacity, pool));
            }
        }