/*******************************************************************************
* Copyright 2011 See AUTHORS file.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
******************************************************************************/
package com.badlogic.gdx.physics.box2d;
public interface ContactListener {
/** Called when two fixtures begin to touch. */
public void beginContact(Contact contact);
/** Called when two fixtures cease to touch. */
public void endContact(Contact contact);
/*
* This is called after a contact is updated. This allows you to inspect a contact before it goes to the solver. If you are
* careful, you can modify the contact manifold (e.g. disable contact). A copy of the old manifold is provided so that you can
* detect changes. Note: this is called only for awake bodies. Note: this is called even when the number of contact points is
* zero. Note: this is not called for sensors. Note: if you set the number of contact points to zero, you will not get an
* EndContact callback. However, you may get a BeginContact callback the next step.
*/
public void preSolve(Contact contact, Manifold oldManifold);
/*
* This lets you inspect a contact after the solver is finished. This is useful for inspecting impulses. Note: the contact
* manifold does not include time of impact impulses, which can be arbitrarily large if the sub-step is small. Hence the
* impulse is provided explicitly in a separate data structure. Note: this is only called for contacts that are touching,
* solid, and awake.
*/
public void postSolve(Contact contact, ContactImpulse impulse);
}