Exemplo n.º 1
0
        // for the case when no begin/end information is accesible or if the engine is configured this way that it doesn't take track of begin/end of a contact
        public void instantaniousParticleContact(ref CollisionInformation collisionInformation, out EnumParticleCollisionResponse particleResponse)
        {
            EnumParticleCollisionResponse?nonneutralParticleResponse = null;

            foreach (ICollisionHandler iCollisionHandler in collisionHandlers)
            {
                EnumParticleCollisionResponse calleeParticleResponse;
                iCollisionHandler.instantaniousParticleContact(ref collisionInformation, out calleeParticleResponse);
                if (calleeParticleResponse != EnumParticleCollisionResponse.NEUTRAL)
                {
                    nonneutralParticleResponse = calleeParticleResponse;
                }
            }

            particleResponse = nonneutralParticleResponse == null ? EnumParticleCollisionResponse.REFLECT : nonneutralParticleResponse.Value;
        }
Exemplo n.º 2
0
 public void instantaniousParticleContact(ref CollisionInformation collisionInformation, out EnumParticleCollisionResponse particleResponse)
 {
     particleResponse = EnumParticleCollisionResponse.ABSORB;
 }