static func convert_velocity_to_force(velocity, mass, delta) -> float:
	return (velocity * mass) / delta


static func convert_force_to_velocity(force, mass, delta) -> float:
	return (force / mass) * delta


static func complete_unelastic_shock(
	v1: float, v2: float, m1: float, m2: float
) -> float:
	return (m1 * v1 + m2 * v2) / (m1 + m2)


# Explicit euler method looking one step into the future
# Returns the mean velocity of applying the force two times
static func two_step_euler(v0, force, mass, delta) -> float:
	var v1 = v0 + force / mass * delta
	var v2 = v1 + force / mass * delta
	return (v1 + v2) / 2
