lambdacube-engine-0.2.1: 3D rendering engine written entirely in Haskell

Graphics.LambdaCube.SceneGraph

Synopsis

Documentation

type MkSceneObjectAction r vb ib q t p lp e = LCM (World r vb ib q t p lp) e (SceneObject vb ib t lp)Source

type MkNodeAction r vb ib q t p lp e = LCM (World r vb ib q t p lp) e ((String, String), SceneNode vb ib t lp)Source

camera :: RenderSystem r vb ib q t p lp => Camera -> MkSceneObjectAction r vb ib q t p lp eSource

Construct a scene object representing a camera with the given specification.

simpleCamera :: RenderSystem r vb ib q t p lp => String -> MkSceneObjectAction r vb ib q t p lp eSource

Construct a scene object representing a basic camera with the given name.

wireCamera :: RenderSystem r vb ib q t p lp => String -> MkSceneObjectAction r vb ib q t p lp eSource

Construct a scene object representing a wireframe-mode camera with the given name.

light :: RenderSystem r vb ib q t p lp => Light -> MkSceneObjectAction r vb ib q t p lp eSource

Construct a scene object representing a light source with the given specification.

defaultLight :: RenderSystem r vb ib q t p lp => MkSceneObjectAction r vb ib q t p lp eSource

Construct a scene object representing a basic light source.

meshSource

Arguments

:: (RenderSystem rs vb ib q t p lp, Enum rqp) 
=> Maybe rqp

Render queue priority (defaults to RQP_Main).

-> Maybe [String]

The list of materials to overried those supplied by the original mesh.

-> String

The name of the mesh to use as the source.

-> MkSceneObjectAction rs vb ib q t p lp e 

Construct a scene object representing a polygon mesh.

nodeSource

Arguments

:: RenderSystem r vb ib q t p lp 
=> String

The name of the parent node.

-> String

The name of the node.

-> Proj4

The transformation to apply the subtree with the node in its root.

-> [MkSceneObjectAction r vb ib q t p lp e]

The scene objects that make up the node.

-> MkNodeAction r vb ib q t p lp e 

Construct a scene graph node description.

addScene :: RenderSystem r vb ib q t p lp => [MkNodeAction r vb ib q t p lp e] -> LCM (World r vb ib q t p lp) e ()Source

Add a list of new nodes to the global scene.

updateTransforms :: RenderSystem r vb ib q t p lp => [(String, Proj4)] -> LCM (World r vb ib q t p lp) e ()Source

Update the transformation matrices of the given nodes.

updateObjects :: RenderSystem rs vb ib q t p lp => [(String, [MkSceneObjectAction rs vb ib q t p lp e])] -> LCM (World rs vb ib q t p lp) e ()Source

Update the objects associated with the given nodes.

renderWorldSource

Arguments

:: RenderSystem r vb ib q t p lp 
=> FloatType

The current time in seconds (needed for animation).

-> String

The target to render.

-> LCM (World r vb ib q t p lp) e () 

Render the given target.