-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Geometry primitives for Keid engine. -- -- Geometry primitives for Keid engine. @package keid-geometry @version 0.1.1.3 module Geometry.Cube data Vertices a Vertices :: a -> a -> a -> a -> a -> a -> a -> a -> Vertices a [$sel:vLTN:Vertices] :: Vertices a -> a [$sel:vLTF:Vertices] :: Vertices a -> a [$sel:vLBN:Vertices] :: Vertices a -> a [$sel:vLBF:Vertices] :: Vertices a -> a [$sel:vRTN:Vertices] :: Vertices a -> a [$sel:vRTF:Vertices] :: Vertices a -> a [$sel:vRBN:Vertices] :: Vertices a -> a [$sel:vRBF:Vertices] :: Vertices a -> a -- | Unit cube vertices centered at (0,0,0). positions :: Vertices Vec3 edges :: [Vec3] bbWireColored :: [Vertex Packed Vec4] instance Data.Traversable.Traversable Geometry.Cube.Vertices instance Data.Foldable.Foldable Geometry.Cube.Vertices instance GHC.Base.Functor Geometry.Cube.Vertices instance GHC.Show.Show a => GHC.Show.Show (Geometry.Cube.Vertices a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Geometry.Cube.Vertices a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Geometry.Cube.Vertices a) instance GHC.Base.Applicative Geometry.Cube.Vertices module Geometry.Edge data Edge a Edge :: a -> a -> Edge a [$sel:edgeFrom:Edge] :: Edge a -> a [$sel:edgeTo:Edge] :: Edge a -> a edgesR :: [a] -> Maybe [Edge a] instance Data.Traversable.Traversable Geometry.Edge.Edge instance Data.Foldable.Foldable Geometry.Edge.Edge instance GHC.Base.Functor Geometry.Edge.Edge instance GHC.Show.Show a => GHC.Show.Show (Geometry.Edge.Edge a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Geometry.Edge.Edge a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Geometry.Edge.Edge a) module Geometry.Face data Face a Face :: a -> a -> a -> Face a [$sel:faceA:Face] :: Face a -> a [$sel:faceB:Face] :: Face a -> a [$sel:faceC:Face] :: Face a -> a facesR :: [a] -> Maybe [Face a] instance Data.Traversable.Traversable Geometry.Face.Face instance Data.Foldable.Foldable Geometry.Face.Face instance GHC.Base.Functor Geometry.Face.Face instance GHC.Show.Show a => GHC.Show.Show (Geometry.Face.Face a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Geometry.Face.Face a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Geometry.Face.Face a) module Geometry.Hit data Hit Hit :: Float -> Float -> Vec3 -> Hit [$sel:distance:Hit] :: Hit -> Float [$sel:cosine:Hit] :: Hit -> Float [$sel:position:Hit] :: Hit -> Vec3 instance GHC.Show.Show Geometry.Hit.Hit instance GHC.Classes.Ord Geometry.Hit.Hit instance GHC.Classes.Eq Geometry.Hit.Hit module Geometry.Icosphere generateIndexed :: (Fractional scale, Storable pos, Storable vertexAttr) => ("subdivisions" ::: Natural) -> ("initial" ::: (Vec3 -> pointAttr)) -> ("midpoint" ::: (scale -> Vec3 -> pointAttr -> pointAttr -> pointAttr)) -> ("vertex" ::: (Vector (Vec3, pointAttr) -> [Face Int] -> Vector (pos, vertexAttr))) -> "model vectors" ::: (Vector pos, Vector vertexAttr, Vector Word32) icofaces :: [Face Int] icopoints :: Vector Vec3 module Geometry.Plane data Plane Plane :: Vec3 -> Float -> Plane [$sel:normal:Plane] :: Plane -> Vec3 [$sel:depth:Plane] :: Plane -> Float -- | XY plane facing back. xyBack :: Float -> Plane -- | XY plane facing front. xyFront :: Float -> Plane -- | XZ plane facing up. xzUp :: Float -> Plane -- | XZ plane facing down. xzDown :: Float -> Plane -- | YZ plane facing left. yzLeft :: Float -> Plane -- | YZ plane facing right. yzRight :: Float -> Plane instance GHC.Show.Show Geometry.Plane.Plane module Geometry.Quad coloredQuad :: Vec4 -> Quad (Vertex Packed Vec4) texturedQuad :: Quad (Vertex Packed Vec2) data Quad a Quad :: a -> a -> a -> a -> Quad a [$sel:quadLT:Quad] :: Quad a -> a [$sel:quadRT:Quad] :: Quad a -> a [$sel:quadLB:Quad] :: Quad a -> a [$sel:quadRB:Quad] :: Quad a -> a -- | 2 clockwise ordered triangles toVertices :: Quad (Vertex pos attrs) -> [Vertex pos attrs] toVertices2 :: Quad (Vertex pos attrs) -> [Vertex pos attrs] indicesQuad :: Num a => [a] indicesWire :: Num a => [a] indices :: Num a => Quad a quadPositions :: Quad Packed quadUV :: Quad Vec2 quadNormals :: Quad Packed instance GHC.Base.Applicative Geometry.Quad.Quad instance GHC.Generics.Generic1 Geometry.Quad.Quad instance Data.Traversable.Traversable Geometry.Quad.Quad instance Data.Foldable.Foldable Geometry.Quad.Quad instance GHC.Base.Functor Geometry.Quad.Quad instance GHC.Show.Show a => GHC.Show.Show (Geometry.Quad.Quad a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Geometry.Quad.Quad a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Geometry.Quad.Quad a) module Geometry.Ray data Ray Ray :: Vec3 -> Vec3 -> Ray [$sel:origin:Ray] :: Ray -> Vec3 [$sel:direction:Ray] :: Ray -> Vec3 fromSegment :: Vec3 -> Vec3 -> Ray instance GHC.Show.Show Geometry.Ray.Ray module Geometry.Intersect data Hit ray'plane :: Ray -> Plane -> Maybe Hit module Geometry.Tile.Neighbors data Neighbors a Neighbors :: a -> a -> a -> a -> a -> a -> a -> a -> Neighbors a [$sel:northWest:Neighbors] :: Neighbors a -> a [$sel:north:Neighbors] :: Neighbors a -> a [$sel:northEast:Neighbors] :: Neighbors a -> a [$sel:east:Neighbors] :: Neighbors a -> a [$sel:southEast:Neighbors] :: Neighbors a -> a [$sel:south:Neighbors] :: Neighbors a -> a [$sel:southWest:Neighbors] :: Neighbors a -> a [$sel:west:Neighbors] :: Neighbors a -> a nobody :: Neighbors Bool everyone :: Neighbors Bool bitsNW :: Neighbors Int testBitsNW :: Bits a => Neighbors (a -> Bool) fromBitsNW :: Bits a => a -> Neighbors Bool toBitsNW :: Neighbors Bool -> Int directionsWith :: Num a => (a -> a -> b) -> Neighbors b isCorner :: Neighbors Bool names :: IsString a => Neighbors a fromPoints :: Vec2 -> Vec2 -> Neighbors Vec2 instance GHC.Base.Applicative Geometry.Tile.Neighbors.Neighbors instance GHC.Generics.Generic1 Geometry.Tile.Neighbors.Neighbors instance Data.Traversable.Traversable Geometry.Tile.Neighbors.Neighbors instance Data.Foldable.Foldable Geometry.Tile.Neighbors.Neighbors instance GHC.Base.Functor Geometry.Tile.Neighbors.Neighbors instance GHC.Show.Show a => GHC.Show.Show (Geometry.Tile.Neighbors.Neighbors a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Geometry.Tile.Neighbors.Neighbors a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Geometry.Tile.Neighbors.Neighbors a) module Geometry.Tile.Microblob data Microblob a Microblob :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Microblob a [$sel:brCornerInner:Microblob] :: Microblob a -> a [$sel:blCornerInner:Microblob] :: Microblob a -> a [$sel:trCornerInner:Microblob] :: Microblob a -> a [$sel:tlCornerInner:Microblob] :: Microblob a -> a [$sel:tlCornerOuter:Microblob] :: Microblob a -> a [$sel:ttEdgeHorizontal:Microblob] :: Microblob a -> a [$sel:trCornerOuter:Microblob] :: Microblob a -> a [$sel:llEdgeVertical:Microblob] :: Microblob a -> a [$sel:full:Microblob] :: Microblob a -> a [$sel:rrEdgeVertical:Microblob] :: Microblob a -> a [$sel:blCornerOuter:Microblob] :: Microblob a -> a [$sel:bbEdgeHorizontal:Microblob] :: Microblob a -> a [$sel:brCornerOuter:Microblob] :: Microblob a -> a indices :: Microblob Int names :: Microblob Text quad :: Neighbors Int -> Microblob a -> Int -> Quad a genSets :: Neighbors Int -> (Set Int, Map Int Int) instance GHC.Base.Applicative Geometry.Tile.Microblob.Microblob instance GHC.Generics.Generic1 Geometry.Tile.Microblob.Microblob instance Data.Traversable.Traversable Geometry.Tile.Microblob.Microblob instance Data.Foldable.Foldable Geometry.Tile.Microblob.Microblob instance GHC.Base.Functor Geometry.Tile.Microblob.Microblob instance GHC.Show.Show a => GHC.Show.Show (Geometry.Tile.Microblob.Microblob a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Geometry.Tile.Microblob.Microblob a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Geometry.Tile.Microblob.Microblob a)