[][src]Trait broccoli::query::Queries

pub trait Queries<'a> {
    type T: Aabb<Num = Self::Num> + 'a;
    type Num: Num;
#[must_use]    fn vistr_mut(&mut self) -> VistrMut<'_, Node<'a, Self::T>>;
#[must_use] fn vistr(&self) -> Vistr<'_, Node<'a, Self::T>>; }

Query modules provide functions based off of this trait.

Associated Types

type T: Aabb<Num = Self::Num> + 'a[src]

type Num: Num[src]

Loading content...

Required methods

#[must_use]fn vistr_mut(&mut self) -> VistrMut<'_, Node<'a, Self::T>>[src]

Examples

 use broccoli::{prelude::*,bbox,rect,query::Queries};
 let mut bots = [bbox(rect(0,10,0,10),0)];
 let mut tree = broccoli::new(&mut bots);

 use compt::Visitor;
 for b in tree.vistr_mut().dfs_preorder_iter().flat_map(|n|n.into_range().iter_mut()){
    *b.unpack_inner()+=1;    
 }
 assert_eq!(bots[0].inner,1);

#[must_use]fn vistr(&self) -> Vistr<'_, Node<'a, Self::T>>[src]

Examples

 use broccoli::{prelude::*,bbox,rect,query::Queries};
 let mut bots = [rect(0,10,0,10)];
 let mut tree = broccoli::new(&mut bots);

 use compt::Visitor;
 let mut test = Vec::new();
 for b in tree.vistr().dfs_preorder_iter().flat_map(|n|n.range.iter()){
    test.push(b);
 }
 assert_eq!(test[0],&axgeom::rect(0,10,0,10));
Loading content...

Implementors

impl<'a, T: Aabb> Queries<'a> for Tree<'a, T>[src]

type T = T

type Num = T::Num

Loading content...