///|
/// Tolerance-based geometry demo: create near-coincident points, use ToleranceCtx to detect them.
/// 容差几何演示:创建近似重合的点,使用 ToleranceCtx 检测。
fn main {
let tol = @geo.tolerance_ctx_loose()
let a = @geo.Point2D::new(1.0, 2.0)
let b = @geo.Point2D::new(1.0000001, 2.0000001)
let c = @geo.Point2D::new(1.5, 2.0)
println("Point a: (1.0, 2.0)")
println("Point b: (1.0000001, 2.0000001)")
println("Point c: (1.5, 2.0)")
println("a coincide b (loose tol): \{@geo.points_coincide(a, b, tol)}")
println("a coincide c (loose tol): \{@geo.points_coincide(a, c, tol)}")
let strict_tol = @geo.tolerance_ctx_strict()
println(
"a coincide b (strict tol): \{@geo.points_coincide(a, b, strict_tol)}",
)
let p1 = @geo.Point2D::new(0.0, 0.0)
let p2 = @geo.Point2D::new(1.0, 0.0)
let p3 = @geo.Point2D::new(2.0, 0.0)
println("p1,p2,p3 collinear: \{@geo.points_collinear(p1, p2, p3, tol)}")
}