summaryrefslogtreecommitdiff
path: root/FitCurves.hs
diff options
context:
space:
mode:
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