AnalyticalGraphicsInc/cesium — pull request #1132 by mramato (2013-09-10 02:31:29+00:00)
Title: DynamicScene ES5 properties

This change updates all of the DynamicScene graphics objects (`DynamicBillboard` et al.) to use ES5 properties. It adds the ability to observe each of these objects via the `propertyChanged` event. `CompositeDynamicObjectCollection` has been rewritten to actually work in all cases and uses the new features to make that happen. `DynamicObjectCollection` has also had some API changes to improve usability. Both collections now offer additional notification information for when objects change. I'm not 100% happy with the `CompositeDynamicObjectCollection` API, so I'm open for suggestions for additional tweaks.

This change also adds the ability to easily specify custom properties on `DynamicObject` via the `addProperty` method. This allows for any data source to add custom properties which will then play nice with the compositing and notifications system. This is a precursor to automagically handling custom properties in CZML in a future pull request.

Since ES5 properties are slow, the visualizers currently index into the "private" variables that back the properties. Future pull requests will re-write each of the visualizers in order to take advantage of the new functionality and improve overall performance.