<!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>