Wednesday, October 20, 2010

Work Progress - Oct 20 - Oct 26

Demo: here

Done:
  • Place global methods after local methods
  • Sine wave
  • Survey on alternative physics engines: 1, 2, 3
  • Collision optimization: 1) Model lines as series of 2-vertex polygons rather than 4-vertex blocks. 2) Make all objects that are not supposed to move as sleeping - this helps reduce CPU load, 3) Allow the user to reduce the maximum number of iterations allowed to the constraint solver (now as a property of the background object). 4) Assigning non-movable zero mass, so they are considered static. Hopefully the engine does not check for collision among static objects. Possible TODO: Only activate objects that are around movable skateboarder at every time step. Objects that are unactivated do not involve in collision test and thus collision detection is faster. (See Body.setActive() javadoc)
  • Polynomial's default shape is now quadratic.
  • Equation objects are now accompanied with the corresponding equations in the description section of the property window. (Ref: Unicode lookup table here)
TODO:
* equal inc for the lines
* Fix acceleration direction problem
* Rocket image for rocket jump
* Description of the equation lines - naming convention and general desc as annotations as description of the class in general, name and desc are description of the particular object

Wednesday, October 13, 2010

Work Progress - Oct 13 - Oct 19

SB demo: here

Polynomials
  • One can now create new Polynomial, Rational and Exponential objects from the Create New Object button.
Poses
  • Poses for Jump and Accelerate are done (One may add the Jump/Accelerate method codelet to the On "u"/"d" pressed event codelet of the skateboarder, then press the corresponding key during the simulation when the skateboarder is on some line to see the effect). When the skateboarder's downward acceleration is greater than a certain threshold, its look also changes.

Wednesday, October 6, 2010

Work Progress - Oct 6 - Oct 12

SB Demo with fixed method codelet input boxes (by Jason) and forgiving cursor (in CCD site): here

Work done

1) The degree of forgiving can be adjusted as advanced properties in the Engine/Background class.

The bounding box shown when the skateboarder is selected gives you an idea on how it works. Once you start the application, select the skateboarder and adjust its size which is its advanced property. Even if its size is very small (say 0.01), we still preserve an area for it to be selectable.

2) Background image
Now it is just a predefined image. We still need to think about how to allow user's own content to appear in the app.

TODOs

* Assignment, binary statement visualization in left window
* Poses

Some reminder developer notes

* uniscale for the G2D presentation engine
* GetPolyBound() of PObject should return a vector of vector of Vector3 class because multiple polygons may be needed to define the bounding polygons (e.g. the arc)
* Transparency of codelet in the drag layer
* drag method codelet in the left window does not show up in the drag layer.