summaryrefslogtreecommitdiff
path: root/FitCurves.hs
diff options
context:
space:
mode:
authorJoe Crayne <joe@jerkface.net>2019-06-03 20:16:38 -0400
committerJoe Crayne <joe@jerkface.net>2019-06-03 20:22:04 -0400
commit4beea73feaa37a0871d89365556c2e9ff4d9648c (patch)
tree581d6f932b0bfb1812e0c47f5ea219f233f22f09 /FitCurves.hs
parentf13eedc6482098581c359518e5db1dc7ec572eaf (diff)
Started FitCurves module.
Diffstat (limited to 'FitCurves.hs')
-rw-r--r--FitCurves.hs46
1 files changed, 46 insertions, 0 deletions
diff --git a/FitCurves.hs b/FitCurves.hs
new file mode 100644
index 0000000..8c73cfb
--- /dev/null
+++ b/FitCurves.hs
@@ -0,0 +1,46 @@
1{-# LANGUAGE RecordWildCards, DataKinds, DeriveDataTypeable #-}
2module FitCurves where
3
4import Control.Monad
5import Data.Data
6import Data.Int
7import Data.IORef
8import qualified Data.Vector.Storable.Mutable as MV
9import Foreign.Ptr
10import Foreign.Storable
11import GHC.Exts (RealWorld)
12import Numeric.LinearAlgebra as Math hiding ((<>))
13
14import Bezier
15import Camera
16import qualified GPURing as GPU
17import LambdaCube.GL.Input.Type
18import MaskableStream
19import RingBuffer
20import qualified VectorRing as Vector
21 ;import VectorRing (Point)
22import LambdaCube.GL.HMatrix ()
23
24
25data RingPoint = RingPoint
26 { rpPosition :: AttributeKey (GLVector 3 Float)
27 , rpColor :: AttributeKey (GLVector 3 Float)
28 }
29 deriving Data
30
31
32white,red,yellow,blue :: Vector Float
33white = fromList [1,1,1]
34yellow = fromList [1,1,0]
35blue = fromList [0,0,1]
36red = fromList [1,0,0]
37
38fitCurve1 :: Camera
39 -> Maybe Plane
40 -> (Int32 -> [(Int32, Int32)])
41 -> Int
42 -> TargetBuffer (GPU.Update RingPoint)
43 -> MV.MVector RealWorld Vector.Point
44 -> IO (Maybe Int)
45fitCurve1 cam plane mask max_curve_pts buf dta = do
46 return Nothing -- TODO