geometry :: IPoint :: dist2_with_3d
private fun dist2_with_3d(other: IPoint3d[Numeric]): Numeric do return dist2_xy(other).add(other.z.mul(other.z))
redef fun dist2_with_3d(other) do var dz = other.z.sub(z) var s = dist2_xy(other).add(dz.mul(dz)) return x.value_of(s) end