- rotationA :: Vector3D -> Rate Angle -> FRP e m ignored AffineTransformation
- animateA :: (CoordinateSystemClass s, StateOf m ~ s) => FRP e m j AffineTransformation -> FRP e m j p -> FRP e m j p
- rotateA :: (CoordinateSystemClass s, StateOf m ~ s) => Vector3D -> Rate Angle -> FRP e m j p -> FRP e m j p
- pointAtCameraA :: (Arrow a, ArrowState s a, CoordinateSystemClass s, ScenicAccumulator s m, ModelType model) => a (SceneLayer, m model) ()
- inverseSquareLaw :: RSdouble -> Point3D -> ForceFunction
- quadraticTrap :: RSdouble -> Point3D -> ForceFunction
- drag :: RSdouble -> ForceFunction
- concatForces :: [ForceFunction] -> ForceFunction
- constrainForce :: (Time -> Point3D -> Rate Vector3D -> Bool) -> ForceFunction -> ForceFunction
- singleParticle :: (CoordinateSystemClass s, StateOf m ~ s) => Frequency -> PV -> FRP e m ForceFunction PVA
- particleSystem :: (CoordinateSystemClass s, StateOf m ~ s) => Frequency -> [PV] -> FRP e m ([PV] -> ForceFunction) [PVA]
- type PV = (Point3D, Rate Vector3D)
- type PVA = (Point3D, Rate Vector3D, Acceleration Vector3D)
- type ForceFunction = Time -> Point3D -> Rate Vector3D -> Acceleration Vector3D
Documentation
rotationA :: Vector3D -> Rate Angle -> FRP e m ignored AffineTransformationSource
Answers a continuous rotation.
animateA :: (CoordinateSystemClass s, StateOf m ~ s) => FRP e m j AffineTransformation -> FRP e m j p -> FRP e m j pSource
Apply an affine transformation to an animation.
rotateA :: (CoordinateSystemClass s, StateOf m ~ s) => Vector3D -> Rate Angle -> FRP e m j p -> FRP e m j pSource
Animation that rotates continuously.
pointAtCameraA :: (Arrow a, ArrowState s a, CoordinateSystemClass s, ScenicAccumulator s m, ModelType model) => a (SceneLayer, m model) ()Source
Always rotates the model so that it's Y+ axis points directly at the camera.
inverseSquareLaw :: RSdouble -> Point3D -> ForceFunctionSource
An energy-conserving force function describing gravitational attraction. Accepts the intensity and singularity of the vector field.
quadraticTrap :: RSdouble -> Point3D -> ForceFunctionSource
An energy-conserving force function that increases in intensity with distance.
drag :: RSdouble -> ForceFunctionSource
A force function describing aerodynamic drag.
concatForces :: [ForceFunction] -> ForceFunctionSource
Add many forces together.
constrainForce :: (Time -> Point3D -> Rate Vector3D -> Bool) -> ForceFunction -> ForceFunctionSource
A filter function on forces. Where the filter is False, the force is coerced to zero.
singleParticle :: (CoordinateSystemClass s, StateOf m ~ s) => Frequency -> PV -> FRP e m ForceFunction PVASource
Apply a varying force function to a particle.
particleSystem :: (CoordinateSystemClass s, StateOf m ~ s) => Frequency -> [PV] -> FRP e m ([PV] -> ForceFunction) [PVA]Source
Apply a varying force function to a system of particles.
type PVA = (Point3D, Rate Vector3D, Acceleration Vector3D)Source
A particle with a position, velocity and acceleration.
type ForceFunction = Time -> Point3D -> Rate Vector3D -> Acceleration Vector3DSource
A time-varying, velocity-aware vector field that can act on a particle.