diff options
Diffstat (limited to 'FitCurves.hs')
-rw-r--r-- | FitCurves.hs | 46 |
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 #-} | ||
2 | module FitCurves where | ||
3 | |||
4 | import Control.Monad | ||
5 | import Data.Data | ||
6 | import Data.Int | ||
7 | import Data.IORef | ||
8 | import qualified Data.Vector.Storable.Mutable as MV | ||
9 | import Foreign.Ptr | ||
10 | import Foreign.Storable | ||
11 | import GHC.Exts (RealWorld) | ||
12 | import Numeric.LinearAlgebra as Math hiding ((<>)) | ||
13 | |||
14 | import Bezier | ||
15 | import Camera | ||
16 | import qualified GPURing as GPU | ||
17 | import LambdaCube.GL.Input.Type | ||
18 | import MaskableStream | ||
19 | import RingBuffer | ||
20 | import qualified VectorRing as Vector | ||
21 | ;import VectorRing (Point) | ||
22 | import LambdaCube.GL.HMatrix () | ||
23 | |||
24 | |||
25 | data RingPoint = RingPoint | ||
26 | { rpPosition :: AttributeKey (GLVector 3 Float) | ||
27 | , rpColor :: AttributeKey (GLVector 3 Float) | ||
28 | } | ||
29 | deriving Data | ||
30 | |||
31 | |||
32 | white,red,yellow,blue :: Vector Float | ||
33 | white = fromList [1,1,1] | ||
34 | yellow = fromList [1,1,0] | ||
35 | blue = fromList [0,0,1] | ||
36 | red = fromList [1,0,0] | ||
37 | |||
38 | fitCurve1 :: 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) | ||
45 | fitCurve1 cam plane mask max_curve_pts buf dta = do | ||
46 | return Nothing -- TODO | ||