Safe Haskell | None |
---|---|
Language | Haskell98 |
- data Command
- type CommandConfig = [(Command, [(Key, Maybe Modifiers)])]
- defaultCommandConfig :: CommandConfig
- data ViewState = ViewState {
- viewStateCommands :: !(Map Command [(Key, Maybe Modifiers)])
- viewStateScaleStep :: !Float
- viewStateRotateFactor :: !Float
- viewStateTranslateMark :: !(Maybe (Float, Float))
- viewStateRotateMark :: !(Maybe (Float, Float))
- viewStateViewPort :: ViewPort
- data ViewPort = ViewPort {
- viewPortTranslate :: !(Float, Float)
- viewPortRotate :: !Float
- viewPortScale :: !Float
- viewStateInit :: ViewState
- viewStateInitWithConfig :: CommandConfig -> ViewState
- updateViewStateWithEvent :: Event -> ViewState -> ViewState
- updateViewStateWithEventMaybe :: Event -> ViewState -> Maybe ViewState
- applyViewPortToPicture :: ViewPort -> Picture -> Picture
- invertViewPort :: ViewPort -> Point -> Point
Documentation
The commands suported by the view controller.
defaultCommandConfig :: CommandConfig Source
The default commands. Left click pans, wheel zooms, right click rotates, "r" key resets.
State for controlling the viewport. These are used by the viewport control component.
ViewState | |
|
The ViewPort
represents the global transformation applied to the displayed picture.
When the user pans, zooms, or rotates the display then this changes the ViewPort
.
ViewPort | |
|
viewStateInit :: ViewState Source
The initial view state.
viewStateInitWithConfig :: CommandConfig -> ViewState Source
Initial view state, with user defined config.
updateViewStateWithEventMaybe :: Event -> ViewState -> Maybe ViewState Source
Like updateViewStateWithEvent
, but returns Nothing
if no update
was needed.
applyViewPortToPicture :: ViewPort -> Picture -> Picture Source
Translates, rotates, and scales an image according to the ViewPort
.
invertViewPort :: ViewPort -> Point -> Point Source
Takes a point using screen coordinates, and uses the ViewPort
to convert
it to Picture coordinates. This is the inverse of applyViewPortToPicture
for points.