<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" id="owaParaStyle"></style>
</head>
<body fpstyle="1" ocsi="0">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">At that point, shouldn't the user be required to set all the components themselves instead of calling initialize() again? That's basically what they're doing anyway since they have
 to set all of their components when they call initialize() again. VTK kind of does it this way for a lot of things where you set a bunch of components and then Modify() (or in our case initialize()) the object so that everything gets done in the correct order
 to avoid too much global state.
<div><br>
</div>
<div>I know you can do this after initialization, but the problem is that the user has to remember to do this, and in the correct order too. If they compute the seams before setting the normals, they won't get the correct results. I realize I can do this properly
 in the readers, but for people who make their own meshes, this isn't automatic, when imo it should be. It just complicates things for the users, but there's no reason this shouldn't be done for every surface mesh. I'll probably just use Sreekanth's suggestion
 for this with another overloaded function (I thought this was being used elsewhere besides the readers, so I wasn't sure if this had an impact). It's possible that we'll need to do this for other things in the future, so I wanted to avoid overloading as much
 as possible.</div>
<div><br>
</div>
<div>In SoFMIS, one of the problems people had from a usability perspective was that they had to call a lot of mesh post-processing manually after reading in a mesh, but it wasn't always clear what should be done and when it should be done especially as we
 add more dependent steps (such as calculating tangents), so they often didn't got correct rendering. Do you recalculate normals after the tangents or before? When do you call the UV seams function? What happens if you don't call a certain function? This has
 surprisingly caused a lot of headaches when it came to proper mesh display, so it would have been nice if this was all done properly on initialization since every surface mesh needs these.<br>
<div style="font-family: Times New Roman; color: #000000; font-size: 16px">
<hr tabindex="-1">
<div id="divRpF821203" style="direction: ltr;"><font face="Tahoma" size="2" color="#000000"><b>From:</b> Alexis Girault [alexis.girault@kitware.com]<br>
<b>Sent:</b> Friday, July 28, 2017 11:31 AM<br>
<b>To:</b> Milef, Nicholas Boris<br>
<b>Cc:</b> Sreekanth Arikatla; imstk-developers@imstk.org<br>
<b>Subject:</b> Re: [Imstk-developers] Clearing surface mesh data on intialization<br>
</font><br>
</div>
<div></div>
<div>
<div dir="ltr">It is a legit a safety measure: if someone calls initialize, he will modify vertices and connectivity. In that case, any other mesh data won't be consistent and should be disregarded. 
<div><br>
</div>
<div>If you get the normals from the reader, set them after initializing and you can still compute the UVs seam following the initialization, no need to do it multiple times.</div>
<div><br>
</div>
<div>If someone purposefully re-initialize a mesh explicitly, he will get a clean mesh with new vertices and connectivity, and that's his job to set/compute what he needs following that.</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div class="gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr"><span style="color:rgb(136,136,136); font-size:12.8000001907349px">Alexis Girault</span><br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<span style="color:rgb(136,136,136); font-size:12.8000001907349px">R&D Engineer in Medical Computing</span><br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<span style="color:rgb(136,136,136); font-size:12.8000001907349px">Kitware, Inc.</span><br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<a href="http://www.kitware.com/" rel="noreferrer" style="color:rgb(17,85,204); font-size:12.8000001907349px" target="_blank">http://www.kitware.com</a><br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<font color="#999999"><a href="tel:(919)+969-6990+x325" target="_blank"><span style="font-size:12.8000001907349px">(919) 969-6990 x3</span>25</a></font><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<div class="gmail_quote">On Fri, Jul 28, 2017 at 11:22 AM, Milef, Nicholas Boris <span dir="ltr">
<<a href="mailto:milefn@rpi.edu" target="_blank">milefn@rpi.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">
<div>It's not a problem with adding the normals. It's a problem with computing the UV seams as these depend on the normals. Ideally, you would do this in the initialization function because this should only be done once as it's not super cheap to compute the
 UV seams.</div>
<div><br>
</div>
<div>We can have the users explicitly call this, but this is another function that needs to be called every time you make a surface mesh. If the initialize function only ever gets called once (in the reader or when you create the surface mesh), then clearing
 the data members doesn't make sense in this case.</div>
<div></div>
<div>
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<hr>
<div id="m_-1567050930936131802divRpF88978" style="direction:ltr"><font face="Tahoma" size="2" color="#000000"><b>From:</b> Alexis Girault [<a href="mailto:alexis.girault@kitware.com" target="_blank">alexis.girault@kitware.com</a>]<br>
<b>Sent:</b> Friday, July 28, 2017 11:11 AM
<div>
<div class="h5"><br>
<b>To:</b> Milef, Nicholas Boris<br>
<b>Cc:</b> Sreekanth Arikatla; <a href="mailto:imstk-developers@imstk.org" target="_blank">
imstk-developers@imstk.org</a><br>
<b>Subject:</b> Re: [Imstk-developers] Clearing surface mesh data on intialization<br>
</div>
</div>
</font><br>
</div>
<div>
<div class="h5">
<div></div>
<div>
<div dir="ltr">I don't see the issue then: Initialize is called first to setup vertices and connectivity, then additional fields can be manually added (like normals). Could you just make sure you keep adding the normals after initializing the mesh?</div>
<div class="gmail_extra"><br clear="all">
<div>
<div class="m_-1567050930936131802gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr"><span style="color:rgb(136,136,136); font-size:12.8000001907349px">Alexis Girault</span><br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<span style="color:rgb(136,136,136); font-size:12.8000001907349px">R&D Engineer in Medical Computing</span><br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<span style="color:rgb(136,136,136); font-size:12.8000001907349px">Kitware, Inc.</span><br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<a href="http://www.kitware.com/" rel="noreferrer" style="color:rgb(17,85,204); font-size:12.8000001907349px" target="_blank">http://www.kitware.com</a><br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<font color="#999999"><a href="tel:(919)+969-6990+x325" target="_blank"><span style="font-size:12.8000001907349px">(919) 969-6990 x3</span>25</a></font><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<div class="gmail_quote">On Fri, Jul 28, 2017 at 11:08 AM, Milef, Nicholas Boris <span dir="ltr">
<<a href="mailto:milefn@rpi.edu" target="_blank">milefn@rpi.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">@Alexis
<div>It's here, but I set up the normals afterwards right now since they get cleared on initialization:</div>
<div><a href="https://gitlab.kitware.com/iMSTK/iMSTK/blob/master/Base/Geometry/Reader/imstkAssimpMeshIO.cpp#L101" target="_blank">https://gitlab.kitware.com/iMS<wbr>TK/iMSTK/blob/master/Base/Geom<wbr>etry/Reader/imstkAssimpMeshIO.<wbr>cpp#L101</a></div>
<div><br>
<div>@Sreekanth</div>
<div>
<div style="font-family:Tahoma; font-size:13px">They can't really be recomputed afterwards. At that point, it would be up to the user to specify or recompute this once they can ensure the normals are correct. It can only be computed before the iMSTK normal
 calculation takes place. Otherwise the important information is lost.</div>
<div style="font-family:Tahoma; font-size:13px"><br>
</div>
<div style="font-family:Tahoma; font-size:13px">We could require the user to explicitly call the compute UV seams, but I have a feeling people just won't do this :)</div>
</div>
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<hr>
<div id="m_-1567050930936131802m_3137274669035050378divRpF196358" style="direction:ltr">
<font face="Tahoma" size="2" color="#000000"><b>From:</b> Sreekanth Arikatla [<a href="mailto:sreekanth.arikatla@kitware.com" target="_blank">sreekanth.arikatla@kitware.co<wbr>m</a>]<br>
<b>Sent:</b> Thursday, July 27, 2017 9:17 PM
<div>
<div class="m_-1567050930936131802h5"><br>
<b>To:</b> Milef, Nicholas Boris<br>
<b>Cc:</b> Alexis Girault; <a href="mailto:imstk-developers@imstk.org" target="_blank">
imstk-developers@imstk.org</a><br>
<b>Subject:</b> Re: [Imstk-developers] Clearing surface mesh data on intialization<br>
</div>
</div>
</font><br>
</div>
<div>
<div class="m_-1567050930936131802h5">
<div></div>
<div>
<div dir="ltr">Hi Nick,
<div>            When you set new data shouldn't the seam vertices from the prior data be cleared too since they are invalid? If needed the seam vertices should be recomputed for the new data?</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Jul 27, 2017 at 7:31 PM, Alexis Girault <span dir="ltr">
<<a href="mailto:alexis.girault@kitware.com" target="_blank">alexis.girault@kitware.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div dir="ltr">Not where `clear` is called, where `initialize` is called. (What calls
<a href="https://gitlab.kitware.com/iMSTK/iMSTK/blob/master/Base/Geometry/Mesh/imstkSurfaceMesh.cpp#L27-29" target="_blank">
that functio</a>n after you set up the normals: )</div>
<div class="gmail_extra"><span><br clear="all">
<div>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr"><span style="color:rgb(136,136,136); font-size:12.8000001907349px">Alexis Girault</span><br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<span style="color:rgb(136,136,136); font-size:12.8000001907349px">R&D Engineer in Medical Computing</span><br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<span style="color:rgb(136,136,136); font-size:12.8000001907349px">Kitware, Inc.</span><br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<a href="http://www.kitware.com/" rel="noreferrer" style="color:rgb(17,85,204); font-size:12.8000001907349px" target="_blank">http://www.kitware.com</a><br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<font color="#999999"><a href="tel:(919)+969-6990+x325" target="_blank"><span style="font-size:12.8000001907349px">(919) 969-6990 x3</span>25</a></font><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
</span>
<div>
<div class="m_-1567050930936131802m_3137274669035050378h5">
<div class="gmail_quote">On Thu, Jul 27, 2017 at 6:44 PM, Milef, Nicholas Boris <span dir="ltr">
<<a href="mailto:milefn@rpi.edu" target="_blank">milefn@rpi.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">
<div>Yeah:</div>
<a href="https://gitlab.kitware.com/iMSTK/iMSTK/blob/master/Base/Geometry/Mesh/imstkSurfaceMesh.cpp#L31" target="_blank">https://gitlab.kitware.com/iMS<wbr>TK/iMSTK/blob/master/Base/Geom<wbr>etry/Mesh/imstkSurfaceMesh.cpp<wbr>#L31</a><br>
<div><a href="https://gitlab.kitware.com/iMSTK/iMSTK/blob/master/Base/Geometry/Mesh/imstkSurfaceMesh.cpp#L50" target="_blank">https://gitlab.kitware.com/iMS<wbr>TK/iMSTK/blob/master/Base/Geom<wbr>etry/Mesh/imstkSurfaceMesh.cpp<wbr>#L50</a><br>
<div style="font-family:Tahoma; font-size:13px"><br>
</div>
</div>
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<hr>
<div id="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348divRpF799895" style="direction:ltr">
<font face="Tahoma" size="2" color="#000000"><b>From:</b> Alexis Girault [<a href="mailto:alexis.girault@kitware.com" target="_blank">alexis.girault@kitware.com</a>]<br>
<b>Sent:</b> Thursday, July 27, 2017 6:42 PM<br>
<b>To:</b> Milef, Nicholas Boris; Sreekanth Arikatla
<div>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490h5">
<br>
<b>Cc:</b> <a href="mailto:imstk-developers@imstk.org" target="_blank">imstk-developers@imstk.org</a><br>
<b>Subject:</b> Re: [Imstk-developers] Clearing surface mesh data on intialization<br>
</div>
</div>
</font><br>
</div>
<div>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490h5">
<div></div>
<div>
<p dir="ltr">Could you point us out in the code to where initialize is called which deletes your normals?
<br>
</p>
<br>
<div class="gmail_quote">
<div dir="ltr">On Thu, Jul 27, 2017, 18:37 Milef, Nicholas Boris <<a href="mailto:milefn@rpi.edu" target="_blank">milefn@rpi.edu</a>> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">The issue is still there. I can put the UV seam code before all of the clears, but if the user for some reason calls this function and gives different vertices/triangles, then it
 won't work properly with the new data. This is because the normals and the UV seam vertices won't correspond to each other.
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<hr>
<div id="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075divRpF857517" style="direction:ltr">
<font face="Tahoma" size="2" color="#000000"><b>From:</b> Sreekanth Arikatla [<a href="mailto:sreekanth.arikatla@kitware.com" target="_blank">sreekanth.arikatla@kitware.co<wbr>m</a>]<br>
<b>Sent:</b> Thursday, July 27, 2017 6:26 PM<br>
<b>To:</b> Milef, Nicholas Boris</font></div>
</div>
</div>
</div>
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<div id="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075divRpF857517" style="direction:ltr">
<font face="Tahoma" size="2" color="#000000"><br>
<b>Cc:</b> Alexis Girault; <a href="mailto:imstk-developers@imstk.org" target="_blank">
imstk-developers@imstk.org</a><br>
<b>Subject:</b> Re: [Imstk-developers] Clearing surface mesh data on intialization<br>
</font></div>
</div>
</div>
</div>
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<div></div>
<div>
<div dir="ltr">Not a problem!</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Jul 27, 2017 at 6:22 PM, Milef, Nicholas Boris <span dir="ltr">
<<a href="mailto:milefn@rpi.edu" target="_blank">milefn@rpi.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">Yeah, sorry about that!
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<hr>
<div id="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871divRpF870785" style="direction:ltr">
<font face="Tahoma" size="2" color="#000000"><b>From:</b> Sreekanth Arikatla [<a href="mailto:sreekanth.arikatla@kitware.com" target="_blank">sreekanth.arikatla@kitware.co<wbr>m</a>]<br>
<b>Sent:</b> Thursday, July 27, 2017 6:20 PM
<div>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075h5">
<br>
<b>To:</b> Milef, Nicholas Boris<br>
<b>Cc:</b> Alexis Girault; <a href="mailto:imstk-developers@imstk.org" target="_blank">
imstk-developers@imstk.org</a><br>
<b>Subject:</b> Re: [Imstk-developers] Clearing surface mesh data on intialization<br>
</div>
</div>
</font><br>
</div>
<div>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075h5">
<div></div>
<div>
<div dir="ltr">I see, it must have reported Initialize methods from physics that are not related to this. </div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Jul 27, 2017 at 6:14 PM, Milef, Nicholas Boris <span dir="ltr">
<<a href="mailto:milefn@rpi.edu" target="_blank">milefn@rpi.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">
<div>@Alexis But why should it be overwriting the normals? That's not derived data.</div>
<div><br>
</div>
<div>@Sreekanth I wasn't reading carefully enough. I tried to find all references, but apparently Visual Studio finds everything with the same name as the method, not necessarily the surface mesh's method. Sorry about that.</div>
<div>
<div style="font-family:Tahoma; font-size:13px"><br>
</div>
</div>
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<hr>
<div id="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790divRpF904376" style="direction:ltr">
<font face="Tahoma" size="2" color="#000000"><b>From:</b> Sreekanth Arikatla [<a href="mailto:sreekanth.arikatla@kitware.com" target="_blank">sreekanth.arikatla@kitware.co<wbr>m</a>]<br>
<b>Sent:</b> Thursday, July 27, 2017 6:04 PM<br>
<b>To:</b> Milef, Nicholas Boris<br>
<b>Cc:</b> Alexis Girault; <a href="mailto:imstk-developers@imstk.org" target="_blank">
imstk-developers@imstk.org</a>
<div>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871h5">
<br>
<b>Subject:</b> Re: [Imstk-developers] Clearing surface mesh data on intialization<br>
</div>
</div>
</font><br>
</div>
<div>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871h5">
<div></div>
<div>
<div dir="ltr">Initialize is called at the setup phase by readers as well as when the user creates the data. It is supposed to be only called only for initialization and reinitialization with new data. Can you point me where it is called in the physics?</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Jul 27, 2017 at 5:57 PM, Milef, Nicholas Boris <span dir="ltr">
<<a href="mailto:milefn@rpi.edu" target="_blank">milefn@rpi.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">Actually, to clarify, I don't think it's a big deal if it's used in the physics classes, as long as it doesn't modify an already built mesh as I describe in the previous message.
 I don't know what type of impact the normals have in the physics classes.
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<hr>
<div id="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790m_-2705869328681289263divRpF149865" style="direction:ltr">
<font face="Tahoma" size="2" color="#000000"><span><b>From:</b> Imstk-developers [<a href="mailto:imstk-developers-bounces@imstk.org" target="_blank">imstk-developers-bounces@imst<wbr>k.org</a>] on behalf of Milef, Nicholas Boris [<a href="mailto:milefn@rpi.edu" target="_blank">milefn@rpi.edu</a>]<br>
</span><b>Sent:</b> Thursday, July 27, 2017 5:53 PM<br>
<b>To:</b> Alexis Girault
<div>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790h5">
<br>
<b>Cc:</b> <a href="mailto:imstk-developers@imstk.org" target="_blank">imstk-developers@imstk.org</a><br>
<b>Subject:</b> Re: [Imstk-developers] Clearing surface mesh data on intialization<br>
</div>
</div>
</font><br>
</div>
<div>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790h5">
<div></div>
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">If it were only called in the readers, I wouldn't have a problem with it. But it's called in some of the physics classes too. It also clears data such as normals that's been set (i.e.,
 by the readers). I need some of that data though to fix the UV seams.
<div><br>
</div>
<div>For meshes, Assimp is told to generate smooth normals and to join identical normals. For most vertices, this works as intended, but for vertices on UV seams, they can't be joined. Assimp smooths those vertices by treating them as a single vertex, which
 I would want as the intended behavior. So I need to go through all of the vertices and find the ones with the same normals and positions, but the normals get cleared by the initialize function. Assimp's behavior is correct (I can't think of another way we
 would want it to deal with these problems).<br>
<div>
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<hr>
<div id="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790m_-2705869328681289263divRpF848605" style="direction:ltr">
<font face="Tahoma" size="2" color="#000000"><b>From:</b> Alexis Girault [<a href="mailto:alexis.girault@kitware.com" target="_blank">alexis.girault@kitware.com</a>]<br>
<b>Sent:</b> Thursday, July 27, 2017 5:26 PM<br>
<b>To:</b> Milef, Nicholas Boris<br>
<b>Cc:</b> Sreekanth Arikatla; <a href="mailto:imstk-developers@imstk.org" target="_blank">
imstk-developers@imstk.org</a><br>
<b>Subject:</b> Re: [Imstk-developers] Clearing surface mesh data on intialization<br>
</font><br>
</div>
<div></div>
<div>
<div dir="ltr">Is `initialize` only used in the readers currently? I believe the goal of that function was just to set vertices, triangles, or any other topology information needed in a single function. It should only be used after the constructor as a utility
 as far as I understand, so there shouldn't be data already set in the mesh at that point.
<div><br>
</div>
<div>When/where is this function currently called and creating an issue in your case?</div>
<div><br>
</div>
<div>Also, I think the `clear `should only delete the derived data computed by the initialization input. Is it doing more than that now which would explain why it deletes your data?</div>
<div><br>
</div>
<div>I think having an `initialize` function that clears derived data fields and set core parameters is good, we need to make sure it is called at a good place and does not remove some unexpected fields (but I just think it should be called before you try to
 set any data in it)</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790m_-2705869328681289263gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr"><span style="color:rgb(136,136,136); font-size:12.8000001907349px">Alexis Girault</span><br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<span style="color:rgb(136,136,136); font-size:12.8000001907349px">R&D Engineer in Medical Computing</span><br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<span style="color:rgb(136,136,136); font-size:12.8000001907349px">Kitware, Inc.</span><br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<a href="http://www.kitware.com/" rel="noreferrer" style="color:rgb(17,85,204); font-size:12.8000001907349px" target="_blank">http://www.kitware.com</a><br style="color:rgb(136,136,136); font-size:12.8000001907349px">
<font color="#999999"><a href="tel:(919)+969-6990+x325" target="_blank"><span style="font-size:12.8000001907349px">(919) 969-6990 x3</span>25</a></font><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<div class="gmail_quote">On Thu, Jul 27, 2017 at 5:03 PM, Milef, Nicholas Boris <span dir="ltr">
<<a href="mailto:milefn@rpi.edu" target="_blank">milefn@rpi.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">For now, I can just put the seam computation before the clear. However, this will break if the vertex order changes or something like that. Basically, what I'm trying to say is that
 I would want users to know explicitly if they're messing up their data. A reinitialize function doesn't convey this imo.
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<hr>
<div id="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790m_-2705869328681289263m_2321885481294957573divRpF348360" style="direction:ltr">
<font face="Tahoma" size="2" color="#000000"><b>From:</b> Imstk-developers [<a href="mailto:imstk-developers-bounces@imstk.org" target="_blank">imstk-developers-bounces@imst<wbr>k.org</a>] on behalf of Milef, Nicholas Boris [<a href="mailto:milefn@rpi.edu" target="_blank">milefn@rpi.edu</a>]<br>
<b>Sent:</b> Thursday, July 27, 2017 4:47 PM<br>
<b>To:</b> Sreekanth Arikatla
<div>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790m_-2705869328681289263h5">
<br>
<b>Cc:</b> <a href="mailto:imstk-developers@imstk.org" target="_blank">imstk-developers@imstk.org</a><br>
<b>Subject:</b> Re: [Imstk-developers] Clearing surface mesh data on intialization<br>
</div>
</div>
</font><br>
</div>
<div>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790m_-2705869328681289263h5">
<div></div>
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">I guess where I'm stuck at is why we have an initialize function to begin with. I still can't think of a use-case where we can't either 1) make a new mesh or 2) modify the components
 of the old mesh.
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<hr>
<div id="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790m_-2705869328681289263m_2321885481294957573divRpF585415" style="direction:ltr">
<font face="Tahoma" size="2" color="#000000"><b>From:</b> Sreekanth Arikatla [<a href="mailto:sreekanth.arikatla@kitware.com" target="_blank">sreekanth.arikatla@kitware.co<wbr>m</a>]<br>
<b>Sent:</b> Thursday, July 27, 2017 4:37 PM<br>
<b>To:</b> Milef, Nicholas Boris<br>
<b>Cc:</b> <a href="mailto:imstk-developers@imstk.org" target="_blank">imstk-developers@imstk.org</a><br>
<b>Subject:</b> Re: [Imstk-developers] Clearing surface mesh data on intialization<br>
</font><br>
</div>
<div></div>
<div>
<div dir="ltr">Hi Nick,
<div>            If you want to preserve the normals, you can add normals to the Initialize function arg. If the normals are supplied, initialize clears the previous data before assigning. </div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Jul 27, 2017 at 4:01 PM, Milef, Nicholas Boris <span dir="ltr">
<<a href="mailto:milefn@rpi.edu" target="_blank">milefn@rpi.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">No, I don't. I need to preserve the original normals that ASSIMP imports because ASSIMP calculates the normals correctly. Otherwise, I can't identify the UV seams.
<div><br>
</div>
<div>I can just do this computation in the SurfaceMeshRenderDelegate, but I'm not sure if the normals are used elsewhere after reinitializing the meshes. But isn't reinitializing a mesh dangerous in a multithreaded environment anyway?<br>
<div>
<div>
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<hr>
<div id="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790m_-2705869328681289263m_2321885481294957573m_2494556280979792691divRpF630068" style="direction:ltr">
<font face="Tahoma" size="2" color="#000000"><b>From:</b> Sreekanth Arikatla [<a href="mailto:sreekanth.arikatla@kitware.com" target="_blank">sreekanth.arikatla@kitware.co<wbr>m</a>]<br>
<b>Sent:</b> Thursday, July 27, 2017 3:55 PM
<div>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790m_-2705869328681289263m_2321885481294957573h5">
<br>
<b>To:</b> Milef, Nicholas Boris<br>
<b>Cc:</b> <a href="mailto:imstk-developers@imstk.org" target="_blank">imstk-developers@imstk.org</a><br>
<b>Subject:</b> Re: [Imstk-developers] Clearing surface mesh data on intialization<br>
</div>
</div>
</font><br>
</div>
<div>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790m_-2705869328681289263m_2321885481294957573h5">
<div></div>
<div>
<div dir="ltr">It could be used in some cases depending on the scenario. Do you plan to call this at every frame?
<div><br>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Jul 27, 2017 at 3:53 PM, Milef, Nicholas Boris <span dir="ltr">
<<a href="mailto:milefn@rpi.edu" target="_blank">milefn@rpi.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">Is that a useful use case though? Why not just make a new mesh?
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<hr>
<div id="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790m_-2705869328681289263m_2321885481294957573m_2494556280979792691m_7396907404221061107divRpF289251" style="direction:ltr">
<font face="Tahoma" size="2" color="#000000"><b>From:</b> Sreekanth Arikatla [<a href="mailto:sreekanth.arikatla@kitware.com" target="_blank">sreekanth.arikatla@kitware.co<wbr>m</a>]<br>
<b>Sent:</b> Thursday, July 27, 2017 3:52 PM<span><br>
<b>To:</b> Milef, Nicholas Boris<br>
<b>Cc:</b> <a href="mailto:imstk-developers@imstk.org" target="_blank">imstk-developers@imstk.org</a><br>
<b>Subject:</b> Re: [Imstk-developers] Clearing surface mesh data on intialization<br>
</span></font><br>
</div>
<div>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790m_-2705869328681289263m_2321885481294957573m_2494556280979792691h5">
<div></div>
<div>
<div dir="ltr">Hi Nick,
<div>            This is cleared in case one wants to reinitialize the mesh with a different data. Initialize should only be called at initilization or at runtime if the mesh data itself changes. </div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Jul 27, 2017 at 3:31 PM, Milef, Nicholas Boris <span dir="ltr">
<<a href="mailto:milefn@rpi.edu" target="_blank">milefn@rpi.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">I'm modifying the SurfaceMesh class currently, but why is all the data cleared on initialization? Is this necessary? I ask because I need this data to correct for the normals seams.</div>
</div>
<br>
______________________________<wbr>_________________<br>
Imstk-developers mailing list<br>
<a href="mailto:Imstk-developers@imstk.org" target="_blank">Imstk-developers@imstk.org</a><br>
<a href="http://public.kitware.com/mailman/listinfo/imstk-developers" rel="noreferrer" target="_blank">http://public.kitware.com/mail<wbr>man/listinfo/imstk-developers</a><br>
<br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790m_-2705869328681289263m_2321885481294957573m_2494556280979792691m_7396907404221061107gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Sreekanth Arikatla, Ph.D.,</div>
<div dir="ltr">Senior R&D Engineer,</div>
<div dir="ltr"><a href="http://www.kitware.com" style="font-size:12.8px" target="_blank">Kitware, Inc.</a>, Carrboro, NC.
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790m_-2705869328681289263m_2321885481294957573m_2494556280979792691gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Sreekanth Arikatla, Ph.D.,</div>
<div dir="ltr">Senior R&D Engineer,</div>
<div dir="ltr"><a href="http://www.kitware.com" style="font-size:12.8px" target="_blank">Kitware, Inc.</a>, Carrboro, NC.
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790m_-2705869328681289263m_2321885481294957573gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Sreekanth Arikatla, Ph.D.,</div>
<div dir="ltr">Senior R&D Engineer,</div>
<div dir="ltr"><a href="http://www.kitware.com" style="font-size:12.8px" target="_blank">Kitware, Inc.</a>, Carrboro, NC.
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
______________________________<wbr>_________________<br>
Imstk-developers mailing list<br>
<a href="mailto:Imstk-developers@imstk.org" target="_blank">Imstk-developers@imstk.org</a><br>
<a href="http://public.kitware.com/mailman/listinfo/imstk-developers" rel="noreferrer" target="_blank">http://public.kitware.com/mail<wbr>man/listinfo/imstk-developers</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
______________________________<wbr>_________________<br>
Imstk-developers mailing list<br>
<a href="mailto:Imstk-developers@imstk.org" target="_blank">Imstk-developers@imstk.org</a><br>
<a href="http://public.kitware.com/mailman/listinfo/imstk-developers" rel="noreferrer" target="_blank">http://public.kitware.com/mail<wbr>man/listinfo/imstk-developers</a><br>
<br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871m_-3503408449691765790gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Sreekanth Arikatla, Ph.D.,</div>
<div dir="ltr">Senior R&D Engineer,</div>
<div dir="ltr"><a href="http://www.kitware.com" style="font-size:12.8px" target="_blank">Kitware, Inc.</a>, Carrboro, NC.
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075m_3691450971202014871gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Sreekanth Arikatla, Ph.D.,</div>
<div dir="ltr">Senior R&D Engineer,</div>
<div dir="ltr"><a href="http://www.kitware.com" style="font-size:12.8px" target="_blank">Kitware, Inc.</a>, Carrboro, NC.
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="m_-1567050930936131802m_3137274669035050378m_-5280971216043756490m_5828570748785000348m_6375040706627435075gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Sreekanth Arikatla, Ph.D.,</div>
<div dir="ltr">Senior R&D Engineer,</div>
<div dir="ltr"><a href="http://www.kitware.com" style="font-size:12.8px" target="_blank">Kitware, Inc.</a>, Carrboro, NC.
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="m_-1567050930936131802m_3137274669035050378gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Sreekanth Arikatla, Ph.D.,</div>
<div dir="ltr">Senior R&D Engineer,</div>
<div dir="ltr"><a href="http://www.kitware.com" style="font-size:12.8px" target="_blank">Kitware, Inc.</a>, Carrboro, NC.
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</div>
</body>
</html>