call-0.1.1: The call game engine

Copyright(c) Fumiaki Kinoshita 2014
LicenseBSD3
MaintainerFumiaki Kinoshita <fumiexcel@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Call.Sight

Description

 

Synopsis

Documentation

class Affine a where Source

Associated Types

type Vec a :: * Source

type Normal a :: * Source

Methods

rotateOn :: Normal a -> a -> a Source

scale :: Vec a -> a -> a Source

translate :: Vec a -> a -> a Source

Instances

class Affine a => Figure a where Source

Methods

primitive :: PrimitiveMode -> [Vec a] -> a Source

color :: RGBA -> a -> a Source

line :: [Vec a] -> a Source

polygon :: [Vec a] -> a Source

polygonOutline :: [Vec a] -> a Source

circle :: Normal a -> a Source

circleOutline :: Normal a -> a Source

Instances

newtype Picture Source

Constructors

Picture 

Fields

unPicture :: Scene
 

newtype Scene Source

Constructors

Scene 

Fields

unScene :: forall r. r -> (r -> r -> r) -> (Bitmap -> PrimitiveMode -> Vector Vertex -> r) -> (VFX r -> r) -> (M44 Float -> r -> r) -> r
 

newtype Sight Source

Constructors

Sight 

Fields

unSight :: forall r. Box V2 Float -> r -> (r -> r -> r) -> (Box V2 Float -> M44 Float -> Bool -> Scene -> r) -> r
 

Instances

viewScene Source

Arguments

:: Float

FOV

-> Float

Near plane

-> Float

Far plane

-> Scene

The scene

-> Sight 

data VFX r Source

Instances

data PrimitiveMode :: *

Specification of the way the vertices given during renderPrimitive are interpreted. In the description of the constructors, n is an integer count starting at one, and N is the total number of vertices specified.

Constructors

Points

Treats each vertex as a single point. Vertex n defines point n. N points are drawn.

Lines

Treats each pair of vertices as an independent line segment. Vertices 2n-1 and 2n define line n. N/2 lines are drawn.

LineLoop

Draws a connected group of line segments from the first vertex to the last, then back to the first. Vertices n and n+1 define line n. The last line, however, is defined by vertices N and 1. N lines are drawn.

LineStrip

Draws a connected group of line segments from the first vertex to the last. Vertices n and n+1 define line n. N-1 lines are drawn.

Triangles

Treats each triplet of vertices as an independent triangle. Vertices 3n-2, 3n-1, and 3n define triangle n. N/3 triangles are drawn.

TriangleStrip

Draws a connected group of triangles. One triangle is defined for each vertex presented after the first two vertices. For odd n, vertices n, n+1, and n+2 define triangle n. For even n, vertices n+1, n, and n+2 define triangle n. N-2 triangles are drawn.

TriangleFan

Draws a connected group of triangles. One triangle is defined for each vertex presented after the first two vertices. Vertices 1, n+1, and n+2 define triangle n. N-2 triangles are drawn.

Quads

Treats each group of four vertices as an independent quadrilateral. Vertices 4n-3, 4n-2, 4n-1, and 4n define quadrilateral n. N/4 quadrilaterals are drawn.

QuadStrip

Draws a connected group of quadrilaterals. One quadrilateral is defined for each pair of vertices presented after the first pair. Vertices 2n-1, 2n, 2n+2, and 2n+1 define quadrilateral n. N/2-1 quadrilaterals are drawn. Note that the order in which vertices are used to construct a quadrilateral from strip data is different from that used with independent data.

Polygon

Draws a single, convex polygon. Vertices 1 through N define this polygon.