![](https://secure.gravatar.com/avatar/f42c45df393e9ee22c16527ce0946c3e.jpg?s=120&d=mm&r=g)
Hello
I have briefly described in the past my thoughts on how the render can be improved by introducing spatial indexes.
The render has to find which shapes intersect with the user's viewport. Currently this is done by a full scan in display/sp-canvas.cpp:871 in sp_canvas_group_render() right? (Krzysztof gave some hints in another thread some days ago).
The idea is to implement an index, so that the renderer performs the range query faster than the full scan.
Some basic ideas on the project. * The index is going to be a standard one like R-star (used in oracle, postgis, sqlite).
* This R-trees can support 3 dimensions without any performance penalty (if the index has many dimensions performance deteriorates and other kind of indexes perform better). If we do this project we can implement a third dimension (time), for future usage, and leave it there until Inkscape goes into animation.
* It would be better if the project is hosted in lib2geom. In this way Inkscape's code base undergoes the minimal changes (ideally no more than a few lines of code).
* The index should be disk based (so that it can be saved and reused when Inkscape opens the same file again)
* There should be a way to identify the shapes of the SVG uniquely (either XML elements or elements from another abstraction Inkscape uses). Can anyone give me some pointers on how I should work for this issue?
Any ideas are welcome.
Regards Vangelis
__________________________________________________ Χρησιμοποιείτε Yahoo!; Βαρεθήκατε τα ενοχλητικά μηνύματα (spam); Το Yahoo! Mail διαθέτει την καλύτερη δυνατή προστασία κατά των ενοχλητικών μηνυμάτων http://mail.yahoo.gr