예제 #1
0
 public void OnChildPairCompleted(int pairId, int childA, int childB, ref ConvexContactManifold manifold)
 {
     //If you need to do any processing on a child manifold before it goes back to a nonconvex processing pass, this is the place to do it.
     //Convex-convex pairs won't invoke this function at all.
 }
예제 #2
0
 public bool ConfigureContactManifold(int workerIndex, CollidablePair pair, int childIndexA, int childIndexB,
                                      ref ConvexContactManifold manifold)
 {
     return(true);
 }
예제 #3
0
 private static unsafe void ComputeMeshSpaceContacts(ref ConvexContactManifold manifold, in Matrix3x3 inverseMeshOrientation, bool requiresFlip, Vector3 *meshSpaceContacts, out Vector3 meshSpaceNormal)
 public bool ConfigureContactManifold(int workerIndex, CollidablePair pair, int childIndexA, int childIndexB, ref ConvexContactManifold manifold)
 {
     if (manifold.Count > 0)
     {
         Console.WriteLine($"SUBPAIR: {pair.A} child {childIndexA} versus {pair.B} child {childIndexB}");
     }
     return(true);
 }
예제 #5
0
 public unsafe void OnChildCompleted <TCallbacks>(ref PairContinuation report, ref ConvexContactManifold manifold, ref CollisionBatcher <TCallbacks> batcher)
     where TCallbacks : struct, ICollisionCallbacks
 {
     Inner.OnChildCompleted(ref report, ref manifold, ref batcher);
 }
예제 #6
0
 public unsafe void OnChildPairCompleted(int pairId, int childA, int childB, ref ConvexContactManifold manifold)
 {
 }
예제 #7
0
            public bool ConfigureContactManifold(int workerIndex, CollidablePair pair, int childIndexA, int childIndexB, ref ConvexContactManifold manifold)
            {
                BepuPhysicsComponent A = getFromReference(pair.A);
                BepuPhysicsComponent B = getFromReference(pair.B);

                if (((uint)A.CanCollideWith & (uint)B.CollisionGroup) != 0)
                {
                    RecordContact(A, B, ref manifold);
                    return(!A.GhostBody && !B.GhostBody);
                }
                return(false);
            }
예제 #8
0
 static unsafe void RemoveIfOutsideBounds(ref ConvexContactManifold manifold, ref int contactIndex, in Vector3 meshSpaceContact, in BoundingBox queryBounds)
 public bool ConfigureContactManifold(int workerIndex, CollidablePair pair, int childIndexA, int childIndexB, ref
                                      ConvexContactManifold manifold)
 {
     return(CollisionGroup.AllowCollision(CollisionGroups[pair.A.Handle].Filter, CollisionGroups[pair.B.Handle].Filter));
 }