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
94a3921
..
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
- |
Leaf v -> [v]
- |
Node (_, part1, part2) -> (valuesFrom part1) @ (valuesFrom part2)
+ |
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)