<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Hey Rohan,</p>
    <p>Did not have time to check commits in detail unfortunately, but
      from quick review I think you should keep the 'invalidate only
      some lnor spaces' idea out of code for now. In other words, just
      always invalidate whole array of lnor spaces (you can keep the two
      defines for now, just make the 'partial' one behave like the
      'everything' one e.g.).</p>
    <p>Reason is, it's not easy to determine which lnor space needs to
      be recomputed based on which vert/edge/face was edited (e.g.
      moving a single vertex can invalidate all lnor spaces around that
      vertex, but also those involving neighbor vertices of adjacent
      faces…). Better to keep that kind of refinement for later, if time
      allows (and rebuilding all lnorspaces shows to be a real
      bottleneck, which I kind of doubt). Even worse, it can create or
      delete some lnorspaces (due e.g. the face angle going above/below
      'sharp' threshold, etc.).<br>
    </p>
    <p>Keep up the good work! :)<br>
      Bastien<br>
    </p>
    <div class="moz-cite-prefix">Le 02/06/2017 à 19:39, Rohan Rathi a
      écrit :<br>
    </div>
    <blockquote
cite="mid:CAE7L-22LXMo4Xq6TUXHuMe_-Wxk5SStqyzqEbFXo2o-j-+QkSg@mail.gmail.com"
      type="cite">
      <div dir="ltr">What I did this week:
        <div><br>
        </div>
        <div>Fairly rudimentary work. Cached the custom loop normal
          spaces for the mesh and added a mechanic to detect when the
          loop normal spaces are dirty and rebuild the loop normal space
          array.</div>
        <div><br>
        </div>
        <div>Other than that I developed a much stronger understanding
          of BMesh Ops. All bmesh ops that are executed should now
          either flag the loops of the modified geometry or invalidate
          the entire loop normal space array of the mesh.</div>
        <div><br>
        </div>
        <div>What I plan on doing next week:</div>
        <div><br>
        </div>
        <div>Now that this is cleared, I think I can focus on writing
          the actual tools that will manipulate the custom normal. My
          first goal was to add the ability to rotate normals. I've
          studied modal rotation already and most likely will have added
          this ability by the end of next week.</div>
        <div><br>
        </div>
        <div>Although all BMesh Ops that modify geometry are taken care
          of, there are other tools that manipulate geometry like modal
          transform. So I need to figure out a way to invalidate the
          loop normal spaces in this case. This will be my prior task
          along with normal rotation.</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>Links:</div>
        <div>My proposal: <a moz-do-not-send="true"
href="https://wiki.blender.org/index.php/User:RohanRathi/GSoC_2017/Proposal">https://wiki.blender.org/index.php/User:RohanRathi/GSoC_2017/Proposal</a></div>
        <div>Git branch: <a moz-do-not-send="true"
href="https://developer.blender.org/diffusion/B/browse/soc-2017-normal-tools/">https://developer.blender.org/diffusion/B/browse/soc-2017-normal-tools/</a></div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>Thank you,</div>
        <div><br>
        </div>
        <div>Rohan Rathi</div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Soc-2017-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Soc-2017-dev@blender.org">Soc-2017-dev@blender.org</a>
<a class="moz-txt-link-freetext" href="https://lists.blender.org/mailman/listinfo/soc-2017-dev">https://lists.blender.org/mailman/listinfo/soc-2017-dev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>