var searchIndex = {}; searchIndex["spatial"] = {"doc":"Spatial Trees","items":[[0,"geometry","spatial","Various geometric shapes to insert into spatial trees",null,null],[3,"Point","spatial::geometry","An n-dimensional point",null,null],[12,"coords","","",0,null],[3,"LineSegment","","An n-dimensional line segment",null,null],[12,"x","","",1,null],[12,"y","","",1,null],[3,"Rect","","An n-dimensional rectangle",null,null],[12,"edges","","",2,null],[4,"Shapes","","A convenience enum that contains `Point`, `LineSegment`, and `Rect`",null,null],[13,"Point","","",3,null],[13,"LineSegment","","",3,null],[13,"Rect","","",3,null],[11,"clone","","",0,null],[11,"fmt","","",0,null],[11,"new","","New Point from a `GenericArray`",0,{"inputs":[{"name":"genericarray"}],"output":{"name":"point"}}],[11,"from_slice","","New Point from a slice",0,null],[11,"deref","","",0,null],[11,"deref_mut","","",0,null],[11,"as_ref","","",0,null],[11,"as_mut","","",0,null],[11,"clone","","",1,null],[11,"fmt","","",1,null],[11,"new","","New LineSegment from two GenericArrays representing either end",1,{"inputs":[{"name":"genericarray"},{"name":"genericarray"}],"output":{"name":"linesegment"}}],[11,"from_slices","","New LineSegment from two slices representing either end",1,null],[11,"clone","","",2,null],[11,"fmt","","",2,null],[11,"new","","New Rect from a `GenericArray`",2,{"inputs":[{"name":"genericarray"}],"output":{"name":"rect"}}],[11,"from_corners","","New Rect from corners",2,{"inputs":[{"name":"genericarray"},{"name":"genericarray"}],"output":{"name":"rect"}}],[11,"max_inverted","","An inverted Rect where ever dimension's (x, y) coordinates are (MAX, MIN). Simplifies finding boundaries.",2,{"inputs":[],"output":{"name":"rect"}}],[11,"max","","The largest possible rect",2,{"inputs":[],"output":{"name":"rect"}}],[11,"deref","","",2,null],[11,"deref_mut","","",2,null],[11,"as_ref","","",2,null],[11,"as_mut","","",2,null],[11,"clone","","",3,null],[11,"fmt","","",3,null],[0,"tree","spatial","A collection of spatial trees",null,null],[0,"mbr","spatial::tree","Collection of minimum bounding rectangle spatial trees",null,null],[3,"MbrLeaf","spatial::tree::mbr","A tree leaf",null,null],[12,"geometry","","",4,null],[12,"item","","",4,null],[3,"Iter","","Iter all `Leaf` items matching a query",null,null],[3,"IterMut","","Mutably iterate all `Leaf` entries matching a query",null,null],[3,"MbrMap","","The generic container interface for spatial maps. Will, at the very least, be able to support R, R+, R*, and X trees",null,null],[3,"RStar","","Convenience struct for creating a new R* Tree",null,null],[4,"MbrNode","","Level node of a tree. Either contains other levels or leaves",null,null],[13,"Level","","Contains only other levels",5,null],[12,"mbr","spatial::tree::mbr::MbrNode","",5,null],[12,"children","","",5,null],[13,"Leaves","spatial::tree::mbr","Contains only leaves",5,null],[12,"mbr","spatial::tree::mbr::MbrNode","",5,null],[12,"children","","",5,null],[4,"MbrRectQuery","spatial::tree::mbr","Rect based query",null,null],[13,"ContainedBy","","Matching leaves are ones that are completely contained by this rect",6,null],[13,"Overlaps","","Matching leaves are ones that overlap this rect",6,null],[11,"fmt","","",4,null],[11,"new","","New leaf from geometry and item",4,{"inputs":[{"name":"lg"},{"name":"t"}],"output":{"name":"mbrleaf"}}],[11,"extract","","Consumes self, returning the geometry and item",4,null],[11,"as_tuple","","",4,null],[11,"as_mut_tuple","","",4,null],[11,"dim","","",4,null],[11,"expand_mbr_to_fit","","",4,null],[11,"distance_from_mbr_center","","",4,null],[11,"contained_by_mbr","","",4,null],[11,"overlapped_by_mbr","","",4,null],[11,"area_overlapped_with_mbr","","",4,null],[11,"area","","",4,null],[11,"min_for_axis","","",4,null],[11,"max_for_axis","","",4,null],[11,"dim","spatial::geometry","",0,null],[11,"area","","",0,null],[11,"min_for_axis","","",0,null],[11,"max_for_axis","","",0,null],[11,"expand_mbr_to_fit","","",0,null],[11,"distance_from_mbr_center","","",0,null],[11,"contained_by_mbr","","",0,null],[11,"overlapped_by_mbr","","",0,null],[11,"area_overlapped_with_mbr","","",0,null],[11,"dim","","",1,null],[11,"area","","",1,null],[11,"min_for_axis","","",1,null],[11,"max_for_axis","","",1,null],[11,"expand_mbr_to_fit","","",1,null],[11,"distance_from_mbr_center","","",1,null],[11,"contained_by_mbr","","",1,null],[11,"overlapped_by_mbr","","",1,null],[11,"area_overlapped_with_mbr","","",1,null],[11,"dim","","",2,null],[11,"area","","",2,null],[11,"min_for_axis","","",2,null],[11,"max_for_axis","","",2,null],[11,"expand_mbr_to_fit","","",2,null],[11,"distance_from_mbr_center","","",2,null],[11,"contained_by_mbr","","",2,null],[11,"overlapped_by_mbr","","",2,null],[11,"area_overlapped_with_mbr","","",2,null],[11,"dim","","",3,null],[11,"area","","",3,null],[11,"min_for_axis","","",3,null],[11,"max_for_axis","","",3,null],[11,"expand_mbr_to_fit","","",3,null],[11,"distance_from_mbr_center","","",3,null],[11,"contained_by_mbr","","",3,null],[11,"overlapped_by_mbr","","",3,null],[11,"area_overlapped_with_mbr","","",3,null],[11,"new","spatial::tree::mbr","Create a new MbrMap with the given insert and remove indexes",7,{"inputs":[{"name":"i"},{"name":"r"}],"output":{"name":"mbrmap"}}],[11,"insert","","Insert an item",7,null],[11,"remove","","Remove all items whose shapes are accepted by the query. Returns removed entries.",7,null],[11,"retain","","Remove all items whose shapes are accepted by the query and where f(&T) returns false. Returns removed entries",7,null],[11,"is_empty","","Whether the map is empty",7,null],[11,"len","","Length of the map",7,null],[11,"clear","","Clear the map",7,null],[11,"iter","","Iter for the map",7,null],[11,"iter_mut","","IterMut for the map",7,null],[11,"iter_query","","Iter for the map with a given query",7,null],[11,"iter_query_mut","","IterMut for the map with a given query",7,null],[11,"next","","",8,null],[11,"next","","",9,null],[11,"clone","","",6,null],[11,"fmt","","",6,null],[11,"accept_leaf","","",6,null],[11,"accept_level","","",6,null],[11,"fmt","","",5,null],[11,"new_leaves","","Create an empty leaf level",5,{"inputs":[],"output":{"name":"mbrnode"}}],[11,"new_no_alloc","","Create an empty leaf level with no capacity for leaves.\nOnly used for passing ownership of root into the index functions",5,{"inputs":[],"output":{"name":"mbrnode"}}],[11,"has_leaves","","Does the level point to leaves?",5,null],[11,"has_levels","","Does the level point to other levels?",5,null],[11,"mbr","","Borrow the level's minimum bounding rectangle",5,null],[11,"mbr_mut","","Mutably borrow the level's minimum bounding rectangle",5,null],[11,"len","","Number of level's children",5,null],[11,"is_empty","","Does the level have children?",5,null],[11,"dim","","",5,null],[11,"expand_mbr_to_fit","","",5,null],[11,"distance_from_mbr_center","","",5,null],[11,"contained_by_mbr","","",5,null],[11,"overlapped_by_mbr","","",5,null],[11,"area_overlapped_with_mbr","","",5,null],[11,"area","","",5,null],[11,"min_for_axis","","",5,null],[11,"max_for_axis","","",5,null],[6,"RStarTree","","R* Tree Type",null,null],[8,"MbrLeafGeometry","","The minimum functionality required to insert leaf geometry into `MbrMap`\nUntil the rust compiler allows compile-time generic integers, we'll be using generic_array's `ArrayLength` to specify\ngeometry dimensions at compile time.",null,null],[10,"dim","","The geometry's dimension count",10,null],[10,"area","","Determine the area of the geometry",10,null],[10,"min_for_axis","","the minimum extent for a given axis",10,null],[10,"max_for_axis","","the maximum extent for a given axis",10,null],[10,"expand_mbr_to_fit","","Expand the mbr to minimally fit the leaf",10,null],[10,"distance_from_mbr_center","","Determine the distance from the mbr's center",10,null],[10,"contained_by_mbr","","Determine if the leaf is completely contained in the mbr",10,null],[10,"overlapped_by_mbr","","Determine if the leaf overlaps the mbr",10,null],[10,"area_overlapped_with_mbr","","Determines the leaf area shared with the rectangle.\nIn cases where the leaf and mbr overlap, but the leaf has no area (point or a line, for example), return 0",10,null],[8,"MbrQuery","","Query trait for navigating the tree",null,null],[10,"accept_leaf","","Returns true if the leaf matches the query",11,null],[10,"accept_level","","Returns true if the level matches the query",11,null],[11,"new","","Create a new R* tree with min and max children lengths set to 25 and 64, respectively",12,{"inputs":[],"output":{"name":"rstartree"}}],[11,"new_with_max","","Create a new R* tree with max children lengths as provided. min length will be set to 0.3 * max",12,{"inputs":[{"name":"usize"}],"output":{"name":"rstartree"}}],[11,"new_with_options","","Creates a mew R* tree with options as provided. min children will be set to reinsert_p.min(split_p) * max",12,{"inputs":[{"name":"usize"},{"name":"f32"},{"name":"f32"},{"name":"usize"}],"output":{"name":"rstartree"}}]],"paths":[[3,"Point"],[3,"LineSegment"],[3,"Rect"],[4,"Shapes"],[3,"MbrLeaf"],[4,"MbrNode"],[4,"MbrRectQuery"],[3,"MbrMap"],[3,"Iter"],[3,"IterMut"],[8,"MbrLeafGeometry"],[8,"MbrQuery"],[3,"RStar"]]}; initSearch(searchIndex);