| 1 | module Main where |
|---|
| 2 | |
|---|
| 3 | import FRP.Reactive |
|---|
| 4 | import FRP.Reactive.GLUT.Adapter |
|---|
| 5 | import FRP.Reactive.FieldTrip.Adapter |
|---|
| 6 | import Graphics.FieldTrip |
|---|
| 7 | import Data.Monoid |
|---|
| 8 | import Control.Applicative |
|---|
| 9 | |
|---|
| 10 | timeAtFramePass :: UI -> Event TimeT |
|---|
| 11 | timeAtFramePass = snapshot_ time . framePass |
|---|
| 12 | |
|---|
| 13 | timeString :: UI -> Behaviour String |
|---|
| 14 | timeString = stepper "" . ((fmap.fmap) show timeAtFramePass) |
|---|
| 15 | |
|---|
| 16 | timeText :: Anim3 -- UI -> Behaviour Geometry3 |
|---|
| 17 | timeText = (fmap.fmap) (flatG . utext) timeString |
|---|
| 18 | |
|---|
| 19 | uscale :: Float -> Geometry3 -> Geometry3 |
|---|
| 20 | uscale s = (uscale3 s *%) |
|---|
| 21 | |
|---|
| 22 | timeDisplay :: Anim3 |
|---|
| 23 | timeDisplay = (fmap.fmap) (uscale 0.2) timeText |
|---|
| 24 | |
|---|
| 25 | main = anim3 $ timeDisplay |
|---|