projects
/
master-thesis.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
More homogeneous ellipse density.
[master-thesis.git]
/
Parasitemia
/
ParasitemiaCore
/
KdTree.fs
diff --git
a/Parasitemia/ParasitemiaCore/KdTree.fs
b/Parasitemia/ParasitemiaCore/KdTree.fs
index
4513208
..
3a60977
100644
(file)
--- a/
Parasitemia/ParasitemiaCore/KdTree.fs
+++ b/
Parasitemia/ParasitemiaCore/KdTree.fs
@@
-65,10
+65,10
@@
type Tree<'a when 'a :> I2DCoords> =
buildTreeFromSortedArray xSorted ySorted 1
member this.Search (searchRegion: Region) : 'a list =
buildTreeFromSortedArray xSorted ySorted 1
member this.Search (searchRegion: Region) : 'a list =
- let rec valuesFrom (tree: Tree<'a>) : 'a list =
+ let rec valuesFrom (tree: Tree<'a>)
(acc: 'a list)
: 'a list =
match tree with
match tree with
- | Node (_,
part1, part2) -> (valuesFrom part1) @ (valuesFrom part2
)
- | Leaf v ->
[v]
+ | Node (_,
left, right) -> (valuesFrom right (valuesFrom left acc)
)
+ | Leaf v ->
v :: acc
let rec searchWithRegion (tree: Tree<'a>) (currentRegion: Region) (depth: int) : 'a list =
match tree with
let rec searchWithRegion (tree: Tree<'a>) (currentRegion: Region) (depth: int) : 'a list =
match tree with
@@
-77,7
+77,7
@@
type Tree<'a when 'a :> I2DCoords> =
let valuesInRegion (region: Region) (treeRegion: Tree<'a>) =
if region.IsSub searchRegion
then
let valuesInRegion (region: Region) (treeRegion: Tree<'a>) =
if region.IsSub searchRegion
then
- valuesFrom treeRegion
+ valuesFrom treeRegion
[]
elif region.Intersects searchRegion
then
searchWithRegion treeRegion region (depth + 1)
elif region.Intersects searchRegion
then
searchWithRegion treeRegion region (depth + 1)