Revision: 69092 http://sourceforge.net/p/brlcad/code/69092 Author: starseeker Date: 2016-10-16 22:48:54 +0000 (Sun, 16 Oct 2016) Log Message: ----------- Yep, not ready -r everse r69091. Windows is revealing some problems that weren't showing up on Linux.
Revision Links: -------------- http://sourceforge.net/p/brlcad/code/69091 Modified Paths: -------------- brlcad/trunk/include/nmg.h brlcad/trunk/src/CMakeLists.txt brlcad/trunk/src/librt/CMakeLists.txt Added Paths: ----------- brlcad/trunk/src/librt/primitives/bspline/nurb_basis.c brlcad/trunk/src/librt/primitives/bspline/nurb_bezier.c brlcad/trunk/src/librt/primitives/bspline/nurb_bound.c brlcad/trunk/src/librt/primitives/bspline/nurb_c2.c brlcad/trunk/src/librt/primitives/bspline/nurb_copy.c brlcad/trunk/src/librt/primitives/bspline/nurb_diff.c brlcad/trunk/src/librt/primitives/bspline/nurb_eval.c brlcad/trunk/src/librt/primitives/bspline/nurb_flat.c brlcad/trunk/src/librt/primitives/bspline/nurb_interp.c brlcad/trunk/src/librt/primitives/bspline/nurb_knot.c brlcad/trunk/src/librt/primitives/bspline/nurb_norm.c brlcad/trunk/src/librt/primitives/bspline/nurb_oslo_calc.c brlcad/trunk/src/librt/primitives/bspline/nurb_oslo_map.c brlcad/trunk/src/librt/primitives/bspline/nurb_plot.c brlcad/trunk/src/librt/primitives/bspline/nurb_poly.c brlcad/trunk/src/librt/primitives/bspline/nurb_ray.c brlcad/trunk/src/librt/primitives/bspline/nurb_refine.c brlcad/trunk/src/librt/primitives/bspline/nurb_reverse.c brlcad/trunk/src/librt/primitives/bspline/nurb_solve.c brlcad/trunk/src/librt/primitives/bspline/nurb_split.c brlcad/trunk/src/librt/primitives/bspline/nurb_tess.c brlcad/trunk/src/librt/primitives/bspline/nurb_trim.c brlcad/trunk/src/librt/primitives/bspline/nurb_trim_util.c brlcad/trunk/src/librt/primitives/bspline/nurb_util.c brlcad/trunk/src/librt/primitives/bspline/nurb_xsplit.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_copy.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_index.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_junk.c brlcad/trunk/src/librt/primitives/nmg/nmg_manif.c brlcad/trunk/src/librt/primitives/nmg/nmg_mesh.c brlcad/trunk/src/librt/primitives/nmg/nmg_misc.c brlcad/trunk/src/librt/primitives/nmg/nmg_mk.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_tri.c brlcad/trunk/src/librt/primitives/nmg/nmg_visit.c Removed Paths: ------------- brlcad/trunk/src/libnmg/ Modified: brlcad/trunk/include/nmg.h =================================================================== --- brlcad/trunk/include/nmg.h 2016-10-16 22:14:16 UTC (rev 69091) +++ brlcad/trunk/include/nmg.h 2016-10-16 22:48:54 UTC (rev 69092) @@ -45,20 +45,8 @@ #include "bn/tol.h" #include "bn/vlist.h" #include "vmath.h" +#include "rt/defines.h" /* for RT_EXPORT */ -#ifndef NMG_EXPORT -# if defined(NMG_DLL_EXPORTS) && defined(NMG_DLL_IMPORTS) -# error "Only NMG_DLL_EXPORTS or NMG_DLL_IMPORTS can be defined, not both." -# elif defined(NMG_DLL_EXPORTS) -# define NMG_EXPORT __declspec(dllexport) -# elif defined(NMG_DLL_IMPORTS) -# define NMG_EXPORT __declspec(dllimport) -# else -# define NMG_EXPORT -# endif -#endif - - __BEGIN_DECLS #define DEBUG_PL_ANIM 0x00000001 /**< @brief 1 mged: animated evaluation */ @@ -173,7 +161,7 @@ } -NMG_EXPORT extern uint32_t nmg_debug; /**< @brief debug bits for NMG's see nmg.h */ +RT_EXPORT extern uint32_t nmg_debug; /**< @brief debug bits for NMG's see nmg.h */ /** * @brief @@ -935,18 +923,18 @@ * * control points for resulting sub-curves if "Left" and "Right" are * * non-null. * */ -NMG_EXPORT extern void bezier(point2d_t *V, int degree, double t, point2d_t *Left, point2d_t *Right, point2d_t eval_pt, point2d_t normal ); +RT_EXPORT extern void bezier(point2d_t *V, int degree, double t, point2d_t *Left, point2d_t *Right, point2d_t eval_pt, point2d_t normal ); /** * * Given an equation in Bernstein-Bezier form, find all of the roots * * in the interval [0, 1]. Return the number of roots found. * */ -NMG_EXPORT extern int bezier_roots(point2d_t *w, int degree, point2d_t **intercept, point2d_t **normal, point2d_t ray_start, point2d_t ray_dir, point2d_t ray_perp, int depth, fastf_t epsilon); +RT_EXPORT extern int bezier_roots(point2d_t *w, int degree, point2d_t **intercept, point2d_t **normal, point2d_t ray_start, point2d_t ray_dir, point2d_t ray_perp, int depth, fastf_t epsilon); /** * * subdivide a 2D bezier curve at t=0.5 * */ -NMG_EXPORT extern struct bezier_2d_list *bezier_subdivide(struct bezier_2d_list *bezier_hd, int degree, fastf_t epsilon, int depth); +RT_EXPORT extern struct bezier_2d_list *bezier_subdivide(struct bezier_2d_list *bezier_hd, int degree, fastf_t epsilon, int depth); /* TODO - these structs and ray_in_rpp are versions of librt functionality, @@ -954,7 +942,7 @@ * and struct that are available to both libraries without introducing a * coupling dependency. */ -NMG_EXPORT extern struct bu_list re_nmgfree; /**< @brief head of NMG hitmiss freelist */ +RT_EXPORT extern struct bu_list re_nmgfree; /**< @brief head of NMG hitmiss freelist */ #define NMG_HIT_LIST 0 #define NMG_MISS_LIST 1 @@ -1183,71 +1171,71 @@ /** * global nmg animation vblock callback */ -NMG_EXPORT extern void (*nmg_vlblock_anim_upcall)(void); +RT_EXPORT extern void (*nmg_vlblock_anim_upcall)(void); /** * global nmg mged display debug callback (ew) */ -NMG_EXPORT extern void (*nmg_mged_debug_display_hack)(void); +RT_EXPORT extern void (*nmg_mged_debug_display_hack)(void); /* From file nmg_mk.c */ /* MAKE routines */ -NMG_EXPORT extern struct model *nmg_mm(void); -NMG_EXPORT extern struct model *nmg_mmr(void); -NMG_EXPORT extern struct nmgregion *nmg_mrsv(struct model *m); -NMG_EXPORT extern struct shell *nmg_msv(struct nmgregion *r_p); -NMG_EXPORT extern struct faceuse *nmg_mf(struct loopuse *lu1); -NMG_EXPORT extern struct loopuse *nmg_mlv(uint32_t *magic, +RT_EXPORT extern struct model *nmg_mm(void); +RT_EXPORT extern struct model *nmg_mmr(void); +RT_EXPORT extern struct nmgregion *nmg_mrsv(struct model *m); +RT_EXPORT extern struct shell *nmg_msv(struct nmgregion *r_p); +RT_EXPORT extern struct faceuse *nmg_mf(struct loopuse *lu1); +RT_EXPORT extern struct loopuse *nmg_mlv(uint32_t *magic, struct vertex *v, int orientation); -NMG_EXPORT extern struct edgeuse *nmg_me(struct vertex *v1, +RT_EXPORT extern struct edgeuse *nmg_me(struct vertex *v1, struct vertex *v2, struct shell *s); -NMG_EXPORT extern struct edgeuse *nmg_meonvu(struct vertexuse *vu); -NMG_EXPORT extern struct loopuse *nmg_ml(struct shell *s); +RT_EXPORT extern struct edgeuse *nmg_meonvu(struct vertexuse *vu); +RT_EXPORT extern struct loopuse *nmg_ml(struct shell *s); /* KILL routines */ -NMG_EXPORT extern int nmg_keg(struct edgeuse *eu); -NMG_EXPORT extern int nmg_kvu(struct vertexuse *vu); -NMG_EXPORT extern int nmg_kfu(struct faceuse *fu1); -NMG_EXPORT extern int nmg_klu(struct loopuse *lu1); -NMG_EXPORT extern int nmg_keu(struct edgeuse *eu); -NMG_EXPORT extern int nmg_keu_zl(struct shell *s, +RT_EXPORT extern int nmg_keg(struct edgeuse *eu); +RT_EXPORT extern int nmg_kvu(struct vertexuse *vu); +RT_EXPORT extern int nmg_kfu(struct faceuse *fu1); +RT_EXPORT extern int nmg_klu(struct loopuse *lu1); +RT_EXPORT extern int nmg_keu(struct edgeuse *eu); +RT_EXPORT extern int nmg_keu_zl(struct shell *s, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_ks(struct shell *s); -NMG_EXPORT extern int nmg_kr(struct nmgregion *r); -NMG_EXPORT extern void nmg_km(struct model *m); +RT_EXPORT extern int nmg_ks(struct shell *s); +RT_EXPORT extern int nmg_kr(struct nmgregion *r); +RT_EXPORT extern void nmg_km(struct model *m); /* Geometry and Attribute routines */ -NMG_EXPORT extern void nmg_vertex_gv(struct vertex *v, +RT_EXPORT extern void nmg_vertex_gv(struct vertex *v, const point_t pt); -NMG_EXPORT extern void nmg_vertex_g(struct vertex *v, +RT_EXPORT extern void nmg_vertex_g(struct vertex *v, fastf_t x, fastf_t y, fastf_t z); -NMG_EXPORT extern void nmg_vertexuse_nv(struct vertexuse *vu, +RT_EXPORT extern void nmg_vertexuse_nv(struct vertexuse *vu, const vect_t norm); -NMG_EXPORT extern void nmg_vertexuse_a_cnurb(struct vertexuse *vu, +RT_EXPORT extern void nmg_vertexuse_a_cnurb(struct vertexuse *vu, const fastf_t *uvw); -NMG_EXPORT extern void nmg_edge_g(struct edgeuse *eu); -NMG_EXPORT extern void nmg_edge_g_cnurb(struct edgeuse *eu, +RT_EXPORT extern void nmg_edge_g(struct edgeuse *eu); +RT_EXPORT extern void nmg_edge_g_cnurb(struct edgeuse *eu, int order, int n_knots, fastf_t *kv, int n_pts, int pt_type, fastf_t *points); -NMG_EXPORT extern void nmg_edge_g_cnurb_plinear(struct edgeuse *eu); -NMG_EXPORT extern int nmg_use_edge_g(struct edgeuse *eu, +RT_EXPORT extern void nmg_edge_g_cnurb_plinear(struct edgeuse *eu); +RT_EXPORT extern int nmg_use_edge_g(struct edgeuse *eu, uint32_t *eg); -NMG_EXPORT extern void nmg_loop_g(struct loop *l, +RT_EXPORT extern void nmg_loop_g(struct loop *l, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_face_g(struct faceuse *fu, +RT_EXPORT extern void nmg_face_g(struct faceuse *fu, const plane_t p); -NMG_EXPORT extern void nmg_face_new_g(struct faceuse *fu, +RT_EXPORT extern void nmg_face_new_g(struct faceuse *fu, const plane_t pl); -NMG_EXPORT extern void nmg_face_g_snurb(struct faceuse *fu, +RT_EXPORT extern void nmg_face_g_snurb(struct faceuse *fu, int u_order, int v_order, int n_u_knots, @@ -1258,679 +1246,679 @@ int n_cols, int pt_type, fastf_t *mesh); -NMG_EXPORT extern void nmg_face_bb(struct face *f, +RT_EXPORT extern void nmg_face_bb(struct face *f, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_shell_a(struct shell *s, +RT_EXPORT extern void nmg_shell_a(struct shell *s, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_region_a(struct nmgregion *r, +RT_EXPORT extern void nmg_region_a(struct nmgregion *r, const struct bn_tol *tol); /* DEMOTE routines */ -NMG_EXPORT extern int nmg_demote_lu(struct loopuse *lu); -NMG_EXPORT extern int nmg_demote_eu(struct edgeuse *eu); +RT_EXPORT extern int nmg_demote_lu(struct loopuse *lu); +RT_EXPORT extern int nmg_demote_eu(struct edgeuse *eu); /* MODIFY routines */ -NMG_EXPORT extern void nmg_movevu(struct vertexuse *vu, +RT_EXPORT extern void nmg_movevu(struct vertexuse *vu, struct vertex *v); -NMG_EXPORT extern void nmg_je(struct edgeuse *eudst, +RT_EXPORT extern void nmg_je(struct edgeuse *eudst, struct edgeuse *eusrc); -NMG_EXPORT extern void nmg_unglueedge(struct edgeuse *eu); -NMG_EXPORT extern void nmg_jv(struct vertex *v1, +RT_EXPORT extern void nmg_unglueedge(struct edgeuse *eu); +RT_EXPORT extern void nmg_jv(struct vertex *v1, struct vertex *v2); -NMG_EXPORT extern void nmg_jfg(struct face *f1, +RT_EXPORT extern void nmg_jfg(struct face *f1, struct face *f2); -NMG_EXPORT extern void nmg_jeg(struct edge_g_lseg *dest_eg, +RT_EXPORT extern void nmg_jeg(struct edge_g_lseg *dest_eg, struct edge_g_lseg *src_eg); /* From nmg_mod.c */ /* REGION Routines */ -NMG_EXPORT extern void nmg_merge_regions(struct nmgregion *r1, +RT_EXPORT extern void nmg_merge_regions(struct nmgregion *r1, struct nmgregion *r2, const struct bn_tol *tol); /* SHELL Routines */ -NMG_EXPORT extern void nmg_shell_coplanar_face_merge(struct shell *s, +RT_EXPORT extern void nmg_shell_coplanar_face_merge(struct shell *s, const struct bn_tol *tol, const int simplify, struct bu_list *vlfree); -NMG_EXPORT extern int nmg_simplify_shell(struct shell *s, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_rm_redundancies(struct shell *s, +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); -NMG_EXPORT extern void nmg_sanitize_s_lv(struct shell *s, +RT_EXPORT extern void nmg_sanitize_s_lv(struct shell *s, int orient); -NMG_EXPORT extern void nmg_s_split_touchingloops(struct shell *s, +RT_EXPORT extern void nmg_s_split_touchingloops(struct shell *s, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_s_join_touchingloops(struct shell *s, +RT_EXPORT extern void nmg_s_join_touchingloops(struct shell *s, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_js(struct shell *s1, +RT_EXPORT extern void nmg_js(struct shell *s1, struct shell *s2, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_invert_shell(struct shell *s); +RT_EXPORT extern void nmg_invert_shell(struct shell *s); /* FACE Routines */ -NMG_EXPORT extern struct faceuse *nmg_cmface(struct shell *s, +RT_EXPORT extern struct faceuse *nmg_cmface(struct shell *s, struct vertex **vt[], int n); -NMG_EXPORT extern struct faceuse *nmg_cface(struct shell *s, +RT_EXPORT extern struct faceuse *nmg_cface(struct shell *s, struct vertex **vt, int n); -NMG_EXPORT extern struct faceuse *nmg_add_loop_to_face(struct shell *s, +RT_EXPORT extern struct faceuse *nmg_add_loop_to_face(struct shell *s, struct faceuse *fu, struct vertex **verts, int n, int dir); -NMG_EXPORT extern int nmg_fu_planeeqn(struct faceuse *fu, +RT_EXPORT extern int nmg_fu_planeeqn(struct faceuse *fu, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_gluefaces(struct faceuse *fulist[], +RT_EXPORT extern void nmg_gluefaces(struct faceuse *fulist[], int n, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_simplify_face(struct faceuse *fu, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_reverse_face(struct faceuse *fu); -NMG_EXPORT extern void nmg_mv_fu_between_shells(struct shell *dest, +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, struct faceuse *fu); -NMG_EXPORT extern void nmg_jf(struct faceuse *dest_fu, +RT_EXPORT extern void nmg_jf(struct faceuse *dest_fu, struct faceuse *src_fu); -NMG_EXPORT extern struct faceuse *nmg_dup_face(struct faceuse *fu, +RT_EXPORT extern struct faceuse *nmg_dup_face(struct faceuse *fu, struct shell *s); /* LOOP Routines */ -NMG_EXPORT extern void nmg_jl(struct loopuse *lu, +RT_EXPORT extern void nmg_jl(struct loopuse *lu, struct edgeuse *eu); -NMG_EXPORT extern struct vertexuse *nmg_join_2loops(struct vertexuse *vu1, +RT_EXPORT extern struct vertexuse *nmg_join_2loops(struct vertexuse *vu1, struct vertexuse *vu2); -NMG_EXPORT extern struct vertexuse *nmg_join_singvu_loop(struct vertexuse *vu1, +RT_EXPORT extern struct vertexuse *nmg_join_singvu_loop(struct vertexuse *vu1, struct vertexuse *vu2); -NMG_EXPORT extern struct vertexuse *nmg_join_2singvu_loops(struct vertexuse *vu1, +RT_EXPORT extern struct vertexuse *nmg_join_2singvu_loops(struct vertexuse *vu1, struct vertexuse *vu2); -NMG_EXPORT extern struct loopuse *nmg_cut_loop(struct vertexuse *vu1, +RT_EXPORT extern struct loopuse *nmg_cut_loop(struct vertexuse *vu1, struct vertexuse *vu2, struct bu_list *vlfree); -NMG_EXPORT extern struct loopuse *nmg_split_lu_at_vu(struct loopuse *lu, +RT_EXPORT extern struct loopuse *nmg_split_lu_at_vu(struct loopuse *lu, struct vertexuse *vu); -NMG_EXPORT extern struct vertexuse *nmg_find_repeated_v_in_lu(struct vertexuse *vu); -NMG_EXPORT extern void nmg_split_touchingloops(struct loopuse *lu, +RT_EXPORT extern struct vertexuse *nmg_find_repeated_v_in_lu(struct vertexuse *vu); +RT_EXPORT extern void nmg_split_touchingloops(struct loopuse *lu, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_join_touchingloops(struct loopuse *lu); -NMG_EXPORT extern int nmg_get_touching_jaunts(const struct loopuse *lu, +RT_EXPORT extern int nmg_join_touchingloops(struct loopuse *lu); +RT_EXPORT extern int nmg_get_touching_jaunts(const struct loopuse *lu, struct bu_ptbl *tbl, int *need_init); -NMG_EXPORT extern void nmg_kill_accordions(struct loopuse *lu); -NMG_EXPORT extern int nmg_loop_split_at_touching_jaunt(struct loopuse *lu, +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); -NMG_EXPORT extern void nmg_simplify_loop(struct loopuse *lu, struct bu_list *vlfree); -NMG_EXPORT extern int nmg_kill_snakes(struct loopuse *lu, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_mv_lu_between_shells(struct shell *dest, +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); -NMG_EXPORT extern void nmg_moveltof(struct faceuse *fu, +RT_EXPORT extern void nmg_moveltof(struct faceuse *fu, struct shell *s); -NMG_EXPORT extern struct loopuse *nmg_dup_loop(struct loopuse *lu, +RT_EXPORT extern struct loopuse *nmg_dup_loop(struct loopuse *lu, uint32_t *parent, long **trans_tbl); -NMG_EXPORT extern void nmg_set_lu_orientation(struct loopuse *lu, +RT_EXPORT extern void nmg_set_lu_orientation(struct loopuse *lu, int is_opposite); -NMG_EXPORT extern void nmg_lu_reorient(struct loopuse *lu); +RT_EXPORT extern void nmg_lu_reorient(struct loopuse *lu); /* EDGE Routines */ -NMG_EXPORT extern struct edgeuse *nmg_eusplit(struct vertex *v, +RT_EXPORT extern struct edgeuse *nmg_eusplit(struct vertex *v, struct edgeuse *oldeu, int share_geom); -NMG_EXPORT extern struct edgeuse *nmg_esplit(struct vertex *v, +RT_EXPORT extern struct edgeuse *nmg_esplit(struct vertex *v, struct edgeuse *eu, int share_geom); -NMG_EXPORT extern struct edgeuse *nmg_ebreak(struct vertex *v, +RT_EXPORT extern struct edgeuse *nmg_ebreak(struct vertex *v, struct edgeuse *eu); -NMG_EXPORT extern struct edgeuse *nmg_ebreaker(struct vertex *v, +RT_EXPORT extern struct edgeuse *nmg_ebreaker(struct vertex *v, struct edgeuse *eu, const struct bn_tol *tol); -NMG_EXPORT extern struct vertex *nmg_e2break(struct edgeuse *eu1, +RT_EXPORT extern struct vertex *nmg_e2break(struct edgeuse *eu1, struct edgeuse *eu2); -NMG_EXPORT extern int nmg_unbreak_edge(struct edgeuse *eu1_first); -NMG_EXPORT extern int nmg_unbreak_shell_edge_unsafe(struct edgeuse *eu1_first); -NMG_EXPORT extern struct edgeuse *nmg_eins(struct edgeuse *eu); -NMG_EXPORT extern void nmg_mv_eu_between_shells(struct shell *dest, +RT_EXPORT extern int nmg_unbreak_edge(struct edgeuse *eu1_first); +RT_EXPORT extern int nmg_unbreak_shell_edge_unsafe(struct edgeuse *eu1_first); +RT_EXPORT extern struct edgeuse *nmg_eins(struct edgeuse *eu); +RT_EXPORT extern void nmg_mv_eu_between_shells(struct shell *dest, struct shell *src, struct edgeuse *eu); /* VERTEX Routines */ -NMG_EXPORT extern void nmg_mv_vu_between_shells(struct shell *dest, +RT_EXPORT extern void nmg_mv_vu_between_shells(struct shell *dest, struct shell *src, struct vertexuse *vu); /* From nmg_info.c */ /* Model routines */ -NMG_EXPORT extern struct model *nmg_find_model(const uint32_t *magic_p); -NMG_EXPORT extern struct shell *nmg_find_shell(const uint32_t *magic_p); -NMG_EXPORT extern void nmg_model_bb(point_t min_pt, +RT_EXPORT extern struct model *nmg_find_model(const uint32_t *magic_p); +RT_EXPORT extern struct shell *nmg_find_shell(const uint32_t *magic_p); +RT_EXPORT extern void nmg_model_bb(point_t min_pt, point_t max_pt, const struct model *m); /* Shell routines */ -NMG_EXPORT extern int nmg_shell_is_empty(const struct shell *s); -NMG_EXPORT extern struct shell *nmg_find_s_of_lu(const struct loopuse *lu); -NMG_EXPORT extern struct shell *nmg_find_s_of_eu(const struct edgeuse *eu); -NMG_EXPORT extern struct shell *nmg_find_s_of_vu(const struct vertexuse *vu); +RT_EXPORT extern int nmg_shell_is_empty(const struct shell *s); +RT_EXPORT extern struct shell *nmg_find_s_of_lu(const struct loopuse *lu); +RT_EXPORT extern struct shell *nmg_find_s_of_eu(const struct edgeuse *eu); +RT_EXPORT extern struct shell *nmg_find_s_of_vu(const struct vertexuse *vu); /* Face routines */ -NMG_EXPORT extern struct faceuse *nmg_find_fu_of_eu(const struct edgeuse *eu); -NMG_EXPORT extern struct faceuse *nmg_find_fu_of_lu(const struct loopuse *lu); -NMG_EXPORT extern struct faceuse *nmg_find_fu_of_vu(const struct vertexuse *vu); -NMG_EXPORT extern struct faceuse *nmg_find_fu_with_fg_in_s(const struct shell *s1, +RT_EXPORT extern struct faceuse *nmg_find_fu_of_eu(const struct edgeuse *eu); +RT_EXPORT extern struct faceuse *nmg_find_fu_of_lu(const struct loopuse *lu); +RT_EXPORT extern struct faceuse *nmg_find_fu_of_vu(const struct vertexuse *vu); +RT_EXPORT extern struct faceuse *nmg_find_fu_with_fg_in_s(const struct shell *s1, const struct faceuse *fu2); -NMG_EXPORT extern double nmg_measure_fu_angle(const struct edgeuse *eu, +RT_EXPORT extern double nmg_measure_fu_angle(const struct edgeuse *eu, const vect_t xvec, const vect_t yvec, const vect_t zvec); /* Loop routines */ -NMG_EXPORT extern struct loopuse*nmg_find_lu_of_vu(const struct vertexuse *vu); -NMG_EXPORT extern int nmg_loop_is_a_crack(const struct loopuse *lu); -NMG_EXPORT extern int nmg_loop_is_ccw(const struct loopuse *lu, +RT_EXPORT extern struct loopuse*nmg_find_lu_of_vu(const struct vertexuse *vu); +RT_EXPORT extern int nmg_loop_is_a_crack(const struct loopuse *lu); +RT_EXPORT extern int nmg_loop_is_ccw(const struct loopuse *lu, const plane_t norm, const struct bn_tol *tol); -NMG_EXPORT extern const struct vertexuse *nmg_loop_touches_self(const struct loopuse *lu); -NMG_EXPORT extern int nmg_2lu_identical(const struct edgeuse *eu1, +RT_EXPORT extern const struct vertexuse *nmg_loop_touches_self(const struct loopuse *lu); +RT_EXPORT extern int nmg_2lu_identical(const struct edgeuse *eu1, const struct edgeuse *eu2); /* Edge routines */ -NMG_EXPORT extern struct edgeuse *nmg_find_matching_eu_in_s(const struct edgeuse *eu1, +RT_EXPORT extern struct edgeuse *nmg_find_matching_eu_in_s(const struct edgeuse *eu1, const struct shell *s2); -NMG_EXPORT extern struct edgeuse *nmg_findeu(const struct vertex *v1, +RT_EXPORT extern struct edgeuse *nmg_findeu(const struct vertex *v1, const struct vertex *v2, const struct shell *s, const struct edgeuse *eup, int dangling_only); -NMG_EXPORT extern struct edgeuse *nmg_find_eu_in_face(const struct vertex *v1, +RT_EXPORT extern struct edgeuse *nmg_find_eu_in_face(const struct vertex *v1, const struct vertex *v2, const struct faceuse *fu, const struct edgeuse *eup, int dangling_only); -NMG_EXPORT extern struct edgeuse *nmg_find_e(const struct vertex *v1, +RT_EXPORT extern struct edgeuse *nmg_find_e(const struct vertex *v1, const struct vertex *v2, const struct shell *s, const struct edge *ep); -NMG_EXPORT extern struct edgeuse *nmg_find_eu_of_vu(const struct vertexuse *vu); -NMG_EXPORT extern struct edgeuse *nmg_find_eu_with_vu_in_lu(const struct loopuse *lu, +RT_EXPORT extern struct edgeuse *nmg_find_eu_of_vu(const struct vertexuse *vu); +RT_EXPORT extern struct edgeuse *nmg_find_eu_with_vu_in_lu(const struct loopuse *lu, const struct vertexuse *vu); -NMG_EXPORT extern const struct edgeuse *nmg_faceradial(const struct edgeuse *eu); -NMG_EXPORT extern const struct edgeuse *nmg_radial_face_edge_in_shell(const struct edgeuse *eu); -NMG_EXPORT extern const struct edgeuse *nmg_find_edge_between_2fu(const struct faceuse *fu1, +RT_EXPORT extern const struct edgeuse *nmg_faceradial(const struct edgeuse *eu); +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); -NMG_EXPORT extern struct edge *nmg_find_e_nearest_pt2(uint32_t *magic_p, +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); -NMG_EXPORT extern struct edgeuse *nmg_find_matching_eu_in_s(const struct edgeuse *eu1, +RT_EXPORT extern struct edgeuse *nmg_find_matching_eu_in_s(const struct edgeuse *eu1, const struct shell *s2); -NMG_EXPORT extern void nmg_eu_2vecs_perp(vect_t xvec, +RT_EXPORT extern void nmg_eu_2vecs_perp(vect_t xvec, vect_t yvec, vect_t zvec, const struct edgeuse *eu, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_find_eu_leftvec(vect_t left, +RT_EXPORT extern int nmg_find_eu_leftvec(vect_t left, const struct edgeuse *eu); -NMG_EXPORT extern int nmg_find_eu_left_non_unit(vect_t left, +RT_EXPORT extern int nmg_find_eu_left_non_unit(vect_t left, const struct edgeuse *eu); -NMG_EXPORT extern struct edgeuse *nmg_find_ot_same_eu_of_e(const struct edge *e); +RT_EXPORT extern struct edgeuse *nmg_find_ot_same_eu_of_e(const struct edge *e); /* Vertex routines */ -NMG_EXPORT extern struct vertexuse *nmg_find_v_in_face(const struct vertex *, +RT_EXPORT extern struct vertexuse *nmg_find_v_in_face(const struct vertex *, const struct faceuse *); -NMG_EXPORT extern struct vertexuse *nmg_find_v_in_shell(const struct vertex *v, +RT_EXPORT extern struct vertexuse *nmg_find_v_in_shell(const struct vertex *v, const struct shell *s, int edges_only); -NMG_EXPORT extern struct vertexuse *nmg_find_pt_in_lu(const struct loopuse *lu, +RT_EXPORT extern struct vertexuse *nmg_find_pt_in_lu(const struct loopuse *lu, const point_t pt, const struct bn_tol *tol); -NMG_EXPORT extern struct vertexuse *nmg_find_pt_in_face(const struct faceuse *fu, +RT_EXPORT extern struct vertexuse *nmg_find_pt_in_face(const struct faceuse *fu, const point_t pt, const struct bn_tol *tol); -NMG_EXPORT extern struct vertex *nmg_find_pt_in_shell(const struct shell *s, +RT_EXPORT extern struct vertex *nmg_find_pt_in_shell(const struct shell *s, const point_t pt, const struct bn_tol *tol); -NMG_EXPORT extern struct vertex *nmg_find_pt_in_model(const struct model *m, +RT_EXPORT extern struct vertex *nmg_find_pt_in_model(const struct model *m, const point_t pt, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_is_vertex_in_edgelist(const struct vertex *v, +RT_EXPORT extern int nmg_is_vertex_in_edgelist(const struct vertex *v, const struct bu_list *hd); -NMG_EXPORT extern int nmg_is_vertex_in_looplist(const struct vertex *v, +RT_EXPORT extern int nmg_is_vertex_in_looplist(const struct vertex *v, const struct bu_list *hd, int singletons); -NMG_EXPORT extern struct vertexuse *nmg_is_vertex_in_face(const struct vertex *v, +RT_EXPORT extern struct vertexuse *nmg_is_vertex_in_face(const struct vertex *v, const struct face *f); -NMG_EXPORT extern int nmg_is_vertex_a_selfloop_in_shell(const struct vertex *v, +RT_EXPORT extern int nmg_is_vertex_a_selfloop_in_shell(const struct vertex *v, const struct shell *s); -NMG_EXPORT extern int nmg_is_vertex_in_facelist(const struct vertex *v, +RT_EXPORT extern int nmg_is_vertex_in_facelist(const struct vertex *v, const struct bu_list *hd); -NMG_EXPORT extern int nmg_is_edge_in_edgelist(const struct edge *e, +RT_EXPORT extern int nmg_is_edge_in_edgelist(const struct edge *e, const struct bu_list *hd); -NMG_EXPORT extern int nmg_is_edge_in_looplist(const struct edge *e, +RT_EXPORT extern int nmg_is_edge_in_looplist(const struct edge *e, const struct bu_list *hd); -NMG_EXPORT extern int nmg_is_edge_in_facelist(const struct edge *e, +RT_EXPORT extern int nmg_is_edge_in_facelist(const struct edge *e, const struct bu_list *hd); -NMG_EXPORT extern int nmg_is_loop_in_facelist(const struct loop *l, +RT_EXPORT extern int nmg_is_loop_in_facelist(const struct loop *l, const struct bu_list *fu_hd); /* Tabulation routines */ -NMG_EXPORT extern void nmg_vertex_tabulate(struct bu_ptbl *tab, +RT_EXPORT extern void nmg_vertex_tabulate(struct bu_ptbl *tab, const uint32_t *magic_p, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_vertexuse_normal_tabulate(struct bu_ptbl *tab, +RT_EXPORT extern void nmg_vertexuse_normal_tabulate(struct bu_ptbl *tab, const uint32_t *magic_p, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_edgeuse_tabulate(struct bu_ptbl *tab, +RT_EXPORT extern void nmg_edgeuse_tabulate(struct bu_ptbl *tab, const uint32_t *magic_p, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_edge_tabulate(struct bu_ptbl *tab, +RT_EXPORT extern void nmg_edge_tabulate(struct bu_ptbl *tab, const uint32_t *magic_p, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_edge_g_tabulate(struct bu_ptbl *tab, +RT_EXPORT extern void nmg_edge_g_tabulate(struct bu_ptbl *tab, const uint32_t *magic_p, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_face_tabulate(struct bu_ptbl *tab, +RT_EXPORT extern void nmg_face_tabulate(struct bu_ptbl *tab, const uint32_t *magic_p, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_edgeuse_with_eg_tabulate(struct bu_ptbl *tab, +RT_EXPORT extern void nmg_edgeuse_with_eg_tabulate(struct bu_ptbl *tab, const struct edge_g_lseg *eg); -NMG_EXPORT extern void nmg_edgeuse_on_line_tabulate(struct bu_ptbl *tab, +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); -NMG_EXPORT extern void nmg_e_and_v_tabulate(struct bu_ptbl *eutab, +RT_EXPORT extern void nmg_e_and_v_tabulate(struct bu_ptbl *eutab, struct bu_ptbl *vtab, const uint32_t *magic_p, struct bu_list *vlfree); -NMG_EXPORT extern int nmg_2edgeuse_g_coincident(const struct edgeuse *eu1, +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 */ -NMG_EXPORT extern void nmg_translate_face(struct faceuse *fu, const vect_t Vec, struct bu_list *vlfree); -NMG_EXPORT extern int nmg_extrude_face(struct faceuse *fu, const vect_t Vec, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern struct vertexuse *nmg_find_vertex_in_lu(const struct vertex *v, const struct loopuse *lu); -NMG_EXPORT extern void nmg_fix_overlapping_loops(struct shell *s, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_break_crossed_loops(struct shell *is, const struct bn_tol *tol); -NMG_EXPORT extern struct shell *nmg_extrude_cleanup(struct shell *is, const int is_void, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_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); -NMG_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); +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, 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, 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 */ -NMG_EXPORT extern char *nmg_orientation(int orientation); -NMG_EXPORT extern void nmg_pr_orient(int orientation, +RT_EXPORT extern char *nmg_orientation(int orientation); +RT_EXPORT extern void nmg_pr_orient(int orientation, const char *h); -NMG_EXPORT extern void nmg_pr_m(const struct model *m); -NMG_EXPORT extern void nmg_pr_r(const struct nmgregion *r, +RT_EXPORT extern void nmg_pr_m(const struct model *m); +RT_EXPORT extern void nmg_pr_r(const struct nmgregion *r, char *h); -NMG_EXPORT extern void nmg_pr_sa(const struct shell_a *sa, +RT_EXPORT extern void nmg_pr_sa(const struct shell_a *sa, char *h); -NMG_EXPORT extern void nmg_pr_lg(const struct loop_g *lg, +RT_EXPORT extern void nmg_pr_lg(const struct loop_g *lg, char *h); -NMG_EXPORT extern void nmg_pr_fg(const uint32_t *magic, +RT_EXPORT extern void nmg_pr_fg(const uint32_t *magic, char *h); -NMG_EXPORT extern void nmg_pr_s(const struct shell *s, +RT_EXPORT extern void nmg_pr_s(const struct shell *s, char *h); -NMG_EXPORT extern void nmg_pr_s_briefly(const struct shell *s, +RT_EXPORT extern void nmg_pr_s_briefly(const struct shell *s, char *h); -NMG_EXPORT extern void nmg_pr_f(const struct face *f, +RT_EXPORT extern void nmg_pr_f(const struct face *f, char *h); -NMG_EXPORT extern void nmg_pr_fu(const struct faceuse *fu, +RT_EXPORT extern void nmg_pr_fu(const struct faceuse *fu, char *h); -NMG_EXPORT extern void nmg_pr_fu_briefly(const struct faceuse *fu, +RT_EXPORT extern void nmg_pr_fu_briefly(const struct faceuse *fu, char *h); -NMG_EXPORT extern void nmg_pr_l(const struct loop *l, +RT_EXPORT extern void nmg_pr_l(const struct loop *l, char *h); -NMG_EXPORT extern void nmg_pr_lu(const struct loopuse *lu, +RT_EXPORT extern void nmg_pr_lu(const struct loopuse *lu, char *h); -NMG_EXPORT extern void nmg_pr_lu_briefly(const struct loopuse *lu, +RT_EXPORT extern void nmg_pr_lu_briefly(const struct loopuse *lu, char *h); -NMG_EXPORT extern void nmg_pr_eg(const uint32_t *eg, +RT_EXPORT extern void nmg_pr_eg(const uint32_t *eg, char *h); -NMG_EXPORT extern void nmg_pr_e(const struct edge *e, +RT_EXPORT extern void nmg_pr_e(const struct edge *e, char *h); -NMG_EXPORT extern void nmg_pr_eu(const struct edgeuse *eu, +RT_EXPORT extern void nmg_pr_eu(const struct edgeuse *eu, char *h); -NMG_EXPORT extern void nmg_pr_eu_briefly(const struct edgeuse *eu, +RT_EXPORT extern void nmg_pr_eu_briefly(const struct edgeuse *eu, char *h); -NMG_EXPORT extern void nmg_pr_eu_endpoints(const struct edgeuse *eu, +RT_EXPORT extern void nmg_pr_eu_endpoints(const struct edgeuse *eu, char *h); -NMG_EXPORT extern void nmg_pr_vg(const struct vertex_g *vg, +RT_EXPORT extern void nmg_pr_vg(const struct vertex_g *vg, char *h); -NMG_EXPORT extern void nmg_pr_v(const struct vertex *v, +RT_EXPORT extern void nmg_pr_v(const struct vertex *v, char *h); -NMG_EXPORT extern void nmg_pr_vu(const struct vertexuse *vu, +RT_EXPORT extern void nmg_pr_vu(const struct vertexuse *vu, char *h); -NMG_EXPORT extern void nmg_pr_vu_briefly(const struct vertexuse *vu, +RT_EXPORT extern void nmg_pr_vu_briefly(const struct vertexuse *vu, char *h); -NMG_EXPORT extern void nmg_pr_vua(const uint32_t *magic_p, +RT_EXPORT extern void nmg_pr_vua(const uint32_t *magic_p, char *h); -NMG_EXPORT extern void nmg_euprint(const char *str, +RT_EXPORT extern void nmg_euprint(const char *str, const struct edgeuse *eu); -NMG_EXPORT extern void nmg_pr_ptbl(const char *title, +RT_EXPORT extern void nmg_pr_ptbl(const char *title, const struct bu_ptbl *tbl, int verbose); -NMG_EXPORT extern void nmg_pr_ptbl_vert_list(const char *str, +RT_EXPORT extern void nmg_pr_ptbl_vert_list(const char *str, const struct bu_ptbl *tbl, const fastf_t *mag); -NMG_EXPORT extern void nmg_pr_one_eu_vecs(const struct edgeuse *eu, +RT_EXPORT extern void nmg_pr_one_eu_vecs(const struct edgeuse *eu, const vect_t xvec, const vect_t yvec, const vect_t zvec, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_pr_fu_around_eu_vecs(const struct edgeuse *eu, +RT_EXPORT extern void nmg_pr_fu_around_eu_vecs(const struct edgeuse *eu, const vect_t xvec, const vect_t yvec, const vect_t zvec, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_pr_fu_around_eu(const struct edgeuse *eu, +RT_EXPORT extern void nmg_pr_fu_around_eu(const struct edgeuse *eu, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_pl_lu_around_eu(const struct edgeuse *eu, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_pr_fus_in_fg(const uint32_t *fg_magic); +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 */ -NMG_EXPORT extern int nmg_snurb_calc_lu_uv_orient(const struct loopuse *lu); -NMG_EXPORT extern void nmg_snurb_fu_eval(const struct faceuse *fu, +RT_EXPORT extern int nmg_snurb_calc_lu_uv_orient(const struct loopuse *lu); +RT_EXPORT extern void nmg_snurb_fu_eval(const struct faceuse *fu, const fastf_t u, const fastf_t v, point_t pt_on_srf); -NMG_EXPORT extern void nmg_snurb_fu_get_norm(const struct faceuse *fu, +RT_EXPORT extern void nmg_snurb_fu_get_norm(const struct faceuse *fu, const fastf_t u, const fastf_t v, vect_t norm); -NMG_EXPORT extern void nmg_snurb_fu_get_norm_at_vu(const struct faceuse *fu, +RT_EXPORT extern void nmg_snurb_fu_get_norm_at_vu(const struct faceuse *fu, const struct vertexuse *vu, vect_t norm); -NMG_EXPORT extern void nmg_find_zero_length_edges(const struct model *m, struct bu_list *vlfree); -NMG_EXPORT extern struct face *nmg_find_top_face_in_dir(const struct shell *s, +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); -NMG_EXPORT extern struct face *nmg_find_top_face(const struct shell *s, +RT_EXPORT extern struct face *nmg_find_top_face(const struct shell *s, int *dir, long *flags); -NMG_EXPORT extern int nmg_find_outer_and_void_shells(struct nmgregion *r, +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); -NMG_EXPORT extern int nmg_mark_edges_real(const uint32_t *magic_p, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_tabulate_face_g_verts(struct bu_ptbl *tab, +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); -NMG_EXPORT extern void nmg_isect_shell_self(struct shell *s, +RT_EXPORT extern void nmg_isect_shell_self(struct shell *s, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern struct edgeuse *nmg_next_radial_eu(const struct edgeuse *eu, +RT_EXPORT extern struct edgeuse *nmg_next_radial_eu(const struct edgeuse *eu, const struct shell *s, const int wires); -NMG_EXPORT extern struct edgeuse *nmg_prev_radial_eu(const struct edgeuse *eu, +RT_EXPORT extern struct edgeuse *nmg_prev_radial_eu(const struct edgeuse *eu, const struct shell *s, const int wires); -NMG_EXPORT extern int nmg_radial_face_count(const struct edgeuse *eu, +RT_EXPORT extern int nmg_radial_face_count(const struct edgeuse *eu, const struct shell *s); -NMG_EXPORT extern int nmg_check_closed_shell(const struct shell *s, +RT_EXPORT extern int nmg_check_closed_shell(const struct shell *s, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_move_lu_between_fus(struct faceuse *dest, +RT_EXPORT extern int nmg_move_lu_between_fus(struct faceuse *dest, struct faceuse *src, struct loopuse *lu); -NMG_EXPORT extern void nmg_loop_plane_newell(const struct loopuse *lu, +RT_EXPORT extern void nmg_loop_plane_newell(const struct loopuse *lu, plane_t pl); -NMG_EXPORT extern fastf_t nmg_loop_plane_area(const struct loopuse *lu, +RT_EXPORT extern fastf_t nmg_loop_plane_area(const struct loopuse *lu, plane_t pl); -NMG_EXPORT extern fastf_t nmg_loop_plane_area2(const struct loopuse *lu, +RT_EXPORT extern fastf_t nmg_loop_plane_area2(const struct loopuse *lu, plane_t pl, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_calc_face_plane(struct faceuse *fu_in, +RT_EXPORT extern int nmg_calc_face_plane(struct faceuse *fu_in, plane_t pl, struct bu_list *vlfree); -NMG_EXPORT extern int nmg_calc_face_g(struct faceuse *fu, struct bu_list *vlfree); -NMG_EXPORT extern fastf_t nmg_faceuse_area(const struct faceuse *fu); -NMG_EXPORT extern fastf_t nmg_shell_area(const struct shell *s); -NMG_EXPORT extern fastf_t nmg_region_area(const struct nmgregion *r); -NMG_EXPORT extern fastf_t nmg_model_area(const struct model *m); +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); +RT_EXPORT extern fastf_t nmg_model_area(const struct model *m); /* Some stray rt_ plane functions here */ -NMG_EXPORT extern void nmg_purge_unwanted_intersection_points(struct bu_ptbl *vert_list, +RT_EXPORT extern void nmg_purge_unwanted_intersection_points(struct bu_ptbl *vert_list, fastf_t *mag, const struct faceuse *fu, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_in_or_ref(struct vertexuse *vu, +RT_EXPORT extern int nmg_in_or_ref(struct vertexuse *vu, struct bu_ptbl *b); -NMG_EXPORT extern void nmg_rebound(struct model *m, +RT_EXPORT extern void nmg_rebound(struct model *m, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_count_shell_kids(const struct model *m, +RT_EXPORT extern void nmg_count_shell_kids(const struct model *m, size_t *total_wires, size_t *total_faces, size_t *total_points); -NMG_EXPORT extern void nmg_close_shell(struct shell *s, struct bu_list *vlfree, +RT_EXPORT extern void nmg_close_shell(struct shell *s, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern struct shell *nmg_dup_shell(struct shell *s, +RT_EXPORT extern struct shell *nmg_dup_shell(struct shell *s, long ***copy_tbl, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern struct edgeuse *nmg_pop_eu(struct bu_ptbl *stack); -NMG_EXPORT extern void nmg_reverse_radials(struct faceuse *fu, +RT_EXPORT extern struct edgeuse *nmg_pop_eu(struct bu_ptbl *stack); +RT_EXPORT extern void nmg_reverse_radials(struct faceuse *fu, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_reverse_face_and_radials(struct faceuse *fu, +RT_EXPORT extern void nmg_reverse_face_and_radials(struct faceuse *fu, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_shell_is_void(const struct shell *s); -NMG_EXPORT extern void nmg_propagate_normals(struct faceuse *fu_in, +RT_EXPORT extern int nmg_shell_is_void(const struct shell *s); +RT_EXPORT extern void nmg_propagate_normals(struct faceuse *fu_in, long *flags, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_connect_same_fu_orients(struct shell *s); -NMG_EXPORT extern void nmg_fix_decomposed_shell_normals(struct shell *s, +RT_EXPORT extern void nmg_connect_same_fu_orients(struct shell *s); +RT_EXPORT extern void nmg_fix_decomposed_shell_normals(struct shell *s, const struct bn_tol *tol); -NMG_EXPORT extern struct model *nmg_mk_model_from_region(struct nmgregion *r, +RT_EXPORT extern struct model *nmg_mk_model_from_region(struct nmgregion *r, int reindex, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_fix_normals(struct shell *s_orig, +RT_EXPORT extern void nmg_fix_normals(struct shell *s_orig, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_break_long_edges(struct shell *s, +RT_EXPORT extern int nmg_break_long_edges(struct shell *s, const struct bn_tol *tol); -NMG_EXPORT extern struct faceuse *nmg_mk_new_face_from_loop(struct loopuse *lu); -NMG_EXPORT extern int nmg_split_loops_into_faces(uint32_t *magic_p, struct bu_list *vlfree, +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, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_decompose_shell(struct shell *s, struct bu_list *vlfree, +RT_EXPORT extern int nmg_decompose_shell(struct shell *s, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_stash_model_to_file(const char *filename, +RT_EXPORT extern void nmg_stash_model_to_file(const char *filename, const struct model *m, const char *title); -NMG_EXPORT extern int nmg_unbreak_region_edges(uint32_t *magic_p, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_vlist_to_eu(struct bu_list *vlist, +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); -NMG_EXPORT extern int nmg_mv_shell_to_region(struct shell *s, +RT_EXPORT extern int nmg_mv_shell_to_region(struct shell *s, struct nmgregion *r); -NMG_EXPORT extern int nmg_find_isect_faces(const struct vertex *new_v, +RT_EXPORT extern int nmg_find_isect_faces(const struct vertex *new_v, struct bu_ptbl *faces, int *free_edges, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_simple_vertex_solve(struct vertex *new_v, +RT_EXPORT extern int nmg_simple_vertex_solve(struct vertex *new_v, const struct bu_ptbl *faces, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_ck_vert_on_fus(const struct vertex *v, +RT_EXPORT extern int nmg_ck_vert_on_fus(const struct vertex *v, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_make_faces_at_vert(struct vertex *new_v, +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); -NMG_EXPORT extern void nmg_kill_cracks_at_vertex(const struct vertex *vp); -NMG_EXPORT extern int nmg_complex_vertex_solve(struct vertex *new_v, +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); -NMG_EXPORT extern int nmg_bad_face_normals(const struct shell *s, +RT_EXPORT extern int nmg_bad_face_normals(const struct shell *s, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_faces_are_radial(const struct faceuse *fu1, +RT_EXPORT extern int nmg_faces_are_radial(const struct faceuse *fu1, const struct faceuse *fu2); -NMG_EXPORT extern int nmg_move_edge_thru_pt(struct edgeuse *mv_eu, +RT_EXPORT extern int nmg_move_edge_thru_pt(struct edgeuse *mv_eu, const point_t pt, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_vlist_to_wire_edges(struct shell *s, +RT_EXPORT extern void nmg_vlist_to_wire_edges(struct shell *s, const struct bu_list *vhead); -NMG_EXPORT extern void nmg_follow_free_edges_to_vertex(const struct vertex *vpa, +RT_EXPORT extern void nmg_follow_free_edges_to_vertex(const struct vertex *vpa, const struct vertex *vpb, struct bu_ptbl *bad_verts, const struct shell *s, const struct edgeuse *eu, struct bu_ptbl *verts, int *found); -NMG_EXPORT extern void nmg_glue_face_in_shell(const struct faceuse *fu, +RT_EXPORT extern void nmg_glue_face_in_shell(const struct faceuse *fu, struct shell *s, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_open_shells_connect(struct shell *dst, +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); -NMG_EXPORT extern int nmg_in_vert(struct vertex *new_v, +RT_EXPORT extern int nmg_in_vert(struct vertex *new_v, const int approximate, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_mirror_model(struct model *m, struct bu_list *vlfree); -NMG_EXPORT extern int nmg_kill_cracks(struct shell *s); -NMG_EXPORT extern int nmg_kill_zero_length_edgeuses(struct model *m); -NMG_EXPORT extern void nmg_make_faces_within_tol(struct shell *s, +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); -NMG_EXPORT extern void nmg_intersect_loops_self(struct shell *s, +RT_EXPORT extern void nmg_intersect_loops_self(struct shell *s, const struct bn_tol *tol); -NMG_EXPORT extern struct edge_g_cnurb *nmg_join_cnurbs(struct bu_list *crv_head); -NMG_EXPORT extern struct edge_g_cnurb *nmg_arc2d_to_cnurb(point_t i_center, +RT_EXPORT extern struct edge_g_cnurb *nmg_join_cnurbs(struct bu_list *crv_head); +RT_EXPORT extern struct edge_g_cnurb *nmg_arc2d_to_cnurb(point_t i_center, point_t i_start, point_t i_end, int point_type, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_break_edge_at_verts(struct edge *e, +RT_EXPORT extern int nmg_break_edge_at_verts(struct edge *e, struct bu_ptbl *verts, const struct bn_tol *tol); -NMG_EXPORT extern fastf_t nmg_loop_plane_area(const struct loopuse *lu, +RT_EXPORT extern fastf_t nmg_loop_plane_area(const struct loopuse *lu, plane_t pl); -NMG_EXPORT extern int nmg_break_edges(uint32_t *magic_p, struct bu_list *vlfree, +RT_EXPORT extern int nmg_break_edges(uint32_t *magic_p, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_lu_is_convex(struct loopuse *lu, +RT_EXPORT extern int nmg_lu_is_convex(struct loopuse *lu, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_simplify_shell_edges(struct shell *s, +RT_EXPORT extern int nmg_simplify_shell_edges(struct shell *s, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_edge_collapse(struct model *m, +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, struct bu_list *vlfree); /* From nmg_copy.c */ -NMG_EXPORT extern struct model *nmg_clone_model(const struct model *original); +RT_EXPORT extern struct model *nmg_clone_model(const struct model *original); /* From nmg_tri.c */ -NMG_EXPORT extern void nmg_triangulate_shell(struct shell *s, +RT_EXPORT extern void nmg_triangulate_shell(struct shell *s, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_triangulate_model(struct model *m, +RT_EXPORT extern void nmg_triangulate_model(struct model *m, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_triangulate_fu(struct faceuse *fu, +RT_EXPORT extern int nmg_triangulate_fu(struct faceuse *fu, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_dump_model(struct model *m); +RT_EXPORT extern void nmg_dump_model(struct model *m); /* nmg_manif.c */ -NMG_EXPORT extern int nmg_dangling_face(const struct faceuse *fu, +RT_EXPORT extern int nmg_dangling_face(const struct faceuse *fu, const char *manifolds); /* static paint_face */ /* static set_edge_sub_manifold */ /* static set_loop_sub_manifold */ /* static set_face_sub_manifold */ -NMG_EXPORT extern char *nmg_shell_manifolds(struct shell *sp, +RT_EXPORT extern char *nmg_shell_manifolds(struct shell *sp, char *tbl); -NMG_EXPORT extern char *nmg_manifolds(struct model *m); +RT_EXPORT extern char *nmg_manifolds(struct model *m); /* From nmg_fuse.c */ -NMG_EXPORT extern int nmg_is_common_bigloop(const struct face *f1, +RT_EXPORT extern int nmg_is_common_bigloop(const struct face *f1, const struct face *f2); -NMG_EXPORT extern void nmg_region_v_unique(struct nmgregion *r1, struct bu_list *vlfree, +RT_EXPORT extern void nmg_region_v_unique(struct nmgregion *r1, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_ptbl_vfuse(struct bu_ptbl *t, +RT_EXPORT extern int nmg_ptbl_vfuse(struct bu_ptbl *t, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_region_both_vfuse(struct bu_ptbl *t1, +RT_EXPORT extern int nmg_region_both_vfuse(struct bu_ptbl *t1, struct bu_ptbl *t2, const struct bn_tol *tol); /* nmg_two_region_vertex_fuse replaced with nmg_vertex_fuse */ -NMG_EXPORT extern int nmg_vertex_fuse(const uint32_t *magic_p,struct bu_list *vlfree, +RT_EXPORT extern int nmg_vertex_fuse(const uint32_t *magic_p,struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_cnurb_is_linear(const struct edge_g_cnurb *cnrb); -NMG_EXPORT extern int nmg_snurb_is_planar(const struct face_g_snurb *srf, +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, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_eval_linear_trim_curve(const struct face_g_snurb *snrb, +RT_EXPORT extern void nmg_eval_linear_trim_curve(const struct face_g_snurb *snrb, const fastf_t uvw[3], point_t xyz); -NMG_EXPORT extern void nmg_eval_trim_curve(const struct edge_g_cnurb *cnrb, +RT_EXPORT extern void nmg_eval_trim_curve(const struct edge_g_cnurb *cnrb, const struct face_g_snurb *snrb, const fastf_t t, point_t xyz); /* nmg_split_trim */ -NMG_EXPORT extern void nmg_eval_trim_to_tol(const struct edge_g_cnurb *cnrb, +RT_EXPORT extern void nmg_eval_trim_to_tol(const struct edge_g_cnurb *cnrb, const struct face_g_snurb *snrb, const fastf_t t0, const fastf_t t1, struct bu_list *head, const struct bn_tol *tol); /* nmg_split_linear_trim */ -NMG_EXPORT extern void nmg_eval_linear_trim_to_tol(const struct edge_g_cnurb *cnrb, +RT_EXPORT extern void nmg_eval_linear_trim_to_tol(const struct edge_g_cnurb *cnrb, const struct face_g_snurb *snrb, const fastf_t uvw1[3], const fastf_t uvw2[3], struct bu_list *head, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_cnurb_lseg_coincident(const struct edgeuse *eu1, +RT_EXPORT extern int nmg_cnurb_lseg_coincident(const struct edgeuse *eu1, const struct edge_g_cnurb *cnrb, const struct face_g_snurb *snrb, const point_t pt1, const point_t pt2, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_cnurb_is_on_crv(const struct edgeuse *eu, +RT_EXPORT extern int nmg_cnurb_is_on_crv(const struct edgeuse *eu, const struct edge_g_cnurb *cnrb, const struct face_g_snurb *snrb, const struct bu_list *head, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_edge_fuse(const uint32_t *magic_p,struct bu_list *vlfree, +RT_EXPORT extern int nmg_edge_fuse(const uint32_t *magic_p,struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_edge_g_fuse(const uint32_t *magic_p,struct bu_list *vlfree, +RT_EXPORT extern int nmg_edge_g_fuse(const uint32_t *magic_p,struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_ck_fu_verts(struct faceuse *fu1, +RT_EXPORT extern int nmg_ck_fu_verts(struct faceuse *fu1, struct face *f2, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_ck_fg_verts(struct faceuse *fu1, +RT_EXPORT extern int nmg_ck_fg_verts(struct faceuse *fu1, struct face *f2, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_two_face_fuse(struct face *f1, +RT_EXPORT extern int nmg_two_face_fuse(struct face *f1, struct face *f2, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_model_face_fuse(struct model *m,struct bu_list *vlfree, +RT_EXPORT extern int nmg_model_face_fuse(struct model *m,struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_break_all_es_on_v(uint32_t *magic_p, +RT_EXPORT extern int nmg_break_all_es_on_v(uint32_t *magic_p, struct vertex *v,struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_break_e_on_v(const uint32_t *magic_p,struct bu_list *vlfree, +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 */ -NMG_EXPORT extern int nmg_model_break_e_on_v(const uint32_t *magic_p, +RT_EXPORT extern int nmg_model_break_e_on_v(const uint32_t *magic_p, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_model_fuse(struct model *m, +RT_EXPORT extern int nmg_model_fuse(struct model *m, struct bu_list *vlfree, const struct bn_tol *tol); /* radial routines */ -NMG_EXPORT extern void nmg_radial_sorted_list_insert(struct bu_list *hd, +RT_EXPORT extern void nmg_radial_sorted_list_insert(struct bu_list *hd, struct nmg_radial *rad); -NMG_EXPORT extern void nmg_radial_verify_pointers(const struct bu_list *hd, +RT_EXPORT extern void nmg_radial_verify_pointers(const struct bu_list *hd, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_radial_verify_monotone(const struct bu_list *hd, +RT_EXPORT extern void nmg_radial_verify_monotone(const struct bu_list *hd, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_insure_radial_list_is_increasing(struct bu_list *hd, +RT_EXPORT extern void nmg_insure_radial_list_is_increasing(struct bu_list *hd, fastf_t amin, fastf_t amax); -NMG_EXPORT extern void nmg_radial_build_list(struct bu_list *hd, +RT_EXPORT extern void nmg_radial_build_list(struct bu_list *hd, struct bu_ptbl *shell_tbl, int existing, struct edgeuse *eu, @@ -1938,145 +1926,145 @@ const vect_t yvec, const vect_t zvec, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_radial_merge_lists(struct bu_list *dest, +RT_EXPORT extern void nmg_radial_merge_lists(struct bu_list *dest, struct bu_list *src, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_is_crack_outie(const struct edgeuse *eu, +RT_EXPORT extern int nmg_is_crack_outie(const struct edgeuse *eu, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern struct nmg_radial *nmg_find_radial_eu(const struct bu_list *hd, +RT_EXPORT extern struct nmg_radial *nmg_find_radial_eu(const struct bu_list *hd, const struct edgeuse *eu); -NMG_EXPORT extern const struct edgeuse *nmg_find_next_use_of_2e_in_lu(const struct edgeuse *eu, +RT_EXPORT extern const struct edgeuse *nmg_find_next_use_of_2e_in_lu(const struct edgeuse *eu, const struct edge *e1, const struct edge *e2); -NMG_EXPORT extern void nmg_radial_mark_cracks(struct bu_list *hd, +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); -NMG_EXPORT extern struct nmg_radial *nmg_radial_find_an_original(const struct bu_list *hd, +RT_EXPORT extern struct nmg_radial *nmg_radial_find_an_original(const struct bu_list *hd, const struct shell *s, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_radial_mark_flips(struct bu_list *hd, +RT_EXPORT extern int nmg_radial_mark_flips(struct bu_list *hd, const struct shell *s, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_radial_check_parity(const struct bu_list *hd, +RT_EXPORT extern int nmg_radial_check_parity(const struct bu_list *hd, const struct bu_ptbl *shells, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_radial_implement_decisions(struct bu_list *hd, +RT_EXPORT extern void nmg_radial_implement_decisions(struct bu_list *hd, const struct bn_tol *tol, struct edgeuse *eu1, vect_t xvec, vect_t yvec, vect_t zvec); -NMG_EXPORT extern void nmg_pr_radial(const char *title, +RT_EXPORT extern void nmg_pr_radial(const char *title, const struct nmg_radial *rad); -NMG_EXPORT extern void nmg_pr_radial_list(const struct bu_list *hd, +RT_EXPORT extern void nmg_pr_radial_list(const struct bu_list *hd, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_do_radial_flips(struct bu_list *hd); -NMG_EXPORT extern void nmg_do_radial_join(struct bu_list *hd, +RT_EXPORT extern void nmg_do_radial_flips(struct bu_list *hd); +RT_EXPORT extern void nmg_do_radial_join(struct bu_list *hd, struct edgeuse *eu1ref, vect_t xvec, vect_t yvec, vect_t zvec, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_radial_join_eu_NEW(struct edgeuse *eu1, +RT_EXPORT extern void nmg_radial_join_eu_NEW(struct edgeuse *eu1, struct edgeuse *eu2, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_radial_exchange_marked(struct bu_list *hd, +RT_EXPORT extern void nmg_radial_exchange_marked(struct bu_list *hd, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_s_radial_harmonize(struct shell *s, +RT_EXPORT extern void nmg_s_radial_harmonize(struct shell *s, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_s_radial_check(struct shell *s, +RT_EXPORT extern void nmg_s_radial_check(struct shell *s, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_r_radial_check(const struct nmgregion *r, +RT_EXPORT extern void nmg_r_radial_check(const struct nmgregion *r, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern struct edge_g_lseg *nmg_pick_best_edge_g(struct edgeuse *eu1, +RT_EXPORT extern struct edge_g_lseg *nmg_pick_best_edge_g(struct edgeuse *eu1, struct edgeuse *eu2, const struct bn_tol *tol); /* nmg_visit.c */ -NMG_EXPORT extern void nmg_visit_vertex(struct vertex *v, +RT_EXPORT extern void nmg_visit_vertex(struct vertex *v, const struct nmg_visit_handlers *htab, void * state); -NMG_EXPORT extern void nmg_visit_vertexuse(struct vertexuse *vu, +RT_EXPORT extern void nmg_visit_vertexuse(struct vertexuse *vu, const struct nmg_visit_handlers *htab, void * state); -NMG_EXPORT extern void nmg_visit_edge(struct edge *e, +RT_EXPORT extern void nmg_visit_edge(struct edge *e, const struct nmg_visit_handlers *htab, void * state); -NMG_EXPORT extern void nmg_visit_edgeuse(struct edgeuse *eu, +RT_EXPORT extern void nmg_visit_edgeuse(struct edgeuse *eu, const struct nmg_visit_handlers *htab, void * state); -NMG_EXPORT extern void nmg_visit_loop(struct loop *l, +RT_EXPORT extern void nmg_visit_loop(struct loop *l, const struct nmg_visit_handlers *htab, void * state); -NMG_EXPORT extern void nmg_visit_loopuse(struct loopuse *lu, +RT_EXPORT extern void nmg_visit_loopuse(struct loopuse *lu, const struct nmg_visit_handlers *htab, void * state); -NMG_EXPORT extern void nmg_visit_face(struct face *f, +RT_EXPORT extern void nmg_visit_face(struct face *f, const struct nmg_visit_handlers *htab, void * state); -NMG_EXPORT extern void nmg_visit_faceuse(struct faceuse *fu, +RT_EXPORT extern void nmg_visit_faceuse(struct faceuse *fu, const struct nmg_visit_handlers *htab, void * state, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_visit_shell(struct shell *s, +RT_EXPORT extern void nmg_visit_shell(struct shell *s, const struct nmg_visit_handlers *htab, void * state, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_visit_region(struct nmgregion *r, +RT_EXPORT extern void nmg_visit_region(struct nmgregion *r, const struct nmg_visit_handlers *htab, void * state, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_visit_model(struct model *model, +RT_EXPORT extern void nmg_visit_model(struct model *model, const struct nmg_visit_handlers *htab, void * state, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_visit(const uint32_t *magicp, +RT_EXPORT extern void nmg_visit(const uint32_t *magicp, const struct nmg_visit_handlers *htab, void * state, struct bu_list *vlfree); /* nmg_class.c */ -NMG_EXPORT extern int nmg_classify_pt_loop(const point_t pt, +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); -NMG_EXPORT extern int nmg_classify_s_vs_s(struct shell *s, +RT_EXPORT extern int nmg_classify_s_vs_s(struct shell *s, struct shell *s2, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_classify_lu_lu(const struct loopuse *lu1, +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); -NMG_EXPORT extern int nmg_class_pt_f(const point_t pt, +RT_EXPORT extern int nmg_class_pt_f(const point_t pt, const struct faceuse *fu, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_class_pt_s(const point_t pt, +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 */ -NMG_EXPORT extern int nmg_eu_is_part_of_crack(const struct edgeuse *eu); +RT_EXPORT extern int nmg_eu_is_part_of_crack(const struct edgeuse *eu); -NMG_EXPORT extern int nmg_class_pt_lu_except(point_t pt, +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); -NMG_EXPORT extern int nmg_class_pt_fu_except(const point_t pt, +RT_EXPORT extern int nmg_class_pt_fu_except(const point_t pt, const struct faceuse *fu, const struct loopuse *ignore_lu, void (*eu_func)(struct edgeuse *, point_t, const char *), @@ -2088,93 +2076,93 @@ const struct bn_tol *tol); /* From nmg_plot.c */ -NMG_EXPORT extern void nmg_pl_shell(FILE *fp, +RT_EXPORT extern void nmg_pl_shell(FILE *fp, const struct shell *s, int fancy, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_vu_to_vlist(struct bu_list *vhead, +RT_EXPORT extern void nmg_vu_to_vlist(struct bu_list *vhead, const struct vertexuse *vu, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_eu_to_vlist(struct bu_list *vhead, +RT_EXPORT extern void nmg_eu_to_vlist(struct bu_list *vhead, const struct bu_list *eu_hd, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_lu_to_vlist(struct bu_list *vhead, +RT_EXPORT extern void nmg_lu_to_vlist(struct bu_list *vhead, const struct loopuse *lu, int poly_markers, const vectp_t norm, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_snurb_fu_to_vlist(struct bu_list *vhead, +RT_EXPORT extern void nmg_snurb_fu_to_vlist(struct bu_list *vhead, const struct faceuse *fu, int poly_markers, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_s_to_vlist(struct bu_list *vhead, +RT_EXPORT extern void nmg_s_to_vlist(struct bu_list *vhead, const struct shell *s, int poly_markers, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_r_to_vlist(struct bu_list *vhead, +RT_EXPORT extern void nmg_r_to_vlist(struct bu_list *vhead, const struct nmgregion *r, int poly_markers, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_m_to_vlist(struct bu_list *vhead, +RT_EXPORT extern void nmg_m_to_vlist(struct bu_list *vhead, struct model *m, int poly_markers, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_offset_eu_vert(point_t base, +RT_EXPORT extern void nmg_offset_eu_vert(point_t base, const struct edgeuse *eu, const vect_t face_normal, int tip); /* plot */ -NMG_EXPORT extern void nmg_pl_v(FILE *fp, +RT_EXPORT extern void nmg_pl_v(FILE *fp, const struct vertex *v, long *b); -NMG_EXPORT extern void nmg_pl_e(FILE *fp, +RT_EXPORT extern void nmg_pl_e(FILE *fp, const struct edge *e, long *b, int red, int green, int blue); -NMG_EXPORT extern void nmg_pl_eu(FILE *fp, +RT_EXPORT extern void nmg_pl_eu(FILE *fp, const struct edgeuse *eu, long *b, int red, int green, int blue); -NMG_EXPORT extern void nmg_pl_lu(FILE *fp, +RT_EXPORT extern void nmg_pl_lu(FILE *fp, const struct loopuse *fu, long *b, int red, int green, int blue, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_pl_fu(FILE *fp, +RT_EXPORT extern void nmg_pl_fu(FILE *fp, const struct faceuse *fu, long *b, int red, int green, int blue, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_pl_s(FILE *fp, +RT_EXPORT extern void nmg_pl_s(FILE *fp, const struct shell *s, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_pl_r(FILE *fp, +RT_EXPORT extern void nmg_pl_r(FILE *fp, const struct nmgregion *r, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_pl_m(FILE *fp, +RT_EXPORT extern void nmg_pl_m(FILE *fp, const struct model *m, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_vlblock_v(struct bn_vlblock *vbp, +RT_EXPORT extern void nmg_vlblock_v(struct bn_vlblock *vbp, const struct vertex *v, long *tab, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_vlblock_e(struct bn_vlblock *vbp, +RT_EXPORT extern void nmg_vlblock_e(struct bn_vlblock *vbp, const struct edge *e, long *tab, int red, int green, int blue, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_vlblock_eu(struct bn_vlblock *vbp, +RT_EXPORT extern void nmg_vlblock_eu(struct bn_vlblock *vbp, const struct edgeuse *eu, long *tab, int red, @@ -2182,7 +2170,7 @@ int blue, int fancy, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_vlblock_euleft(struct bu_list *vh, +RT_EXPORT extern void nmg_vlblock_euleft(struct bu_list *vh, const struct edgeuse *eu, const point_t center, const mat_t mat, @@ -2191,13 +2179,13 @@ double len, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_vlblock_around_eu(struct bn_vlblock *vbp, +RT_EXPORT extern void nmg_vlblock_around_eu(struct bn_vlblock *vbp, const struct edgeuse *arg_eu, long *tab, int fancy, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_vlblock_lu(struct bn_vlblock *vbp, +RT_EXPORT extern void nmg_vlblock_lu(struct bn_vlblock *vbp, const struct loopuse *lu, long *tab, int red, @@ -2205,76 +2193,76 @@ int blue, int fancy, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_vlblock_fu(struct bn_vlblock *vbp, +RT_EXPORT extern void nmg_vlblock_fu(struct bn_vlblock *vbp, const struct faceuse *fu, long *tab, int fancy, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_vlblock_s(struct bn_vlblock *vbp, +RT_EXPORT extern void nmg_vlblock_s(struct bn_vlblock *vbp, const struct shell *s, int fancy, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_vlblock_r(struct bn_vlblock *vbp, +RT_EXPORT extern void nmg_vlblock_r(struct bn_vlblock *vbp, const struct nmgregion *r, int fancy, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_vlblock_m(struct bn_vlblock *vbp, +RT_EXPORT extern void nmg_vlblock_m(struct bn_vlblock *vbp, const struct model *m, int fancy, struct bu_list *vlfree); /* visualization helper routines */ -NMG_EXPORT extern void nmg_pl_edges_in_2_shells(struct bn_vlblock *vbp, +RT_EXPORT extern void nmg_pl_edges_in_2_shells(struct bn_vlblock *vbp, long *b, const struct edgeuse *eu, int fancy, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_pl_isect(const char *filename, +RT_EXPORT extern void nmg_pl_isect(const char *filename, const struct shell *s, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_pl_comb_fu(int num1, +RT_EXPORT extern void nmg_pl_comb_fu(int num1, int num2, const struct faceuse *fu1, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_pl_2fu(const char *str, +RT_EXPORT extern void nmg_pl_2fu(const char *str, const struct faceuse *fu1, const struct faceuse *fu2, int show_mates, struct bu_list *vlfree); /* graphical display of classifier results */ -NMG_EXPORT extern void nmg_show_broken_classifier_stuff(uint32_t *p, +RT_EXPORT extern void nmg_show_broken_classifier_stuff(uint32_t *p, char **classlist, int all_new, int fancy, const char *a_string, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_face_plot(const struct faceuse *fu, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_2face_plot(const struct faceuse *fu1, +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, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_face_lu_plot(const struct loopuse *lu, +RT_EXPORT extern void nmg_face_lu_plot(const struct loopuse *lu, const struct vertexuse *vu1, const struct vertexuse *vu2, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_plot_lu_ray(const struct loopuse *lu, +RT_EXPORT extern void nmg_plot_lu_ray(const struct loopuse *lu, const struct vertexuse *vu1, const struct vertexuse *vu2, const vect_t left, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_plot_ray_face(const char *fname, +RT_EXPORT extern void nmg_plot_ray_face(const char *fname, point_t pt, const vect_t dir, const struct faceuse *fu, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_plot_lu_around_eu(const char *prefix, +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); -NMG_EXPORT extern int nmg_snurb_to_vlist(struct bu_list *vhead, +RT_EXPORT extern int nmg_snurb_to_vlist(struct bu_list *vhead, const struct face_g_snurb *fg, int n_interior, struct bu_list *vlfree); -NMG_EXPORT extern void nmg_cnurb_to_vlist(struct bu_list *vhead, +RT_EXPORT extern void nmg_cnurb_to_vlist(struct bu_list *vhead, const struct edgeuse *eu, int n_interior, int cmd, @@ -2283,43 +2271,43 @@ /** * edge use distance tolerance */ -NMG_EXPORT extern double nmg_eue_dist; +RT_EXPORT extern double nmg_eue_dist; /* from nmg_mesh.c */ -NMG_EXPORT extern int nmg_mesh_two_faces(struct faceuse *fu1, +RT_EXPORT extern int nmg_mesh_two_faces(struct faceuse *fu1, struct faceuse *fu2, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_radial_join_eu(struct edgeuse *eu1, +RT_EXPORT extern void nmg_radial_join_eu(struct edgeuse *eu1, struct edgeuse *eu2, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_mesh_faces(struct faceuse *fu1, +RT_EXPORT extern void nmg_mesh_faces(struct faceuse *fu1, struct faceuse *fu2, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_mesh_face_shell(struct faceuse *fu1, +RT_EXPORT extern int nmg_mesh_face_shell(struct faceuse *fu1, struct shell *s, const struct bn_tol *tol); -NMG_EXPORT extern int nmg_mesh_shell_shell(struct shell *s1, +RT_EXPORT extern int nmg_mesh_shell_shell(struct shell *s1, struct shell *s2, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern double nmg_measure_fu_angle(const struct edgeuse *eu, +RT_EXPORT extern double nmg_measure_fu_angle(const struct edgeuse *eu, const vect_t xvec, const vect_t yvec, const vect_t zvec); /* from nmg_bool.c */ -NMG_EXPORT extern struct nmgregion *nmg_do_bool(struct nmgregion *s1, +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); -NMG_EXPORT extern int nmg_two_region_vertex_fuse(struct nmgregion *r1, +RT_EXPORT extern int nmg_two_region_vertex_fuse(struct nmgregion *r1, struct nmgregion *r2, const struct bn_tol *tol); /* from nmg_class.c */ -NMG_EXPORT extern void nmg_class_shells(struct shell *sA, +RT_EXPORT extern void nmg_class_shells(struct shell *sA, struct shell *sB, char **classlist, struct bu_list *vlfree, @@ -2327,21 +2315,21 @@ /* from nmg_fcut.c */ /* static void ptbl_vsort */ -NMG_EXPORT extern int nmg_ck_vu_ptbl(struct bu_ptbl *p, +RT_EXPORT extern int nmg_ck_vu_ptbl(struct bu_ptbl *p, struct faceuse *fu); -NMG_EXPORT extern double nmg_vu_angle_measure(struct vertexuse *vu, +RT_EXPORT extern double nmg_vu_angle_measure(struct vertexuse *vu, vect_t x_dir, vect_t y_dir, int assessment, int in); -NMG_EXPORT extern int nmg_wedge_class(int ass, /* assessment of two edges forming wedge */ +RT_EXPORT extern int nmg_wedge_class(int ass, /* assessment of two edges forming wedge */ double a, double b); -NMG_EXPORT extern void nmg_sanitize_fu(struct faceuse *fu); -NMG_EXPORT extern void nmg_unlist_v(struct bu_ptbl *b, +RT_EXPORT extern void nmg_sanitize_fu(struct faceuse *fu); +RT_EXPORT extern void nmg_unlist_v(struct bu_ptbl *b, fastf_t *mag, struct vertex *v); -NMG_EXPORT extern struct edge_g_lseg *nmg_face_cutjoin(struct bu_ptbl *b1, +RT_EXPORT extern struct edge_g_lseg *nmg_face_cutjoin(struct bu_ptbl *b1, struct bu_ptbl *b2, fastf_t *mag1, fastf_t *mag2, @@ -2352,13 +2340,13 @@ struct edge_g_lseg *eg, struct bu_list *vlfree, const struct bn_tol *tol); -NMG_EXPORT extern void nmg_fcut_face_2d(struct bu_ptbl *vu_list, +RT_EXPORT extern void nmg_fcut_face_2d(struct bu_ptbl *vu_list, fastf_t *mag, struct faceuse *fu1, struct faceuse *fu2, struct bu_list *vlfree, struct bn_tol *tol); -NMG_EXPORT extern int nmg_insert_vu_if_on_edge(struct vertexuse *vu1, +RT_EXPORT extern int nmg_insert_vu_if_on_edge(struct vertexuse *vu1, struct vertexuse *vu2, struct edgeuse *new_eu, struct bn_tol *tol); @@ -2367,10 +2355,10 @@ #define nmg_mev(_v, _u) nmg_me((_v), (struct vertex *)NULL, (_u)) /* From nmg_eval.c */ -NMG_EXPORT extern void nmg_ck_lu_orientation(struct loopuse *lu, +RT_EXPORT extern void nmg_ck_lu_orientation(struct loopuse *lu, const struct bn_tol *tolp); -NMG_EXPORT extern const char *nmg_class_name(int class_no); -NMG_EXPORT extern void nmg_evaluate_boolean(struct shell *sA, +RT_EXPORT extern const char *nmg_class_name(int class_no); +RT_EXPORT extern void nmg_evaluate_boolean(struct shell *sA, struct shell *sB, int op, char **classlist, @@ -2385,175 +2373,175 @@ /* nmg_eval_plot */ /* From nmg_ck.c */ -NMG_EXPORT extern void nmg_vvg(const struct vertex_g *vg); -NMG_EXPORT extern void nmg_vvertex(const struct vertex *v, +RT_EXPORT extern void nmg_vvg(const struct vertex_g *vg); +RT_EXPORT extern void nmg_vvertex(const struct vertex *v, const struct vertexuse *vup); -NMG_EXPORT extern void nmg_vvua(const uint32_t *vua); -NMG_EXPORT extern void nmg_vvu(const struct vertexuse *vu, +RT_EXPORT extern void nmg_vvua(const uint32_t *vua); +RT_EXPORT extern void nmg_vvu(const struct vertexuse *vu, const uint32_t *up_magic_p); -NMG_EXPORT extern void nmg_veg(const uint32_t *eg); -NMG_EXPORT extern void nmg_vedge(const struct edge *e, +RT_EXPORT extern void nmg_veg(const uint32_t *eg); +RT_EXPORT extern void nmg_vedge(const struct edge *e, const struct edgeuse *eup); -NMG_EXPORT extern void nmg_veu(const struct bu_list *hp, +RT_EXPORT extern void nmg_veu(const struct bu_list *hp, const uint32_t *up_magic_p); -NMG_EXPORT extern void nmg_vlg(const struct loop_g *lg); -NMG_EXPORT extern void nmg_vloop(const struct loop *l, +RT_EXPORT extern void nmg_vlg(const struct loop_g *lg); +RT_EXPORT extern void nmg_vloop(const struct loop *l, const struct loopuse *lup); -NMG_EXPORT extern void nmg_vlu(const struct bu_list *hp, +RT_EXPORT extern void nmg_vlu(const struct bu_list *hp, const uint32_t *up); -NMG_EXPORT extern void nmg_vfg(const struct face_g_plane *fg); -NMG_EXPORT extern void nmg_vface(const struct face *f, +RT_EXPORT extern void nmg_vfg(const struct face_g_plane *fg); +RT_EXPORT extern void nmg_vface(const struct face *f, const struct faceuse *fup); -NMG_EXPORT extern void nmg_vfu(const struct bu_list *hp, +RT_EXPORT extern void nmg_vfu(const struct bu_list *hp, const struct shell *s); -NMG_EXPORT extern void nmg_vsshell(const struct shell *s, +RT_EXPORT extern void nmg_vsshell(const struct shell *s, const struct nmgregion *r); -NMG_EXPORT extern void nmg_vshell(const struct bu_list *hp, +RT_EXPORT extern void nmg_vshell(const struct bu_list *hp, const struct nmgregion *r); -NMG_EXPORT extern void nmg_vregion(const struct bu_list *hp, +RT_EXPORT extern void nmg_vregion(const struct bu_list *hp, const struct model *m); -NMG_EXPORT extern void nmg_vmodel(const struct model *m); +RT_EXPORT extern void nmg_vmodel(const struct model *m); /* checking routines */ -NMG_EXPORT extern void nmg_ck_e(const struct edgeuse *eu, +RT_EXPORT extern void nmg_ck_e(const struct edgeuse *eu, const struct edge *e, const char *str); -NMG_EXPORT extern void nmg_ck_vu(const uint32_t *parent, +RT_EXPORT extern void nmg_ck_vu(const uint32_t *parent, const struct vertexuse *vu, const char *str); -NMG_EXPORT extern void nmg_ck_eu(const uint32_t *parent, +RT_EXPORT extern void nmg_ck_eu(const uint32_t *parent, const struct edgeuse *eu, const char *str); -NMG_EXPORT extern void nmg_ck_lg(const struct loop *l, +RT_EXPORT extern void nmg_ck_lg(const struct loop *l, const struct loop_g *lg, const char *str); -NMG_EXPORT extern void nmg_ck_l(const struct loopuse *lu, +RT_EXPORT extern void nmg_ck_l(const struct loopuse *lu, const struct loop *l, const char *str); -NMG_EXPORT extern void nmg_ck_lu(const uint32_t *parent, +RT_EXPORT extern void nmg_ck_lu(const uint32_t *parent, const struct loopuse *lu, const char *str); -NMG_EXPORT extern void nmg_ck_fg(const struct face *f, +RT_EXPORT extern void nmg_ck_fg(const struct face *f, const struct face_g_plane *fg, const char *str); -NMG_EXPORT extern void nmg_ck_f(const struct faceuse *fu, +RT_EXPORT extern void nmg_ck_f(const struct faceuse *fu, const struct face *f, const char *str); -NMG_EXPORT extern void nmg_ck_fu(const struct shell *s, +RT_EXPORT extern void nmg_ck_fu(const struct shell *s, const struct faceuse *fu, const char *str); @@ 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 brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits