Revision: 68974
http://sourceforge.net/p/brlcad/code/68974
Author: starseeker
Date: 2016-10-03 21:39:41 +0000 (Mon, 03 Oct 2016)
Log Message:
-----------
Well, that was amazingly painful. Get all rt_vlblock_init calls up out of the
nmg code. Removing RTG.rtg_vlfree as a global variable access flowed up
through a lot of calling functions, which in turn required updating code
calling them.
Modified Paths:
--------------
brlcad/trunk/include/nmg.h
brlcad/trunk/include/rt/nmg.h
brlcad/trunk/src/adrt/load_g.c
brlcad/trunk/src/conv/dxf/g-dxf.c
brlcad/trunk/src/conv/euclid/euclid-g.c
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-egg.c
brlcad/trunk/src/conv/g-nff.c
brlcad/trunk/src/conv/g-obj.c
brlcad/trunk/src/conv/g-shell-rect.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/add_inner_shell.c
brlcad/trunk/src/conv/iges/brep.c
brlcad/trunk/src/conv/iges/extrude.c
brlcad/trunk/src/conv/iges/g-iges.c
brlcad/trunk/src/conv/iges/get_outer_shell.c
brlcad/trunk/src/conv/iges/iges.c
brlcad/trunk/src/conv/iges/make_face.c
brlcad/trunk/src/conv/iges/orient_loops.c
brlcad/trunk/src/conv/iges/trimsurf.c
brlcad/trunk/src/conv/jack/g-jack.c
brlcad/trunk/src/conv/jack/jack-g.c
brlcad/trunk/src/conv/nastran-g.c
brlcad/trunk/src/conv/nmg/asc-nmg.c
brlcad/trunk/src/conv/nmg/g-nmg.c
brlcad/trunk/src/conv/nmg/nmg-rib.c
brlcad/trunk/src/conv/nmg/nmg-sgp.c
brlcad/trunk/src/conv/obj-g.c
brlcad/trunk/src/conv/off/g-off.c
brlcad/trunk/src/conv/off/off-g.c
brlcad/trunk/src/conv/patch/patch-g.c
brlcad/trunk/src/conv/ply/g-ply.c
brlcad/trunk/src/conv/raw/g-raw.c
brlcad/trunk/src/conv/stl/g-stl.c
brlcad/trunk/src/conv/tankill/g-tankill.c
brlcad/trunk/src/conv/tankill/tankill-g.c
brlcad/trunk/src/conv/viewpoint-g.c
brlcad/trunk/src/libgcv/bottess.c
brlcad/trunk/src/libgcv/facetize.c
brlcad/trunk/src/libgcv/plugins/fastgen4/fastgen4_write.cpp
brlcad/trunk/src/libgcv/plugins/obj/obj_read.c
brlcad/trunk/src/libgcv/plugins/obj/obj_write.c
brlcad/trunk/src/libgcv/plugins/obj/tri_face.c
brlcad/trunk/src/libgcv/plugins/stl/stl_write.c
brlcad/trunk/src/libgcv/plugins/vrml/vrml_write.c
brlcad/trunk/src/libged/bev.c
brlcad/trunk/src/libged/bigE.c
brlcad/trunk/src/libged/bot_fuse.c
brlcad/trunk/src/libged/decompose.c
brlcad/trunk/src/libged/draw.c
brlcad/trunk/src/libged/facetize.c
brlcad/trunk/src/libged/inside.c
brlcad/trunk/src/libged/nmg_cmface.c
brlcad/trunk/src/libged/nmg_collapse.c
brlcad/trunk/src/libged/nmg_fix_normals.c
brlcad/trunk/src/libged/nmg_simplify.c
brlcad/trunk/src/libged/shells.c
brlcad/trunk/src/librt/primitives/arb8/arb8.c
brlcad/trunk/src/librt/primitives/arbn/arbn.c
brlcad/trunk/src/librt/primitives/ars/ars.c
brlcad/trunk/src/librt/primitives/bot/bot.c
brlcad/trunk/src/librt/primitives/cline/cline.c
brlcad/trunk/src/librt/primitives/dsp/dsp.c
brlcad/trunk/src/librt/primitives/ebm/ebm.c
brlcad/trunk/src/librt/primitives/ehy/ehy.c
brlcad/trunk/src/librt/primitives/epa/epa.c
brlcad/trunk/src/librt/primitives/extrude/extrude.c
brlcad/trunk/src/librt/primitives/hyp/hyp.c
brlcad/trunk/src/librt/primitives/metaball/metaball_tri.c
brlcad/trunk/src/librt/primitives/nmg/nmg.c
brlcad/trunk/src/librt/primitives/nmg/nmg_bool.c
brlcad/trunk/src/librt/primitives/nmg/nmg_ck.c
brlcad/trunk/src/librt/primitives/nmg/nmg_class.c
brlcad/trunk/src/librt/primitives/nmg/nmg_eval.c
brlcad/trunk/src/librt/primitives/nmg/nmg_extrude.c
brlcad/trunk/src/librt/primitives/nmg/nmg_fcut.c
brlcad/trunk/src/librt/primitives/nmg/nmg_fuse.c
brlcad/trunk/src/librt/primitives/nmg/nmg_info.c
brlcad/trunk/src/librt/primitives/nmg/nmg_inter.c
brlcad/trunk/src/librt/primitives/nmg/nmg_mesh.c
brlcad/trunk/src/librt/primitives/nmg/nmg_mirror.c
brlcad/trunk/src/librt/primitives/nmg/nmg_misc.c
brlcad/trunk/src/librt/primitives/nmg/nmg_mod.c
brlcad/trunk/src/librt/primitives/nmg/nmg_plot.c
brlcad/trunk/src/librt/primitives/nmg/nmg_pr.c
brlcad/trunk/src/librt/primitives/nmg/nmg_pt_fu.c
brlcad/trunk/src/librt/primitives/nmg/nmg_rt_isect.c
brlcad/trunk/src/librt/primitives/nmg/nmg_rt_segs.c
brlcad/trunk/src/librt/primitives/nmg/nmg_tri.c
brlcad/trunk/src/librt/primitives/nmg/nmg_tri_mc.c
brlcad/trunk/src/librt/primitives/nmg/nmg_visit.c
brlcad/trunk/src/librt/primitives/pipe/pipe.c
brlcad/trunk/src/librt/primitives/poly/poly.c
brlcad/trunk/src/librt/primitives/rhc/rhc.c
brlcad/trunk/src/librt/primitives/rpc/rpc.c
brlcad/trunk/src/librt/primitives/tgc/tgc.c
brlcad/trunk/src/librt/primitives/vol/vol.c
brlcad/trunk/src/libwdb/nmg.c
brlcad/trunk/src/mged/edsol.c
brlcad/trunk/src/mged/wdb_obj.c
brlcad/trunk/src/proc-db/nmgmodel.c
brlcad/trunk/src/proc-db/tea_nmg.c
brlcad/trunk/src/util/fix_polysolids.c
Modified: brlcad/trunk/include/nmg.h
===================================================================
--- brlcad/trunk/include/nmg.h 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/include/nmg.h 2016-10-03 21:39:41 UTC (rev 68974)
@@ -754,7 +754,7 @@
void (*vis_shell_a)(uint32_t *, void *, int);
void (*bef_faceuse)(uint32_t *, void *, int);
- void (*aft_faceuse)(uint32_t *, void *, int);
+ void (*aft_faceuse)(uint32_t *, void *, int, struct bu_list *);
void (*vis_face)(uint32_t *, void *, int);
void (*vis_face_g)(uint32_t *, void *, int);
Modified: brlcad/trunk/include/rt/nmg.h
===================================================================
--- brlcad/trunk/include/rt/nmg.h 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/include/rt/nmg.h 2016-10-03 21:39:41 UTC (rev 68974)
@@ -228,16 +228,16 @@
#ifdef NO_BOMBING_MACROS
-# define nmg_bu_bomb(rd, str) (void)(rd)
+# define nmg_bu_bomb(rd, vlfree, str) (void)(rd)
#else
-# define nmg_bu_bomb(rd, str) { \
+# define nmg_bu_bomb(rd, vlfree, str) { \
bu_log("%s", str); \
if (RTG.NMG_debug & DEBUG_NMGRT) bu_bomb("End of diagnostics"); \
BU_LIST_INIT(&rd->rd_hit); \
BU_LIST_INIT(&rd->rd_miss); \
RTG.NMG_debug |= DEBUG_NMGRT; \
- nmg_isect_ray_model(rd); \
- (void) nmg_ray_segs(rd); \
+ nmg_isect_ray_model(rd,vlfree); \
+ (void) nmg_ray_segs(rd,vlfree); \
bu_bomb("Should have bombed before this\n"); \
}
#endif
@@ -283,14 +283,17 @@
/* nmg_class.c */
RT_EXPORT extern int nmg_classify_pt_loop(const point_t pt,
const struct loopuse *lu,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_classify_s_vs_s(struct shell *s,
struct shell *s2,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_classify_lu_lu(const struct loopuse *lu1,
const struct loopuse *lu2,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_class_pt_f(const point_t pt,
@@ -299,6 +302,7 @@
RT_EXPORT extern int nmg_class_pt_s(const point_t pt,
const struct shell *s,
const int in_or_out_only,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
/* From nmg_pt_fu.c */
@@ -307,6 +311,7 @@
RT_EXPORT extern int nmg_class_pt_lu_except(point_t pt,
const struct loopuse *lu,
const struct edge *e_p,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_class_pt_fu_except(const point_t pt,
@@ -317,12 +322,14 @@
const char *priv,
const int call_on_hits,
const int in_or_out_only,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
/* From nmg_plot.c */
RT_EXPORT extern void nmg_pl_shell(FILE *fp,
const struct shell *s,
- int fancy);
+ int fancy,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_vu_to_vlist(struct bu_list *vhead,
const struct vertexuse *vu);
@@ -369,19 +376,24 @@
long *b,
int red,
int green,
- int blue);
+ int blue,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_pl_fu(FILE *fp,
const struct faceuse *fu,
long *b,
int red,
int green,
- int blue);
+ int blue,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_pl_s(FILE *fp,
- const struct shell *s);
+ const struct shell *s,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_pl_r(FILE *fp,
- const struct nmgregion *r);
+ const struct nmgregion *r,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_pl_m(FILE *fp,
- const struct model *m);
+ const struct model *m,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_vlblock_v(struct bn_vlblock *vbp,
const struct vertex *v,
long *tab);
@@ -439,36 +451,45 @@
const struct bn_tol *tol);
RT_EXPORT extern void nmg_pl_isect(const char *filename,
const struct shell *s,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern void nmg_pl_comb_fu(int num1,
int num2,
- const struct faceuse *fu1);
+ const struct faceuse *fu1,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_pl_2fu(const char *str,
const struct faceuse *fu1,
const struct faceuse *fu2,
- int show_mates);
+ int show_mates,
+ struct bu_list *vlfree);
/* graphical display of classifier results */
RT_EXPORT extern void nmg_show_broken_classifier_stuff(uint32_t *p,
char **classlist,
int all_new,
int fancy,
- const char
*a_string);
-RT_EXPORT extern void nmg_face_plot(const struct faceuse *fu);
+ const char
*a_string,
+ struct bu_list *vlfree);
+RT_EXPORT extern void nmg_face_plot(const struct faceuse *fu, struct bu_list
*vlfree);
RT_EXPORT extern void nmg_2face_plot(const struct faceuse *fu1,
- const struct faceuse *fu2);
+ const struct faceuse *fu2,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_face_lu_plot(const struct loopuse *lu,
const struct vertexuse *vu1,
- const struct vertexuse *vu2);
+ const struct vertexuse *vu2,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_plot_lu_ray(const struct loopuse *lu,
const struct vertexuse *vu1,
const struct vertexuse *vu2,
- const vect_t left);
+ const vect_t left,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_plot_ray_face(const char *fname,
point_t pt,
const vect_t dir,
- const struct faceuse *fu);
+ const struct faceuse *fu,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_plot_lu_around_eu(const char *prefix,
const struct edgeuse *eu,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_snurb_to_vlist(struct bu_list *vhead,
const struct face_g_snurb *fg,
@@ -508,12 +529,14 @@
const struct bn_tol *tol);
RT_EXPORT extern void nmg_mesh_faces(struct faceuse *fu1,
struct faceuse *fu2,
- const struct bn_tol *tol);
+ struct bu_list *vlfree,
+ const struct bn_tol *tol);
RT_EXPORT extern int nmg_mesh_face_shell(struct faceuse *fu1,
struct shell *s,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_mesh_shell_shell(struct shell *s1,
struct shell *s2,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern double nmg_measure_fu_angle(const struct edgeuse *eu,
const vect_t xvec,
@@ -524,9 +547,6 @@
RT_EXPORT extern struct nmgregion *nmg_do_bool(struct nmgregion *s1,
struct nmgregion *s2,
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);
RT_EXPORT extern int nmg_two_region_vertex_fuse(struct nmgregion *r1,
struct nmgregion *r2,
const struct bn_tol *tol);
@@ -556,6 +576,7 @@
RT_EXPORT extern void nmg_class_shells(struct shell *sA,
struct shell *sB,
char **classlist,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
/* from nmg_fcut.c */
@@ -583,12 +604,14 @@
point_t pt,
vect_t dir,
struct edge_g_lseg *eg,
+ struct bu_list *vlfree,
const struct bn_tol
*tol);
RT_EXPORT extern void nmg_fcut_face_2d(struct bu_ptbl *vu_list,
fastf_t *mag,
struct faceuse *fu1,
struct faceuse *fu2,
- struct bn_tol *tol);
+ struct bu_list *vlfree,
+ struct bn_tol *tol);
RT_EXPORT extern int nmg_insert_vu_if_on_edge(struct vertexuse *vu1,
struct vertexuse *vu2,
struct edgeuse *new_eu,
@@ -624,9 +647,10 @@
RT_EXPORT extern int nmg_class_ray_vs_shell(struct xray *rp,
const struct shell *s,
const int in_or_out_only,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
-RT_EXPORT extern void nmg_isect_ray_model(struct ray_data *rd);
+RT_EXPORT extern void nmg_isect_ray_model(struct ray_data *rd, struct bu_list
*vlfree);
/* From nmg_ck.c */
RT_EXPORT extern void nmg_vvg(const struct vertex_g *vg);
@@ -689,6 +713,7 @@
RT_EXPORT extern int nmg_ck_eg_verts(const struct edge_g_lseg *eg,
const struct bn_tol *tol);
RT_EXPORT extern size_t nmg_ck_geometry(const struct model *m,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_ck_face_worthless_edges(const struct faceuse *fu);
RT_EXPORT extern void nmg_ck_lueu(const struct loopuse *lu, const char *s);
@@ -706,6 +731,7 @@
const struct faceuse *fu2,
const struct bn_tol *tol);
RT_EXPORT extern void nmg_ck_vs_in_region(const struct nmgregion *r,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
@@ -766,6 +792,7 @@
RT_EXPORT extern struct edge_g_lseg *nmg_find_eg_on_line(const uint32_t
*magic_p,
const point_t
pt,
const vect_t
dir,
+ struct bu_list
*vlfree,
const struct
bn_tol *tol);
RT_EXPORT extern int nmg_k0eu(struct vertex *v);
RT_EXPORT extern struct vertex *nmg_repair_v_near_v(struct vertex
*hit_v,
@@ -786,7 +813,8 @@
RT_EXPORT extern int nmg_is_vertex_on_inter(struct vertex *v,
struct faceuse *fu1,
struct faceuse *fu2,
- struct nmg_inter_struct *is);
+ struct nmg_inter_struct *is,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_isect_eu_verts(struct edgeuse *eu,
struct vertex_g *vg1,
struct vertex_g *vg2,
@@ -804,22 +832,26 @@
RT_EXPORT extern void nmg_isect_eu_fu(struct nmg_inter_struct *is,
struct bu_ptbl *verts,
struct edgeuse *eu,
- struct faceuse *fu);
+ struct faceuse *fu,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_isect_fu_jra(struct nmg_inter_struct *is,
struct faceuse *fu1,
struct faceuse *fu2,
struct bu_ptbl *eu1_list,
- struct bu_ptbl *eu2_list);
+ struct bu_ptbl *eu2_list,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_isect_line2_face2pNEW(struct nmg_inter_struct *is,
struct faceuse *fu1, struct
faceuse *fu2,
struct bu_ptbl *eu1_list,
- struct bu_ptbl *eu2_list);
+ struct bu_ptbl *eu2_list,
+ struct bu_list *vlfree);
RT_EXPORT extern int nmg_is_eu_on_line3(const struct edgeuse *eu,
const point_t pt,
const vect_t dir,
const struct bn_tol *tol);
RT_EXPORT extern struct edge_g_lseg *nmg_find_eg_between_2fg(const struct
faceuse *ofu1,
const struct
faceuse *fu2,
+ struct bu_list
*vlfree,
const struct
bn_tol *tol);
RT_EXPORT extern struct edgeuse *nmg_does_fu_use_eg(const struct faceuse
*fu1,
const uint32_t *eg);
@@ -829,20 +861,25 @@
const struct bn_tol *tol);
RT_EXPORT extern void nmg_cut_lu_into_coplanar_and_non(struct loopuse *lu,
plane_t pl,
- struct nmg_inter_struct
*is);
+ struct nmg_inter_struct
*is,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_check_radial_angles(char *str,
struct shell *s,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_faces_can_be_intersected(struct nmg_inter_struct *bs,
const struct faceuse *fu1,
const struct faceuse *fu2,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern void nmg_isect_two_generic_faces(struct faceuse
*fu1,
struct faceuse
*fu2,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern void nmg_crackshells(struct shell *s1,
struct shell *s2,
- const struct bn_tol *tol);
+ struct bu_list *vlfree,
+ const struct bn_tol *tol);
RT_EXPORT extern int nmg_fu_touchingloops(const struct faceuse *fu);
@@ -965,9 +1002,11 @@
/* SHELL Routines */
RT_EXPORT extern void nmg_shell_coplanar_face_merge(struct shell *s,
const struct bn_tol *tol,
- const int simplify);
-RT_EXPORT extern int nmg_simplify_shell(struct shell *s);
+ const int simplify,
+ struct bu_list *vlfree);
+RT_EXPORT extern int nmg_simplify_shell(struct shell *s, struct bu_list
*vlfree);
RT_EXPORT extern void nmg_rm_redundancies(struct shell *s,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern void nmg_sanitize_s_lv(struct shell *s,
int orient);
@@ -977,6 +1016,7 @@
const struct bn_tol *tol);
RT_EXPORT extern void nmg_js(struct shell *s1,
struct shell *s2,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern void nmg_invert_shell(struct shell *s);
@@ -996,8 +1036,9 @@
const struct bn_tol *tol);
RT_EXPORT extern void nmg_gluefaces(struct faceuse *fulist[],
int n,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
-RT_EXPORT extern int nmg_simplify_face(struct faceuse *fu);
+RT_EXPORT extern int nmg_simplify_face(struct faceuse *fu, struct bu_list
*vlfree);
RT_EXPORT extern void nmg_reverse_face(struct faceuse *fu);
RT_EXPORT extern void nmg_mv_fu_between_shells(struct shell *dest,
struct shell *src,
@@ -1016,7 +1057,8 @@
RT_EXPORT extern struct vertexuse *nmg_join_2singvu_loops(struct vertexuse
*vu1,
struct vertexuse
*vu2);
RT_EXPORT extern struct loopuse *nmg_cut_loop(struct vertexuse *vu1,
- struct vertexuse *vu2);
+ struct vertexuse *vu2,
+ struct bu_list *vlfree);
RT_EXPORT extern struct loopuse *nmg_split_lu_at_vu(struct loopuse *lu,
struct vertexuse *vu);
RT_EXPORT extern struct vertexuse *nmg_find_repeated_v_in_lu(struct vertexuse
*vu);
@@ -1029,8 +1071,8 @@
RT_EXPORT extern void nmg_kill_accordions(struct loopuse *lu);
RT_EXPORT extern int nmg_loop_split_at_touching_jaunt(struct loopuse
*lu,
const struct bn_tol
*tol);
-RT_EXPORT extern void nmg_simplify_loop(struct loopuse *lu);
-RT_EXPORT extern int nmg_kill_snakes(struct loopuse *lu);
+RT_EXPORT extern void nmg_simplify_loop(struct loopuse *lu, struct bu_list
*vlfree);
+RT_EXPORT extern int nmg_kill_snakes(struct loopuse *lu, struct bu_list
*vlfree);
RT_EXPORT extern void nmg_mv_lu_between_shells(struct shell *dest,
struct shell *src,
struct loopuse *lu);
@@ -1127,10 +1169,12 @@
RT_EXPORT extern const struct edgeuse *nmg_radial_face_edge_in_shell(const
struct edgeuse *eu);
RT_EXPORT extern const struct edgeuse *nmg_find_edge_between_2fu(const struct
faceuse *fu1,
const struct
faceuse *fu2,
+ struct bu_list
*vlfree,
const struct
bn_tol *tol);
RT_EXPORT extern struct edge *nmg_find_e_nearest_pt2(uint32_t *magic_p,
const point_t pt2,
const mat_t mat,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern struct edgeuse *nmg_find_matching_eu_in_s(const struct
edgeuse *eu1,
const struct shell
*s2);
@@ -1185,40 +1229,48 @@
/* Tabulation routines */
RT_EXPORT extern void nmg_vertex_tabulate(struct bu_ptbl *tab,
- const uint32_t *magic_p);
+ const uint32_t *magic_p,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_vertexuse_normal_tabulate(struct bu_ptbl *tab,
- const uint32_t *magic_p);
+ const uint32_t *magic_p,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_edgeuse_tabulate(struct bu_ptbl *tab,
- const uint32_t *magic_p);
+ const uint32_t *magic_p,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_edge_tabulate(struct bu_ptbl *tab,
- const uint32_t *magic_p);
+ const uint32_t *magic_p,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_edge_g_tabulate(struct bu_ptbl *tab,
- const uint32_t *magic_p);
+ const uint32_t *magic_p,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_face_tabulate(struct bu_ptbl *tab,
- const uint32_t *magic_p);
+ const uint32_t *magic_p,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_edgeuse_with_eg_tabulate(struct bu_ptbl *tab,
const struct edge_g_lseg
*eg);
RT_EXPORT extern void nmg_edgeuse_on_line_tabulate(struct bu_ptbl *tab,
const uint32_t *magic_p,
const point_t pt,
const vect_t dir,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern void nmg_e_and_v_tabulate(struct bu_ptbl *eutab,
struct bu_ptbl *vtab,
- const uint32_t *magic_p);
+ const uint32_t *magic_p,
+ struct bu_list *vlfree);
RT_EXPORT extern int nmg_2edgeuse_g_coincident(const struct edgeuse *eu1,
const struct edgeuse *eu2,
const struct bn_tol *tol);
/* From nmg_extrude.c */
-RT_EXPORT extern void nmg_translate_face(struct faceuse *fu, const vect_t Vec);
-RT_EXPORT extern int nmg_extrude_face(struct faceuse *fu, const vect_t Vec,
const struct bn_tol *tol);
+RT_EXPORT extern void nmg_translate_face(struct faceuse *fu, const vect_t Vec,
struct bu_list *vlfree);
+RT_EXPORT extern int nmg_extrude_face(struct faceuse *fu, const vect_t Vec,
struct bu_list *vlfree, const struct bn_tol *tol);
RT_EXPORT extern struct vertexuse *nmg_find_vertex_in_lu(const struct vertex
*v, const struct loopuse *lu);
-RT_EXPORT extern void nmg_fix_overlapping_loops(struct shell *s, const struct
bn_tol *tol);
+RT_EXPORT extern void nmg_fix_overlapping_loops(struct shell *s, struct
bu_list *vlfree, const struct bn_tol *tol);
RT_EXPORT extern void nmg_break_crossed_loops(struct shell *is, const struct
bn_tol *tol);
-RT_EXPORT extern struct shell *nmg_extrude_cleanup(struct shell *is, const int
is_void, const struct bn_tol *tol);
-RT_EXPORT extern void nmg_hollow_shell(struct shell *s, const fastf_t thick,
const int approximate, const struct bn_tol *tol);
-RT_EXPORT extern struct shell *nmg_extrude_shell(struct shell *s, const
fastf_t dist, const int normal_ward, const int approximate, const struct bn_tol
*tol);
+RT_EXPORT extern struct shell *nmg_extrude_cleanup(struct shell *is, const int
is_void, struct bu_list *vlfree, const struct bn_tol *tol);
+RT_EXPORT extern void nmg_hollow_shell(struct shell *s, const fastf_t thick,
const int approximate, struct bu_list *vlfree, const struct bn_tol *tol);
+RT_EXPORT extern struct shell *nmg_extrude_shell(struct shell *s, const
fastf_t dist, const int normal_ward, const int approximate, struct bu_list
*vlfree, const struct bn_tol *tol);
/* From nmg_pr.c */
RT_EXPORT extern char *nmg_orientation(int orientation);
@@ -1289,7 +1341,7 @@
const struct bn_tol *tol);
RT_EXPORT extern void nmg_pr_fu_around_eu(const struct edgeuse *eu,
const struct bn_tol *tol);
-RT_EXPORT extern void nmg_pl_lu_around_eu(const struct edgeuse *eu);
+RT_EXPORT extern void nmg_pl_lu_around_eu(const struct edgeuse *eu, struct
bu_list *vlfree);
RT_EXPORT extern void nmg_pr_fus_in_fg(const uint32_t *fg_magic);
/* From nmg_misc.c */
@@ -1305,7 +1357,7 @@
RT_EXPORT extern void nmg_snurb_fu_get_norm_at_vu(const struct faceuse *fu,
const struct vertexuse *vu,
vect_t norm);
-RT_EXPORT extern void nmg_find_zero_length_edges(const struct model *m);
+RT_EXPORT extern void nmg_find_zero_length_edges(const struct model *m, struct
bu_list *vlfree);
RT_EXPORT extern struct face *nmg_find_top_face_in_dir(const struct shell *s,
int dir, long *flags);
RT_EXPORT extern struct face *nmg_find_top_face(const struct shell *s,
@@ -1313,11 +1365,13 @@
long *flags);
RT_EXPORT extern int nmg_find_outer_and_void_shells(struct nmgregion *r,
struct bu_ptbl ***shells,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
-RT_EXPORT extern int nmg_mark_edges_real(const uint32_t *magic_p);
+RT_EXPORT extern int nmg_mark_edges_real(const uint32_t *magic_p, struct
bu_list *vlfree);
RT_EXPORT extern void nmg_tabulate_face_g_verts(struct bu_ptbl *tab,
const struct face_g_plane *fg);
RT_EXPORT extern void nmg_isect_shell_self(struct shell *s,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern struct edgeuse *nmg_next_radial_eu(const struct edgeuse *eu,
const struct shell *s,
@@ -1340,8 +1394,8 @@
plane_t pl,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_calc_face_plane(struct faceuse *fu_in,
- plane_t pl);
-RT_EXPORT extern int nmg_calc_face_g(struct faceuse *fu);
+ plane_t pl, struct bu_list *vlfree);
+RT_EXPORT extern int nmg_calc_face_g(struct faceuse *fu, struct bu_list
*vlfree);
RT_EXPORT extern fastf_t nmg_faceuse_area(const struct faceuse *fu);
RT_EXPORT extern fastf_t nmg_shell_area(const struct shell *s);
RT_EXPORT extern fastf_t nmg_region_area(const struct nmgregion *r);
@@ -1359,10 +1413,11 @@
size_t *total_wires,
size_t *total_faces,
size_t *total_points);
-RT_EXPORT extern void nmg_close_shell(struct shell *s,
+RT_EXPORT extern void nmg_close_shell(struct shell *s, struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern struct shell *nmg_dup_shell(struct shell *s,
long ***copy_tbl,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern struct edgeuse *nmg_pop_eu(struct bu_ptbl *stack);
RT_EXPORT extern void nmg_reverse_radials(struct faceuse *fu,
@@ -1377,20 +1432,21 @@
RT_EXPORT extern void nmg_fix_decomposed_shell_normals(struct shell *s,
const struct bn_tol
*tol);
RT_EXPORT extern struct model *nmg_mk_model_from_region(struct nmgregion *r,
- int reindex);
+ int reindex, struct
bu_list *vlfree);
RT_EXPORT extern void nmg_fix_normals(struct shell *s_orig,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_break_long_edges(struct shell *s,
const struct bn_tol *tol);
RT_EXPORT extern struct faceuse *nmg_mk_new_face_from_loop(struct loopuse *lu);
-RT_EXPORT extern int nmg_split_loops_into_faces(uint32_t *magic_p,
+RT_EXPORT extern int nmg_split_loops_into_faces(uint32_t *magic_p, struct
bu_list *vlfree,
const struct bn_tol *tol);
-RT_EXPORT extern int nmg_decompose_shell(struct shell *s,
+RT_EXPORT extern int nmg_decompose_shell(struct shell *s, struct bu_list
*vlfree,
const struct bn_tol *tol);
RT_EXPORT extern void nmg_stash_model_to_file(const char *filename,
const struct model *m,
const char *title);
-RT_EXPORT extern int nmg_unbreak_region_edges(uint32_t *magic_p);
+RT_EXPORT extern int nmg_unbreak_region_edges(uint32_t *magic_p, struct
bu_list *vlfree);
RT_EXPORT extern void nmg_vlist_to_eu(struct bu_list *vlist,
struct shell *s);
RT_EXPORT extern int nmg_mv_shell_to_region(struct shell *s,
@@ -1406,12 +1462,14 @@
const struct bn_tol *tol);
RT_EXPORT extern void nmg_make_faces_at_vert(struct vertex *new_v,
struct bu_ptbl *int_faces,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern void nmg_kill_cracks_at_vertex(const struct vertex *vp);
RT_EXPORT extern int nmg_complex_vertex_solve(struct vertex *new_v,
const struct bu_ptbl *faces,
const int free_edges,
const int approximate,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_bad_face_normals(const struct shell *s,
const struct bn_tol *tol);
@@ -1435,14 +1493,17 @@
RT_EXPORT extern int nmg_open_shells_connect(struct shell *dst,
struct shell *src,
const long **copy_tbl,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_in_vert(struct vertex *new_v,
const int approximate,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
-RT_EXPORT extern void nmg_mirror_model(struct model *m);
+RT_EXPORT extern void nmg_mirror_model(struct model *m, struct bu_list
*vlfree);
RT_EXPORT extern int nmg_kill_cracks(struct shell *s);
RT_EXPORT extern int nmg_kill_zero_length_edgeuses(struct model *m);
RT_EXPORT extern void nmg_make_faces_within_tol(struct shell *s,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern void nmg_intersect_loops_self(struct shell *s,
const struct bn_tol *tol);
@@ -1455,13 +1516,12 @@
RT_EXPORT extern int nmg_break_edge_at_verts(struct edge *e,
struct bu_ptbl *verts,
const struct bn_tol *tol);
-RT_EXPORT extern void nmg_isect_shell_self(struct shell *s,
- const struct bn_tol *tol);
RT_EXPORT extern fastf_t nmg_loop_plane_area(const struct loopuse *lu,
plane_t pl);
-RT_EXPORT extern int nmg_break_edges(uint32_t *magic_p,
+RT_EXPORT extern int nmg_break_edges(uint32_t *magic_p, struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_lu_is_convex(struct loopuse *lu,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_to_arb(const struct model *m,
struct rt_arb_internal *arb_int);
@@ -1470,8 +1530,10 @@
const struct bn_tol *tol);
RT_EXPORT extern int nmg_to_poly(const struct model *m,
struct rt_pg_internal *poly_int,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern struct rt_bot_internal *nmg_bot(struct shell *s,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_simplify_shell_edges(struct shell *s,
@@ -1479,19 +1541,23 @@
RT_EXPORT extern int nmg_edge_collapse(struct model *m,
const struct bn_tol *tol,
const fastf_t tol_coll,
- const fastf_t min_angle);
+ const fastf_t min_angle,
+ struct bu_list *vlfree);
/* From nmg_copy.c */
RT_EXPORT extern struct model *nmg_clone_model(const struct model *original);
/* From nmg_tri.c */
RT_EXPORT extern void nmg_triangulate_shell(struct shell *s,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern void nmg_triangulate_model(struct model *m,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_triangulate_fu(struct faceuse *fu,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern void nmg_dump_model(struct model *m);
@@ -1520,13 +1586,13 @@
RT_EXPORT extern char *nmg_manifolds(struct model *m);
/* nmg.c */
-RT_EXPORT extern int nmg_ray_segs(struct ray_data *rd);
+RT_EXPORT extern int nmg_ray_segs(struct ray_data *rd, struct bu_list
*vlfree);
/* From nmg_fuse.c */
RT_EXPORT extern int nmg_is_common_bigloop(const struct face *f1,
const struct face *f2);
-RT_EXPORT extern void nmg_region_v_unique(struct nmgregion *r1,
+RT_EXPORT extern void nmg_region_v_unique(struct nmgregion *r1, struct bu_list
*vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_ptbl_vfuse(struct bu_ptbl *t,
const struct bn_tol *tol);
@@ -1534,7 +1600,7 @@
struct bu_ptbl *t2,
const struct bn_tol *tol);
/* nmg_two_region_vertex_fuse replaced with nmg_vertex_fuse */
-RT_EXPORT extern int nmg_vertex_fuse(const uint32_t *magic_p,
+RT_EXPORT extern int nmg_vertex_fuse(const uint32_t *magic_p,struct bu_list
*vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_cnurb_is_linear(const struct edge_g_cnurb *cnrb);
RT_EXPORT extern int nmg_snurb_is_planar(const struct face_g_snurb *srf,
@@ -1570,9 +1636,9 @@
const struct face_g_snurb *snrb,
const struct bu_list *head,
const struct bn_tol *tol);
-RT_EXPORT extern int nmg_edge_fuse(const uint32_t *magic_p,
+RT_EXPORT extern int nmg_edge_fuse(const uint32_t *magic_p,struct bu_list
*vlfree,
const struct bn_tol *tol);
-RT_EXPORT extern int nmg_edge_g_fuse(const uint32_t *magic_p,
+RT_EXPORT extern int nmg_edge_g_fuse(const uint32_t *magic_p,struct bu_list
*vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_ck_fu_verts(struct faceuse *fu1,
struct face *f2,
@@ -1583,17 +1649,19 @@
RT_EXPORT extern int nmg_two_face_fuse(struct face *f1,
struct face *f2,
const struct bn_tol *tol);
-RT_EXPORT extern int nmg_model_face_fuse(struct model *m,
+RT_EXPORT extern int nmg_model_face_fuse(struct model *m,struct bu_list
*vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_break_all_es_on_v(uint32_t *magic_p,
- struct vertex *v,
+ struct vertex *v,struct bu_list
*vlfree,
const struct bn_tol *tol);
-RT_EXPORT extern int nmg_break_e_on_v(const uint32_t *magic_p,
+RT_EXPORT extern int nmg_break_e_on_v(const uint32_t *magic_p,struct bu_list
*vlfree,
const struct bn_tol *tol);
/* DEPRECATED: use nmg_break_e_on_v */
RT_EXPORT extern int nmg_model_break_e_on_v(const uint32_t *magic_p,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_model_fuse(struct model *m,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
/* radial routines */
@@ -1617,6 +1685,7 @@
struct bu_list *src,
const struct bn_tol *tol);
RT_EXPORT extern int nmg_is_crack_outie(const struct edgeuse *eu,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern struct nmg_radial *nmg_find_radial_eu(const struct
bu_list *hd,
const struct
edgeuse *eu);
@@ -1626,6 +1695,7 @@
RT_EXPORT extern void nmg_radial_mark_cracks(struct bu_list *hd,
const struct edge *e1,
const struct edge *e2,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern struct nmg_radial *nmg_radial_find_an_original(const struct
bu_list *hd,
const struct
shell *s,
@@ -1657,10 +1727,13 @@
RT_EXPORT extern void nmg_radial_exchange_marked(struct bu_list
*hd,
const struct bn_tol *tol);
RT_EXPORT extern void nmg_s_radial_harmonize(struct shell *s,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern void nmg_s_radial_check(struct shell *s,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
RT_EXPORT extern void nmg_r_radial_check(const struct nmgregion *r,
+ struct bu_list *vlfree,
const struct bn_tol *tol);
@@ -1692,19 +1765,24 @@
void * state);
RT_EXPORT extern void nmg_visit_faceuse(struct faceuse *fu,
const struct nmg_visit_handlers *htab,
- void * state);
+ void * state,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_visit_shell(struct shell *s,
const struct nmg_visit_handlers *htab,
- void * state);
+ void * state,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_visit_region(struct nmgregion *r,
const struct nmg_visit_handlers *htab,
- void * state);
+ void * state,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_visit_model(struct model *model,
const struct nmg_visit_handlers *htab,
- void * state);
+ void * state,
+ struct bu_list *vlfree);
RT_EXPORT extern void nmg_visit(const uint32_t *magicp,
const struct nmg_visit_handlers *htab,
- void * state);
+ void * state,
+ struct bu_list *vlfree);
#endif
Modified: brlcad/trunk/src/adrt/load_g.c
===================================================================
--- brlcad/trunk/src/adrt/load_g.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/adrt/load_g.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -219,7 +219,7 @@
NMG_CK_MODEL(m);
/* triangulate model */
- nmg_triangulate_model(m, &tol);
+ nmg_triangulate_model(m, &RTG.rtg_vlfree, &tol);
/* FIXME: where is this released? */
BU_ALLOC(mesh, struct adrt_mesh_s);
Modified: brlcad/trunk/src/conv/dxf/g-dxf.c
===================================================================
--- brlcad/trunk/src/conv/dxf/g-dxf.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/dxf/g-dxf.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -192,7 +192,7 @@
triangulate:
if (do_triangulate) {
/* triangulate model */
- nmg_triangulate_model(m, &tol);
+ nmg_triangulate_model(m, &RTG.rtg_vlfree, &tol);
/* Count triangles */
tri_count = 0;
@@ -215,7 +215,7 @@
}
}
- nmg_vertex_tabulate(&verts, &r->l.magic);
+ nmg_vertex_tabulate(&verts, &r->l.magic, &RTG.rtg_vlfree);
color_num = find_closest_color(color);
Modified: brlcad/trunk/src/conv/euclid/euclid-g.c
===================================================================
--- brlcad/trunk/src/conv/euclid/euclid-g.c 2016-10-03 15:05:00 UTC (rev
68973)
+++ brlcad/trunk/src/conv/euclid/euclid-g.c 2016-10-03 21:39:41 UTC (rev
68974)
@@ -225,7 +225,7 @@
struct shell *next_s;
next_s = BU_LIST_PNEXT(shell, &s->l);
- if (nmg_simplify_shell(s)) {
+ if (nmg_simplify_shell(s, &RTG.rtg_vlfree)) {
if (nmg_ks(s)) {
/* we killed it all! */
something_left = 0;
@@ -504,12 +504,12 @@
if (debug)
bu_log("Calling nmg_vertex_fuse()\n");
- (void)nmg_vertex_fuse(&m->magic, &tol);
+ (void)nmg_vertex_fuse(&m->magic, &RTG.rtg_vlfree, &tol);
/* Break edges on vertices */
if (debug)
bu_log("Calling nmg_break_e_on_v()\n");
- (void)nmg_break_e_on_v(&m->magic, &tol);
+ (void)nmg_break_e_on_v(&m->magic, &RTG.rtg_vlfree, &tol);
/* kill zero length edgeuses */
if (nmg_kill_zero_length_edgeuses(m)) {
@@ -535,7 +535,7 @@
continue;
/* calculate plane for this faceuse */
- if (nmg_calc_face_g(outfaceuses[i])) {
+ if (nmg_calc_face_g(outfaceuses[i], &RTG.rtg_vlfree)) {
bu_log("nmg_calc_face_g failed\n");
nmg_pr_fu_briefly(outfaceuses[i], "");
}
@@ -552,7 +552,7 @@
/* Glue faceuses together. */
if (debug)
bu_log("Glueing faces\n");
- (void)nmg_edge_fuse(&m->magic, &tol);
+ (void)nmg_edge_fuse(&m->magic, &RTG.rtg_vlfree, &tol);
/* Compute "geometry" for model, region, and shell */
if (debug)
@@ -562,7 +562,7 @@
/* fix the normals */
if (debug)
bu_log("Fix normals\n");
- nmg_fix_normals(s, &tol);
+ nmg_fix_normals(s, &RTG.rtg_vlfree, &tol);
if (RT_G_DEBUG&DEBUG_MEM_FULL)
bu_prmem("After fixing normals:\n");
@@ -594,7 +594,7 @@
if (RT_G_DEBUG&DEBUG_MEM_FULL)
bu_prmem("Before nmg_make_faces_within_tol():\n");
- nmg_make_faces_within_tol(s, &tol);
+ nmg_make_faces_within_tol(s, &RTG.rtg_vlfree, &tol);
if (RT_G_DEBUG&DEBUG_MEM_FULL)
bu_prmem("After nmg_make_faces_within_tol():\n");
@@ -643,7 +643,7 @@
}
if (debug)
- bu_log("%d vertices out of tolerance after fixing out of tolerance
faces\n", nmg_ck_geometry(m, &tol));
+ bu_log("%d vertices out of tolerance after fixing out of tolerance
faces\n", nmg_ck_geometry(m, &RTG.rtg_vlfree, &tol));
nmg_s_join_touchingloops(s, &tol);
nmg_s_split_touchingloops(s, &tol);
Modified: brlcad/trunk/src/conv/euclid/g-euclid.c
===================================================================
--- brlcad/trunk/src/conv/euclid/g-euclid.c 2016-10-03 15:05:00 UTC (rev
68973)
+++ brlcad/trunk/src/conv/euclid/g-euclid.c 2016-10-03 21:39:41 UTC (rev
68974)
@@ -342,7 +342,7 @@
continue;
nmg_class = nmg_classify_lu_lu(faces[loop1].lu,
- faces[loop2].lu, &tol);
+ faces[loop2].lu,
&RTG.rtg_vlfree, &tol);
if (nmg_class != NMG_CLASS_AinB)
continue;
@@ -366,7 +366,7 @@
continue;
if (nmg_classify_lu_lu(faces[i].lu,
- faces[loop2].lu, &tol)) {
+ faces[loop2].lu,
&RTG.rtg_vlfree, &tol)) {
if (faces[i].facet_type != (-2))
continue;
@@ -619,7 +619,7 @@
if (!BU_SETJUMP) {
/* try */
- (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
+ (void)nmg_model_fuse(*tsp->ts_m, &RTG.rtg_vlfree, tsp->ts_tol);
ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol,
&rt_uniresource);
} else {
Modified: brlcad/trunk/src/conv/euclid/g-euclid1.c
===================================================================
--- brlcad/trunk/src/conv/euclid/g-euclid1.c 2016-10-03 15:05:00 UTC (rev
68973)
+++ brlcad/trunk/src/conv/euclid/g-euclid1.c 2016-10-03 21:39:41 UTC (rev
68974)
@@ -284,7 +284,7 @@
continue;
nmg_class = nmg_classify_lu_lu(faces[loop1].lu,
- faces[loop2].lu, &tol);
+ faces[loop2].lu,
&RTG.rtg_vlfree, &tol);
if (nmg_class != NMG_CLASS_AinB)
continue;
@@ -308,7 +308,7 @@
continue;
if (nmg_classify_lu_lu(faces[i].lu,
- faces[loop2].lu, &tol)) {
+ faces[loop2].lu,
&RTG.rtg_vlfree, &tol)) {
if (faces[i].facet_type != (-2))
continue;
@@ -396,7 +396,7 @@
if (!BU_SETJUMP) {
/* try */
- (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
+ (void)nmg_model_fuse(*tsp->ts_m, &RTG.rtg_vlfree, tsp->ts_tol);
ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol,
&rt_uniresource);
} else {
Modified: brlcad/trunk/src/conv/g-acad.c
===================================================================
--- brlcad/trunk/src/conv/g-acad.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/g-acad.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -101,11 +101,11 @@
NMG_CK_MODEL(m);
/* triangulate model */
- nmg_triangulate_model(m, &tol);
+ nmg_triangulate_model(m, &RTG.rtg_vlfree, &tol);
/* list all vertices in result */
- nmg_vertex_tabulate(&verts, &r->l.magic);
+ nmg_vertex_tabulate(&verts, &r->l.magic, &RTG.rtg_vlfree);
/* Get number of vertices */
Modified: brlcad/trunk/src/conv/g-egg.c
===================================================================
--- brlcad/trunk/src/conv/g-egg.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/g-egg.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -84,7 +84,7 @@
NMG_CK_MODEL(m);
/* triangulate model */
- nmg_triangulate_model(m, &conv_data->tol);
+ nmg_triangulate_model(m, &RTG.rtg_vlfree, &conv_data->tol);
/* Write pertinent info for this region */
fprintf(conv_data->fp, " <VertexPool> %s {\n", (region_name+1));
Modified: brlcad/trunk/src/conv/g-nff.c
===================================================================
--- brlcad/trunk/src/conv/g-nff.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/g-nff.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -90,7 +90,7 @@
NMG_CK_MODEL(m);
/* triangulate model */
- nmg_triangulate_model(m, &tol);
+ nmg_triangulate_model(m, &RTG.rtg_vlfree, &tol);
/* output triangles */
for (BU_LIST_FOR(s, shell, &r->s_hd)) {
@@ -182,7 +182,7 @@
if (!BU_SETJUMP) {
/* try */
- (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
+ (void)nmg_model_fuse(*tsp->ts_m, &RTG.rtg_vlfree, tsp->ts_tol);
ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol,
&rt_uniresource);
} else {
Modified: brlcad/trunk/src/conv/g-obj.c
===================================================================
--- brlcad/trunk/src/conv/g-obj.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/g-obj.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -304,17 +304,17 @@
NMG_CK_MODEL(m);
/* triangulate model */
- nmg_triangulate_model(m, &tol);
+ nmg_triangulate_model(m, &RTG.rtg_vlfree, &tol);
/* list all vertices in result */
- nmg_vertex_tabulate(&verts, &r->l.magic);
+ nmg_vertex_tabulate(&verts, &r->l.magic, &RTG.rtg_vlfree);
/* Get number of vertices */
numverts = BU_PTBL_LEN(&verts);
/* get list of vertexuse normals */
if (do_normals)
- nmg_vertexuse_normal_tabulate(&norms, &r->l.magic);
+ nmg_vertexuse_normal_tabulate(&norms, &r->l.magic, &RTG.rtg_vlfree);
/* BEGIN CHECK SECTION */
/* Check vertices */
@@ -552,7 +552,7 @@
if (!BU_SETJUMP) {
/* try */
- (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
+ (void)nmg_model_fuse(*tsp->ts_m, &RTG.rtg_vlfree, tsp->ts_tol);
ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol,
&rt_uniresource);
} else {
Modified: brlcad/trunk/src/conv/g-shell-rect.c
===================================================================
--- brlcad/trunk/src/conv/g-shell-rect.c 2016-10-03 15:05:00 UTC (rev
68973)
+++ brlcad/trunk/src/conv/g-shell-rect.c 2016-10-03 21:39:41 UTC (rev
68974)
@@ -163,7 +163,7 @@
nmg_vertex_gv(*_v[1], _ep1->pt); \
if (!(*_v[2])->vg_p) \
nmg_vertex_gv(*_v[2], _ep2->pt); \
- if (nmg_calc_face_g(_fu)) { \
+ if (nmg_calc_face_g(_fu,&RTG.rtg_vlfree)) { \
if (debug > 3) \
bu_log("Killing degenerate face\n"); \
(void)nmg_kfu(_fu); \
@@ -198,7 +198,7 @@
nmg_vertex_gv(*_v[2], _ep2->pt); \
if (!(*_v[3])->vg_p) \
nmg_vertex_gv(*_v[3], _ep3->pt); \
- if (nmg_calc_face_g(_fu)) { \
+ if (nmg_calc_face_g(_fu,&RTG.rtg_vlfree)) { \
if (debug > 3) \
bu_log("Killing degenerate face\n"); \
(void)nmg_kfu(_fu); \
@@ -447,7 +447,7 @@
}
rd.magic = NMG_RAY_DATA_MAGIC;
- nmg_isect_ray_model(&rd);
+ nmg_isect_ray_model(&rd,&RTG.rtg_vlfree);
if (BU_LIST_IS_EMPTY(&rd.rd_hit))
ret = 0;
@@ -690,7 +690,7 @@
if (fu->orientation != OT_SAME)
continue;
- nmg_calc_face_g(fu);
+ nmg_calc_face_g(fu,&RTG.rtg_vlfree);
f = fu->f_p;
nmg_face_bb(f, &tol);
@@ -735,7 +735,7 @@
if (fu->orientation != OT_SAME)
continue;
- nmg_calc_face_g(fu);
+ nmg_calc_face_g(fu,&RTG.rtg_vlfree);
f = fu->f_p;
nmg_face_bb(f, &tol);
@@ -954,7 +954,7 @@
if (vu1_cut->v_p == eu1->eumate_p->vu_p->v_p)
eu1 = BU_LIST_PNEXT_CIRC(edgeuse, &eu1->l);
/* cut loop */
- new_lu = nmg_cut_loop(vu1_cut, vu2_cut);
+ new_lu = nmg_cut_loop(vu1_cut, vu2_cut, &RTG.rtg_vlfree);
lu->orientation = OT_SAME;
lu->lumate_p->orientation = OT_SAME;
new_lu->orientation = OT_SAME;
@@ -988,9 +988,9 @@
bu_ptbl_init(&verts, 128, "verts");
Split_side_faces(s, &verts);
- nmg_triangulate_shell(s, &tol);
+ nmg_triangulate_shell(s, &RTG.rtg_vlfree, &tol);
- nmg_split_loops_into_faces(&s->l.magic, &tol);
+ nmg_split_loops_into_faces(&s->l.magic, &RTG.rtg_vlfree, &tol);
sd.s = s;
sd.manifolds = nmg_manifolds(m);
@@ -1182,8 +1182,8 @@
}
if (!new_vu2)
bu_exit(1, "ERROR: Cannot find VU in lu2\n");
- new_lu1 = nmg_cut_loop(new_vu1, vu1);
- new_lu2 = nmg_cut_loop(new_vu2, vu2);
+ new_lu1 = nmg_cut_loop(new_vu1, vu1, &RTG.rtg_vlfree);
+ new_lu2 = nmg_cut_loop(new_vu2, vu2, &RTG.rtg_vlfree);
ref_data->lu1->orientation = OT_SAME;
ref_data->lu2->orientation = OT_SAME;
new_lu1->orientation = OT_SAME;
@@ -1226,8 +1226,8 @@
}
}
- (void)nmg_split_loops_into_faces(&ref_data->fu1->l.magic, &tol);
- (void)nmg_split_loops_into_faces(&ref_data->fu2->l.magic, &tol);
+ (void)nmg_split_loops_into_faces(&ref_data->fu1->l.magic, &RTG.rtg_vlfree,
&tol);
+ (void)nmg_split_loops_into_faces(&ref_data->fu2->l.magic, &RTG.rtg_vlfree,
&tol);
for (BU_LIST_FOR(vu, vertexuse, &new_vu->v_p->vu_hd)) {
struct faceuse *fu;
@@ -1246,7 +1246,7 @@
bu_ptbl_ins(ref_data->new_edges, (long *)eu->e_p);
- nmg_calc_face_g(fu);
+ nmg_calc_face_g(fu,&RTG.rtg_vlfree);
}
return 1;
@@ -1269,7 +1269,7 @@
m = nmg_find_model(&s->l.magic);
- nmg_edge_tabulate(&edges_1, &s->l.magic);
+ nmg_edge_tabulate(&edges_1, &s->l.magic, &RTG.rtg_vlfree);
cur = &edges_1;
bu_ptbl_init(&edges_2, 64, "edges_2");
next = &edges_2;
@@ -1557,7 +1557,7 @@
if (decimation_tol > 0.0) {
bu_log("%d edges eliminated by decimation to tolerance of %gmm\n",
- nmg_edge_collapse(m, &tol, decimation_tol, min_angle),
decimation_tol);
+ nmg_edge_collapse(m, &tol, decimation_tol, min_angle,
&RTG.rtg_vlfree), decimation_tol);
}
if (do_extra_rays || edge_tol > 0.0 || decimation_tol > 0.0)
Modified: brlcad/trunk/src/conv/g-vrml.c
===================================================================
--- brlcad/trunk/src/conv/g-vrml.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/g-vrml.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -1024,14 +1024,14 @@
}
if (!is_light) {
- nmg_triangulate_model(m, tol2);
+ nmg_triangulate_model(m, &RTG.rtg_vlfree, tol2);
fprintf(fp_out, "\t\t\t}\n");
fprintf(fp_out, "\t\t\tgeometry IndexedFaceSet {\n");
fprintf(fp_out, "\t\t\t\tcoord Coordinate {\n");
}
/* get list of vertices */
- nmg_vertex_tabulate(&verts, &m->magic);
+ nmg_vertex_tabulate(&verts, &m->magic, &RTG.rtg_vlfree);
if (!is_light) {
fprintf(fp_out, "\t\t\t\t\tpoint [");
} else {
Modified: brlcad/trunk/src/conv/g-x3d.c
===================================================================
--- brlcad/trunk/src/conv/g-x3d.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/g-x3d.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -575,7 +575,7 @@
*/
if (!BU_SETJUMP) {
/* try */
- if (nmg_triangulate_fu(fu, &tol)) {
+ if (nmg_triangulate_fu(fu, &RTG.rtg_vlfree, &tol)) {
if (nmg_kfu(fu)) {
(void) nmg_ks(s);
shell_is_dead = 1;
@@ -740,7 +740,7 @@
/* FIXME: need code to handle light */
/* get list of vertices */
- nmg_vertex_tabulate(&verts, &m->magic);
+ nmg_vertex_tabulate(&verts, &m->magic, &RTG.rtg_vlfree);
fprintf(fp, "\t\t<IndexedFaceSet coordIndex=\"\n");
first = 1;
Modified: brlcad/trunk/src/conv/g-xxx_facets.c
===================================================================
--- brlcad/trunk/src/conv/g-xxx_facets.c 2016-10-03 15:05:00 UTC (rev
68973)
+++ brlcad/trunk/src/conv/g-xxx_facets.c 2016-10-03 21:39:41 UTC (rev
68974)
@@ -244,7 +244,7 @@
NMG_CK_MODEL(m);
/* triangulate model */
- nmg_triangulate_model(m, &tol);
+ nmg_triangulate_model(m, &RTG.rtg_vlfree, &tol);
/* Output triangles */
if (verbose) {
@@ -349,7 +349,7 @@
if (!BU_SETJUMP) {
/* try */
- (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
+ (void)nmg_model_fuse(*tsp->ts_m, &RTG.rtg_vlfree, tsp->ts_tol);
ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol,
&rt_uniresource);
} else {
Modified: brlcad/trunk/src/conv/iges/add_inner_shell.c
===================================================================
--- brlcad/trunk/src/conv/iges/add_inner_shell.c 2016-10-03 15:05:00 UTC
(rev 68973)
+++ brlcad/trunk/src/conv/iges/add_inner_shell.c 2016-10-03 21:39:41 UTC
(rev 68974)
@@ -62,7 +62,7 @@
face_count++;
}
- nmg_gluefaces(fu, face_count, &tol);
+ nmg_gluefaces(fu, face_count, &RTG.rtg_vlfree, &tol);
bu_free((char *)fu, "Add_inner_shell: faceuse list");
bu_free((char *)face_de, "Add_inner_shell: face DE's");
Modified: brlcad/trunk/src/conv/iges/brep.c
===================================================================
--- brlcad/trunk/src/conv/iges/brep.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/iges/brep.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -89,16 +89,16 @@
Orient_loops(r);
/* orient shells */
- nmg_fix_normals(s_outer, &tol);
+ nmg_fix_normals(s_outer, &RTG.rtg_vlfree, &tol);
for (i = 0; i < num_of_voids; i++) {
- nmg_fix_normals(void_shells[i], &tol);
+ nmg_fix_normals(void_shells[i], &RTG.rtg_vlfree, &tol);
nmg_invert_shell(void_shells[i]);
}
if (do_bots) {
/* Merge all shells into one */
for (i = 0; i < num_of_voids; i++)
- nmg_js(s_outer, void_shells[i], &tol);
+ nmg_js(s_outer, void_shells[i], &RTG.rtg_vlfree, &tol);
/* write out BOT */
if (mk_bot_from_nmg(fdout, dir[entityno]->name, s_outer))
Modified: brlcad/trunk/src/conv/iges/extrude.c
===================================================================
--- brlcad/trunk/src/conv/iges/extrude.c 2016-10-03 15:05:00 UTC (rev
68973)
+++ brlcad/trunk/src/conv/iges/extrude.c 2016-10-03 21:39:41 UTC (rev
68974)
@@ -118,14 +118,14 @@
pt_ptr = pt_ptr->next;
}
- if (nmg_calc_face_g(fu)) {
+ if (nmg_calc_face_g(fu, &RTG.rtg_vlfree)) {
bu_log("Extrude: Failed to calculate face geometry\n");
nmg_km(m);
bu_free((char *)curv_pts, "curve_pts");
return 0;
}
- if (nmg_extrude_face(fu, evect, &tol)) {
+ if (nmg_extrude_face(fu, evect, &RTG.rtg_vlfree, &tol)) {
bu_log("Extrude: extrusion failed\n");
nmg_km(m);
bu_free((char *)curv_pts, "curve_pts");
Modified: brlcad/trunk/src/conv/iges/g-iges.c
===================================================================
--- brlcad/trunk/src/conv/iges/g-iges.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/iges/g-iges.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -450,7 +450,7 @@
if (!BU_SETJUMP) {
/* try */
- (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
+ (void)nmg_model_fuse(*tsp->ts_m, &RTG.rtg_vlfree, tsp->ts_tol);
result = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol,
&rt_uniresource);
} else {
Modified: brlcad/trunk/src/conv/iges/get_outer_shell.c
===================================================================
--- brlcad/trunk/src/conv/iges/get_outer_shell.c 2016-10-03 15:05:00 UTC
(rev 68973)
+++ brlcad/trunk/src/conv/iges/get_outer_shell.c 2016-10-03 21:39:41 UTC
(rev 68974)
@@ -63,7 +63,7 @@
face_count++;
}
- nmg_gluefaces(fu, face_count, &tol);
+ nmg_gluefaces(fu, face_count, &RTG.rtg_vlfree, &tol);
bu_free((char *)fu, "Get_outer_shell: faceuse list");
bu_free((char *)face_de, "Get_outer_shell: face DE's");
Modified: brlcad/trunk/src/conv/iges/iges.c
===================================================================
--- brlcad/trunk/src/conv/iges/iges.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/iges/iges.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -774,7 +774,7 @@
return 0;
/* Find outer shells and void shells and their associations */
- outer_shell_count = nmg_find_outer_and_void_shells(r, &shells, &tol);
+ outer_shell_count = nmg_find_outer_and_void_shells(r, &shells,
&RTG.rtg_vlfree, &tol);
brep_de = (int *)bu_calloc(outer_shell_count, sizeof(int),
"nmgregion_to_iges: brep_de");
@@ -1094,7 +1094,7 @@
dir_entry[i] = DEFAULT;
/* Built list of vertex structs */
- nmg_vertex_tabulate(vtab, &r->l.magic);
+ nmg_vertex_tabulate(vtab, &r->l.magic, &RTG.rtg_vlfree);
/* write parameter data for vertex list entity */
bu_vls_printf(&str, "502,%ld", (long int)BU_PTBL_LEN(vtab));
@@ -1244,7 +1244,7 @@
dir_entry[i] = DEFAULT;
/* Build list of edge structures */
- nmg_edge_tabulate(etab, &r->l.magic);
+ nmg_edge_tabulate(etab, &r->l.magic, &RTG.rtg_vlfree);
bu_vls_printf(&str, "504,%ld", (long int)BU_PTBL_LEN(etab));
Modified: brlcad/trunk/src/conv/iges/make_face.c
===================================================================
--- brlcad/trunk/src/conv/iges/make_face.c 2016-10-03 15:05:00 UTC (rev
68973)
+++ brlcad/trunk/src/conv/iges/make_face.c 2016-10-03 21:39:41 UTC (rev
68974)
@@ -166,7 +166,7 @@
dist = DIST_PT_PLANE(outside_pt, pl);
VJOIN1(outside_pt, outside_pt, -dist, pl);
- if (nmg_class_pt_lu_except(outside_pt, lu, (struct edge *)NULL, &tol)
!= NMG_CLASS_AoutB) {
+ if (nmg_class_pt_lu_except(outside_pt, lu, (struct edge *)NULL,
&RTG.rtg_vlfree, &tol) != NMG_CLASS_AoutB) {
nmg_reverse_face(fu);
if (fu->orientation != OT_SAME) {
fu = fu->fumate_p;
Modified: brlcad/trunk/src/conv/iges/orient_loops.c
===================================================================
--- brlcad/trunk/src/conv/iges/orient_loops.c 2016-10-03 15:05:00 UTC (rev
68973)
+++ brlcad/trunk/src/conv/iges/orient_loops.c 2016-10-03 21:39:41 UTC (rev
68974)
@@ -45,7 +45,7 @@
if (lu == lptr->lu)
continue;
- if (nmg_classify_lu_lu(lu, lptr->lu, &tol) == NMG_CLASS_AinB) {
+ if (nmg_classify_lu_lu(lu, lptr->lu, &RTG.rtg_vlfree, &tol) ==
NMG_CLASS_AinB) {
if (lptr->inner_loops == (struct loop_list *)NULL) {
BU_ALLOC(lptr->inner_loops, struct loop_list);
@@ -74,7 +74,7 @@
prev = (struct loop_list *)NULL;
while (inner1) {
if (inner->lu != inner1->lu) {
- if (nmg_classify_lu_lu(inner1->lu, inner->lu, &tol) ==
NMG_CLASS_AinB) {
+ if (nmg_classify_lu_lu(inner1->lu, inner->lu, &RTG.rtg_vlfree,
&tol) == NMG_CLASS_AinB) {
struct loop_list *tmp;
/* inner1->lu is inside inner->lu,
@@ -138,7 +138,7 @@
for (BU_LIST_FOR(lu1, loopuse, &fu->lu_hd)) {
if (lu1 == lu)
continue;
- if (nmg_classify_lu_lu(lu, lu1, &tol) == NMG_CLASS_AinB) {
+ if (nmg_classify_lu_lu(lu, lu1, &RTG.rtg_vlfree, &tol) ==
NMG_CLASS_AinB) {
outer = 0;
break;
}
Modified: brlcad/trunk/src/conv/iges/trimsurf.c
===================================================================
--- brlcad/trunk/src/conv/iges/trimsurf.c 2016-10-03 15:05:00 UTC (rev
68973)
+++ brlcad/trunk/src/conv/iges/trimsurf.c 2016-10-03 21:39:41 UTC (rev
68974)
@@ -1441,7 +1441,7 @@
bu_mem_barriercheck();
if (convsurf) {
- (void)nmg_vertex_fuse(&m->magic, &tol);
+ (void)nmg_vertex_fuse(&m->magic, &RTG.rtg_vlfree, &tol);
if (!BU_STR_EMPTY(curr_file->obj_name))
mk_nmg(fdout, curr_file->obj_name, m);
Modified: brlcad/trunk/src/conv/jack/g-jack.c
===================================================================
--- brlcad/trunk/src/conv/jack/g-jack.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/jack/g-jack.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -201,7 +201,7 @@
map = (int *)bu_calloc(r->m_p->maxindex, sizeof(int), "Jack vert map");
/* Built list of vertex structs */
- nmg_vertex_tabulate(&vtab, &r->l.magic);
+ nmg_vertex_tabulate(&vtab, &r->l.magic, &RTG.rtg_vlfree);
/* FIXME: What to do if 0 vertices? */
@@ -237,7 +237,7 @@
if (!BU_SETJUMP) {
/* try */
- (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
+ (void)nmg_model_fuse(*tsp->ts_m, &RTG.rtg_vlfree, tsp->ts_tol);
ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol,
&rt_uniresource);
} else {
Modified: brlcad/trunk/src/conv/jack/jack-g.c
===================================================================
--- brlcad/trunk/src/conv/jack/jack-g.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/jack/jack-g.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -277,7 +277,7 @@
jfile, i+1);
}
- nmg_vertex_fuse(&m->magic, &tol);
+ nmg_vertex_fuse(&m->magic, &RTG.rtg_vlfree, &tol);
/* Associate the face geometry. */
for (i = 0, fail = 0; i < face; i++)
@@ -306,11 +306,11 @@
/* Compute "geometry" for region and shell */
nmg_region_a(r, &tol);
- nmg_break_e_on_v(&m->magic, &tol);
+ nmg_break_e_on_v(&m->magic, &RTG.rtg_vlfree, &tol);
empty_model = nmg_kill_zero_length_edgeuses(m);
/* Glue edges of outward pointing face uses together. */
- if (!empty_model) nmg_edge_fuse(&m->magic, &tol);
+ if (!empty_model) nmg_edge_fuse(&m->magic, &RTG.rtg_vlfree, &tol);
}
}
Modified: brlcad/trunk/src/conv/nastran-g.c
===================================================================
--- brlcad/trunk/src/conv/nastran-g.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/nastran-g.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -951,7 +951,7 @@
nmg_vertex_gv(g_pts[gin2].v[pid_index], pt2);
if (!g_pts[gin3].v[pid_index]->vg_p)
nmg_vertex_gv(g_pts[gin3].v[pid_index], pt3);
- nmg_calc_face_g(fu);
+ nmg_calc_face_g(fu, &RTG.rtg_vlfree);
v[0] = &g_pts[gin1].v[pid_index];
v[1] = &g_pts[gin3].v[pid_index];
@@ -961,7 +961,7 @@
if (!g_pts[gin4].v[pid_index]->vg_p)
nmg_vertex_gv(g_pts[gin4].v[pid_index], pt4);
- nmg_calc_face_g(fu);
+ nmg_calc_face_g(fu, &RTG.rtg_vlfree);
}
@@ -1049,7 +1049,7 @@
if (!g_pts[gin3].v[pid_index]->vg_p)
nmg_vertex_gv(g_pts[gin3].v[pid_index], pt3);
- nmg_calc_face_g(fu);
+ nmg_calc_face_g(fu, &RTG.rtg_vlfree);
}
@@ -1338,10 +1338,10 @@
m = nmg_find_model(&psh->s->l.magic);
nmg_rebound(m, &tol);
- nmg_fix_normals(psh->s, &tol);
+ nmg_fix_normals(psh->s, &RTG.rtg_vlfree, &tol);
if (psh->thick > tol.dist) {
- nmg_model_face_fuse(m, &tol);
- nmg_hollow_shell(psh->s, psh->thick*conv[units], 1, &tol);
+ nmg_model_face_fuse(m, &RTG.rtg_vlfree, &tol);
+ nmg_hollow_shell(psh->s, psh->thick*conv[units], 1,
&RTG.rtg_vlfree, &tol);
}
sprintf(name, "pshell.%d", psh->pid);
if (polysolids)
Modified: brlcad/trunk/src/conv/nmg/asc-nmg.c
===================================================================
--- brlcad/trunk/src/conv/nmg/asc-nmg.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/nmg/asc-nmg.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -161,11 +161,11 @@
nmg_face_g( fu, pl );
if (!NEAR_ZERO(MAGNITUDE(Ext), 0.001))
- nmg_extrude_face(BU_LIST_FIRST(faceuse, &s->fu_hd), Ext, &tol);
+ nmg_extrude_face(BU_LIST_FIRST(faceuse, &s->fu_hd), Ext,
&RTG.rtg_vlfree, &tol);
nmg_region_a(r, &tol); /* Calculate geometry for region and shell. */
- nmg_fix_normals( s, &tol ); /* insure that faces have outward pointing
normals */
+ nmg_fix_normals( s, &RTG.rtg_vlfree, &tol ); /* insure that faces have
outward pointing normals */
create_brlcad_db(fpout, m, reg_name, grp_name);
Modified: brlcad/trunk/src/conv/nmg/g-nmg.c
===================================================================
--- brlcad/trunk/src/conv/nmg/g-nmg.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/nmg/g-nmg.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -165,7 +165,7 @@
if (ret_tree) {
r = ret_tree->tr_d.td_r;
if (do_bots && r) {
- bot = nmg_bot(BU_LIST_FIRST(shell, &r->s_hd), tsp->ts_tol);
+ bot = nmg_bot(BU_LIST_FIRST(shell, &r->s_hd), &RTG.rtg_vlfree,
tsp->ts_tol);
}
} else {
if (verbose) {
Modified: brlcad/trunk/src/conv/nmg/nmg-rib.c
===================================================================
--- brlcad/trunk/src/conv/nmg/nmg-rib.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/nmg/nmg-rib.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -143,7 +143,7 @@
if (triangulate)
- nmg_triangulate_model(m, &tol);
+ nmg_triangulate_model(m, &RTG.rtg_vlfree, &tol);
for (BU_LIST_FOR(r, nmgregion, &m->r_hd))
for (BU_LIST_FOR(s, shell, &r->s_hd))
Modified: brlcad/trunk/src/conv/nmg/nmg-sgp.c
===================================================================
--- brlcad/trunk/src/conv/nmg/nmg-sgp.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/nmg/nmg-sgp.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -64,7 +64,7 @@
NMG_CK_FACEUSE( fu );
- if (nmg_triangulate_fu( fu, &tol )) {
+ if (nmg_triangulate_fu( fu, &RTG.rtg_vlfree, &tol )) {
return 1;
}
Modified: brlcad/trunk/src/conv/obj-g.c
===================================================================
--- brlcad/trunk/src/conv/obj-g.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/obj-g.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -1354,7 +1354,7 @@
if (fu != NULL) {
/* do simple or robust triangulation based on whether face is concave
or convex */
- if (nmg_lu_is_convex(BU_LIST_FIRST(loopuse, &fu->lu_hd), tol)) {
+ if (nmg_lu_is_convex(BU_LIST_FIRST(loopuse, &fu->lu_hd),
&RTG.rtg_vlfree, tol)) {
/* compute number of new triangles to create */
if (gfi->num_vertices_arr[face_idx] > 3) {
@@ -2877,7 +2877,7 @@
if ((verbose > 1) || debug) {
bu_log("Running nmg_model_fuse on (%ld) faces from obj file face
grouping name (%s), obj file face grouping index (%zu)\n", BU_PTBL_LEN(&faces),
bu_vls_addr(gfi->raw_grouping_name), gfi->grouping_index + 1);
}
- num_entities_fused = nmg_model_fuse(m, tol);
+ num_entities_fused = nmg_model_fuse(m, &RTG.rtg_vlfree, tol);
if ((verbose > 1) || debug) {
bu_log("Completed nmg_model_fuse for obj file face grouping name
(%s), obj file face grouping index (%zu)\n",
bu_vls_addr(gfi->raw_grouping_name), gfi->grouping_index + 1);
bu_log("Fused (%d) entities in obj file face grouping name (%s),
obj file face grouping index (%zu)\n",
@@ -2888,7 +2888,7 @@
if ((verbose > 1) || debug) {
bu_log("Running nmg_gluefaces on (%ld) faces from obj file face
grouping name (%s), obj file face grouping index (%zu)\n", BU_PTBL_LEN(&faces),
bu_vls_addr(gfi->raw_grouping_name), gfi->grouping_index + 1);
}
- nmg_gluefaces((struct faceuse **)BU_PTBL_BASEADDR(&faces),
BU_PTBL_LEN(&faces), tol);
+ nmg_gluefaces((struct faceuse **)BU_PTBL_BASEADDR(&faces),
BU_PTBL_LEN(&faces), &RTG.rtg_vlfree, tol);
if ((verbose > 1) || debug) {
bu_log("Completed nmg_gluefaces for obj file face grouping name
(%s), obj file face grouping index (%zu)\n",
bu_vls_addr(gfi->raw_grouping_name), gfi->grouping_index + 1);
}
@@ -2897,7 +2897,7 @@
if ((verbose > 1) || debug) {
bu_log("Running nmg_mark_edges_real with approx (%ld) faces from
obj file face grouping name (%s), obj file face grouping index (%zu)\n",
BU_PTBL_LEN(&faces), bu_vls_addr(gfi->raw_grouping_name), gfi->grouping_index +
1);
}
- (void)nmg_mark_edges_real(&s->l.magic);
+ (void)nmg_mark_edges_real(&s->l.magic, &RTG.rtg_vlfree);
if ((verbose > 1) || debug) {
bu_log("Completed nmg_mark_edges_real for obj file face grouping
name (%s), obj file face grouping index (%zu)\n",
bu_vls_addr(gfi->raw_grouping_name), gfi->grouping_index + 1);
}
@@ -2940,7 +2940,7 @@
if ((verbose > 1) || debug) {
bu_log("Running nmg_fix_normals with approx (%ld) faces
from obj file face grouping name (%s), obj file face grouping index (%zu)\n",
BU_PTBL_LEN(&faces), bu_vls_addr(gfi->raw_grouping_name), gfi->grouping_index +
1);
}
- nmg_fix_normals(s, tol);
+ nmg_fix_normals(s, &RTG.rtg_vlfree, tol);
if ((verbose > 1) || debug) {
bu_log("Completed nmg_fix_normals for obj file face
grouping name (%s), obj file face grouping index (%zu)\n",
bu_vls_addr(gfi->raw_grouping_name), gfi->grouping_index + 1);
}
Modified: brlcad/trunk/src/conv/off/g-off.c
===================================================================
--- brlcad/trunk/src/conv/off/g-off.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/off/g-off.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -211,7 +211,7 @@
if ( !BU_SETJUMP ) {
/* try */
- (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
+ (void)nmg_model_fuse(*tsp->ts_m, &RTG.rtg_vlfree, tsp->ts_tol);
ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol,
&rt_uniresource);
} else {
@@ -404,7 +404,7 @@
map = (int *)bu_calloc(r->m_p->maxindex, sizeof(int), "Jack vert map");
/* Built list of vertex structs */
- nmg_vertex_tabulate( &vtab, &r->l.magic );
+ nmg_vertex_tabulate( &vtab, &r->l.magic, &RTG.rtg_vlfree );
/* FIXME: What to do if 0 vertices? */
Modified: brlcad/trunk/src/conv/off/off-g.c
===================================================================
--- brlcad/trunk/src/conv/off/off-g.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/off/off-g.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -140,7 +140,7 @@
if (fail) return -1;
- nmg_gluefaces(outfaceuses, nfaces, &tol);
+ nmg_gluefaces(outfaceuses, nfaces, &RTG.rtg_vlfree, &tol);
nmg_region_a(r, &tol);
bu_free((char *)pts, "points list");
Modified: brlcad/trunk/src/conv/patch/patch-g.c
===================================================================
--- brlcad/trunk/src/conv/patch/patch-g.c 2016-10-03 15:05:00 UTC (rev
68973)
+++ brlcad/trunk/src/conv/patch/patch-g.c 2016-10-03 21:39:41 UTC (rev
68974)
@@ -388,7 +388,7 @@
struct loopuse *lu;
for (BU_LIST_FOR (lu, loopuse, &fu1->lu_hd))
- nmg_simplify_loop(lu);
+ nmg_simplify_loop(lu, &RTG.rtg_vlfree);
}
}
}
@@ -636,29 +636,29 @@
bu_free((char *)verts, "build_solid: verts");
/* fuse vertices */
- (void)nmg_vertex_fuse(&m->magic, tol);
+ (void)nmg_vertex_fuse(&m->magic, &RTG.rtg_vlfree, tol);
/* FASTGEN targets may have vertices that should be part of an
* adjoining edge. Use nmg_break_long_edges to fix this
*/
- i = nmg_break_edges(&m->magic, tol);
+ i = nmg_break_edges(&m->magic, &RTG.rtg_vlfree, tol);
if (debug > 2)
bu_log("nmg_break_edges broke %d edges\n", i);
/* glue all the faces together */
- nmg_gluefaces((struct faceuse **)BU_PTBL_BASEADDR(&faces),
BU_PTBL_LEN(&faces), tol);
+ nmg_gluefaces((struct faceuse **)BU_PTBL_BASEADDR(&faces),
BU_PTBL_LEN(&faces), &RTG.rtg_vlfree, tol);
for (BU_LIST_FOR (s, shell, &r->s_hd))
- nmg_make_faces_within_tol(s, tol);
+ nmg_make_faces_within_tol(s, &RTG.rtg_vlfree, tol);
if (!plate_mode) {
/* make sure the normals are correct */
for (BU_LIST_FOR (s, shell, &r->s_hd))
- nmg_fix_normals(s, tol);
+ nmg_fix_normals(s, &RTG.rtg_vlfree, tol);
/* make sure we are dealing with closed shells */
for (BU_LIST_FOR (s, shell, &r->s_hd))
- nmg_close_shell(s, tol);
+ nmg_close_shell(s, &RTG.rtg_vlfree, tol);
/* free the memory for the face list */
bu_ptbl_free(&faces);
@@ -675,8 +675,8 @@
if (polysolid) {
mk_bot_from_nmg(outfp, name, s);
} else {
- nmg_shell_coplanar_face_merge(s, tol, 0);
- if (!nmg_simplify_shell(s)) {
+ nmg_shell_coplanar_face_merge(s, tol, 0, &RTG.rtg_vlfree);
+ if (!nmg_simplify_shell(s, &RTG.rtg_vlfree)) {
struct model *m_copy = nmg_clone_model(m);
mk_nmg(outfp, name, m_copy); /* frees m_copy */
}
@@ -684,7 +684,7 @@
/* if this solid is mirrored, don't go through the entire process again
*/
if (mirror_name[0]) {
- nmg_mirror_model(m);
+ nmg_mirror_model(m, &RTG.rtg_vlfree);
if (polysolid) {
mk_bot_from_nmg(outfp, mirror_name, s);
@@ -802,7 +802,7 @@
nmg_patch_coplanar_face_merge(s, &face_count, p_faces, tol, 0);
- if (nmg_simplify_shell(s))
+ if (nmg_simplify_shell(s, &RTG.rtg_vlfree))
return 1;
/* Calculate bounding boxes */
@@ -817,7 +817,7 @@
}
/* Duplicate shell */
- is = nmg_dup_shell(s, ©_tbl, tol);
+ is = nmg_dup_shell(s, ©_tbl, &RTG.rtg_vlfree, tol);
/* make a new flags array */
bu_free((char *)flags, "build_solid: flags");
@@ -866,10 +866,10 @@
if (fu->orientation == OT_SAME)
bu_ptbl_ins(&faces, (long *)fu);
}
- nmg_gluefaces((struct faceuse **)BU_PTBL_BASEADDR(&faces),
BU_PTBL_LEN(&faces), tol);
+ nmg_gluefaces((struct faceuse **)BU_PTBL_BASEADDR(&faces),
BU_PTBL_LEN(&faces), &RTG.rtg_vlfree, tol);
bu_ptbl_reset(&faces);
- nmg_shell_coplanar_face_merge(is, tol, 0);
+ nmg_shell_coplanar_face_merge(is, tol, 0, &RTG.rtg_vlfree);
nmg_shell_a(is, tol);
/* make yet another version of the flags array */
@@ -917,7 +917,7 @@
/* Adjust the vertices of new_v */
if (debug > 2)
bu_log("Moving (%f %f %f)", V3ARGS(new_v->vg_p->coord));
- if (nmg_in_vert(new_v, 1, tol)) {
+ if (nmg_in_vert(new_v, 1, &RTG.rtg_vlfree, tol)) {
/* FAILURE, kill the model and shell and return a failure
notification */
bu_log("nmg_in_vert failed on %s!\n", name);
if (!nmg_ks(is)) {
@@ -951,12 +951,12 @@
mk_nmg(outfp, tmp_name, m_copy); /* frees m_copy */
}
- nmg_make_faces_within_tol(is, tol);
+ nmg_make_faces_within_tol(is, &RTG.rtg_vlfree, tol);
/* Close shell */
if (debug)
bu_log("Close shell\n");
- if (nmg_open_shells_connect(s, is, (const long **)copy_tbl, tol)) {
+ if (nmg_open_shells_connect(s, is, (const long **)copy_tbl,
&RTG.rtg_vlfree, tol)) {
/* debugging: write an NMG of the outer shell named "name.BAD" */
char bad[NAMESIZE+5];
@@ -982,7 +982,7 @@
}
if (debug)
bu_log("Re-glue faces\n");
- nmg_gluefaces((struct faceuse **)BU_PTBL_BASEADDR(&faces),
BU_PTBL_LEN(&faces), tol);
+ nmg_gluefaces((struct faceuse **)BU_PTBL_BASEADDR(&faces),
BU_PTBL_LEN(&faces), &RTG.rtg_vlfree, tol);
bu_ptbl_free(&faces);
/* Calculate bounding boxes */
@@ -999,8 +999,8 @@
if (polysolid) {
mk_bot_from_nmg(outfp, name, s);
} else {
- nmg_shell_coplanar_face_merge(s, tol, 0);
- if (!nmg_simplify_shell(s)) {
+ nmg_shell_coplanar_face_merge(s, tol, 0, &RTG.rtg_vlfree);
+ if (!nmg_simplify_shell(s, &RTG.rtg_vlfree)) {
struct model *m_copy = nmg_clone_model(m);
mk_nmg(outfp, name, m_copy); /* frees m_copy */
}
@@ -1010,7 +1010,7 @@
if (mirror_name[0]) {
if (debug)
bu_log("Mirror model\n");
- nmg_mirror_model(m);
+ nmg_mirror_model(m, &RTG.rtg_vlfree);
if (debug)
bu_log("writing %s (mirrored) to BRL-CAD DB\n", mirror_name);
Modified: brlcad/trunk/src/conv/ply/g-ply.c
===================================================================
--- brlcad/trunk/src/conv/ply/g-ply.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/ply/g-ply.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -190,7 +190,7 @@
NMG_CK_MODEL(m);
/* triangulate model */
- nmg_triangulate_model(m, &tol);
+ nmg_triangulate_model(m, &RTG.rtg_vlfree, &tol);
/* Output triangles */
if (verbose)
@@ -414,7 +414,7 @@
if (!BU_SETJUMP) {
/* try */
- (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
+ (void)nmg_model_fuse(*tsp->ts_m, &RTG.rtg_vlfree, tsp->ts_tol);
ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol,
&rt_uniresource);
} else {
Modified: brlcad/trunk/src/conv/raw/g-raw.c
===================================================================
--- brlcad/trunk/src/conv/raw/g-raw.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/raw/g-raw.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -141,7 +141,7 @@
fprintf(fp, "%s\n", (region_name+1));
/* triangulate model */
- nmg_triangulate_model(m, &tol);
+ nmg_triangulate_model(m, &RTG.rtg_vlfree, &tol);
/* Check triangles */
for (BU_LIST_FOR (s, shell, &r->s_hd))
Modified: brlcad/trunk/src/conv/stl/g-stl.c
===================================================================
--- brlcad/trunk/src/conv/stl/g-stl.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/stl/g-stl.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -176,7 +176,7 @@
fprintf(fp, "solid %s\n", (region_name+1));
/* triangulate model */
- nmg_triangulate_model(m, &tol);
+ nmg_triangulate_model(m, &RTG.rtg_vlfree, &tol);
/* Check triangles */
for (BU_LIST_FOR (s, shell, &r->s_hd))
Modified: brlcad/trunk/src/conv/tankill/g-tankill.c
===================================================================
--- brlcad/trunk/src/conv/tankill/g-tankill.c 2016-10-03 15:05:00 UTC (rev
68973)
+++ brlcad/trunk/src/conv/tankill/g-tankill.c 2016-10-03 21:39:41 UTC (rev
68974)
@@ -183,7 +183,7 @@
}
}
/* Now triangulate the entire model */
- nmg_triangulate_model( m, &tol );
+ nmg_triangulate_model( m, &RTG.rtg_vlfree, &tol );
/* Need a flag array to insure that no loops are missed */
flags = (long *)bu_calloc( m->maxindex, sizeof( long ), "g-tankill: flags"
);
@@ -622,7 +622,7 @@
if ( !BU_SETJUMP ) {
/* try */
- (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
+ (void)nmg_model_fuse(*tsp->ts_m, &RTG.rtg_vlfree, tsp->ts_tol);
ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol,
&rt_uniresource);
} else {
Modified: brlcad/trunk/src/conv/tankill/tankill-g.c
===================================================================
--- brlcad/trunk/src/conv/tankill/tankill-g.c 2016-10-03 15:05:00 UTC (rev
68973)
+++ brlcad/trunk/src/conv/tankill/tankill-g.c 2016-10-03 21:39:41 UTC (rev
68974)
@@ -341,7 +341,7 @@
NMG_CK_FACEUSE( fu );
if ( fu->orientation == OT_SAME )
{
- if ( nmg_calc_face_g( fu ) )
+ if ( nmg_calc_face_g( fu, &RTG.rtg_vlfree ) )
bu_log( "Failed to calculate plane eqn\n" );
/* save the face in a table */
@@ -364,7 +364,7 @@
nmg_break_long_edges( s, &tol );
/* glue all the faces together */
- nmg_gluefaces( (struct faceuse **)BU_PTBL_BASEADDR( &faces),
BU_PTBL_LEN( &faces ), &tol );
+ nmg_gluefaces( (struct faceuse **)BU_PTBL_BASEADDR( &faces),
BU_PTBL_LEN( &faces ), &RTG.rtg_vlfree, &tol );
/* re-initialize the face list */
bu_ptbl_reset( &faces );
@@ -375,7 +375,7 @@
/* fix the normals */
s = BU_LIST_FIRST( shell, &r->s_hd );
- nmg_fix_normals( s, &tol );
+ nmg_fix_normals( s, &RTG.rtg_vlfree, &tol );
/* make a name for this solid */
sprintf( name, "s.%d.%d", comp_code, Add_solid( comp_code ) );
Modified: brlcad/trunk/src/conv/viewpoint-g.c
===================================================================
--- brlcad/trunk/src/conv/viewpoint-g.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/conv/viewpoint-g.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -329,7 +329,7 @@
}
}
- (void)nmg_vertex_fuse(&m->magic, &tol);
+ (void)nmg_vertex_fuse(&m->magic, &RTG.rtg_vlfree, &tol);
/* calculate plane equations for faces */
NMG_CK_SHELL(s);
@@ -376,12 +376,12 @@
if (BU_PTBL_LEN(&faces)) {
/* glue faces together */
- nmg_gluefaces((struct faceuse **)BU_PTBL_BASEADDR(&faces),
BU_PTBL_LEN(&faces), &tol);
+ nmg_gluefaces((struct faceuse **)BU_PTBL_BASEADDR(&faces),
BU_PTBL_LEN(&faces), &RTG.rtg_vlfree, &tol);
nmg_rebound(m, &tol);
- nmg_fix_normals(s, &tol);
+ nmg_fix_normals(s, &RTG.rtg_vlfree, &tol);
- nmg_shell_coplanar_face_merge(s, &tol, 1);
+ nmg_shell_coplanar_face_merge(s, &tol, 1, &RTG.rtg_vlfree);
nmg_rebound(m, &tol);
Modified: brlcad/trunk/src/libgcv/bottess.c
===================================================================
--- brlcad/trunk/src/libgcv/bottess.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/libgcv/bottess.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -422,7 +422,7 @@
struct nmgregion *nmgr = BU_LIST_FIRST(nmgregion,
&tr->tr_d.td_r->m_p->r_hd);
/* the bot temporary format may be unnecessary if we can walk
* the nmg shells and generate soup from them directly. */
- struct rt_bot_internal *bot = nmg_bot(BU_LIST_FIRST(shell,
&nmgr->s_hd), tol);
+ struct rt_bot_internal *bot = nmg_bot(BU_LIST_FIRST(shell,
&nmgr->s_hd), &RTG.rtg_vlfree, tol);
/* causes a crash.
nmg_kr(nmgr);
Modified: brlcad/trunk/src/libgcv/facetize.c
===================================================================
--- brlcad/trunk/src/libgcv/facetize.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/libgcv/facetize.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -201,11 +201,11 @@
if (!BU_SETJUMP) {
/* try */
if (!result)
- result = nmg_bot(current_shell, tol);
+ result = nmg_bot(current_shell, &RTG.rtg_vlfree, tol);
else {
struct rt_bot_internal *bots[2];
bots[0] = result;
- bots[1] = nmg_bot(current_shell, tol);
+ bots[1] = nmg_bot(current_shell, &RTG.rtg_vlfree, tol);
result = rt_bot_merge(sizeof(bots) / sizeof(bots[0]),
(const struct rt_bot_internal * const
*)bots);
_gcv_facetize_free_bot(bots[0]);
Modified: brlcad/trunk/src/libgcv/plugins/fastgen4/fastgen4_write.cpp
===================================================================
--- brlcad/trunk/src/libgcv/plugins/fastgen4/fastgen4_write.cpp 2016-10-03
15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/libgcv/plugins/fastgen4/fastgen4_write.cpp 2016-10-03
21:39:41 UTC (rev 68974)
@@ -2406,7 +2406,7 @@
for (BU_LIST_FOR(current_shell, shell, &nmg_region->s_hd)) {
NMG_CK_SHELL(current_shell);
- rt_bot_internal * const bot = nmg_bot(current_shell, &data.m_tol);
+ rt_bot_internal * const bot = nmg_bot(current_shell, &RTG.rtg_vlfree,
&data.m_tol);
// fill in an rt_db_internal with our new bot so we can free it
rt_db_internal internal;
Modified: brlcad/trunk/src/libgcv/plugins/obj/obj_read.c
===================================================================
--- brlcad/trunk/src/libgcv/plugins/obj/obj_read.c 2016-10-03 15:05:00 UTC
(rev 68973)
+++ brlcad/trunk/src/libgcv/plugins/obj/obj_read.c 2016-10-03 21:39:41 UTC
(rev 68974)
@@ -1275,7 +1275,7 @@
if (fu != NULL) {
/* do simple or robust triangulation based on whether face is concave
or convex */
- if (nmg_lu_is_convex(BU_LIST_FIRST(loopuse, &fu->lu_hd), tol)) {
+ if (nmg_lu_is_convex(BU_LIST_FIRST(loopuse, &fu->lu_hd),
&RTG.rtg_vlfree, tol)) {
/* compute number of new triangles to create */
if (gfi->num_vertices_arr[face_idx] > 3) {
@@ -2798,7 +2798,7 @@
if ((ga->gcv_options->verbosity_level > 1) ||
ga->gcv_options->debug_mode) {
bu_log("Running nmg_model_fuse on (%ld) faces from obj file face
grouping name (%s), obj file face grouping index (%zu)\n", BU_PTBL_LEN(&faces),
bu_vls_addr(gfi->raw_grouping_name), gfi->grouping_index + 1);
}
- num_entities_fused = nmg_model_fuse(m, tol);
+ num_entities_fused = nmg_model_fuse(m, &RTG.rtg_vlfree, tol);
if ((ga->gcv_options->verbosity_level > 1) ||
ga->gcv_options->debug_mode) {
bu_log("Completed nmg_model_fuse for obj file face grouping name
(%s), obj file face grouping index (%zu)\n",
bu_vls_addr(gfi->raw_grouping_name), gfi->grouping_index + 1);
bu_log("Fused (%d) entities in obj file face grouping name (%s),
obj file face grouping index (%zu)\n",
@@ -2809,7 +2809,7 @@
if ((ga->gcv_options->verbosity_level > 1) ||
ga->gcv_options->debug_mode) {
bu_log("Running nmg_gluefaces on (%ld) faces from obj file face
grouping name (%s), obj file face grouping index (%zu)\n", BU_PTBL_LEN(&faces),
bu_vls_addr(gfi->raw_grouping_name), gfi->grouping_index + 1);
}
- nmg_gluefaces((struct faceuse **)BU_PTBL_BASEADDR(&faces),
BU_PTBL_LEN(&faces), tol);
+ nmg_gluefaces((struct faceuse **)BU_PTBL_BASEADDR(&faces),
BU_PTBL_LEN(&faces), &RTG.rtg_vlfree, tol);
if ((ga->gcv_options->verbosity_level > 1) ||
ga->gcv_options->debug_mode) {
bu_log("Completed nmg_gluefaces for obj file face grouping name
(%s), obj file face grouping index (%zu)\n",
bu_vls_addr(gfi->raw_grouping_name), gfi->grouping_index + 1);
}
@@ -2818,7 +2818,7 @@
if ((ga->gcv_options->verbosity_level > 1) ||
ga->gcv_options->debug_mode) {
bu_log("Running nmg_mark_edges_real with approx (%ld) faces from
obj file face grouping name (%s), obj file face grouping index (%zu)\n",
BU_PTBL_LEN(&faces), bu_vls_addr(gfi->raw_grouping_name), gfi->grouping_index +
1);
}
- (void)nmg_mark_edges_real(&s->l.magic);
+ (void)nmg_mark_edges_real(&s->l.magic,&RTG.rtg_vlfree);
if ((ga->gcv_options->verbosity_level > 1) ||
ga->gcv_options->debug_mode) {
bu_log("Completed nmg_mark_edges_real for obj file face grouping
name (%s), obj file face grouping index (%zu)\n",
bu_vls_addr(gfi->raw_grouping_name), gfi->grouping_index + 1);
}
@@ -2861,7 +2861,7 @@
if ((ga->gcv_options->verbosity_level > 1) ||
ga->gcv_options->debug_mode) {
bu_log("Running nmg_fix_normals with approx (%ld) faces
from obj file face grouping name (%s), obj file face grouping index (%zu)\n",
BU_PTBL_LEN(&faces), bu_vls_addr(gfi->raw_grouping_name), gfi->grouping_index +
1);
}
- nmg_fix_normals(s, tol);
+ nmg_fix_normals(s, &RTG.rtg_vlfree, tol);
if ((ga->gcv_options->verbosity_level > 1) ||
ga->gcv_options->debug_mode) {
bu_log("Completed nmg_fix_normals for obj file face
grouping name (%s), obj file face grouping index (%zu)\n",
bu_vls_addr(gfi->raw_grouping_name), gfi->grouping_index + 1);
}
Modified: brlcad/trunk/src/libgcv/plugins/obj/obj_write.c
===================================================================
--- brlcad/trunk/src/libgcv/plugins/obj/obj_write.c 2016-10-03 15:05:00 UTC
(rev 68973)
+++ brlcad/trunk/src/libgcv/plugins/obj/obj_write.c 2016-10-03 21:39:41 UTC
(rev 68974)
@@ -89,17 +89,17 @@
NMG_CK_MODEL(m);
/* triangulate model */
- nmg_triangulate_model(m, &pstate->gcv_options->calculational_tolerance);
+ nmg_triangulate_model(m, &RTG.rtg_vlfree,
&pstate->gcv_options->calculational_tolerance);
/* list all vertices in result */
- nmg_vertex_tabulate(&verts, &r->l.magic);
+ nmg_vertex_tabulate(&verts, &r->l.magic, &RTG.rtg_vlfree);
/* Get number of vertices */
numverts = BU_PTBL_LEN(&verts);
/* get list of vertexuse normals */
if (pstate->obj_write_options->do_normals)
- nmg_vertexuse_normal_tabulate(&norms, &r->l.magic);
+ nmg_vertexuse_normal_tabulate(&norms, &r->l.magic, &RTG.rtg_vlfree);
/* BEGIN CHECK SECTION */
/* Check vertices */
@@ -332,7 +332,7 @@
if (!BU_SETJUMP) {
/* try */
- (void)nmg_model_fuse(*tsp->ts_m, tsp->ts_tol);
+ (void)nmg_model_fuse(*tsp->ts_m, &RTG.rtg_vlfree, tsp->ts_tol);
ret_tree = nmg_booltree_evaluate(curtree, &RTG.rtg_vlfree, tsp->ts_tol,
&rt_uniresource);
} else {
Modified: brlcad/trunk/src/libgcv/plugins/obj/tri_face.c
===================================================================
--- brlcad/trunk/src/libgcv/plugins/obj/tri_face.c 2016-10-03 15:05:00 UTC
(rev 68973)
+++ brlcad/trunk/src/libgcv/plugins/obj/tri_face.c 2016-10-03 21:39:41 UTC
(rev 68974)
@@ -137,7 +137,7 @@
/* add geometry to face */
fu = BU_LIST_FIRST(faceuse, &shell->fu_hd);
attach_face_g_plane(model, fu->f_p);
- if (nmg_calc_face_plane(fu, fu->f_p->g.plane_p->N)) {
+ if (nmg_calc_face_plane(fu, fu->f_p->g.plane_p->N, &RTG.rtg_vlfree)) {
nmg_km(model);
model = NULL;
} else {
@@ -230,7 +230,7 @@
}
/* triangulate face */
- if (nmg_triangulate_fu(fu, &tol)) {
+ if (nmg_triangulate_fu(fu, &RTG.rtg_vlfree, &tol)) {
*faces = NULL;
*numFaces = 0;
return;
Modified: brlcad/trunk/src/libgcv/plugins/stl/stl_write.c
===================================================================
--- brlcad/trunk/src/libgcv/plugins/stl/stl_write.c 2016-10-03 15:05:00 UTC
(rev 68973)
+++ brlcad/trunk/src/libgcv/plugins/stl/stl_write.c 2016-10-03 21:39:41 UTC
(rev 68974)
@@ -200,7 +200,7 @@
fprintf(pstate->fp, "solid %s\n", (region_name+1));
/* triangulate model */
- nmg_triangulate_model(m, &pstate->gcv_options->calculational_tolerance);
+ nmg_triangulate_model(m, &RTG.rtg_vlfree,
&pstate->gcv_options->calculational_tolerance);
/* Check triangles */
for (BU_LIST_FOR (s, shell, &r->s_hd))
Modified: brlcad/trunk/src/libgcv/plugins/vrml/vrml_write.c
===================================================================
--- brlcad/trunk/src/libgcv/plugins/vrml/vrml_write.c 2016-10-03 15:05:00 UTC
(rev 68973)
+++ brlcad/trunk/src/libgcv/plugins/vrml/vrml_write.c 2016-10-03 21:39:41 UTC
(rev 68974)
@@ -789,14 +789,14 @@
}
if (!is_light) {
- nmg_triangulate_model(m, tol2);
+ nmg_triangulate_model(m, &RTG.rtg_vlfree, tol2);
fprintf(pstate->fp_out, "\t\t\t}\n");
fprintf(pstate->fp_out, "\t\t\tgeometry IndexedFaceSet {\n");
fprintf(pstate->fp_out, "\t\t\t\tcoord Coordinate {\n");
}
/* get list of vertices */
- nmg_vertex_tabulate(&verts, &m->magic);
+ nmg_vertex_tabulate(&verts, &m->magic, &RTG.rtg_vlfree);
if (!is_light) {
fprintf(pstate->fp_out, "\t\t\t\t\tpoint [");
} else {
Modified: brlcad/trunk/src/libged/bev.c
===================================================================
--- brlcad/trunk/src/libged/bev.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/libged/bev.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -282,7 +282,7 @@
bev_nmg_model = (struct model *)NULL;
return GED_ERROR;
}
- nmg_triangulate_model(bev_nmg_model, &gedp->ged_wdbp->wdb_tol);
+ nmg_triangulate_model(bev_nmg_model, &RTG.rtg_vlfree,
&gedp->ged_wdbp->wdb_tol);
BU_UNSETJUMP;
}
Modified: brlcad/trunk/src/libged/bigE.c
===================================================================
--- brlcad/trunk/src/libged/bigE.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/libged/bigE.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -182,7 +182,7 @@
if (solid_is_plate_mode_bot
|| !eptr->l.m
- || (bot=nmg_bot(s, &dgcdp->gedp->ged_wdbp->wdb_tol)) == (struct
rt_bot_internal *)NULL)
+ || (bot=nmg_bot(s, &RTG.rtg_vlfree,
&dgcdp->gedp->ged_wdbp->wdb_tol)) == (struct rt_bot_internal *)NULL)
{
eptr->l.stp->st_id = id;
eptr->l.stp->st_meth = &OBJ[id];
@@ -1375,7 +1375,7 @@
}
if (leaf_ptr->l.m)
- nmg_edge_tabulate(&leaf_ptr->l.edge_list, &leaf_ptr->l.m->magic);
+ nmg_edge_tabulate(&leaf_ptr->l.edge_list, &leaf_ptr->l.m->magic,
&RTG.rtg_vlfree);
else
bu_ptbl_init(&leaf_ptr->l.edge_list, 1, "edge_list");
}
@@ -1820,7 +1820,7 @@
nmg_vertex_g(v[1], max[X], max[Y], min[Z]);
nmg_vertex_g(v[2], max[X], max[Y], max[Z]);
nmg_vertex_g(v[3], max[X], min[Y], max[Z]);
- nmg_calc_face_g(fu);
+ nmg_calc_face_g(fu, &RTG.rtg_vlfree);
vp[0] = &v[4];
vp[1] = &v[5];
@@ -1831,35 +1831,35 @@
nmg_vertex_g(v[5], min[X], min[Y], max[Z]);
nmg_vertex_g(v[6], min[X], max[Y], max[Z]);
nmg_vertex_g(v[7], min[X], max[Y], min[Z]);
- nmg_calc_face_g(fu);
+ nmg_calc_face_g(fu, &RTG.rtg_vlfree);
vp[0] = &v[0];
vp[1] = &v[3];
vp[2] = &v[5];
vp[3] = &v[4];
fu = nmg_cmface(s, vp, 4);
- nmg_calc_face_g(fu);
+ nmg_calc_face_g(fu, &RTG.rtg_vlfree);
vp[0] = &v[1];
vp[1] = &v[7];
vp[2] = &v[6];
vp[3] = &v[2];
fu = nmg_cmface(s, vp, 4);
- nmg_calc_face_g(fu);
+ nmg_calc_face_g(fu, &RTG.rtg_vlfree);
vp[0] = &v[3];
vp[1] = &v[2];
vp[2] = &v[6];
vp[3] = &v[5];
fu = nmg_cmface(s, vp, 4);
- nmg_calc_face_g(fu);
+ nmg_calc_face_g(fu, &RTG.rtg_vlfree);
vp[0] = &v[1];
vp[1] = &v[0];
vp[2] = &v[4];
vp[3] = &v[7];
fu = nmg_cmface(s, vp, 4);
- nmg_calc_face_g(fu);
+ nmg_calc_face_g(fu, &RTG.rtg_vlfree);
nmg_region_a(r, tol);
@@ -1917,7 +1917,7 @@
vcut[1] = new_eu->vu_p;
nmg_vertex_gv(vcut[1]->v_p, pt[1]);
- new_lu = nmg_cut_loop(vcut[0], vcut[1]);
+ new_lu = nmg_cut_loop(vcut[0], vcut[1], &RTG.rtg_vlfree);
nmg_lu_reorient(lu);
nmg_lu_reorient(new_lu);
@@ -1989,13 +1989,13 @@
}
nmg_rebound(tp->l.m, tol);
- nmg_model_fuse(tp->l.m, tol);
- nmg_close_shell(s, tol);
+ nmg_model_fuse(tp->l.m, &RTG.rtg_vlfree, tol);
+ nmg_close_shell(s, &RTG.rtg_vlfree, tol);
nmg_rebound(tp->l.m, tol);
BU_ALLOC(pg, struct rt_pg_internal);
- if (!nmg_to_poly(tp->l.m, pg, tol)) {
+ if (!nmg_to_poly(tp->l.m, pg, &RTG.rtg_vlfree, tol)) {
bu_free((char *)pg, "rt_pg_internal");
bu_vls_printf(dgcdp->gedp->ged_result_str, "Prep failure for solid
'%s'\n", tp->l.stp->st_dp->d_namep);
} else {
Modified: brlcad/trunk/src/libged/bot_fuse.c
===================================================================
--- brlcad/trunk/src/libged/bot_fuse.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/libged/bot_fuse.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -68,7 +68,7 @@
}
bu_ptbl_init(&faces, 64, "faces buffer");
- nmg_face_tabulate(&faces, magic_p);
+ nmg_face_tabulate(&faces, magic_p, &RTG.rtg_vlfree);
cnt = 0;
for (i = 0; i < (size_t)BU_PTBL_LEN(&faces) ; i++) {
@@ -234,13 +234,13 @@
/* Step 1 -- the vertices. */
bu_log("%s: running nmg_vertex_fuse\n", argv[0]);
- count = nmg_vertex_fuse(&m->magic, tol);
+ count = nmg_vertex_fuse(&m->magic, &RTG.rtg_vlfree, tol);
total += count;
bu_log("%s: %s, %d vertex fused\n", argv[0], argv[i+1], count);
/* Step 1.5 -- break edges on vertices, before fusing edges */
bu_log("%s: running nmg_break_e_on_v\n", argv[0]);
- count = nmg_break_e_on_v(&m->magic, tol);
+ count = nmg_break_e_on_v(&m->magic, &RTG.rtg_vlfree, tol);
total += count;
bu_log("%s: %s, %d broke 'e' on 'v'\n", argv[0], argv[i+1], count);
@@ -256,19 +256,19 @@
for (BU_LIST_FOR(r2, nmgregion, &m->r_hd)) {
for (BU_LIST_FOR(s, shell, &r2->s_hd))
- nmg_make_faces_within_tol(s, tol);
+ nmg_make_faces_within_tol(s, &RTG.rtg_vlfree, tol);
}
}
/* Step 2 -- the face geometry */
bu_log("%s: running nmg_model_face_fuse\n", argv[0]);
- count = nmg_model_face_fuse(m, tol);
+ count = nmg_model_face_fuse(m, &RTG.rtg_vlfree, tol);
total += count;
bu_log("%s: %s, %d faces fused\n", argv[0], argv[i+1], count);
/* Step 3 -- edges */
bu_log("%s: running nmg_edge_fuse\n", argv[0]);
- count = nmg_edge_fuse(&m->magic, tol);
+ count = nmg_edge_fuse(&m->magic, &RTG.rtg_vlfree, tol);
total += count;
bu_log("%s: %s, %d edges fused\n", argv[0], argv[i+1], count);
@@ -279,7 +279,7 @@
/* try */
/* convert the nmg model back into a bot */
- bot = nmg_bot(BU_LIST_FIRST(shell, &r->s_hd), tol);
+ bot = nmg_bot(BU_LIST_FIRST(shell, &r->s_hd), &RTG.rtg_vlfree, tol);
bu_vls_sprintf(&name_prefix, "open_edges.%s", argv[i]);
bu_log("%s: running show_dangling_edges\n", argv[0]);
Modified: brlcad/trunk/src/libged/decompose.c
===================================================================
--- brlcad/trunk/src/libged/decompose.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/libged/decompose.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -112,14 +112,14 @@
long **trans_tbl;
/* duplicate shell */
- tmp_s = (struct shell *)nmg_dup_shell(s, &trans_tbl,
&gedp->ged_wdbp->wdb_tol);
+ tmp_s = (struct shell *)nmg_dup_shell(s, &trans_tbl,
&RTG.rtg_vlfree, &gedp->ged_wdbp->wdb_tol);
bu_free((char *)trans_tbl, "trans_tbl");
/* move duplicate to temp region */
(void) nmg_mv_shell_to_region(tmp_s, tmp_r);
/* decompose this shell */
- (void) nmg_decompose_shell(tmp_s, &gedp->ged_wdbp->wdb_tol);
+ (void) nmg_decompose_shell(tmp_s, &RTG.rtg_vlfree,
&gedp->ged_wdbp->wdb_tol);
/* move each decomposed shell to yet another region */
decomp_s = BU_LIST_FIRST(shell, &tmp_r->s_hd);
@@ -138,11 +138,11 @@
kill_s = BU_LIST_FIRST(shell, &decomp_r->s_hd);
(void)nmg_ks(kill_s);
nmg_shell_a(decomp_s, &gedp->ged_wdbp->wdb_tol);
- new_s = (struct shell *)nmg_dup_shell(decomp_s, &trans_tbl,
&gedp->ged_wdbp->wdb_tol);
+ new_s = (struct shell *)nmg_dup_shell(decomp_s, &trans_tbl,
&RTG.rtg_vlfree, &gedp->ged_wdbp->wdb_tol);
(void)nmg_mv_shell_to_region(new_s, decomp_r);
/* move this region to a different model */
- new_m = (struct model *)nmg_mk_model_from_region(decomp_r, 1);
+ new_m = (struct model *)nmg_mk_model_from_region(decomp_r, 1,
&RTG.rtg_vlfree);
(void)nmg_rebound(new_m, &gedp->ged_wdbp->wdb_tol);
/* create name for this shell */
Modified: brlcad/trunk/src/libged/draw.c
===================================================================
--- brlcad/trunk/src/libged/draw.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/libged/draw.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -443,7 +443,7 @@
if (!BU_SETJUMP) {
/* try */
- nmg_triangulate_model(*tsp->ts_m, tsp->ts_tol);
+ nmg_triangulate_model(*tsp->ts_m, &RTG.rtg_vlfree, tsp->ts_tol);
result = 0;
} else {
Modified: brlcad/trunk/src/libged/facetize.c
===================================================================
--- brlcad/trunk/src/libged/facetize.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/libged/facetize.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -287,7 +287,7 @@
if (marching_cube == 1)
nmg_triangulate_model_mc(nmg_model,
&gedp->ged_wdbp->wdb_tol);
else
- nmg_triangulate_model(nmg_model, &gedp->ged_wdbp->wdb_tol);
+ nmg_triangulate_model(nmg_model, &RTG.rtg_vlfree,
&gedp->ged_wdbp->wdb_tol);
} else {
/* catch */
BU_UNSETJUMP;
@@ -319,7 +319,7 @@
if (!BU_SETJUMP) {
/* try */
- bot = (struct rt_bot_internal *)nmg_bot(s,
&gedp->ged_wdbp->wdb_tol);
+ bot = (struct rt_bot_internal *)nmg_bot(s, &RTG.rtg_vlfree,
&gedp->ged_wdbp->wdb_tol);
} else {
/* catch */
BU_UNSETJUMP;
Modified: brlcad/trunk/src/libged/inside.c
===================================================================
--- brlcad/trunk/src/libged/inside.c 2016-10-03 15:05:00 UTC (rev 68973)
+++ brlcad/trunk/src/libged/inside.c 2016-10-03 21:39:41 UTC (rev 68974)
@@ -326,14 +326,14 @@
* This does all the vertices
*/
bu_ptbl_init(&vert_tab, 64, "vert_tab");
- nmg_vertex_tabulate(&vert_tab, &m->magic);
+ nmg_vertex_tabulate(&vert_tab, &m->magic, &RTG.rtg_vlfree);
for (i = 0; i < BU_PTBL_LEN(&vert_tab); i++) {
struct vertex *v;
v = (struct vertex *)BU_PTBL_GET(&vert_tab, i);
NMG_CK_VERTEX(v);
- if (nmg_in_vert(v, 0, &gedp->ged_wdbp->wdb_tol)) {
+ if (nmg_in_vert(v, 0, &RTG.rtg_vlfree, &gedp->ged_wdbp->wdb_tol)) {
bu_vls_printf(gedp->ged_result_str, "Could not find coordinates
for inside arb7\n");
nmg_km(m);
bu_ptbl_free(&vert_tab);
@@ Diff output truncated at 100000 characters. @@
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