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

Safe HaskellNone

Vis

Synopsis

Documentation

displaySource

Arguments

:: Real b 
=> Maybe ((Int, Int), (Int, Int))

optional (window size, window position)

-> String

window name

-> VisObject b

object to draw

-> IO () 

draw a static image

animateSource

Arguments

:: Real b 
=> Maybe ((Int, Int), (Int, Int))

optional (window size, window position)

-> String

window name

-> (Float -> VisObject b)

draw function

-> IO () 

simulateSource

Arguments

:: Real b 
=> Maybe ((Int, Int), (Int, Int))

optional (window size, window position)

-> String

window name

-> 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 
=> Maybe ((Int, Int), (Int, Int))

optional (window size, window position)

-> String

window name

-> 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 () 

animateIOSource

Arguments

:: Real b 
=> Maybe ((Int, Int), (Int, Int))

optional (window size, window position)

-> String

window name

-> (Float -> IO (VisObject b))

draw function

-> IO () 

display an animation impurely

simulateIOSource

Arguments

:: Real b 
=> Maybe ((Int, Int), (Int, Int))

optional (window size, window position)

-> String

window name

-> 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 
=> Maybe ((Int, Int), (Int, Int))

optional (window size, window position)

-> String

window name

-> 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] 
Trans (Xyz a) (VisObject a) 
RotQuat (Quat a) (VisObject a) 
RotEulerRad (Euler a) (VisObject a) 
RotEulerDeg (Euler a) (VisObject a) 
Scale (a, a, a) (VisObject a) 
Cylinder (a, a) Color 
Box (a, a, a) Flavour Color 
Cube a Flavour Color 
Sphere a Flavour Color 
Ellipsoid (a, a, a) Flavour Color 
Line [Xyz a] Color 
Line' [(Xyz a, Color)] 
Arrow (a, a) (Xyz a) Color 
Axes (a, a) 
Plane (Xyz a) Color Color 
Triangle (Xyz a) (Xyz a) (Xyz a) Color 
Quad (Xyz a) (Xyz a) (Xyz a) (Xyz a) Color 
Text3d String (Xyz a) BitmapFont Color 
Text2d String (a, a) BitmapFont Color 
Points [Xyz a] (Maybe GLfloat) Color 
Custom (IO ()) 

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.