- smoothbox :: Monoid attr => RSdouble -> Point3D -> Point3D -> Modeling attr
- regularPrism :: Monoid attr => (Point3D, RSdouble) -> (Point3D, RSdouble) -> Integer -> Modeling attr
- heightField :: Monoid attr => (RSdouble, RSdouble) -> (RSdouble, RSdouble) -> ((RSdouble, RSdouble) -> RSdouble) -> Modeling attr
- heightDisc :: Monoid attr => (RSdouble, RSdouble) -> RSdouble -> ((RSdouble, RSdouble) -> RSdouble) -> Modeling attr
- rotationGroup :: AffineTransformable a => Vector3D -> Integer -> a -> [a]
- glass :: RGBFunction -> MaterialM attr ()
- plastic :: RGBFunction -> MaterialM attr ()
- metallic :: RGBFunction -> MaterialM attr ()
- pattern :: AbstractVector a => Pattern -> [(RSfloat, ColorFunction a)] -> ColorFunction a
- cloudy :: Int -> RSdouble -> Pattern
- blinkBoxes :: Int -> RSdouble -> RSdouble -> RSdouble -> Pattern
- spherical :: Point3D -> RSdouble -> Pattern
- directional :: Vector3D -> Pattern
- gradient :: Point3D -> Vector3D -> Pattern
- bumps :: Pattern -> Modeling attr
- waves :: RSdouble -> RSdouble -> Pattern
- heightMap :: ((RSdouble, RSdouble) -> RSdouble) -> Modeling attr
- disregardSurfaceNormals :: Modeling attr
- type ColorFunction a = ApplicativeWrapper ((->) SurfaceVertex3D) a
- type Pattern = SurfaceVertex3D -> RSdouble
- dropRandomElements :: Int -> StdGen -> [a] -> [a]
- module RSAGL.Modeling.Material
- newtype ApplicativeWrapper f a = ApplicativeWrapper (Either (f a) a)
- fromPure :: Applicative f => ApplicativeWrapper f a -> Maybe a
- toApplicative :: Applicative f => ApplicativeWrapper f a -> f a
- unwrapApplicative :: Applicative f => ApplicativeWrapper f a -> Either (f a) a
- wrapApplicative :: Applicative f => f a -> ApplicativeWrapper f a
- isPure :: Applicative f => ApplicativeWrapper f a -> Bool
- module Control.Applicative
Documentation
regularPrism :: Monoid attr => (Point3D, RSdouble) -> (Point3D, RSdouble) -> Integer -> Modeling attrSource
heightField :: Monoid attr => (RSdouble, RSdouble) -> (RSdouble, RSdouble) -> ((RSdouble, RSdouble) -> RSdouble) -> Modeling attrSource
A rectangular height field rising off of the x-z plane.
heightDisc :: Monoid attr => (RSdouble, RSdouble) -> RSdouble -> ((RSdouble, RSdouble) -> RSdouble) -> Modeling attrSource
A circular height field rising off of the x-z plane.
rotationGroup :: AffineTransformable a => Vector3D -> Integer -> a -> [a]Source
glass :: RGBFunction -> MaterialM attr ()Source
plastic :: RGBFunction -> MaterialM attr ()Source
metallic :: RGBFunction -> MaterialM attr ()Source
pattern :: AbstractVector a => Pattern -> [(RSfloat, ColorFunction a)] -> ColorFunction aSource
directional :: Vector3D -> PatternSource
heightMap :: ((RSdouble, RSdouble) -> RSdouble) -> Modeling attrSource
Raises or lowers each point in a model along the y-axis according to its (x,z) coordinate. Typically this is used to construct height fields.
disregardSurfaceNormals :: Modeling attrSource
For models where we are certain surface normals don't matter, then don't calculate them.
type ColorFunction a = ApplicativeWrapper ((->) SurfaceVertex3D) aSource
type Pattern = SurfaceVertex3D -> RSdoubleSource
dropRandomElements :: Int -> StdGen -> [a] -> [a]Source
module RSAGL.Modeling.Material
newtype ApplicativeWrapper f a Source
ApplicativeWrapper
captures an applicative entity and remembers whether the entity is pure.
ApplicativeWrapper (Either (f a) a) |
(Functor f, Applicative f) => Functor (ApplicativeWrapper f) | |
Applicative f => Applicative (ApplicativeWrapper f) | |
(NFData (f a), NFData a) => NFData (ApplicativeWrapper f a) | |
(Applicative f, AbstractZero p) => AbstractZero (ApplicativeWrapper f p) | |
(Applicative f, AbstractScale v) => AbstractScale (ApplicativeWrapper f v) | |
(Applicative f, AbstractVector v) => AbstractVector (ApplicativeWrapper f v) | |
(Applicative f, AbstractAdd p v) => AbstractAdd (ApplicativeWrapper f p) (ApplicativeWrapper f v) | |
(Applicative f, AbstractSubtract p v) => AbstractSubtract (ApplicativeWrapper f p) (ApplicativeWrapper f v) |
fromPure :: Applicative f => ApplicativeWrapper f a -> Maybe aSource
toApplicative :: Applicative f => ApplicativeWrapper f a -> f aSource
unwrapApplicative :: Applicative f => ApplicativeWrapper f a -> Either (f a) aSource
wrapApplicative :: Applicative f => f a -> ApplicativeWrapper f aSource
isPure :: Applicative f => ApplicativeWrapper f a -> BoolSource
module Control.Applicative