Ep>f      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde An axis aligned bounding box.  Try if an  is inside a projection frustum. The AABB must be defined in the same vector space as the matrix, e.g. use the model-view-projection matrix for model-local aabb's. Transforms an 'sAABB* using a 4x4 matrix. Note that this may grow the AABB and is not associative with matrix multiplication, i.e.  ' (m2 `multmm` m1) `aabbTransform` aabb is usually not the same as  . m2 `aabbTransform` (m1 `aabbTransform` aabb) C(The former is preferred as it minimizes the growing of the AABB).     Q  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSfT Gets the projection matrix of a 5 element. U$Gets the transformation matrix of a > element. V2Gets the total transformation matrix of a list of > element. gW%The complete transform matrix of all > elements in a node. X The smallest  that contains all C elements in a node. Note: This is not transformed using the nodes > elements. S  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXSSKLMNOPQRWX>GFED@?HIJABCUV5:6;<=789T1432-./0*'#+,()$%& !"  O *'#+,()$%& !" !"#$%&'()*+,-./0./014322345:6;<=7896789:;<=> GFED@?HIJABC?@ABCDEFGHIJKLMNOPQRLMNOPQRSTUVWXhijklmnopqrstuvY8Parse a string containing a collada document and return w( an error message or the parsed Collada S. Z@Open a Collada file and parse its contents and return a Collada S. Errors are thrown as xs. yz{|}~YZYZYZ [eA path where the first string in the list is the closest ID and the rest is all SIDs found in order. \$Traverse a Tree top down, much like  mapAccumLn. The function recieves an accumulator from its parent and generates one that is passed down to its children. 1 Useful for accumulating transformations, etc. ]%Traverse a Tree bottom up, much like  mapAccumRp. The function recieves the accumulators of all its children and generates one that is passed up to its parent. ' Useful for accumulating AABBs, etc. ^:Remove branches of a tree where the function evaluates to ". Useful for selecting LODs, etc. _*Traverse a tree top down accumulating the [V for each node. The projection function enables this to be used on trees that are not Ss.  The accumulated [! for a node will include the node's   at the end, but not its  . The   will however be the first  in the  [!s of the children, and the nodes   won't be included in this case. `Traverse a tree top down accumulating the absolute transform for each node. The projection function enables this to be used on trees that are not Ss.  Use W to get the  Mat44 FloatH from a node. The accumulated matrix for each node will contain the node's own transforms. a For each  i-attributed element in a list, apply the provided function. The elements where the function evaluates to  are removed. bMFind the first element in the list that is attributed with the provided SID. c Evaluates to  where the v contains the semantic with the same type as the last argument (which is not evaluated and prefferably is a monotyped ). d2Extract the value of a specific semantic from the E. If the semantic is not found or the type is wrong, it evaluates to . eRender the scene using a simple shading technique through the first camera found, or through a defult camera if the scene doesn' t contain any cameras. The scene' s lights aren't d used in the rendering. The source of this function can also serve as an example of how a Collada S can be processed. [\]^_`abcde \]^[_`abcde [\]^_`abcde       !"#$%&'()*+,-.//0123456789:;<=>?@ABCDEFGHIJKLLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuuvwxvyz{|}~vvvGPipe-Collada-0.1.0 Data.Vec.AABBGraphics.GPipe.ColladaGraphics.GPipe.Collada.ParseGraphics.GPipe.Collada.Utils IntersectionOutside IntersectingInsideAABBaabbMinaabbMaxtestAABBprojection aabbTransformSemanticSIDIDMesh TriangleMesh meshMaterialmeshDescriptionmeshPrimitiveStreammeshAABBGeometrymeshIDmeshPrimitives AttenuationattenuationConstantattenuationLinearattenuationQuadraticLightSpotspotID spotColorspotAttenuationspotFallOffAnglespotFallOffExponentPointpointID pointColorpointAttenuation Directional directionalIDdirectionalColorAmbient ambientID ambientColorZzNearzFarViewSize ViewSizeXY ViewSizeY ViewSizeXCamera OrthographicorthographicIDorthographicViewSize orthographicZ Perspective perspectiveIDperspectiveFov perspectiveZ Transform TranslateSkew skewAngle skewRotationskewTranslationScaleRotateMatrixLookAt lookAtEyelookAtInterestlookAtUpNodenodeId nodeLayersnodeTransformations nodeCameras nodeLightsnodeGeometriesScene cameraMat transformMat transformsMatnodeMatnodeAABB readColladareadColladaFileSIDPathtopDownbottomUpprunetopDownSIDPathtopDownTransformalterSID lookupSID hasDynVertex dynVertex viewScene toRadiansskewS10S4S2Parser Reference RefGeometryRefLight RefCameraRefVisualScene RefVertices RefSourceRefArrayRefNodeRefMapbase Data.EitherEitherGHC.IO.Exception userError runParsergetReqAttribute parseInputparsePinfs10ghc-primGHC.BoolTrueGHC.BaseString Data.MaybeNothingcontainers-0.3.0.0Data.MapMapGHC.Err undefined