|Author:||Tuomas J. Lukka|
Performance problems in PP show that we should soon make a big change I've been mulling over for some time: make vobscenes hierarchical.
Should we have a "VobSceneVob", i.e. a Vob that contains a different VobScene or some other approach?
RESOLVED: A different approach, since we want to export coordinate systems from the child vobscene to the parent, in order to do anchors. This cannot be done by a Vob so we need to really touch the VobScene itself.
What should the efficiency demands be? Linear w.r.t. child size?
RESOLVED: Linear is not good enough! Consider a huge canvas that has been generated and is placed into a viewport, and most of it is culled away. One of the very reasons for this PEG is that we need to have more speed in this case.
Therefore, the time should be linear w.r.t. the rendered coordsystems of the child, but not scale with child size. This makes life a bit more difficult internally (can't just copy a list) but should be well worth it
How do we map between coordinate systems?
RESOLVED: Undefined for now. We provide a method to translate from coordinate systems of the child to the parent.
Note that grandchildren will simply use this twice:... # create grandChildVobScene grandChildVobSceneId = childVobScene.add(grandChildVobScene) ... # create childVobScene childVobSceneId = vobScene.add(childVobScene) childCS = childVobScene.childCS(grandChildVobSceneId, grandChildCS); cs = vobScene.childCS(childVobSceneId, childCS);
RESOLVED: Using a vobscene after a child that was placed into it has been altered in any way except coordinate system parameter change gives undefined results for now. Possibly even crash.
Should the exported coordinate systems be defined somehow in the child vobscene?
RESOLVED: No. While this is a good programming practice, and should be done when using this functionality, it is probably not appropriate to provide mechanisms for it.
Do we need to define coordinate systems other than the root of the child from the parent?
RESOLVED: Yes. Even for the primitive use case outlined above, we need two: the canvas and the viewport coordinate systems.
How generally do we need to define the coordinate systems of the child? Alternatives: n from the beginning, or "random access" for redefining any coordinate systems of the child we like.
RESOLVED: Initially, n from the beginning. We can generalize later if necessary. This also makes matching, shouldBeRendered hierarchies &c inside the child easier to deal with for now.
Should the child vobscene define the number of coordsys in the beginning to replace with coordsys from the parent?
How do we get the coordinate systems into the child vobscene?