void calculateDesiredDeltaVelocity(double duration) {
		
		double velocityFromAcc = 0.0d;
		
		if (body[0].getAwake())
		{
			Vector3d lfa = new Vector3d(body[0].getLastFrameAcceleration());
			lfa.Multiply(duration);
			velocityFromAcc = lfa.ScalarProduct(contactNormal);
			//body[0].setLastFrameAcceleration(lfa);
			
		}
		
		if (body[1] != null && body[1].getAwake())
		{
			Vector3d lfa = new Vector3d(body[1].getLastFrameAcceleration());
			lfa.Multiply(duration);
			
			velocityFromAcc -= lfa.ScalarProduct(contactNormal);
		}
		
		double thisRestitution = restitution;
		
		if (Math.abs(contactVelocity.x) < velocityLimit)
		{
			thisRestitution = 0.0d;
		}
		
		desiredDeltaVelocity = -contactVelocity.x - thisRestitution* (contactVelocity.x - velocityFromAcc);
	}