rsagl-0.6.0.0: The RogueStar Animation and Graphics Library

RSAGL.Animation.AnimationExtras

Synopsis

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 PV = (Point3D, Rate Vector3D)Source

A particle with a position and velocity.

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.