0.6.5 Alpha (11/10/07) Changed a method in Scene from package-private to protected Added a new method to Scene called replace(Scene); it replaces the Scene it's called on with another Actor has a new method called checkAllowAdd(Scene) that is called by Scene.addActor(Actor) before the process of adding an Actor to a Scene is actually begun; this gives an Actor a chance to reject the placement; I plan to use this to ensure that certain Actors may only be placed within certain types of Scenes Scene has a new method called eventDeliveryException(Exception) that is called when delivering an event to an Actor throws an exception; this allows you to override the default behavior (reporting via System.err) to do whatevery you want with the Exception; Scene is now catching Exceptions and continuing on delivering events without choking on them Moving an Actor from one Scene to another via Scene.addActor(Actor) no longer triggers two calls to Actor.ownerChanged(Scene) on the Actor being moved; it was triggering a call with null and then a call with the new Scene; now it will recieve only one call with the new Scene Scene.addActor(Actor) will no longer do anything when it is called on an Actor that is already in the Scene 0.6.4 Alpha (3/10/07) Fixed VisibleActor to make it a MultipassVisible instead of a Visible 0.6.3 Alpha (3/3/07) Several API changes; more fallout from the changes to the modeler Fixed the AWT-hang-on-close bug; this one was entirely my own fault; I was attempting to wait for a task to complete that was dependent on the AWT event thread, from within the AWT event thread itself; ouch! 0.6.2 Beta (2/17/07) Added a new method to Actor: ownerChanged(Scene); this allows an Actor subclass to be notified of changes in it's ownership Altered RealTimeClock to allow up to two time events to stack, rather than just one; this led to a slightly more smooth effect when the processor is taxed to it's limits 0.6.1 Beta (1/29/07) Fixed a bug related to the time factor option of RealTimeClock; I was accidentally multiplying the remainder from previous loops! Altered Clock to use LinkedHashSet for it's collections of Actors; I want Actors added earlier to get clock-related events earliest; this is important for the physics library Made some small modifications to VideoRenderer to reduce dead-locks from happening occasionally to happening rarely; it's now checking to make sure the GLDrawable is displayable before it tries to do any rendering 0.6.0 Beta (1/20/07) Fixed some typos in Javadocs Added a new constructor to RealTimeClock that requires no name; it uses it's class name as it's name Expanded a comment in Clock ActionGUI is now wrapping it's Light objects and DemoRotator in ActorView and placing them directly in the base Scene object Added a new constructor to Scene that requires no name; it uses a default of "Scene" Fixed a potentially Earth-shattering bug in Scene; if you used an iterator to remove an Actor from the Scene, no notifications would have taken place and the system would have proceeded as if the Actor was still present; eventually, the Scene would crash for some reason or another VideoRenderer has a new method called getRenderer(); it returns the SplitScreenRenderer that was configured when the VideoRenderer was constructed Added a method to VisibleActor called getVisible() that returns the Visible passed in via the constructor Added a call the Thread.yield() in RealTimeClock's run loop, just after idle events are sent out; should help prevent dead-locks with greedy threads that never let go (the clock thread) Fixed a dead-lock problem that was happening when rendering calls occur after a signal to close a Frame has been sent; RealTimeClock will no longer send idle events when it's supposed to be shutting down 0.5.0 Beta (3/10/06) Updated VideoRenderer to use the new timing capabilities of the Timer library and the Modeler's net.jinx.video.Context class; the ActionGUI is rendering as beautifully as the modeler 0.4.1 Beta (3/3/06) Fixed Scene so it should now pass clock-related events to sub-scenes 0.4.0 Beta (11/29/05) Added a hashCode() method to Actor that returns it's name's hash code Removed the ActorSceneListener class and replaced it with an interface called OwnerListener; anything implementing OwnerListener will be automatically added/removed as a SceneListener from any Scene it's added to or removed from; it fills the same role as ActorSceneListener, but since it's an interface instead of a class, it's much more flexible Moved the input package to it's own source tree; there's a new 0.3.1 Beta (11/9/05) Added a new package: net.jinx.action.input; this one's going to handle the generation of input from either a user or an AI; input from either will work as closely similiar as possible; Humans will generate input events, which will be processed through some kind of control translator; AI's will generate control events directly; control events for unknown equipment will either be logged or ignored 0.3.0 Beta (11/2/05) VideoRenderer is now passing interpolation values on the the underlying renderer; this is now accessible from the Context class in the video package of the Modeler 0.2.0 Beta (10/31/05) Fixed a bug in Clock where a ClockStateEvent would be sent to an Actor twice if it was both ClockSensitive and IdleSensitive Altered Scene.addActor(Actor) to throw an IllegalArgumentException if an attempt is made to add the Scene to itself Moved the physics package to it's own library and renamed it the Deimos Math library 0.1.1 Alpha (10/20/05) Fixed the Clock class; there's now seperate RealTimeClock and SteppingClock classes 0.1.0 Alpha (10/17/05) Initial release