A "toolbox" library used by other polygonal libraries (core)
The library includes the following packages:
- A library for handling events, with focus on boilerplate reduction and performance.
- See A fast notification system for event-driven design.
- See The Observer pattern
- Various helper functions for formatting numbers and objects.
- Supports sprintf syntax. See Using sprintf with Haxe.
- A fast Base64 encoder.
- Resource loading / mass loader (flash only)
- A simple logging framework.
- A bunch of basic macros for generating classes at compile-time.
- Math helper functions.
- Fast 2D/3D vector and matrix math.
- Pseudorandom number generators (Park-Miller-Carta, MT19937)
- Trigonometric approximations.
- Entity framework for component based architectures.
- Time-based updates, timeline, timed execution.
- A tweening framework.
- Misc utility functions.
Install Haxe and run
$ haxelib install polygonal-core from the console.
This installs the polygonal-core library hosted on lib.haxe.org, which always mirrors the git master branch. From now on just compile with
$ haxe ... -lib polygonal-core.
If you want to test the latest beta build, you should pull the dev branch and add the src folder to the classpath via
$ haxe ... -cp src.
1.0.4 (released 2013-07-08)
- modified: move Sprintf to separate haxelib library (polygonal-sprintf, de.polygonal.Sprintf)
1.0.3 (released 2013-06-28)
support Haxe Compiler 3.0.0
- modified: support Haxe 3 only (Haxe 2.x and Neko 1.x are no longer supported)
- fixed: ie10 console.debug
- fixed: several fixes for Haxe 3
- modified: refactor/simplify log system, improve log output similar to logcat default format
- modified: removed Root class (replaced with de.polygonal.core.log.LogSystem)
- modified: improve StringUtil.ellipsis
- modified: Timeline: use statics instead of singleton pattern
- modified: print call stack on assertion
- modified: enable RLE (run length encoder) for all targets
- modified: move resource loader to separate flash library
- modified: renamed IObserver.update() to IObserver.onUpdate() to prevent method name clashing
1.02 (released 2013-01-30)
- modified: change LogMessage.data type to Dynamic
- added: ClassUtil class
- added: Mathematics.int()
- fixed: EntityType + compilation server
- modified: Observable.mute -> muteType, unmute -> unmuteType (name clash with Entity)
- added: Mat33.setRotateX(), setRotateY()
- fixed: Timebase.gameTime
- fixed: some minor fixes for -D haxe3
- modified: restore draw/tick state when calling Entity.wakeup() after Entity.sleep()
- Timebase: use statics instead of singleton pattern
1.01 (released 2012-11-15)
- fixed: Mathematics.floor(), ceil(), fwrap() for neko, don't use Std.int() for cpp
- modified: keep dispatching Timebase updates when calling MainLoop.pause()
- modified: make de.polygonal.core.time.Delay cancelable
- added: math.RootSolver class
- modified: Entity: pass message sender when sending messages
- fixed: keep existing fields in macro.Version
- added: Entity.is() and Entity.isAny()
- fixed: minor tweening fixes, added tweening examples
- modified: Observable: consider group id in event filtering, use 30 bits for neko
- added: TimelineListener as an alternative to TimelineEvent
- modified: optimized tweening performance
- added: Entity.iterator() to iterate over all children (non-recursive)
- modified: merge Observable.bindMulti() and Observable.bind() into Observable.bind(), fix group filtering
- fixed: ConfigXML: keep existing fields
- added: Timebase.fps
- modified: Entity: shorten names of frequently used methods
- modified: Entity: more precise recursive message propagation
- added: StringUtil.generateRandomKey()
- fixed: ObserverMacro for Haxe 2.11+
- added: RNORREXP (generate pseudo random normal and exponential variates)
- added: PropertyFile macro to turn a property file into a class
- modified: move macro package to util package
- added: Compile-time tokenization of Sprintf format string (thanks Zachary Dremann - github.com/Dr-Emann)
- modified: ParkMiller31 for all targets using haxe.Int32 (thanks Zachary Dremann - github.com/Dr-Emann)
- Initial version.