[−][src]Trait ball_tree::Point
A Point
is something that exists in some sort of metric space, and
can thus calculate its distance to another Point
, and can be moved
a certain distance towards another Point
.
Required methods
fn distance(&self, other: &Self) -> f64
Distances should be positive, finite f64
s. It is undefined behavior to
return a negative, infinite, or NaN
result.
Distance should satisfy the triangle inequality. That is, a.distance(c)
must be less or equal to than a.distance(b) + b.distance(c)
.
fn move_towards(&self, other: &Self, d: f64) -> Self
If d
is 0
, a point equal to the self
should be returned. If d
is equal
to self.distance(other)
, a point equal to other
should be returned.
Intermediate distances should be linearly interpolated between the two points,
so if d
is equal to self.distance(other) / 2.0
, the midpoint should be
returned.
It is undefined behavior to use a distance that is negative, NaN
, or greater
than self.distance(other)
.