[][src]Trait kd_tree::KdPoint

pub trait KdPoint {
    type Scalar: NumAssign + Copy + PartialOrd;
    type Dim: Unsigned;
    pub fn at(&self, i: usize) -> Self::Scalar;

    pub fn dim() -> usize { ... }
}

A trait to represent k-dimensional point.

Example

struct MyItem {
    point: [f64; 3],
    id: usize,
}
impl kd_tree::KdPoint for MyItem {
    type Scalar = f64;
    type Dim = typenum::U3;
    fn at(&self, k: usize) -> f64 { self.point[k] }
}
let kdtree: kd_tree::KdTree<MyItem> = kd_tree::KdTree::build_by_ordered_float(vec![
    MyItem { point: [1.0, 2.0, 3.0], id: 111 },
    MyItem { point: [3.0, 1.0, 2.0], id: 222 },
    MyItem { point: [2.0, 3.0, 1.0], id: 333 },
]);
assert_eq!(kdtree.nearest(&[3.1, 0.1, 2.2]).unwrap().item.id, 222);

Associated Types

Loading content...

Required methods

pub fn at(&self, i: usize) -> Self::Scalar[src]

Loading content...

Provided methods

pub fn dim() -> usize[src]

Loading content...

Implementations on Foreign Types

impl<T: NumAssign + Copy + PartialOrd> KdPoint for [T; 1][src]

type Scalar = T

type Dim = U1

impl<T: NumAssign + Copy + PartialOrd> KdPoint for [T; 2][src]

type Scalar = T

type Dim = U2

impl<T: NumAssign + Copy + PartialOrd> KdPoint for [T; 3][src]

type Scalar = T

type Dim = U3

impl<T: NumAssign + Copy + PartialOrd> KdPoint for [T; 4][src]

type Scalar = T

type Dim = U4

impl<T: NumAssign + Copy + PartialOrd> KdPoint for [T; 5][src]

type Scalar = T

type Dim = U5

impl<T: NumAssign + Copy + PartialOrd> KdPoint for [T; 6][src]

type Scalar = T

type Dim = U6

impl<T: NumAssign + Copy + PartialOrd> KdPoint for [T; 7][src]

type Scalar = T

type Dim = U7

impl<T: NumAssign + Copy + PartialOrd> KdPoint for [T; 8][src]

type Scalar = T

type Dim = U8

impl<T: NumAssign + Copy + PartialOrd> KdPoint for [T; 9][src]

type Scalar = T

type Dim = U9

impl<T: NumAssign + Copy + PartialOrd> KdPoint for [T; 10][src]

type Scalar = T

type Dim = U10

impl<T: NumAssign + Copy + PartialOrd> KdPoint for [T; 11][src]

type Scalar = T

type Dim = U11

impl<T: NumAssign + Copy + PartialOrd> KdPoint for [T; 12][src]

type Scalar = T

type Dim = U12

impl<T: NumAssign + Copy + PartialOrd> KdPoint for [T; 13][src]

type Scalar = T

type Dim = U13

impl<T: NumAssign + Copy + PartialOrd> KdPoint for [T; 14][src]

type Scalar = T

type Dim = U14

impl<T: NumAssign + Copy + PartialOrd> KdPoint for [T; 15][src]

type Scalar = T

type Dim = U15

impl<T: NumAssign + Copy + PartialOrd> KdPoint for [T; 16][src]

type Scalar = T

type Dim = U16

impl<P: KdPoint, T> KdPoint for (P, T)[src]

type Scalar = P::Scalar

type Dim = P::Dim

Loading content...

Implementors

Loading content...