Revision: 68965
          http://sourceforge.net/p/brlcad/code/68965
Author:   starseeker
Date:     2016-10-02 03:17:14 +0000 (Sun, 02 Oct 2016)
Log Message:
-----------
Looking forward towards moving nmg logic back into its own library, there are 
some initial in-place steps we can take to make the eventual transition 
simplier without actually splitting things into a library.  This removes a 
librt coupling by using bn_vlblock_init instead of rt_vlblock_init and 
explicitly passing in the librt list in question instead of assuming the 
presence of RTG.rtg_vlfree in the nmg code.

Modified Paths:
--------------
    brlcad/trunk/include/rt/nmg.h
    brlcad/trunk/src/conv/euclid/g-euclid.c
    brlcad/trunk/src/conv/euclid/g-euclid1.c
    brlcad/trunk/src/conv/g-acad.c
    brlcad/trunk/src/conv/g-nff.c
    brlcad/trunk/src/conv/g-obj.c
    brlcad/trunk/src/conv/g-vrml.c
    brlcad/trunk/src/conv/g-x3d.c
    brlcad/trunk/src/conv/g-xxx_facets.c
    brlcad/trunk/src/conv/iges/g-iges.c
    brlcad/trunk/src/conv/jack/g-jack.c
    brlcad/trunk/src/conv/nmg/g-nmg.c
    brlcad/trunk/src/conv/off/g-off.c
    brlcad/trunk/src/conv/ply/g-ply.c
    brlcad/trunk/src/conv/tankill/g-tankill.c
    brlcad/trunk/src/libgcv/facetize.c
    brlcad/trunk/src/libgcv/plugins/obj/obj_write.c
    brlcad/trunk/src/libgcv/plugins/vrml/vrml_write.c
    brlcad/trunk/src/libgcv/region_end.c
    brlcad/trunk/src/libged/bev.c
    brlcad/trunk/src/libged/draw.c
    brlcad/trunk/src/libged/facetize.c
    brlcad/trunk/src/librt/primitives/nmg/nmg_bool.c
    brlcad/trunk/src/librt/primitives/nmg/nmg_eval.c
    brlcad/trunk/src/mged/wdb_obj.c

Modified: brlcad/trunk/include/rt/nmg.h
===================================================================
--- brlcad/trunk/include/rt/nmg.h       2016-10-01 15:45:41 UTC (rev 68964)
+++ brlcad/trunk/include/rt/nmg.h       2016-10-02 03:17:14 UTC (rev 68965)
@@ -523,7 +523,7 @@
 /* from nmg_bool.c */
 RT_EXPORT extern struct nmgregion *nmg_do_bool(struct nmgregion *s1,
                                                struct nmgregion *s2,
-                                               const int oper, const struct 
bn_tol *tol);
+                                               const int oper, struct bu_list 
*vlfree, const struct bn_tol *tol);
 RT_EXPORT extern void nmg_shell_coplanar_face_merge(struct shell *s,
                                                     const struct bn_tol *tol,
                                                     const int simplify);
@@ -543,10 +543,12 @@
 
 RT_EXPORT extern int nmg_bool_eval_silent;      /* quell output from 
nmg_booltree_evaluate */
 RT_EXPORT extern union tree *nmg_booltree_evaluate(union tree *tp,
+                                                  struct bu_list *vlfree,
                                                    const struct bn_tol *tol,
                                                    struct resource *resp);
 RT_EXPORT extern int nmg_boolean(union tree *tp,
                                  struct model *m,
+                                struct bu_list *vlfree,
                                  const struct bn_tol *tol,
                                  struct resource *resp);
 
@@ -603,6 +605,7 @@
                                            struct shell *sB,
                                            int          op,
                                            char         **classlist,
+                                          struct bu_list *vlfree,
                                            const struct bn_tol  *tol);
 
 /* The following functions cannot be publicly declared because struct

Modified: brlcad/trunk/src/conv/euclid/g-euclid.c
===================================================================
--- brlcad/trunk/src/conv/euclid/g-euclid.c     2016-10-01 15:45:41 UTC (rev 
68964)
+++ brlcad/trunk/src/conv/euclid/g-euclid.c     2016-10-02 03:17:14 UTC (rev 
68965)
@@ -620,7 +620,7 @@
        /* try */
 
        (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
-       ret_tree = nmg_booltree_evaluate(curtree, tsp->ts_tol, &rt_uniresource);
+       ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);
 
     } else {
        /* catch */

Modified: brlcad/trunk/src/conv/euclid/g-euclid1.c
===================================================================
--- brlcad/trunk/src/conv/euclid/g-euclid1.c    2016-10-01 15:45:41 UTC (rev 
68964)
+++ brlcad/trunk/src/conv/euclid/g-euclid1.c    2016-10-02 03:17:14 UTC (rev 
68965)
@@ -397,7 +397,7 @@
        /* try */
 
        (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
-       ret_tree = nmg_booltree_evaluate(curtree, tsp->ts_tol, &rt_uniresource);
+       ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);
 
     } else {
        /* catch */

Modified: brlcad/trunk/src/conv/g-acad.c
===================================================================
--- brlcad/trunk/src/conv/g-acad.c      2016-10-01 15:45:41 UTC (rev 68964)
+++ brlcad/trunk/src/conv/g-acad.c      2016-10-02 03:17:14 UTC (rev 68965)
@@ -279,7 +279,7 @@
 
        printf("Attempting to process region %s\n", db_path_to_string(pathp));
        fflush(stdout);
-       ret_tree = nmg_booltree_evaluate(curtree, tsp->ts_tol, &rt_uniresource);
+       ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);
        if (ret_tree != curtree) {
            db_free_tree(curtree, &rt_uniresource);
        }

Modified: brlcad/trunk/src/conv/g-nff.c
===================================================================
--- brlcad/trunk/src/conv/g-nff.c       2016-10-01 15:45:41 UTC (rev 68964)
+++ brlcad/trunk/src/conv/g-nff.c       2016-10-02 03:17:14 UTC (rev 68965)
@@ -183,7 +183,7 @@
        /* try */
 
        (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
-       ret_tree = nmg_booltree_evaluate(curtree, tsp->ts_tol, &rt_uniresource);
+       ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);
 
     } else {
        /* catch */

Modified: brlcad/trunk/src/conv/g-obj.c
===================================================================
--- brlcad/trunk/src/conv/g-obj.c       2016-10-01 15:45:41 UTC (rev 68964)
+++ brlcad/trunk/src/conv/g-obj.c       2016-10-02 03:17:14 UTC (rev 68965)
@@ -553,7 +553,7 @@
        /* try */
 
        (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
-       ret_tree = nmg_booltree_evaluate(curtree, tsp->ts_tol, &rt_uniresource);
+       ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);
 
     } else {
        /* catch */

Modified: brlcad/trunk/src/conv/g-vrml.c
===================================================================
--- brlcad/trunk/src/conv/g-vrml.c      2016-10-01 15:45:41 UTC (rev 68964)
+++ brlcad/trunk/src/conv/g-vrml.c      2016-10-02 03:17:14 UTC (rev 68965)
@@ -1284,7 +1284,7 @@
     /* Begin bomb protection */
     if (!BU_SETJUMP) {
        /* try */
-       ret_tree = nmg_booltree_evaluate(curtree, tsp->ts_tol, &rt_uniresource);
+       ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);
     } else {
        /* catch */
        char *name = db_path_to_string(pathp);

Modified: brlcad/trunk/src/conv/g-x3d.c
===================================================================
--- brlcad/trunk/src/conv/g-x3d.c       2016-10-01 15:45:41 UTC (rev 68964)
+++ brlcad/trunk/src/conv/g-x3d.c       2016-10-02 03:17:14 UTC (rev 68965)
@@ -965,7 +965,7 @@
     if (!BU_SETJUMP) {
        /* try */
 
-       ret_tree = nmg_booltree_evaluate(curtree, tsp->ts_tol, &rt_uniresource);
+       ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);
 
     } else {
        /* catch */

Modified: brlcad/trunk/src/conv/g-xxx_facets.c
===================================================================
--- brlcad/trunk/src/conv/g-xxx_facets.c        2016-10-01 15:45:41 UTC (rev 
68964)
+++ brlcad/trunk/src/conv/g-xxx_facets.c        2016-10-02 03:17:14 UTC (rev 
68965)
@@ -350,7 +350,7 @@
        /* try */
 
        (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
-       ret_tree = nmg_booltree_evaluate(curtree, tsp->ts_tol, &rt_uniresource);
+       ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);
 
     } else {
        /* catch */

Modified: brlcad/trunk/src/conv/iges/g-iges.c
===================================================================
--- brlcad/trunk/src/conv/iges/g-iges.c 2016-10-01 15:45:41 UTC (rev 68964)
+++ brlcad/trunk/src/conv/iges/g-iges.c 2016-10-02 03:17:14 UTC (rev 68965)
@@ -451,7 +451,7 @@
        /* try */
 
        (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
-       result = nmg_booltree_evaluate(curtree, tsp->ts_tol, &rt_uniresource);
+       result = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);
 
     } else {
        /* catch */

Modified: brlcad/trunk/src/conv/jack/g-jack.c
===================================================================
--- brlcad/trunk/src/conv/jack/g-jack.c 2016-10-01 15:45:41 UTC (rev 68964)
+++ brlcad/trunk/src/conv/jack/g-jack.c 2016-10-02 03:17:14 UTC (rev 68965)
@@ -238,7 +238,7 @@
        /* try */
 
        (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
-       ret_tree = nmg_booltree_evaluate(curtree, tsp->ts_tol, &rt_uniresource);
+       ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);
 
     } else  {
        /* catch */

Modified: brlcad/trunk/src/conv/nmg/g-nmg.c
===================================================================
--- brlcad/trunk/src/conv/nmg/g-nmg.c   2016-10-01 15:45:41 UTC (rev 68964)
+++ brlcad/trunk/src/conv/nmg/g-nmg.c   2016-10-02 03:17:14 UTC (rev 68965)
@@ -81,7 +81,7 @@
     if (!BU_SETJUMP) {
        /* try */
 
-       ret_tree = nmg_booltree_evaluate(curtree, tsp->ts_tol, 
&rt_uniresource);        /* librt/nmg_bool.c */
+       ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);       /* librt/nmg_bool.c */
 
     } else {
        /* catch */

Modified: brlcad/trunk/src/conv/off/g-off.c
===================================================================
--- brlcad/trunk/src/conv/off/g-off.c   2016-10-01 15:45:41 UTC (rev 68964)
+++ brlcad/trunk/src/conv/off/g-off.c   2016-10-02 03:17:14 UTC (rev 68965)
@@ -212,7 +212,7 @@
        /* try */
 
        (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
-       ret_tree = nmg_booltree_evaluate(curtree, tsp->ts_tol, &rt_uniresource);
+       ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);
 
     } else  {
        /* catch */

Modified: brlcad/trunk/src/conv/ply/g-ply.c
===================================================================
--- brlcad/trunk/src/conv/ply/g-ply.c   2016-10-01 15:45:41 UTC (rev 68964)
+++ brlcad/trunk/src/conv/ply/g-ply.c   2016-10-02 03:17:14 UTC (rev 68965)
@@ -415,7 +415,7 @@
        /* try */
 
        (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
-       ret_tree = nmg_booltree_evaluate(curtree, tsp->ts_tol, &rt_uniresource);
+       ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);
 
     } else  {
        /* catch */

Modified: brlcad/trunk/src/conv/tankill/g-tankill.c
===================================================================
--- brlcad/trunk/src/conv/tankill/g-tankill.c   2016-10-01 15:45:41 UTC (rev 
68964)
+++ brlcad/trunk/src/conv/tankill/g-tankill.c   2016-10-02 03:17:14 UTC (rev 
68965)
@@ -623,7 +623,7 @@
        /* try */
 
        (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
-       ret_tree = nmg_booltree_evaluate(curtree, tsp->ts_tol, &rt_uniresource);
+       ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);
 
     } else  {
        /* catch */

Modified: brlcad/trunk/src/libgcv/facetize.c
===================================================================
--- brlcad/trunk/src/libgcv/facetize.c  2016-10-01 15:45:41 UTC (rev 68964)
+++ brlcad/trunk/src/libgcv/facetize.c  2016-10-02 03:17:14 UTC (rev 68965)
@@ -172,7 +172,7 @@
     /* Now, evaluate the boolean tree into ONE region */
     if (!BU_SETJUMP) {
        /* try */
-       if (nmg_boolean(facetize_tree, nmg_model, tol, &rt_uniresource)) {
+       if (nmg_boolean(facetize_tree, nmg_model, &RTG.rtg_vlfree, tol, 
&rt_uniresource)) {
            BU_UNSETJUMP;
            return _gcv_facetize_cleanup(nmg_model, facetize_tree);
        }

Modified: brlcad/trunk/src/libgcv/plugins/obj/obj_write.c
===================================================================
--- brlcad/trunk/src/libgcv/plugins/obj/obj_write.c     2016-10-01 15:45:41 UTC 
(rev 68964)
+++ brlcad/trunk/src/libgcv/plugins/obj/obj_write.c     2016-10-02 03:17:14 UTC 
(rev 68965)
@@ -333,7 +333,7 @@
        /* try */
 
        (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
-       ret_tree = nmg_booltree_evaluate(curtree, tsp->ts_tol, &rt_uniresource);
+       ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);
 
     } else {
        /* catch */

Modified: brlcad/trunk/src/libgcv/plugins/vrml/vrml_write.c
===================================================================
--- brlcad/trunk/src/libgcv/plugins/vrml/vrml_write.c   2016-10-01 15:45:41 UTC 
(rev 68964)
+++ brlcad/trunk/src/libgcv/plugins/vrml/vrml_write.c   2016-10-02 03:17:14 UTC 
(rev 68965)
@@ -1055,7 +1055,7 @@
     /* Begin bomb protection */
     if (!BU_SETJUMP) {
        /* try */
-       ret_tree = nmg_booltree_evaluate(curtree, tsp->ts_tol, &rt_uniresource);
+       ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);
     } else {
        /* catch */
        char *name = db_path_to_string(pathp);

Modified: brlcad/trunk/src/libgcv/region_end.c
===================================================================
--- brlcad/trunk/src/libgcv/region_end.c        2016-10-01 15:45:41 UTC (rev 
68964)
+++ brlcad/trunk/src/libgcv/region_end.c        2016-10-02 03:17:14 UTC (rev 
68965)
@@ -108,7 +108,7 @@
         * curtree to an evaluated result and returns it if the evaluation
         * is successful.
         */
-       ret_tree = nmg_booltree_evaluate(tp, tsp->ts_tol, &rt_uniresource);
+       ret_tree = nmg_booltree_evaluate(tp, &RTG.rtg_vlfree, tsp->ts_tol, 
&rt_uniresource);
     } else {
        /* catch */
        /* Error, bail out */

Modified: brlcad/trunk/src/libged/bev.c
===================================================================
--- brlcad/trunk/src/libged/bev.c       2016-10-01 15:45:41 UTC (rev 68964)
+++ brlcad/trunk/src/libged/bev.c       2016-10-02 03:17:14 UTC (rev 68965)
@@ -249,7 +249,7 @@
            return GED_ERROR;
        }
 
-       failed = nmg_boolean(tmp_tree, bev_nmg_model, &gedp->ged_wdbp->wdb_tol, 
&rt_uniresource);
+       failed = nmg_boolean(tmp_tree, bev_nmg_model, &RTG.rtg_vlfree, 
&gedp->ged_wdbp->wdb_tol, &rt_uniresource);
        BU_UNSETJUMP;
     } else
        failed = 1;

Modified: brlcad/trunk/src/libged/draw.c
===================================================================
--- brlcad/trunk/src/libged/draw.c      2016-10-01 15:45:41 UTC (rev 68964)
+++ brlcad/trunk/src/libged/draw.c      2016-10-02 03:17:14 UTC (rev 68965)
@@ -419,7 +419,7 @@
     if (!BU_SETJUMP) {
        /* try */
 
-       result = nmg_boolean(curtree, *tsp->ts_m, tsp->ts_tol, tsp->ts_resp);
+       result = nmg_boolean(curtree, *tsp->ts_m, &RTG.rtg_vlfree, tsp->ts_tol, 
tsp->ts_resp);
 
     } else {
        /* catch */

Modified: brlcad/trunk/src/libged/facetize.c
===================================================================
--- brlcad/trunk/src/libged/facetize.c  2016-10-01 15:45:41 UTC (rev 68964)
+++ brlcad/trunk/src/libged/facetize.c  2016-10-02 03:17:14 UTC (rev 68965)
@@ -252,7 +252,7 @@
 
            if (!BU_SETJUMP) {
                /* try */
-               failed = nmg_boolean(facetize_tree, nmg_model, 
&gedp->ged_wdbp->wdb_tol, &rt_uniresource);
+               failed = nmg_boolean(facetize_tree, nmg_model, &RTG.rtg_vlfree, 
&gedp->ged_wdbp->wdb_tol, &rt_uniresource);
            } else {
                /* catch */
                BU_UNSETJUMP;

Modified: brlcad/trunk/src/librt/primitives/nmg/nmg_bool.c
===================================================================
--- brlcad/trunk/src/librt/primitives/nmg/nmg_bool.c    2016-10-01 15:45:41 UTC 
(rev 68964)
+++ brlcad/trunk/src/librt/primitives/nmg/nmg_bool.c    2016-10-02 03:17:14 UTC 
(rev 68965)
@@ -623,7 +623,7 @@
  *
  * XXX this probably should operate on regions, not shells.
  */
-HIDDEN struct shell * nmg_bool(struct shell *sA, struct shell *sB, const int 
oper, const struct bn_tol *tol)
+HIDDEN struct shell * nmg_bool(struct shell *sA, struct shell *sB, const int 
oper, struct bu_list *vlfree, const struct bn_tol *tol)
 {
     int i;
     long nelem;
@@ -1000,7 +1000,7 @@
 
     nmg_s_radial_check(sA, tol);
     nmg_s_radial_check(sB, tol);
-    nmg_evaluate_boolean(sA, sB, oper, classlist, tol);
+    nmg_evaluate_boolean(sA, sB, oper, classlist, vlfree, tol);
     sB = NULL; /* sanity, killed during boolean eval */
 
     if (RTG.NMG_debug & DEBUG_BOOL) {
@@ -1116,7 +1116,7 @@
  * BUG: we assume only one shell per region
  */
 struct nmgregion *
-nmg_do_bool(struct nmgregion *rA, struct nmgregion *rB, const int oper, const 
struct bn_tol *tol)
+nmg_do_bool(struct nmgregion *rA, struct nmgregion *rB, const int oper, struct 
bu_list *vlfree, const struct bn_tol *tol)
 {
     struct shell *s;
     struct nmgregion *r;
@@ -1129,7 +1129,7 @@
 
     s = nmg_bool(BU_LIST_FIRST(shell, &rA->s_hd),
                 BU_LIST_FIRST(shell, &rB->s_hd),
-                oper, tol);
+                oper, vlfree, tol);
     r = s->r_p;
 
     /* shell B was destroyed, need to eliminate region B */
@@ -1304,7 +1304,7 @@
  * curtree = nmg_booltree_evaluate(curtree, tol);
  */
 union tree *
-nmg_booltree_evaluate(register union tree *tp, const struct bn_tol *tol, 
struct resource *resp)
+nmg_booltree_evaluate(register union tree *tp, struct bu_list *vlfree, const 
struct bn_tol *tol, struct resource *resp)
 {
     union tree *tl;
     union tree *tr;
@@ -1344,8 +1344,8 @@
     }
 
     /* Handle a boolean operation node.  First get its leaves. */
-    tl = nmg_booltree_evaluate(tp->tr_b.tb_left, tol, resp);
-    tr = nmg_booltree_evaluate(tp->tr_b.tb_right, tol, resp);
+    tl = nmg_booltree_evaluate(tp->tr_b.tb_left, vlfree, tol, resp);
+    tr = nmg_booltree_evaluate(tp->tr_b.tb_right, vlfree, tol, resp);
 
     if (tl) {
        RT_CK_TREE(tl);
@@ -1469,7 +1469,7 @@
     }
 
     /* input r1 and r2 are destroyed, output is new region */
-    reg = nmg_do_bool(tl->tr_d.td_r, tr->tr_d.td_r, op, tol);
+    reg = nmg_do_bool(tl->tr_d.td_r, tr->tr_d.td_r, op, vlfree, tol);
 
     /* build string of result name */
     rem = strlen(tl->tr_d.td_name) + 3 + strlen(tr->tr_d.td_name) + 2 + 1;
@@ -1520,7 +1520,7 @@
  * typically with db_free_tree(tp);
  */
 int
-nmg_boolean(union tree *tp, struct model *m, const struct bn_tol *tol, struct 
resource *resp)
+nmg_boolean(union tree *tp, struct model *m, struct bu_list *vlfree, const 
struct bn_tol *tol, struct resource *resp)
 {
     union tree *result;
     int ret;
@@ -1550,7 +1550,7 @@
      * Evaluate the nodes of the boolean tree one at a time, until
      * only a single region remains.
      */
-    result = nmg_booltree_evaluate(tp, tol, resp);
+    result = nmg_booltree_evaluate(tp, vlfree, tol, resp);
 
     if (result == TREE_NULL) {
        bu_log("nmg_boolean(): result of nmg_booltree_evaluate() is NULL\n");

Modified: brlcad/trunk/src/librt/primitives/nmg/nmg_eval.c
===================================================================
--- brlcad/trunk/src/librt/primitives/nmg/nmg_eval.c    2016-10-01 15:45:41 UTC 
(rev 68964)
+++ brlcad/trunk/src/librt/primitives/nmg/nmg_eval.c    2016-10-02 03:17:14 UTC 
(rev 68965)
@@ -45,6 +45,7 @@
     char **bs_classtab;
     const int *bs_actions;
     const struct bn_tol *bs_tol;
+    struct bu_list *vlfree;
 };
 
 
@@ -186,7 +187,7 @@
  *
  */
 void
-nmg_evaluate_boolean(struct shell *sA, struct shell *sB, int op, char 
**classlist, const struct bn_tol *tol)
+nmg_evaluate_boolean(struct shell *sA, struct shell *sB, int op, char 
**classlist, struct bu_list *vlfree, const struct bn_tol *tol)
 {
     int const *actions;
     struct nmg_bool_state bool_state;
@@ -221,6 +222,7 @@
     bool_state.bs_src = sB;
     bool_state.bs_classtab = classlist;
     bool_state.bs_actions = actions;
+    bool_state.vlfree = vlfree;
     bool_state.bs_tol = tol;
 
     bool_state.bs_isA = 1;
@@ -621,10 +623,8 @@
     }
 
     if (do_anim) {
-       struct bn_vlblock *vbp;
+       struct bn_vlblock *vbp = bn_vlblock_init(bs->vlfree, 32);
 
-       vbp = rt_vlblock_init();
-
        nmg_vlblock_s(vbp, bs->bs_dest, 0);
        nmg_vlblock_s(vbp, bs->bs_src, 0);
 

Modified: brlcad/trunk/src/mged/wdb_obj.c
===================================================================
--- brlcad/trunk/src/mged/wdb_obj.c     2016-10-01 15:45:41 UTC (rev 68964)
+++ brlcad/trunk/src/mged/wdb_obj.c     2016-10-02 03:17:14 UTC (rev 68965)
@@ -5867,7 +5867,7 @@
            return TCL_ERROR;
        }
 
-       failed = nmg_boolean(facetize_tree, nmg_model, &wdbp->wdb_tol, 
&rt_uniresource);
+       failed = nmg_boolean(facetize_tree, nmg_model, &RTG.rtg_vlfree, 
&wdbp->wdb_tol, &rt_uniresource);
        BU_UNSETJUMP;
     } else
        failed = 1;

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to