not-gloss-0.4.1: Painless 3D graphics, no affiliation with gloss

Safe HaskellSafe-Infered

Vis

Synopsis

Documentation

display :: Real b => VisObject b -> IO ()Source

draw a static image

animate :: Real b => (Float -> VisObject b) -> IO ()Source

display an animation

simulateSource

Arguments

:: Real b 
=> Double

sample rate

-> world

initial state

-> (world -> VisObject b)

draw function

-> (Float -> world -> world)

state propogation function (takes current time and state as inputs)

-> IO () 

run a simulation

playSource

Arguments

:: Real b 
=> Double

sample time

-> world

initial state

-> (world -> (VisObject b, Maybe Cursor))

draw function, can give a different cursor

-> (Float -> world -> world)

state propogation function (takes current time and state as inputs)

-> (world -> IO ())

set where camera looks

-> Maybe (world -> Key -> KeyState -> Modifiers -> Position -> world)

keyboard/mouse press callback

-> Maybe (world -> Position -> world)

mouse drag callback

-> Maybe (world -> Position -> world)

mouse move callback

-> IO () 

animateIO :: Real b => (Float -> IO (VisObject b)) -> IO ()Source

display an animation impurely

simulateIOSource

Arguments

:: Real b 
=> Double

sample rate

-> world

initial state

-> (world -> IO (VisObject b))

draw function

-> (Float -> world -> IO world)

state propogation function (takes current time and state as inputs)

-> IO () 

run a simulation impurely

playIOSource

Arguments

:: Real b 
=> Double

sample time

-> world

initial state

-> (world -> IO (VisObject b, Maybe Cursor))

draw function, can give a different cursor

-> (Float -> world -> IO world)

state propogation function (takes current time and state as inputs)

-> (world -> IO ())

set where camera looks

-> Maybe (world -> Key -> KeyState -> Modifiers -> Position -> world)

keyboard/mouse press callback

-> Maybe (world -> Position -> world)

mouse drag callback

-> Maybe (world -> Position -> world)

mouse move callback

-> IO () 

data VisObject a Source

Constructors

VisObjects [VisObject a] 
VisCylinder (a, a) (Xyz a) (Quat a) Color 
VisBox (a, a, a) (Xyz a) (Quat a) Flavour Color 
VisEllipsoid (a, a, a) (Xyz a) (Quat a) Flavour Color 
VisSphere a (Xyz a) Flavour Color 
VisLine [Xyz a] Color 
VisLine' [(Xyz a, Color)] 
VisArrow (a, a) (Xyz a) (Xyz a) Color 
VisAxes (a, a) (Xyz a) (Quat a) 
VisPlane (Xyz a) a Color Color 
VisTriangle (Xyz a) (Xyz a) (Xyz a) Color 
VisQuad (Xyz a) (Xyz a) (Xyz a) (Xyz a) Color 
VisCustom (IO ()) 
Vis3dText String (Xyz a) BitmapFont Color 
Vis2dText String (a, a) BitmapFont Color 

Instances

data BitmapFont

The bitmap fonts available in GLUT. The exact bitmap to be used is defined by the standard X glyph bitmaps for the X font with the given name.

Constructors

Fixed8By13

A fixed width font with every character fitting in an 8 by 13 pixel rectangle. (-misc-fixed-medium-r-normal--13-120-75-75-C-80-iso8859-1)

Fixed9By15

A fixed width font with every character fitting in an 9 by 15 pixel rectangle. (-misc-fixed-medium-r-normal--15-140-75-75-C-90-iso8859-1)

TimesRoman10

A 10-point proportional spaced Times Roman font. (-adobe-times-medium-r-normal--10-100-75-75-p-54-iso8859-1)

TimesRoman24

A 24-point proportional spaced Times Roman font. (-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1)

Helvetica10

A 10-point proportional spaced Helvetica font. (-adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1)

Helvetica12

A 12-point proportional spaced Helvetica font. (-adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1)

Helvetica18

A 18-point proportional spaced Helvetica font. (-adobe-helvetica-medium-r-normal--18-180-75-75-p-98-iso8859-1)

data Flavour

Flavour of object rendering

Constructors

Solid

Object is rendered as a solid with shading and surface normals.

Wireframe

Object is rendered as a wireframe without surface normals.