ZgM      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~        '0Build rotational transform matrix for rotate of  ''theta'' around a vector. !"#$%&'(!"#$%&'(!"#$%&'( portable  experimental mwassell@bigpond.net.au C#A box. Used for calculating bounds *?The OSG monad within which construction of scene graphs occur.  was '5type OSGT m = ErrorT Throwable (ST.StateT OSGState m)' +%Holds state of graph as it is built. 6Phong colouring ASimple colours K.Geometry. Either a basic GL object or a mesh. PFIXME - Reduce number of mesh types - to whatever is easier to draw (I suppose) QScene Node Data. 5A scene with a number of view ports looking onto it. QView port refers to a camera node and has its own Scene which is drawn flattened a$Scene Graph with indicate root node b/Scene Node. Made up of data and maybe a widget dScene Graph based on a Graph $Convert from simple colour to Phong eCreates an empty scene graph 3Creates a scene graph containing the supplied node f Empty state (Empty state with the self reference set gBasic add node hAdd node with scene data Add node with scene data Add empty node i3Add a node to a scene graph with supplied children jNon-monadic form of addNode kReplace a Scene Node l$Inner monad version of replace node m9Actually does the job of replacing node in a scene graph )Run the monad but keep it in the family. )Run the monad but keep it in the family. #Perform a function on a scene node nCreate a light oCreate a camera Create a plane Create a quad mesh r"Create a node containing a torus. s"Create a node containing a sphere t'Create a node containing a tetrahedron u Create a node containing a line v!Create a node containing a cube. + Fixme: Faces are not orientated same way. w Create cylinder as a BezierMesh x0Scale a node by equal amounts in all directions y Scale a node zTranslate a node {+Rotate a node by an angle around a vector. |Rotate a node around X axis }Rotate a node around Y axis ~Rotate a node around Z axis Apply colour to the node XTransform the node of a scene graph within the Monad with the supplied matrix transform GTransform the node of a scene graph with the supplied matrix transform Add colour to a node  Label a node  Add texture  Add Text Join two graphs together Translate a node  Scale a node Add an handler node Create a DragHandler Create a ClickHandler Create a switch node IWrapper for running the OSG monad to return a scene graph and root node. BCreate and run a OSG monad to return a scene graph and root node. Get a strip mesh %Make a group node from list of nodes IWork up the tree from indicated no to find the first handler scene node. KWork down the tree from indicated no to find the first handler scene node. Handle some event 2Return the matrix got by traversing down the Node &Bounds suitable for starting off with Create union of two boxes Determine bounds of the scene {)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~tbcd)aAJIHGFEDCBQ\[ZYXWVUTSR6789:;<=>?@KPONML+,-./012fejhgik|}~rstuvnopqxyz{w*ml345]`_^t)*+,-./012,-./012345456 789:;<=>?@789:;<=>?@A JIHGFEDCBBCDEFGHIJKPONMLLMNOPQ \[ZYXWVUTSRRSTUVWXYZ[\]`_^^_`abccdefghijklmnopqrstuvwxyz{|}~ portable  experimental mwassell@bigpond.net.au .Draw a scene graph (or a scenegraph fragment) Draw actual node Draw Scene Node Data Draw geometry Draw mesh type 1 Draw mesh type 2   portable  experimental mwassell@bigpond.net.au QRun a scene. Displays the Scene in a basic viewport permitting user interaction. Setup GUI and run it. MTraverse down to the camera for this viewport and apply the transforms along  the way. @Apply a unary function from HMatrix package to Modelview matrix Find and perform hit action    portable  experimental mwassell@bigpond.net.au   )*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789::;<=>?@AABCCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnnopqrstuvwxyz{|}~        scenegraph-0.1.0.1Graphics.SceneGraph.ReadImageGraphics.SceneGraph.TGAGraphics.SceneGraph.MySTMGraphics.SceneGraph.TexturesGraphics.SceneGraph.VectorGraphics.SceneGraph.MatrixGraphics.SceneGraph.BasicGraphics.SceneGraph.Render"Graphics.SceneGraph.SimpleViewportGraphics.SceneGraph.GraphVizGraphics.SceneGraph.LibraryGraphics.SceneGraph.DumpGraphics.SceneGraph.UtilsGraphics.SceneGraph readImagewithBinaryFile'readTga swapBytes' swapByteRGB swapByteRGBA getFormatTVarSTM atomically unsafeIOToSTMreadTVar writeTVarnewTVargetAndCreateTexturesgetAndCreateTexture readImageC createTextureVectorD betweenV3lengthV3vector3vxvyvxyvxzvzv1zv1yv1xv0v1vyzMatrixDidentityMatrixasMatrix translateMtranslatePostMscaleMrotateM'mulVOSGOSGTOSGStategrcontextheap startNoderootselfRef OSGStateRefgetOSRPhong emissionPh ambientPh diffusePh specularPhshinePh reflectivePhreflectivityPh transparentPh tranparencyPhColourYellowWhite LightBlueBlackBlueGreenRed JustWhiteGreyGeometry BezierMeshMesh3Mesh2Mesh1GLObj SceneDataTextTextureCameraLightHandlerMaterialSwitchMatrixTransformLODGeodeGroup SinkValueSVTSVBSVDScene SceneNode SceneGraph trivialGremptyStateWithRef addNodeBasic addNullNodeaddNodeaddNode' replaceNode replaceNode' replaceNode''lightcameraplaneplaneQtorusspheretetralinecubecylinderscaleSscale translaterotaterotateXrotateYrotateZ translateSG'translatePostSG' rotatePostSG'colourlabeltexturetext<+><*>handlerhandler2 dragHandler switchHandlerswitchswitch'osgrunOSGstripr getHitAction findHandlerfindHandlerDown findTextDownhandleClickEventemptyOSG findCamerafindCameraPathgetTransformTo getByLabeldrawSceneGraph GraphicsStategsRgsSiggsThetagsMPos gsDisplayList gsDrawFunc gsHitSinkgsDraggsScenegsFocus gsTexture gsDragPos gsProjMatrixgsBlah gsModelMatrixGSRefrunScenesetupGUI drawCanvasexportSGsimple1simplerr crossbeamferriswheelbuttonstux tuxAndToys calcButtonroom calculatordumphead'vector3Xvector3Yvector3ZrotateM rotatePostMBoxWorldViewport colour2PhongrunOSGLrunOSGL'doOnNodeplaneTquadcolourSG transformSG transformSG' makeGroupsmallBoxunionboundsnewPhongnullNode emptyState addBasicNodeaddBasicNamedNode switchNode'llab drawSceneNode ctrlPoints drawMesh2applyTransformapplyCameraTransformapplyLA findHitActionnewState exportDotopenDotcloseDotosgt crossbeams' crossbeams simple_buttonbuttonsqButtontextBoxslider sliderScene emptyScene sceneSlider sceneButtonroom'consoledumpNodewriteSceneDatapreamble