protected void internalSingleStepSimulation(float timeStep) { // apply gravity, predict motion predictUnconstraintMotion(timeStep); DispatcherInfo dispatchInfo = getDispatchInfo(); dispatchInfo.timeStep = timeStep; dispatchInfo.stepCount = 0; dispatchInfo.debugDraw = getDebugDrawer(); // perform collision detection performDiscreteCollisionDetection(); calculateSimulationIslands(); getSolverInfo().timeStep = timeStep; // solve contact and other joint constraints solveConstraints(getSolverInfo()); // CallbackTriggers(); // integrate transforms integrateTransforms(timeStep); // update vehicle simulation updateActions(timeStep); // update vehicle simulation updateVehicles(timeStep); updateActivationState(timeStep); if (internalTickCallback != null) { internalTickCallback.internalTick(this, timeStep); } }