Graphics.Rendering.OpenGL.GLU.NURBS

OpenGL-2.13.1.0: A binding for the OpenGL graphics system

Copyright | (c) Sven Panne 2002-2013
License | BSD3
Maintainer | Sven Panne <svenpanne@gmail.com>
Stability | stable
Portability | portable
Safe Haskell | None
Language | Haskell2010

Graphics.Rendering.OpenGL.GLU.NURBS

Description

This module corresponds to chapter 7 (NURBS) of the GLU specs.

# Documentation

type NURBSObj = Ptr GLUnurbs

withNURBSObj :: a -> (NURBSObj -> IO a) -> IO a

type NURBSBeginCallback = PrimitiveMode -> IO ()

withNURBSBeginCallback :: NURBSObj -> NURBSBeginCallback -> IO a -> IO a

type NURBSVertexCallback = Vertex3 GLfloat -> IO ()

withNURBSVertexCallback :: NURBSObj -> NURBSVertexCallback -> IO a -> IO a

type NURBSNormalCallback = Normal3 GLfloat -> IO ()

withNURBSNormalCallback :: NURBSObj -> NURBSNormalCallback -> IO a -> IO a

type NURBSColorCallback = Color4 GLfloat -> IO ()

withNURBSColorCallback :: NURBSObj -> NURBSColorCallback -> IO a -> IO a

type NURBSEndCallback = IO ()

withNURBSEndCallback :: NURBSObj -> NURBSEndCallback -> IO a -> IO a

checkForNURBSError :: NURBSObj -> IO a -> IO a

nurbsBeginEndCurve :: NURBSObj -> IO a -> IO a

nurbsCurve :: ControlPoint c => NURBSObj -> GLint -> Ptr GLfloat -> GLint -> Ptr (c GLfloat) -> GLint -> IO ()

nurbsBeginEndSurface :: NURBSObj -> IO a -> IO a

nurbsSurface :: ControlPoint c => NURBSObj -> GLint -> Ptr GLfloat -> GLint -> Ptr GLfloat -> GLint -> GLint -> Ptr (c GLfloat) -> GLint -> GLint -> IO ()

class TrimmingPoint p

Minimal complete definition

trimmingTarget

Instances

TrimmingPoint Vertex3 |
TrimmingPoint Vertex2 |

nurbsBeginEndTrim :: NURBSObj -> IO a -> IO a

pwlCurve :: TrimmingPoint p => NURBSObj -> GLint -> Ptr (p GLfloat) -> GLint -> IO ()

trimmingCurve :: TrimmingPoint c => NURBSObj -> GLint -> Ptr GLfloat -> GLint -> Ptr (c GLfloat) -> GLint -> IO ()

data NURBSMode

Constructors

NURBSTessellator |
NURBSRenderer |

Instances

Eq NURBSMode |
Ord NURBSMode |
Show NURBSMode |

setNURBSMode :: NURBSObj -> NURBSMode -> IO ()

setNURBSCulling :: NURBSObj -> Capability -> IO ()

data SamplingMethod

Constructors

PathLength GLfloat |
ParametricError GLfloat |
DomainDistance GLfloat GLfloat |
ObjectPathLength GLfloat |
ObjectParametricError GLfloat |

Instances

Eq SamplingMethod |
Ord SamplingMethod |
Show SamplingMethod |

setSamplingMethod :: NURBSObj -> SamplingMethod -> IO ()

loadSamplingMatrices :: (Matrix m1, Matrix m2) => NURBSObj -> Maybe (m1 GLfloat, m2 GLfloat, (Position, Size)) -> IO ()

data DisplayMode'

Constructors

Fill' |
OutlinePolygon |
OutlinePatch |

Instances

Eq DisplayMode' |
Ord DisplayMode' |
Show DisplayMode' |

setDisplayMode' :: NURBSObj -> DisplayMode' -> IO ()