<div dir="ltr">Hi, David:<div><br></div><div>I debugged your program today, it seems that the code does have some bug when trying to create individual surface and body through individual  build_facet_surface() calls, here you are trying to create 4 surfaces and 4 bodies. However, I am not familiar with the code enough to make any changes.</div>
<div><br></div><div>I did checked that if you pass in all the facets, with empty point list, it can create a single FacetBody and  you can export it.</div><div><br></div><div>I attached the changed code for you, don't know if it's sufficient for your purpose.</div>
<div><br></div><div>Jane</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jan 14, 2014 at 1:35 PM, David Thompson <span dir="ltr"><<a href="mailto:david.thompson@kitware.com" target="_blank">david.thompson@kitware.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Jane,<br>
<br>
Thanks for your help. I've tried passing an empty point list into build_facet_surface() but it still crashes, and a plist containing just the points used by the triangle list. I've pared it down to a minimal reproducible, which is attached. If you understand what I am doing wrong, it would really help as I'm not sure I understand what CGM is doing where the crash occurs.<br>

<br>
        Thanks,<br>
        David<br>
<br>
<br>On Jan 14, 2014, at 1:46 PM, Jane Hu <<a href="mailto:janejhu@gmail.com">janejhu@gmail.com</a>> wrote:<br>
<br>
> From what I read, facets sharing the same points and edges, if they are called from different build_facet_surface(), they should internally just create one set of points and edges, and should be automatically divided into two separate volumn/surface sets.<br>

><br>
> There are functions to check existing points and use the old ones instead of create new ones.<br>
><br>
> Jane<br>
><br>
> Jane<br>
><br>
><br>
> On Tue, Jan 14, 2014 at 10:39 AM, Jane Hu <<a href="mailto:janejhu@gmail.com">janejhu@gmail.com</a>> wrote:<br>
> Hi, David<br>
><br>
> I double checked the prototype as well as the code (I don't have a program suitable to debug), it seems that if your plist is not corresponding to the tflist and qflist, you may leave it empty. The code should fill the point list for you.<br>

> Unless the points are extra points which are not in the tflist nor in the qflist.<br>
><br>
> Can you try it out and see if it works, I am now reading this part of code to see if coincident points are recognized if you call separately.<br>
><br>
> Jane<br>
><br>
><br>
><br>
> On Mon, Jan 13, 2014 at 10:03 PM, David Thompson <<a href="mailto:david.thompson@kitware.com">david.thompson@kitware.com</a>> wrote:<br>
> Hi all,<br>
><br>
> I have a question about the facet engine in CGM. Are multiple faceted surfaces per body supported? I see crashes if I call<br>
><br>
>         DLIList <CubitPoint*> plist;<br>
>         DLIList<CubitFacet*> tflist;<br>
>         DLIList<CubitQuadFacet*> qflist;<br>
>         DLIList<Surface*> slist;<br>
><br>
>         FacetModifyEngine::instance()->build_facet_surface(<br>
>           qflist, tflist, plist, -1, 0, false, false, slist);<br>
><br>
> where tflist and qflist do not use every point in plist (because another call to build_facet_surface() will use those points later).<br>
><br>
> If I create a separate plist for each call to build_facet_surface(), it does not crash... but will coincident points be recognized as identical and merged -- or will the geometry need some kind of stitching?<br>
><br>
>         Thanks,<br>
>         David<br>
><br>
><br>
><br>
> --<br>
> Jane Hu<br>
><br>
> Asst. Researcher<br>
> Dept. of Engineering Physics<br>
> UW @ Madison<br>
><br>
> "And we know that for those who love God, that is, for those who are called according to his purpose, all things are working together for good." (Romans 8:28)<br>
><br>
><br>
><br>
> --<br>
> Jane Hu<br>
><br>
> Asst. Researcher<br>
> Dept. of Engineering Physics<br>
> UW @ Madison<br>
><br>
> "And we know that for those who love God, that is, for those who are called according to his purpose, all things are working together for good." (Romans 8:28)<br>
<br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Jane Hu<br>
<br>
Asst. Researcher<br>
Dept. of Engineering Physics<br>
UW @ Madison<br>
<br>
"And we know that for those who love God, that is, for those who are 
called according to his purpose, all things are working together for 
good." (Romans 8:28)
</div>