Now, as the NMG primitive reorganization project reaches its end I'm a
little bit at a loss.  Zhao did a great job in reducing the complexity
of the primitive to the level where it will be really used and moving
the functions into a separate library and put a lot of effort into it.

The creation of a libnmg required to create a libnurb too.  NURBs are
used by the bspline and nmg primitives and to avoid a cyclic
dependency between librt and libnmg they had to be moved inty an own
library.  However, libnmg still uses data structures defined in
raytrace.h necessary for the ray-tracing code in libnmg.  raytrace.h
is included in some of the libnmg source files but not in the nmg.h
interface declaring header file.  Furthermore the vlist code had to be
moved from librt to libnmg.

So far so good?

The bad news is that the Boolean operations code doesn't work as
before.  Many problems were fixed but at least one left.  It looks
like in the old code (in the trunk) a clean up was made which e.g.
removed duplicate points before the Boolean operation of two shells
was performed.  With the new code (in the nmgreorg  branch) it is
possible that the two shell structures have identical points, edges,
etc. because they don't share these underlying sets of geometric
information any more.

This diverging behavior can be tested with facetizing the shifter of
the toyjeep.  It works in trunk and gives a "0 length edge" error in
nmgreorg.  To fix this someone with deeper knowledge of the underlying
algorithm would be needed.


Regards,
    Daniel

------------------------------------------------------------------------------
_______________________________________________
BRL-CAD Developer mailing list
brlcad-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-devel

Reply via email to