Wu,

Awesome - thanks for the fix in r59108!  That does indeed avoid the
crash, but it looks like we still have some problems with the
evaluation itself.  I've uploaded a comparison image of r5:
http://brlcad.org/~starseeker/r5_compare.png , with the above image
being the CSG raytrace and the below image being a shaded view of the
NURBS conversion  (something's behaving funny with my raytracing
results for NURBS right now, so until I get that fixed the shaded view
is probably the better guide).  The black lines in the latter are
indications that we have extra surfaces present that should have been
trimmed away, and there are some other indications of stray surfaces
if you compare the two images.

If r5 is a bit complex as a test case, I've uploaded a file called
brep_boolean_tests.g in src/librt/tests that has (among other things)
a lot of basic planar test cases.  Many succeed, but it appears that
the coplanar cases are introducing a lot of problems (there may be
other issues too as indicated by the more difficult and general
arb8/arb8 cases, but when the only interaction is between coplanar
surfaces there appear to be issues like incorrect normals on faces or
incorrectly trimmed faces.)

The boolean evaluation of polygonal loops in coplanar faces is
actually the problem the program clipper solves:
http://sourceforge.net/projects/polyclipping/  We already provide
clipper in our src/other builds to support a libged command - if our
current boolean logic is having problems with this case, perhaps it
would be worth recognizing when we have this case and feeding it to
clipper for evaluation?  If our existing code is almost working of
course it's better to fix that, but if it's not a case we are
currently set up to handle...

Thanks again Wu for your help!

Cheers,
CY

On Thu, Dec 12, 2013 at 9:16 PM, Clifford Yapp <[email protected]> wrote:
> Wu,
>
> If you have a second, could you take a look at the behavior of the
> region r5 in the model share/db/m35.g when doing boolean evaluation
> with the brep command?  It's giving out a series of errors and then
> crashing.  I think part of the problem is if you make a comb of the
> first two items in r5 (i.e. comb test.c u s5 - s6) and then convert
> test.c to a brep, it's giving out a warning and generating what
> appears to be a non-solid brep.  Comparing that brep to the raytraced
> csg comb, it looks like it's running into an issue with trimming
> overlapping coplanar faces.  Judging by the other warnings that follow
> before the crash, I'm guessing it's accumulating non-solid geometry
> until something really unexpected happens and it segfaults.
>
> Cheers,
> CY

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
BRL-CAD Developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-devel

Reply via email to