Documentation for classes includes syntax, usage information, and code samples for methods, properties, and event handlers and listeners for those APIs that belong to a specific class in ActionScript. The classes are listed alphabetically. If you are not sure to which class a certain method or property belongs, you can look it up in the Index.


 ClassPackageDescription
 AABR
org.MARS.dynamics.collision.geom Axis-Aligned Bounding Rectangle

An AABR is a rectangle with 2 sides parallel to the world x-axis and the other 2 parallel to the world y-axis.

 AABRDetector
org.MARS.dynamics.collision.coarse Coarsely detects possible collisions depending on AABRs
 AbstractElectronicDevice
org.MARS.robot.control An abstract class defining the basic functionality of the electronic devices, such as getting the states of the IO ports
 AbstractSensor
org.MARS.robot.sensors Implements the basic sensor functionality

NOTE: the abstract classes cannot be instantiated

 AbstractSolver
org.MARS.dynamics.ode.solver Abstracts an implementation of IODESolver

NOTE: you should not instantiate this class

 AxisProjection
org.MARS.dynamics.collision.fine.sat 
 Battery
org.MARS.robot.control Battery is not really a brain, it contains no logic, but instead it simulates connecting the DifferentialSteering inputs directly to a battery.
 BezierDetector
org.MARS.dynamics.collision.fine.sat Detects collision between a CubicBezierCurve and RigidBody
 BrainOne
org.MARS.robot.control The Brain One is a basic analogue controller device.
 BrainTwo
org.MARS.robot.control The Brain Two is a basic analogue controller device.
 Bungee
org.MARS.dynamics.force.spring Bungee

A bungee will only exert a pulling force if the spring is extended further than its restlength

 Circle
org.MARS.view.shape Circular shape
 CircleAxisProjection
org.MARS.dynamics.collision.fine.sat Projects a circle onto a given axis

This type is intimately tied to SAT collision detection.

 CircleCircleDetector
org.MARS.dynamics.collision.fine.sat Detects collision between 2 circles.
 CirclePolygonDetector
org.MARS.dynamics.collision.fine.sat Detects a collision between a circle and a convex polygon.
 CollisionResolver
org.MARS.dynamics.collision Monolithic rigid body impulse-based collision resolver

This class with its lone static method is used by the PhysicsEngine to resolve all found collisions for each iteration in its step.

 CollisionType
org.MARS.dynamics.collision.enum Enumerates collision types for factory mapping
 Contact
org.MARS.dynamics.collision Depicts pairwise contact information

To resolve collisions, the CollisionResolver needs to know both bodies involved, the point of contact in world coordinates, and the collision normal (points outward from incident edge).

 CubicBezierCurve
org.MARS.view.shape Circular cubic bezier curve

NOTE: the class is not yet implemented

 DifferentialSteering
org.MARS.robot.locomotion The basic locomotion used on almost all small robots.
 EdgeSensor
org.MARS.robot.sensors The simple edge sensor which uses its shape to locate the edge of the table.
 Environment
org.MARS.simulation Encapsulates all methods required to add various objects to the Simulation.
 Euler
org.MARS.dynamics.ode.solver Euler differential equation solver

This solver simply finds the derivative and applies it directly to the state to advance the equation

 Friction
org.MARS.dynamics.force Applies a frictional force to an element
 Gravity
org.MARS.dynamics.force Applies a gravitational force to an element

Gravity in simulation applies a mass-ignorant force.

 IActuator
org.MARS.robot.actuators Defines the basic actuator functionality
 IBody
org.MARS.dynamics.element Defines all necessary methods for PhysicsEngine to simulate a body.
 ICoarseCollisionDetector
org.MARS.dynamics.collision Imposes minimum structure necessary for the PhysicsEngine to coarsely cull collision instances which aren't worth the more expensive fine phase of detection.
 ICollisionFactory
org.MARS.dynamics.collision Defines a structure to implement a collision detector factory.
 IController
org.MARS.robot.control Defines the minimal functionaly of an alectronic controller device
 IElectronicDevice
org.MARS.robot.control Defines the minimal functionaly of an alectronic device
 IFineCollisionDetector
org.MARS.dynamics.collision Imposes minimum structure necessary for the PhysicsEngine to finely detect collisions and generate contacts based on that detection.
 IForceGenerator
org.MARS.dynamics.force Depicts how forces should modularly affect simulatable elements.
 ILocomotion
org.MARS.robot.locomotion Defines the basic functionality of the locomotion system
 IODE
org.MARS.dynamics.ode Imposes a structure that allows an IODESolver to advance its state.
 IODESolver
org.MARS.dynamics.ode Depicts a structure with which to solve differential equations.
 IOPort
org.MARS.robot.control A simulation of the Input/Output port which is used for the communication between the various electronic devices.
The IO Ports could be used for either input or output.
Several IO Ports could be connected to each other to share their states.
 IOUtil
org.MARS.util A useful utility for outputting the text
 IRDetector
org.MARS.robot.sensors The IR range detector which uses modulated IR pulses to locate the walls or large objects on the surface of the table.
 IRenderer
org.MARS.view Depicts a necessary structure to build a renderer

I tried to keep this as general and uninhibitive as possible.

 ISensor
org.MARS.robot.sensors Defines the basic sensor functionality
 ISimulatable
org.MARS.dynamics.element Defines all necessary methods for PhysicsEngine to simulate an element.
 KeyDrivenTorqueGenerator
org.MARS.dynamics.force Applies a key-driven input torque to a body

This is given as a simple example of how to create a slightly more complex force generator.

 KeyPoll
org.MARS.util

Games often need to get the current state of various keys in order to respond to user input.

 LED
org.MARS.robot.actuators An LED which switches on and off depending on the state of its IO Port
 LineFollowingBrain
org.MARS.robot.control The Line Following Brain is a programmable controller device.
 LineSensor
org.MARS.robot.sensors The line sensor which uses IR light to locate the light or dark lines on the surface of the table.
 LocomotionUtil
org.MARS.util Useful utilities for creating the wheel systems
 MARS
Top Level 
 MARSRenderer
org.MARS.view The default MARS renderer
 MathUtil
org.MARS.util Useful mathematic functions
 MouseSpring
org.MARS.dynamics.force.spring Drags bodies with Mouse
 PhysicsEngine
org.MARS.dynamics Takes on the job of advancing the simulation

This should typically be accessed through the more user friendly interface

The simulation takes the form:

  1.
 PointPolygonDetector
org.MARS.dynamics.collision.fine.sat Detects collision between a Point and IBody
 Polygon
org.MARS.view.shape Polygon shape
 PolygonAxisProjection
org.MARS.dynamics.collision.fine.sat Projects a polygon onto a given axis

This type is intimately tied to SAT collision detection.

 PolygonPolygonDetector
org.MARS.dynamics.collision.fine.sat Detects a collision between 2 convex polygons.
 Rectangle
org.MARS.view.shape Rectangle is a special case of Polygon
 Renderable
org.MARS.view Helps port an element for rendering out of the context of physical simulation
 RenderingUtil
org.MARS.util Useful drawing routines
 RigidBody
org.MARS.dynamics.element.body Basal implementation of a RigidBody

Rigid bodies have some definable qualities worth mentioning.

 RigidBodyBungee
org.MARS.dynamics.force.spring Bungee attached to a point on a body TODO: comment
 RigidBodySpring
org.MARS.dynamics.force.spring Spring attached to a point on a body TODO: comment TODO: override clone TODO: override invert
 RK4
org.MARS.dynamics.ode.solver Runga Kutta 4th-Order Differential equation solver

This is a meticulous and accurate IODESolver.

 Robot
org.MARS.robot Simulates a mobile autonomous robot
 RotationMatrix
org.MARS.math Rotation Matrix
| r11 r12 |
| r21 r22 |
 SATCollisionFactory
org.MARS.dynamics.collision.fine.sat Maps and creates IFineCollisionDetectors for use by the PhysicsEngine
 Shape
org.MARS.view.shape Implements the basic shape functionality shared by all subclasses.
 ShapeUtil
org.MARS.util Useful utilities for dealing with body geometries
 SimpleForceGenerator
org.MARS.dynamics.force Applies a constructor-given vector as a force

This is the simplest force generator scenario- a vector given at instantiation is applied to any element that calls generate.

 SimpleMap
org.MARS.util Simple map data holder
 SimpleParticle
org.MARS.dynamics.element.particle Basal implementation of ISimulatable

SimpleParticle could be used to simulate particle movement- though no collision system is currently in place for such elements.

 Simplification
org.MARS.dynamics.enum Offers an enumeration of useful simplifications
 Simulation
org.MARS.simulation Encapsulates all methods required to run a simulation and provides a user-friendly access to the PhysicsEngine class.
 Spring
org.MARS.dynamics.force.spring Creates a spring force

Due to the need for spring forces to update within an ISimulatable's integration, there is 1 Spring element per force generation.

 SquidTestBrain
org.MARS.robot.control The Squid Test Brain is a programmable controller designed for a specific purpose and a specific robot.
 StartButton
org.MARS.util The start button enchancing the Simulation with the additional interactivity.
 SymmetricPolygon
org.MARS.view.shape Symmetric Polygon is a special case of Polygon
 TouchSensor
org.MARS.robot.sensors The simple touch sensor which uses a mechanical switch to locate the walls or heavy objects on the surface of the table.
 Vector
org.MARS.math Two-Dimensional Vector
 Wheel
org.MARS.robot.locomotion Represents a wheel used by the locomotion systems