Portability | portable |
---|---|
Stability | stable |
Maintainer | sven.panne@aedion.de |
This module corresponds to section 5.1 (Evaluators) of the OpenGL 2.1 specs.
- type Order = GLint
- maxOrder :: GettableStateVar Order
- class Storable d => Domain d where
- evalCoord1 :: MonadGL m => d -> m ()
- evalCoord1v :: MonadGL m => Ptr d -> m ()
- evalCoord2 :: MonadGL m => (d, d) -> m ()
- evalCoord2v :: MonadGL m => Ptr d -> m ()
- data Domain d => MapDescriptor d = MapDescriptor (d, d) Stride Order NumComponents
- class ControlPoint c
- class Map1 m where
- withNewMap1 :: (ControlPoint c, Domain d) => MapDescriptor d -> (Ptr d -> GL ()) -> GL (m c d)
- withMap1 :: (ControlPoint c, Domain d) => m c d -> (MapDescriptor d -> Ptr d -> GL a) -> GL a
- newMap1 :: (ControlPoint c, Domain d) => (d, d) -> [c d] -> GL (m c d)
- getMap1Components :: (ControlPoint c, Domain d) => m c d -> GL ((d, d), [c d])
- data (ControlPoint c, Domain d) => GLmap1 c d
- map1 :: (Map1 m, ControlPoint c, Domain d) => StateVar (Maybe (m c d))
- class Map2 m where
- withNewMap2 :: (ControlPoint c, Domain d) => MapDescriptor d -> MapDescriptor d -> (Ptr d -> GL ()) -> GL (m c d)
- withMap2 :: (ControlPoint c, Domain d) => m c d -> (MapDescriptor d -> MapDescriptor d -> Ptr d -> GL a) -> GL a
- newMap2 :: (ControlPoint c, Domain d) => (d, d) -> (d, d) -> [[c d]] -> GL (m c d)
- getMap2Components :: (ControlPoint c, Domain d) => m c d -> GL ((d, d), (d, d), [[c d]])
- data (ControlPoint c, Domain d) => GLmap2 c d
- map2 :: (Map2 m, ControlPoint c, Domain d) => StateVar (Maybe (m c d))
- mapGrid1 :: Domain d => StateVar (GLint, (d, d))
- mapGrid2 :: Domain d => StateVar ((GLint, (d, d)), (GLint, (d, d)))
- evalMesh1 :: PolygonMode -> (GLint, GLint) -> GL ()
- evalMesh2 :: PolygonMode -> (GLint, GLint) -> (GLint, GLint) -> GL ()
- evalPoint1 :: GLint -> PrimitiveGL ()
- evalPoint2 :: (GLint, GLint) -> PrimitiveGL ()
- autoNormal :: StateVar Capability
Evaluator-related Types
class Storable d => Domain d whereSource
evalCoord1 :: MonadGL m => d -> m ()Source
evalCoord1v :: MonadGL m => Ptr d -> m ()Source
evalCoord2 :: MonadGL m => (d, d) -> m ()Source
evalCoord2v :: MonadGL m => Ptr d -> m ()Source
data Domain d => MapDescriptor d Source
MapDescriptor (d, d) Stride Order NumComponents |
(Eq d, Domain d) => Eq (MapDescriptor d) | |
(Ord d, Domain d) => Ord (MapDescriptor d) | |
(Show d, Domain d) => Show (MapDescriptor d) |
class ControlPoint c Source
Defining Evaluator Maps
One-dimensional Evaluator Maps
withNewMap1 :: (ControlPoint c, Domain d) => MapDescriptor d -> (Ptr d -> GL ()) -> GL (m c d)Source
withMap1 :: (ControlPoint c, Domain d) => m c d -> (MapDescriptor d -> Ptr d -> GL a) -> GL aSource
newMap1 :: (ControlPoint c, Domain d) => (d, d) -> [c d] -> GL (m c d)Source
getMap1Components :: (ControlPoint c, Domain d) => m c d -> GL ((d, d), [c d])Source
data (ControlPoint c, Domain d) => GLmap1 c d Source
Two-dimensional Evaluator Maps
withNewMap2 :: (ControlPoint c, Domain d) => MapDescriptor d -> MapDescriptor d -> (Ptr d -> GL ()) -> GL (m c d)Source
withMap2 :: (ControlPoint c, Domain d) => m c d -> (MapDescriptor d -> MapDescriptor d -> Ptr d -> GL a) -> GL aSource
newMap2 :: (ControlPoint c, Domain d) => (d, d) -> (d, d) -> [[c d]] -> GL (m c d)Source
getMap2Components :: (ControlPoint c, Domain d) => m c d -> GL ((d, d), (d, d), [[c d]])Source
data (ControlPoint c, Domain d) => GLmap2 c d Source
Using Evaluator Maps
Evaluating an Arbitrary Coordinate Value
Using Evenly Spaced Coordinate Values
Defining a Grid
Evaluating a Whole Mesh
Evaluating a Single Point on a Mesh
evalPoint1 :: GLint -> PrimitiveGL ()Source
evalPoint2 :: (GLint, GLint) -> PrimitiveGL ()Source