<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Anna,<div class=""><br class=""></div><div class=""><div class="">Depending on how much effort the implementation in Qt of the current rendering system will require</div><div class="">maybe is worth to explore new rendering tools. </div><div class="">Or design the gui code base in a way that will make the adoption of new rendering systems as easy as possible. </div><div class="">It is my understanding that the hardest part will be the development of tools to interact with the map canvas.</div></div><div class=""><br class=""></div><div class="">for the rendering I was thinking of 2 different approaches using library like vispy:</div><div class=""><br class=""></div><div class=""><a href="http://vispy.org/" class="">http://vispy.org/</a></div><div class=""><br class=""></div><div class="">or datashader:</div><div class=""><br class=""></div><div class=""><a href="https://github.com/bokeh/datashader" class="">https://github.com/bokeh/datashader</a></div><div class=""><br class=""></div><div class="">the first is an OpenGL rendering system (smooth pan/zoom and continue rendering)</div><div class="">the second is suitable for large data (render billions of point without crashing the app)</div><div class=""><br class=""></div><div class="">I tried both with standard dataset.</div><div class=""><br class=""></div><div class="">vispy is an attractive library very fast rendering but I don’t know how much effort is required to implement </div><div class="">“mouse events like digitizing and other map canvas interactive tools”</div><div class=""><br class=""></div><div class="">datashader is more “matplotlib-like”, at an api level, </div><div class="">that should make the development of tools to interact with the map canvas a little easier.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">I agree with you, a new rendering system can be coded outside GSoC, what you mentioned</div><div class=""><br class=""><blockquote type="cite" class=""><span class="" style="float: none; display: inline !important;">using the</span><br class=""><span class="" style="float: none; display: inline !important;">current rendering system and focusing on rewriting to qt plus</span><br class=""><span class="" style="float: none; display: inline !important;">refactoring of the current code</span></blockquote></div><div class=""><br class=""></div><div class="">is indeed a lot of work for a single GSoC.</div><div class="">I’ve some experience with PyQt, and I’m willing to help in making this a successful idea.</div><div class=""><br class=""></div><div class="">Massimo.</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Mar 24, 2016, at 10:32 PM, Anna Petrášová <<a href="mailto:kratochanna@gmail.com" class="">kratochanna@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">On Thu, Mar 24, 2016 at 10:12 PM, massimo di stefano</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class=""><</span><a href="mailto:massimodisasha@gmail.com" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">massimodisasha@gmail.com</a><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">> wrote:</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Hi Ondřej,<br class=""><br class="">I also think that Qt is a mature, powerful and stable framework to develop<br class="">GUI.<br class=""><br class="">I was wondering if you considered the adoption of modern OpenGL based<br class="">rendering system.<br class=""></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Could you be more specific about the OpenGL, do you have some</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">solutions in mind? I thought this project would be about using the</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">current rendering system and focusing on rewriting to qt plus</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">refactoring of the current code because that alone is  a lot of work</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">if you are not familiar with the current codebase. Better rendering</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">could be added later on. But I think Ondrej is open to suggestions.</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Anna</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class="">Thanks,<br class="">Massimo.<br class=""><br class=""><br class=""><br class="">On Mar 17, 2016, at 2:45 PM, <a href="mailto:Ondra.Lobo@seznam.cz" class="">Ondra.Lobo@seznam.cz</a> wrote:<br class=""><br class="">Hi,<br class=""><br class="">My name is Ondřej Pešek and I am student of Czech Technical University in<br class="">Prague.  I am in the last year of bachelor studium (geodesy, cartography and<br class="">geoinformatics). My bachelor thesis is development of QGis plugin (for<br class="">aerial data leveling). I’m developing in python and I have some basics in<br class="">C++. Often I work also with other gis programs (ArcGis). I am very<br class="">interested in co-working with Grass for Google Summer of Code 2016.<br class=""><br class="">My idea was to generalize GUI Code for Qt-based GUI. Nowadays, Qt (PyQt) is<br class="">increasingly used (look at QGis, for example) and I think it would be better<br class="">to have minimally the roots of GUI in Qt. It’s also much easier to maintain<br class="">with new features. Work with design is also much more user-friendly. It<br class="">seems that in the future, it can be nice shortcut to change something in the<br class="">GUI.<br class=""><br class="">Thanks and I’m looking forward for your answers,<br class=""><br class="">Ondřej Pešek<br class=""><br class="">_______________________________________________<br class="">grass-dev mailing list<br class=""><a href="mailto:grass-dev@lists.osgeo.org" class="">grass-dev@lists.osgeo.org</a><br class="">http://lists.osgeo.org/mailman/listinfo/grass-dev<br class=""><br class=""><br class=""><br class="">_______________________________________________<br class="">grass-dev mailing list<br class=""><a href="mailto:grass-dev@lists.osgeo.org" class="">grass-dev@lists.osgeo.org</a><br class=""><a href="http://lists.osgeo.org/mailman/listinfo/grass-dev" class="">http://lists.osgeo.org/mailman/listinfo/grass-dev</a></blockquote></div></blockquote></div><br class=""></div></body></html>