<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p class="part" data-startline="57" data-endline="57">Hello
everyone,</p>
<p class="part" data-startline="59" data-endline="59">as you maybe
know, we (Oslandia) are working on several 3D functionalities for
our customers, that we aim to add to QGIS core. Among them are 3D
editing capabilities.</p>
<p class="part" data-startline="61" data-endline="61">Nevertheless,
the specific QEP discussion [1] about editing, points toward a
broad technical redesign that is out of scope for our current
project, this is why we propose to ship the features within a QGIS
C++ plugin to gather users feedback and contribute to the
discussion on the 3D UI.</p>
<p class="part" data-startline="63" data-endline="64">In order to
achieve this we propose adding accessors to the 3D view that
enable the creation of an external QGIS plugin in C++,
incorporating the relevant features. These new API accessors will
be considered unstable API and not exposed in Python.<br>
The changes are developed in the following PR:
<a class="moz-txt-link-freetext" href="https://github.com/qgis/QGIS/pull/67298">https://github.com/qgis/QGIS/pull/67298</a></p>
<p class="part" data-startline="66" data-endline="66">Do you see any
drawbacks to these changes?</p>
<p class="part" data-startline="68" data-endline="68">Here are our
main reasons why to carry out this development as a C++ plugin
rather than a Python plugin:</p>
<ul class="part" data-startline="70" data-endline="73">
<li class="" data-startline="70" data-endline="70">the functions
required for 3D interaction are currently not exposed in the
Python API, and the changes needed for the Python binding
represent a significant amount of work that is difficult to
estimate</li>
<li class="" data-startline="71" data-endline="71">C++ plugins,
even though their development is not encouraged, are still
active</li>
<li class="" data-startline="72" data-endline="73">the features we
want to test already partially exist as a C++ prototype</li>
</ul>
<p class="part" data-startline="74" data-endline="74">We are
conscious that there are two major potential improvements for the
3D view that would upgrade it to a similar level as other parts of
QGIS (graphical modeler, reports, etc.):</p>
<ul class="part" data-startline="76" data-endline="78">
<li class="" data-startline="76" data-endline="76">make the 3D
view window a real QWindow allowing for menus, proper toolbars,
panels etc.</li>
<li class="" data-startline="77" data-endline="78">implement
Python bindings</li>
</ul>
<p class="part" data-startline="79" data-endline="79">As they are
largely exceeding the scope of our current project, we suggest
that these improvements are targeted within the grant proposal
program of 2027. We’d be happy to contribute development-wise but
would be likewise happy to see it implemented by someone else.</p>
<p class="part" data-startline="81" data-endline="82">Thank you in
advance for your input.<br>
Best,</p>
<p class="part" data-startline="84" data-endline="84">[1] <a
href="https://github.com/qgis/QGIS-Enhancement-Proposals/pull/367/"
target="_blank" rel="noopener" class="moz-txt-link-freetext">https://github.com/qgis/QGIS-Enhancement-Proposals/pull/367/</a></p>
<p><br>
</p>
</body>
</html>