Future ideas
Discuss improvements or even maybe possible improvements
Multiple child lists
Instead of having one child list in a a2dCanvasObject, there could be N. This might make it easier to do sub editing on each childlist. When several group must be combined in one object, this is currently only possible via member variables. This undermines the default implementation of sub editing, which is only on children from the child list. Making groups objects first in the child list, adds an extra level and an object one does not really want to deal with. Think of a window with a title plus close buttons, a canvas and a status bar. Here each part needs its own independent editing area, but at the same time one does not really want to change the size of those areas, only editing of the context is wanted.
controls/GUI objects
Make such controls, and have pins on them.
text in objects as visible properties.
Text properties which do resize the object that contains them. It should work for all a2dCanvasObjects.
Z buffer
Use 2 buffers for pixels drawn drawing enigines, one contains Z value of pixel. Less drawing of pixels, and only one pass through document.
Hittest on small objects
Small objects should be hit before big object (on the same layers or different layers), if using outline drawing. A distance factor needs to be used, the one more close wins.
File based undo
When moving many object around, the undo information may become big. Stroring command undo information into a file as CVG, would overcome the problem.