public void processCollisions(double timeStep) {
		for (Iterator<CollisionPair> it = collisionBroadphase
				.getCollisionPairs().iterator(); it.hasNext();) {
			CollisionPair pair = (CollisionPair) it.next();

			double restitution = Math.min(pair.rigidBody1.getResitution(),
					pair.rigidBody2.getResitution());
			if (pair.rigidBody1.getCollisionObject() instanceof SphereObject
					&& pair.rigidBody2.getCollisionObject() instanceof SphereObject) {
				CollisionHandler.processSphereSphereCollision(pair.rigidBody1,
						pair.rigidBody2, restitution, timeStep);
			} else if (pair.rigidBody1.getCollisionObject() instanceof PlaneObject
					&& pair.rigidBody2.getCollisionObject() instanceof SphereObject) {
				CollisionHandler.processSpherePlaneCollision(pair.rigidBody1,
						pair.rigidBody2, restitution, timeStep);
			} else if (pair.rigidBody1.getCollisionObject() instanceof SphereObject
					&& pair.rigidBody2.getCollisionObject() instanceof PlaneObject) {
				CollisionHandler.processSpherePlaneCollision(pair.rigidBody2,
						pair.rigidBody1, restitution, timeStep);
			} else if (pair.rigidBody1.getCollisionObject() instanceof MeshObject
					&& pair.rigidBody2.getCollisionObject() instanceof MeshObject) {
				CollisionHandler.processMeshMeshCollision(pair.rigidBody1,
						pair.rigidBody2, restitution, timeStep);
			}
		}
	}