packages feed

Octree 0.2.1 → 0.2.2

raw patch · 3 files changed

+14/−15 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Data.Octree: dist :: Vector v => v -> v -> Scalar
+ Data.Octree: dist :: Vector3 -> Vector3 -> Double

Files

Data/Octree/Internal.hs view
@@ -2,7 +2,7 @@ module Data.Octree.Internal(Vector3(..), dist,                             Octree(..), lookup, nearest, withinRange, fromList, toList, insert,                             -- internal-                            ODir,+                            ODir(..),                             octreeStep, octantDistance, splitBy', joinStep, splitStep, allOctants, octantDistance',                             cmp,                             pickClosest@@ -20,11 +20,11 @@ import Test.QuickCheck.Arbitrary  -- | norm of a vector-norm ::  Vector v => v -> Scalar-norm a = a `vdot` a+norm ::  Vector3 -> Double+norm a = sqrt (a `vdot` a)  -- | distance between two vectors-dist ::  Vector v => v -> v -> Scalar+dist ::  Vector3 -> Vector3 -> Double dist u v = norm (u - v)   data Octree a = Node { split :: Vector3,@@ -153,11 +153,6 @@   where i                                        = cmp coord splitPoint         (swd, sed, nwd, ned, swu, seu, nwu, neu) = splitBy splitPoint aList -{---- | Internal Sums a list of vectors-sumVector3s [(coord, _)]       = coord-sumVector3s ((coord, _):aList) = coord + sumVector3s aList--} -- | Computes a center of mass for a given list of vectors - used to find a splitPoint. massCenter ::  Fractional a => [(a, b)] -> a massCenter aList = sum (map fst aList) / count@@ -279,7 +274,7 @@         selectFrom' best []                                          = Just best  -- | Internal method that picks from a given list a point closest to argument, -pickClosest ::  Vector v => v -> [(v, t)] -> Maybe (v, t)+pickClosest ::  Vector3 -> [(Vector3, t)] -> Maybe (Vector3, t) pickClosest pt []     = Nothing pickClosest pt (a:as) = Just $ foldr (pickCloser pt) a as pickCloser pt va@(a, _a) vb@(b, _b) = if dist pt a <= dist pt b
Octree.cabal view
@@ -1,5 +1,5 @@ name:                Octree-version:             0.2.1+version:             0.2.2 stability:           beta homepage:            https://github.com/mgajda/octree package-url:         http://hackage.haskell.org/package/octree@@ -17,8 +17,7 @@  build-type:          Simple cabal-version:       >=1.8-tested-with:         GHC==7.0.4--- Also tested with GHC-7.4rc2+tested-with:         GHC==7.0.4, GHC==7.4.1  source-repository head   type:     git
tests/test_Octree.hs view
@@ -44,13 +44,18 @@   where triangleInequality = (octantDistance' aptA (cmp ptB origin)) <= (dist aptA ptB)         aptA               = abs ptA -prop_octantDistanceNoGreaterThanInterpointDistance ptA ptB vp = triangleInequality || sameOctant+prop_octantDistanceNoGreaterThanInterpointDistance ptA ptB vp = triangleInequality   where triangleInequality = (octantDistance (ptA - vp) (cmp ptB vp)) <= (dist ptA ptB)         sameOctant         = (cmp ptA vp) == (cmp ptB vp) -prop_octantDistanceNoGreaterThanInterpointDistanceZero ptA ptB = triangleInequality || sameOctant+prop_octantDistanceNoGreaterThanInterpointDistanceZero ptA ptB = triangleInequality   where triangleInequality = (octantDistance ptA (cmp ptB origin)) <= (dist ptA ptB)         sameOctant         = (cmp ptA origin) == (cmp ptB origin)++prop_octantDistanceNoGreaterThanInterpointDistanceZero0 ptA ptB = triangleInequality+  where triangleInequality = (octantDistance aptA (cmp ptB origin)) <= (dist aptA ptB)+        sameOctant         = (cmp aptA origin) == (cmp ptB origin)+        aptA               = abs ptA  prop_octantDistanceNoGreaterThanCentroidDistance pt vp = all testFun allOctants   where testFun odir = (octantDistance (pt - vp) odir) <= dist pt vp