[brlcad-commits] SF.net SVN: brlcad:[36734] brlcad/trunk/src/librt/primitives
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <br...@us...> - 2009-11-30 22:03:24
|
Revision: 36734 http://brlcad.svn.sourceforge.net/brlcad/?rev=36734&view=rev Author: brlcad Date: 2009-11-30 22:03:11 +0000 (Mon, 30 Nov 2009) Log Message: ----------- WHOOOSH! massive ws style indent comment consistency update. also includes dead code elimination and much static->HIDDEN on funcs. should be no logic changes. Modified Paths: -------------- brlcad/trunk/src/librt/primitives/arb8/arb8.c brlcad/trunk/src/librt/primitives/arb8/arb8_brep.cpp brlcad/trunk/src/librt/primitives/arb8/arb8_mirror.c brlcad/trunk/src/librt/primitives/arbn/arbn.c brlcad/trunk/src/librt/primitives/arbn/arbn_brep.cpp brlcad/trunk/src/librt/primitives/arbn/arbn_mirror.c brlcad/trunk/src/librt/primitives/ars/ars.c brlcad/trunk/src/librt/primitives/ars/ars_mirror.c brlcad/trunk/src/librt/primitives/bot/bot.c brlcad/trunk/src/librt/primitives/bot/bot_brep.cpp brlcad/trunk/src/librt/primitives/bot/bot_mirror.c brlcad/trunk/src/librt/primitives/bot/g_bot_include.c brlcad/trunk/src/librt/primitives/brep/brep.cpp brlcad/trunk/src/librt/primitives/brep/brep_debug.cpp brlcad/trunk/src/librt/primitives/cline/cline.c brlcad/trunk/src/librt/primitives/dsp/dsp.c brlcad/trunk/src/librt/primitives/dsp/dsp_brep.cpp brlcad/trunk/src/librt/primitives/dsp/dsp_mirror.c brlcad/trunk/src/librt/primitives/ebm/ebm.c brlcad/trunk/src/librt/primitives/ebm/ebm_brep.cpp brlcad/trunk/src/librt/primitives/ebm/ebm_mirror.c brlcad/trunk/src/librt/primitives/ehy/ehy.c brlcad/trunk/src/librt/primitives/ehy/ehy_brep.cpp brlcad/trunk/src/librt/primitives/ell/ell.c brlcad/trunk/src/librt/primitives/ell/ell_brep.cpp brlcad/trunk/src/librt/primitives/ell/ell_mirror.c brlcad/trunk/src/librt/primitives/epa/epa.c brlcad/trunk/src/librt/primitives/epa/epa_brep.cpp brlcad/trunk/src/librt/primitives/epa/epa_mirror.c brlcad/trunk/src/librt/primitives/eto/eto.c brlcad/trunk/src/librt/primitives/eto/eto_brep.cpp brlcad/trunk/src/librt/primitives/eto/eto_mirror.c brlcad/trunk/src/librt/primitives/extrude/extrude.c brlcad/trunk/src/librt/primitives/extrude/extrude_brep.cpp brlcad/trunk/src/librt/primitives/fixpt.h brlcad/trunk/src/librt/primitives/grip/grip.c brlcad/trunk/src/librt/primitives/grip/grip_mirror.c brlcad/trunk/src/librt/primitives/half/half.c brlcad/trunk/src/librt/primitives/half/half_mirror.c brlcad/trunk/src/librt/primitives/hf/hf.c brlcad/trunk/src/librt/primitives/hyp/hyp.c brlcad/trunk/src/librt/primitives/hyp/hyp_brep.cpp brlcad/trunk/src/librt/primitives/hyp/hyp_mirror.c brlcad/trunk/src/librt/primitives/metaball/metaball.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_brep.cpp 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_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_mirror.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_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 Modified: brlcad/trunk/src/librt/primitives/arb8/arb8.c =================================================================== --- brlcad/trunk/src/librt/primitives/arb8/arb8.c 2009-11-30 17:01:28 UTC (rev 36733) +++ brlcad/trunk/src/librt/primitives/arb8/arb8.c 2009-11-30 22:03:11 UTC (rev 36734) @@ -74,12 +74,14 @@ fastf_t arb_Vlen; /* length of V basis (for dv) */ }; + /* One of these for each face */ struct aface { fastf_t A[3]; /* "A" point */ plane_t peqn; /* Plane equation, unit normal */ }; + /* One of these for each ARB, custom allocated to size */ struct arb_specific { int arb_nmfaces; /* number of faces */ @@ -87,6 +89,7 @@ struct aface arb_face[4]; /* May really be up to [6] faces */ }; + /* These hold temp values for the face being prep'ed */ struct prep_arb { vect_t pa_center; /* center point */ @@ -101,6 +104,7 @@ int pa_doopt; /* compute pa_opt[] stuff */ }; + /* * Layout of arb in input record. * Points are listed in "clockwise" order, @@ -111,6 +115,8 @@ char *ai_title; int ai_sub[4]; }; + + static const struct arb_info rt_arb_info[6] = { { "1234", {3, 2, 1, 0} }, /* "bottom" face */ { "8765", {4, 5, 6, 7} }, /* "top" face */ @@ -133,6 +139,7 @@ { {'\0', '\0', '\0', '\0'}, 0, (char *)NULL, 0, BU_STRUCTPARSE_FUNC_NULL } }; + /* rt_arb_get_cgtype(), rt_arb_std_type(), and rt_arb_centroid() * stolen from mged/arbs.c */ #define NO 0 @@ -858,6 +865,7 @@ return(2); /* HIT */ } + #define SEG_MISS(SEG) (SEG).seg_stp=(struct soltab *) 0; @@ -1087,6 +1095,7 @@ bu_free((char *)arbp, "arb_specific"); } + #define ARB_FACE(valp, a, b, c, d) \ RT_ADD_VLIST(vhead, valp[a], BN_VLIST_LINE_MOVE); \ RT_ADD_VLIST(vhead, valp[b], BN_VLIST_LINE_DRAW); \ @@ -1518,6 +1527,7 @@ return(0); } + static const fastf_t rt_arb_uvw[5*3] = { 0, 0, 0, 1, 0, 0, @@ -1525,6 +1535,8 @@ 0, 1, 0, 0, 0, 0 }; + + static const int rt_arb_vert_index_scramble[4] = { 0, 1, 3, 2 }; @@ -1693,6 +1705,7 @@ return(0); } + /* --- General ARB8 utility routines --- */ /** @@ -1729,6 +1742,7 @@ return 0; /* success */ } + /* planes to define ARB vertices */ static const int rt_arb_planes[5][24] = { {0, 1, 3, 0, 1, 2, 0, 2, 3, 0, 1, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3}, /* ARB4 */ @@ -1738,6 +1752,7 @@ {0, 2, 4, 0, 3, 4, 0, 3, 5, 0, 2, 5, 1, 2, 4, 1, 3, 4, 1, 3, 5, 1, 2, 5}, /* ARB8 */ }; + /** * R T _ A R B _ 3 F A C E _ I N T E R S E C T * @@ -2129,6 +2144,7 @@ return(0); /* OK */ } + /** @} */ /* Modified: brlcad/trunk/src/librt/primitives/arb8/arb8_brep.cpp =================================================================== --- brlcad/trunk/src/librt/primitives/arb8/arb8_brep.cpp 2009-11-30 17:01:28 UTC (rev 36733) +++ brlcad/trunk/src/librt/primitives/arb8/arb8_brep.cpp 2009-11-30 22:03:11 UTC (rev 36734) @@ -35,6 +35,7 @@ extern void rt_nmg_brep(ON_Brep **bi, struct rt_db_internal *ip, const struct bn_tol *tol); } + /** * R T _ A R B 8 _ B R E P */ @@ -62,6 +63,7 @@ bu_free(tmp_internal, "free temporary rt_db_internal"); } + // Local Variables: // tab-width: 8 // mode: C++ Modified: brlcad/trunk/src/librt/primitives/arb8/arb8_mirror.c =================================================================== --- brlcad/trunk/src/librt/primitives/arb8/arb8_mirror.c 2009-11-30 17:01:28 UTC (rev 36733) +++ brlcad/trunk/src/librt/primitives/arb8/arb8_mirror.c 2009-11-30 22:03:11 UTC (rev 36734) @@ -93,6 +93,7 @@ return 0; } + /* * Local Variables: * tab-width: 8 Modified: brlcad/trunk/src/librt/primitives/arbn/arbn.c =================================================================== --- brlcad/trunk/src/librt/primitives/arbn/arbn.c 2009-11-30 17:01:28 UTC (rev 36733) +++ brlcad/trunk/src/librt/primitives/arbn/arbn.c 2009-11-30 22:03:11 UTC (rev 36734) @@ -431,11 +431,14 @@ int plane_no[3]; /* which planes intersect here */ struct vertex **vp; /* pointer to vertex struct pointer for NMG's */ }; + + struct arbn_edges { int v1_no, v2_no; /* index into arbn_pts for endpoints of edge */ }; + #define LOC(i, j) i*(aip->neqn)+j static void @@ -1214,6 +1217,7 @@ return(0); /* OK */ } + /** @} */ /* * Local Variables: Modified: brlcad/trunk/src/librt/primitives/arbn/arbn_brep.cpp =================================================================== --- brlcad/trunk/src/librt/primitives/arbn/arbn_brep.cpp 2009-11-30 17:01:28 UTC (rev 36733) +++ brlcad/trunk/src/librt/primitives/arbn/arbn_brep.cpp 2009-11-30 22:03:11 UTC (rev 36734) @@ -64,6 +64,7 @@ bu_free(tmp_internal, "free temporary rt_db_internal"); } + // Local Variables: // tab-width: 8 // mode: C++ Modified: brlcad/trunk/src/librt/primitives/arbn/arbn_mirror.c =================================================================== --- brlcad/trunk/src/librt/primitives/arbn/arbn_mirror.c 2009-11-30 17:01:28 UTC (rev 36733) +++ brlcad/trunk/src/librt/primitives/arbn/arbn_mirror.c 2009-11-30 22:03:11 UTC (rev 36734) @@ -110,6 +110,7 @@ return 0; } + /* * Local Variables: * tab-width: 8 Modified: brlcad/trunk/src/librt/primitives/ars/ars.c =================================================================== --- brlcad/trunk/src/librt/primitives/ars/ars.c 2009-11-30 17:01:28 UTC (rev 36733) +++ brlcad/trunk/src/librt/primitives/ars/ars.c 2009-11-30 22:03:11 UTC (rev 36734) @@ -70,6 +70,8 @@ { bu_bomb("rt_ars_free s/b rt_bot_free\n"); } + + int rt_ars_class(const struct soltab *stp, const vect_t min, @@ -1374,6 +1376,7 @@ return(0); /* OK */ } + /** @} */ /* * Local Variables: Modified: brlcad/trunk/src/librt/primitives/ars/ars_mirror.c =================================================================== --- brlcad/trunk/src/librt/primitives/ars/ars_mirror.c 2009-11-30 17:01:28 UTC (rev 36733) +++ brlcad/trunk/src/librt/primitives/ars/ars_mirror.c 2009-11-30 22:03:11 UTC (rev 36734) @@ -115,6 +115,7 @@ return 0; } + /* * Local Variables: * tab-width: 8 Modified: brlcad/trunk/src/librt/primitives/bot/bot.c =================================================================== --- brlcad/trunk/src/librt/primitives/bot/bot.c 2009-11-30 17:01:28 UTC (rev 36733) +++ brlcad/trunk/src/librt/primitives/bot/bot.c 2009-11-30 22:03:11 UTC (rev 36734) @@ -66,6 +66,7 @@ } \ } + /* forward declarations needed for the included routines below */ HIDDEN int rt_bot_makesegs( @@ -147,6 +148,7 @@ } } + int rt_botface(struct soltab *stp, struct bot_specific *bot, @@ -353,6 +355,7 @@ (void)rt_bot_makesegs(psp->htab.hits, psp->htab.end, psp->stp, &ap->a_ray, ap, seghead, psp); } + #define RT_BOT_SEG_MISS(SEG) (SEG).seg_stp=RT_SOLTAB_NULL @@ -1252,12 +1255,14 @@ ip->idb_ptr = GENPTR_NULL; /* sanity */ } + int rt_bot_tnurb(struct nmgregion **r, struct model *m, struct rt_db_internal *ip, const struct bn_tol *tol) { return(1); } + int rt_bot_xform(struct rt_db_internal *op, const fastf_t *mat, struct rt_db_internal *ip, const int free, struct db_i *dbip) { @@ -1334,6 +1339,7 @@ return(0); } + int rt_bot_find_v_nearest_pt2( const struct rt_bot_internal *bot, @@ -1364,6 +1370,7 @@ return(closest); } + int rt_bot_edge_in_list(const int v1, const int v2, const int edge_list[], const int edge_count) { @@ -1504,6 +1511,7 @@ return(0); } + static char *modes[]={ "ERROR: Unrecognized mode", "surf", @@ -1512,6 +1520,7 @@ "plate_nocos" }; + static char *orientation[]={ "ERROR: Unrecognized orientation", "no", @@ -1519,6 +1528,7 @@ "lh" }; + static char *los[]={ "center", "append" @@ -2321,6 +2331,7 @@ return BRLCAD_OK; } + int bot_check_vertex_indices(struct bu_vls *log, struct rt_bot_internal *bot) { @@ -2408,6 +2419,7 @@ return(count); } + int rt_bot_same_orientation(const int *a, const int *b) { @@ -2428,6 +2440,7 @@ return(0); } + int rt_bot_face_fuse(struct rt_bot_internal *bot) { @@ -2965,12 +2978,14 @@ return(0); } + struct bot_edge { int v; int use_count; struct bot_edge *next; }; + HIDDEN void delete_edge(int v1, int v2, struct bot_edge **edges) { @@ -3632,6 +3647,7 @@ return 1; } + int rt_bot_smooth(struct rt_bot_internal *bot, char *bot_name, struct db_i *dbip, fastf_t norm_tol_angle) { @@ -3836,6 +3852,7 @@ return 0; } + struct tri_edges { struct bu_list l; int edge_1[2]; Modified: brlcad/trunk/src/librt/primitives/bot/bot_brep.cpp =================================================================== --- brlcad/trunk/src/librt/primitives/bot/bot_brep.cpp 2009-11-30 17:01:28 UTC (rev 36733) +++ brlcad/trunk/src/librt/primitives/bot/bot_brep.cpp 2009-11-30 22:03:11 UTC (rev 36734) @@ -35,6 +35,7 @@ extern void rt_nmg_brep(ON_Brep **bi, struct rt_db_internal *ip, const struct bn_tol *tol); } + /** * R T _ B O T _ B R E P */ @@ -62,6 +63,7 @@ bu_free(tmp_internal, "free temporary rt_db_internal"); } + // Local Variables: // tab-width: 8 // mode: C++ Modified: brlcad/trunk/src/librt/primitives/bot/bot_mirror.c =================================================================== --- brlcad/trunk/src/librt/primitives/bot/bot_mirror.c 2009-11-30 17:01:28 UTC (rev 36733) +++ brlcad/trunk/src/librt/primitives/bot/bot_mirror.c 2009-11-30 22:03:11 UTC (rev 36734) @@ -118,6 +118,7 @@ return 0; } + /* * Local Variables: * tab-width: 8 Modified: brlcad/trunk/src/librt/primitives/bot/g_bot_include.c =================================================================== --- brlcad/trunk/src/librt/primitives/bot/g_bot_include.c 2009-11-30 17:01:28 UTC (rev 36733) +++ brlcad/trunk/src/librt/primitives/bot/g_bot_include.c 2009-11-30 22:03:11 UTC (rev 36734) @@ -110,6 +110,7 @@ return(3); /* OK */ } + /* * Do the prep to support pieces for a BOT/ARS */ @@ -214,6 +215,7 @@ } + /** * R T _ B O T _ P R E P * @@ -380,6 +382,7 @@ return 0; } + static int XGLUE(rt_bot_plate_segs_, TRI_TYPE)(struct hit *hits, int nhits, @@ -456,6 +459,7 @@ } + static int XGLUE(rt_bot_unoriented_segs_, TRI_TYPE)(struct hit *hits, int nhits, @@ -935,6 +939,7 @@ return(nhits); /* HIT */ } + /** * R T _ B O T _ S H O T * @@ -1037,6 +1042,7 @@ return rt_bot_makesegs(hits, nhits, stp, rp, ap, seghead, NULL); } + /** * R T _ B O T _ P I E C E _ S H O T * @@ -1198,6 +1204,7 @@ return psp->htab.end - starting_hits; } + /** * R T _ B O T _ N O R M * @@ -1265,6 +1272,7 @@ } } + /** * R T _ B O T _ F R E E */ @@ -1302,6 +1310,7 @@ bu_free((char *)bot, "bot_specific"); } + /** @} */ /* Modified: brlcad/trunk/src/librt/primitives/brep/brep.cpp =================================================================== --- brlcad/trunk/src/librt/primitives/brep/brep.cpp 2009-11-30 17:01:28 UTC (rev 36733) +++ brlcad/trunk/src/librt/primitives/brep/brep.cpp 2009-11-30 22:03:11 UTC (rev 36734) @@ -738,9 +738,12 @@ BREP_INTERSECT_OOB = -1, BREP_INTERSECT_TRIMMED = 0, BREP_INTERSECT_FOUND = 1 -} brep_intersect_reason_t; +} +brep_intersect_reason_t; + + HIDDEN const char* BREP_INTERSECT_REASON(brep_intersect_reason_t index) { @@ -1476,6 +1479,8 @@ uv[0] = sbv->m_u.Max(); } } + + #endif Modified: brlcad/trunk/src/librt/primitives/brep/brep_debug.cpp =================================================================== --- brlcad/trunk/src/librt/primitives/brep/brep_debug.cpp 2009-11-30 17:01:28 UTC (rev 36733) +++ brlcad/trunk/src/librt/primitives/brep/brep_debug.cpp 2009-11-30 22:03:11 UTC (rev 36734) @@ -76,7 +76,7 @@ static int pcount = 0; static FILE* plot = NULL; -static FILE* +HIDDEN FILE* plot_file() { if (plot == NULL) { @@ -90,7 +90,7 @@ } -static FILE* +HIDDEN FILE* plot_file(const char *pname) { if (plot != NULL) { @@ -179,7 +179,8 @@ ARB_FACE(pt, 1, 5, 6, 2); \ } -void plotsurfaceleafs(SurfaceTree* surf) { +void +plotsurfaceleafs(SurfaceTree* surf) { double min[3], max[3]; list<BBNode*> leaves; surf->getLeaves(leaves); @@ -220,7 +221,9 @@ } -void plotsurfaceleafs(SurfaceTree* surf, struct bn_vlblock *vbp, bool dim3d) { +void +plotsurfaceleafs(SurfaceTree* surf, struct bn_vlblock *vbp, bool dim3d) +{ register struct bu_list *vhead; double min[3], max[3]; list<BBNode*> leaves; @@ -255,7 +258,9 @@ } -void plottrimleafs(SurfaceTree* st, struct bn_vlblock *vbp, bool dim3d) { +void +plottrimleafs(SurfaceTree* st, struct bn_vlblock *vbp, bool dim3d) +{ register struct bu_list *vhead; double min[3], max[3]; list<BRNode*> leaves; @@ -291,7 +296,9 @@ } -void plotleaf3d(BBNode* bb) { +void +plotleaf3d(BBNode* bb) +{ double min[3], max[3]; double u, v; ON_2dPoint uv[2]; @@ -349,7 +356,9 @@ } -void plotleafuv(BBNode* bb) { +void +plotleafuv(BBNode* bb) +{ double min[3], max[3]; if (bb->m_trimmed) { @@ -372,7 +381,9 @@ } -void plottrim(ON_BrepFace &face, struct bn_vlblock *vbp, int plotres, bool dim3d) { +void +plottrim(ON_BrepFace &face, struct bn_vlblock *vbp, int plotres, bool dim3d) +{ register struct bu_list *vhead; const ON_Surface* surf = face.SurfaceOf(); double umin, umax; @@ -411,7 +422,9 @@ } -void plottrim2d(ON_BrepFace &face, struct bn_vlblock *vbp, int plotres) { +void +plottrim2d(ON_BrepFace &face, struct bn_vlblock *vbp, int plotres) +{ register struct bu_list *vhead; const ON_Surface* surf = face.SurfaceOf(); double umin, umax; @@ -448,7 +461,9 @@ } -void plotUVDomain2d(ON_BrepFace &face, struct bn_vlblock *vbp, int plotres) { +void +plotUVDomain2d(ON_BrepFace &face, struct bn_vlblock *vbp, int plotres) +{ register struct bu_list *vhead; const ON_Surface* surf = face.SurfaceOf(); double umin, umax, urange; @@ -494,7 +509,9 @@ } -void plottrim(ON_BrepTrim& trim, struct bn_vlblock *vbp, int plotres, bool dim3d) { +void +plottrim(ON_BrepTrim& trim, struct bn_vlblock *vbp, int plotres, bool dim3d) +{ register struct bu_list *vhead; ON_BrepFace *face= trim.Face(); const ON_Surface* surf = face->SurfaceOf(); @@ -529,7 +546,9 @@ } -void plottrimdirection(ON_BrepFace &face, struct bn_vlblock *vbp, int plotres) { +void +plottrimdirection(ON_BrepFace &face, struct bn_vlblock *vbp, int plotres) +{ register struct bu_list *vhead; const ON_Surface* surf = face.SurfaceOf(); double umin, umax; @@ -586,7 +605,9 @@ } -void plotsurface(ON_Surface &surf, struct bn_vlblock *vbp, int isocurveres, int gridres) { +void +plotsurface(ON_Surface &surf, struct bn_vlblock *vbp, int isocurveres, int gridres) +{ register struct bu_list *vhead; double umin, umax; double vmin, vmax; @@ -623,7 +644,9 @@ } -void plotsurfacenormals(ON_Surface &surf, struct bn_vlblock *vbp, int gridres) { +void +plotsurfacenormals(ON_Surface &surf, struct bn_vlblock *vbp, int gridres) +{ register struct bu_list *vhead; double umin, umax; double vmin, vmax; @@ -651,7 +674,9 @@ } -void plotcurve(ON_Curve &curve, struct bn_vlblock *vbp, int plotres) { +void +plotcurve(ON_Curve &curve, struct bn_vlblock *vbp, int plotres) +{ register struct bu_list *vhead; double umin, umax; double pt1[3], pt2[3]; @@ -698,7 +723,9 @@ } -void plottrim(const ON_Curve &curve, double from, double to) { +void +plottrim(const ON_Curve &curve, double from, double to) +{ point_t pt1, pt2; // XXX todo: dynamically sample the curve for (int i = 0; i <= 10000; i++) { @@ -712,7 +739,9 @@ } -void plottrim(ON_Curve &curve) { +void +plottrim(ON_Curve &curve) +{ point_t pt1, pt2; // XXX todo: dynamically sample the curve ON_Interval dom = curve.Domain(); @@ -781,7 +810,8 @@ } -int brep_face_info(struct brep_specific* bs, struct bu_vls *vls, int fi) +int +brep_face_info(struct brep_specific* bs, struct bu_vls *vls, int fi) { ON_wString s; ON_TextLog dump(s); Modified: brlcad/trunk/src/librt/primitives/cline/cline.c =================================================================== --- brlcad/trunk/src/librt/primitives/cline/cline.c 2009-11-30 17:01:28 UTC (rev 36733) +++ brlcad/trunk/src/librt/primitives/cline/cline.c 2009-11-30 22:03:11 UTC (rev 36734) @@ -24,7 +24,7 @@ * Intersect a ray with a FASTGEN4 CLINE element. * * Authors - - * John Anderson + * John Anderson * */ @@ -53,13 +53,14 @@ vect_t h; /* unitized height */ }; -#define RT_CLINE_O(m) bu_offsetof( struct rt_cline_internal, m ) +#define RT_CLINE_O(m) bu_offsetof(struct rt_cline_internal, m) + const struct bu_structparse rt_cline_parse[] = { - { "%f", 3, "V", RT_CLINE_O( v ), BU_STRUCTPARSE_FUNC_NULL }, - { "%f", 3, "H", RT_CLINE_O( h ), BU_STRUCTPARSE_FUNC_NULL }, - { "%f", 1, "r", RT_CLINE_O( radius ), BU_STRUCTPARSE_FUNC_NULL }, - { "%f", 1, "t", RT_CLINE_O( thickness ), BU_STRUCTPARSE_FUNC_NULL }, + { "%f", 3, "V", RT_CLINE_O(v), BU_STRUCTPARSE_FUNC_NULL }, + { "%f", 3, "H", RT_CLINE_O(h), BU_STRUCTPARSE_FUNC_NULL }, + { "%f", 1, "r", RT_CLINE_O(radius), BU_STRUCTPARSE_FUNC_NULL }, + { "%f", 1, "t", RT_CLINE_O(thickness), BU_STRUCTPARSE_FUNC_NULL }, { {'\0', '\0', '\0', '\0'}, 0, (char *)NULL, 0, BU_STRUCTPARSE_FUNC_NULL } }; @@ -72,61 +73,62 @@ * formula. * * Returns - - * 0 cline is OK - * !0 Error in description + * 0 cline is OK + * !0 Error in description * * Implicit return - - * A struct cline_specific is created, and it's address is stored - * in stp->st_specific for use by rt_cline_shot(). + * A struct cline_specific is created, and it's address is stored + * in stp->st_specific for use by rt_cline_shot(). */ int rt_cline_prep(struct soltab *stp, struct rt_db_internal *ip, struct rt_i *rtip) { - struct rt_cline_internal *cline_ip; - register struct cline_specific *cline; - vect_t work; - vect_t rad; - point_t top; - fastf_t tmp; - fastf_t max_tr; + struct rt_cline_internal *cline_ip; + register struct cline_specific *cline; + vect_t work; + vect_t rad; + point_t top; + fastf_t tmp; + fastf_t max_tr; RT_CK_DB_INTERNAL(ip); cline_ip = (struct rt_cline_internal *)ip->idb_ptr; RT_CLINE_CK_MAGIC(cline_ip); - BU_GETSTRUCT( cline, cline_specific ); + BU_GETSTRUCT(cline, cline_specific); cline->thickness = cline_ip->thickness; cline->radius = cline_ip->radius; - VMOVE( cline->V, cline_ip->v ); - VMOVE( cline->height, cline_ip->h ); - VMOVE( cline->h, cline_ip->h ); - VUNITIZE( cline->h ); + VMOVE(cline->V, cline_ip->v); + VMOVE(cline->height, cline_ip->h); + VMOVE(cline->h, cline_ip->h); + VUNITIZE(cline->h); stp->st_specific = (genptr_t)cline; - if ( rt_cline_radius > 0.0 ) + if (rt_cline_radius > 0.0) max_tr = rt_cline_radius; else max_tr = 0.0; - tmp = MAGNITUDE( cline_ip->h ) * 0.5; - stp->st_aradius = sqrt( tmp*tmp + cline_ip->radius*cline_ip->radius ); + tmp = MAGNITUDE(cline_ip->h) * 0.5; + stp->st_aradius = sqrt(tmp*tmp + cline_ip->radius*cline_ip->radius); stp->st_bradius = stp->st_aradius + max_tr; - VSETALL( stp->st_min, MAX_FASTF ); - VREVERSE( stp->st_max, stp->st_min ); + VSETALL(stp->st_min, MAX_FASTF); + VREVERSE(stp->st_max, stp->st_min); - VSETALL( rad, cline_ip->radius + max_tr ); - VADD2( work, cline_ip->v, rad ); - VMINMAX( stp->st_min, stp->st_max, work ); - VSUB2( work, cline_ip->v, rad ); - VMINMAX( stp->st_min, stp->st_max, work ); - VADD2( top, cline_ip->v, cline_ip->h ); - VADD2( work, top, rad ); - VMINMAX( stp->st_min, stp->st_max, work ); - VSUB2( work, top, rad ); - VMINMAX( stp->st_min, stp->st_max, work ); + VSETALL(rad, cline_ip->radius + max_tr); + VADD2(work, cline_ip->v, rad); + VMINMAX(stp->st_min, stp->st_max, work); + VSUB2(work, cline_ip->v, rad); + VMINMAX(stp->st_min, stp->st_max, work); + VADD2(top, cline_ip->v, cline_ip->h); + VADD2(work, top, rad); + VMINMAX(stp->st_min, stp->st_max, work); + VSUB2(work, top, rad); + VMINMAX(stp->st_min, stp->st_max, work); - return( 0 ); + return(0); } + /** * R T _ C L I N E _ P R I N T */ @@ -136,16 +138,17 @@ register const struct cline_specific *cline = (struct cline_specific *)stp->st_specific; - VPRINT( "V", cline->V ); - VPRINT( "Height", cline->height ); - VPRINT( "Unit Height", cline->h ); - bu_log( "Radius: %g\n", cline->radius ); - if ( cline->thickness > 0.0 ) - bu_log( "Plate Mode Thickness: %g\n", cline->thickness ); + VPRINT("V", cline->V); + VPRINT("Height", cline->height); + VPRINT("Unit Height", cline->h); + bu_log("Radius: %g\n", cline->radius); + if (cline->thickness > 0.0) + bu_log("Plate Mode Thickness: %g\n", cline->thickness); else - bu_log( "Volume mode\n" ); + bu_log("Volume mode\n"); } + /** * R T _ C L I N E _ S H O T * @@ -153,16 +156,16 @@ * occurs, at least one struct seg will be acquired and filled in. * * Returns - - * 0 MISS - * >0 HIT + * 0 MISS + * >0 HIT */ int rt_cline_shot(struct soltab *stp, register struct xray *rp, struct application *ap, struct seg *seghead) { register struct cline_specific *cline = (struct cline_specific *)stp->st_specific; - struct seg ref_seghead; - register struct seg *segp; + struct seg ref_seghead; + register struct seg *segp; fastf_t reff; fastf_t dist[3]; fastf_t cosa, sina; @@ -173,32 +176,28 @@ fastf_t distmin, distmax; fastf_t add_radius; - BU_LIST_INIT( &ref_seghead.l ); + BU_LIST_INIT(&ref_seghead.l); /* This is a CLINE FASTGEN element */ - if ( rt_cline_radius > 0.0 ) - { + if (rt_cline_radius > 0.0) { add_radius = rt_cline_radius; reff = cline->radius + add_radius; - } - else - { + } else { add_radius = 0.0; reff = cline->radius; } - cosa = VDOT( rp->r_dir, cline->h ); + cosa = VDOT(rp->r_dir, cline->h); - if ( cosa > 0.0 ) + if (cosa > 0.0) tmp = cosa - 1.0; else tmp = cosa + 1.0; - (void)bn_distsq_line3_line3( dist, cline->V, cline->height, - rp->r_pt, rp->r_dir, pt1, pt2 ); + (void)bn_distsq_line3_line3(dist, cline->V, cline->height, + rp->r_pt, rp->r_dir, pt1, pt2); - if ( NEAR_ZERO( tmp, RT_DOT_TOL ) ) - { + if (NEAR_ZERO(tmp, RT_DOT_TOL)) { /* ray is parallel to CLINE */ #if 1 /* FASTGEN developers claim they report hits on volume mode @@ -206,19 +205,18 @@ * this case from consideration before their intersection code * is even called (see SUBROUTINE BULK) */ - return( 0 ); + return(0); #else - if ( cline->thickness > 0.0 ) - return( 0 ); /* No end-on hits for plate mode cline */ + if (cline->thickness > 0.0) + return(0); /* No end-on hits for plate mode cline */ - if ( dist[2] > reff*reff ) - return( 0 ); /* missed */ + if (dist[2] > reff*reff) + return(0); /* missed */ - VJOIN2( diff, cline->V, 1.0, cline->height, -1.0, rp->r_pt ); - dist[0] = VDOT( diff, rp->r_dir ); - if ( dist[1] < dist[0] ) - { + VJOIN2(diff, cline->V, 1.0, cline->height, -1.0, rp->r_pt); + dist[0] = VDOT(diff, rp->r_dir); + if (dist[1] < dist[0]) { dist[2] = dist[0]; dist[0] = dist[1]; dist[1] = dist[2]; @@ -226,49 +224,48 @@ /* vloume mode */ - RT_GET_SEG( segp, ap->a_resource); + RT_GET_SEG(segp, ap->a_resource); segp->seg_stp = stp; segp->seg_in.hit_dist = dist[0]; segp->seg_in.hit_surfno = 1; - if ( cosa > 0.0 ) - VREVERSE( segp->seg_in.hit_normal, cline->h ) - else - VMOVE( segp->seg_in.hit_normal, cline->h ); + if (cosa > 0.0) + VREVERSE(segp->seg_in.hit_normal, cline->h); + else + VMOVE(segp->seg_in.hit_normal, cline->h); segp->seg_out.hit_dist = dist[1]; segp->seg_out.hit_surfno = -1; - if ( cosa < 0.0 ) - VREVERSE( segp->seg_out.hit_normal, cline->h ) - else - VMOVE( segp->seg_out.hit_normal, cline->h ); - BU_LIST_INSERT( &(seghead->l), &(segp->l) ); - return( 1 ); + if (cosa < 0.0) + VREVERSE(segp->seg_out.hit_normal, cline->h); + else + VMOVE(segp->seg_out.hit_normal, cline->h); + BU_LIST_INSERT(&(seghead->l), &(segp->l)); + return(1); #endif } - if ( dist[2] > reff*reff ) - return( 0 ); /* missed */ + if (dist[2] > reff*reff) + return(0); /* missed */ /* Exactly ==0 and ==1 are hits, not misses */ - if ( dist[0] < 0.0 || dist[0] > 1.0 ) - return( 0 ); /* missed */ + if (dist[0] < 0.0 || dist[0] > 1.0) + return(0); /* missed */ - sina = sqrt( 1.0 - cosa*cosa); - tmp = sqrt( dist[2] ) - add_radius; - if ( dist[2] > add_radius * add_radius ) - half_los = sqrt( cline->radius*cline->radius - tmp*tmp) / sina; + sina = sqrt(1.0 - cosa*cosa); + tmp = sqrt(dist[2]) - add_radius; + if (dist[2] > add_radius * add_radius) + half_los = sqrt(cline->radius*cline->radius - tmp*tmp) / sina; else half_los = cline->radius / sina; - VSUB2( diff, cline->V, rp->r_pt ); - distmin = VDOT( rp->r_dir, diff ); - VADD2( diff, cline->V, cline->height ); - VSUB2( diff, diff, rp->r_pt ); - distmax = VDOT( rp->r_dir, diff ); + VSUB2(diff, cline->V, rp->r_pt); + distmin = VDOT(rp->r_dir, diff); + VADD2(diff, cline->V, cline->height); + VSUB2(diff, diff, rp->r_pt); + distmax = VDOT(rp->r_dir, diff); - if ( distmin > distmax ) - { + if (distmin > distmax) { tmp = distmin; distmin = distmax; distmax = tmp; @@ -277,62 +274,60 @@ distmin -= cline->radius; distmax += cline->radius; - if ( cline->thickness <= 0.0 ) - { + if (cline->thickness <= 0.0) { /* volume mode */ - RT_GET_SEG( segp, ap->a_resource); + RT_GET_SEG(segp, ap->a_resource); segp->seg_stp = stp; segp->seg_in.hit_surfno = 2; segp->seg_in.hit_dist = dist[1] - half_los; - if ( segp->seg_in.hit_dist < distmin ) + if (segp->seg_in.hit_dist < distmin) segp->seg_in.hit_dist = distmin; - VMOVE( segp->seg_in.hit_vpriv, cline->h ); + VMOVE(segp->seg_in.hit_vpriv, cline->h); segp->seg_out.hit_surfno = -2; segp->seg_out.hit_dist = dist[1] + half_los; - if ( segp->seg_out.hit_dist > distmax ) + if (segp->seg_out.hit_dist > distmax) segp->seg_out.hit_dist = distmax; - VMOVE( segp->seg_out.hit_vpriv, cline->h ); - BU_LIST_INSERT( &(seghead->l), &(segp->l) ); + VMOVE(segp->seg_out.hit_vpriv, cline->h); + BU_LIST_INSERT(&(seghead->l), &(segp->l)); - return( 1 ); - } - else - { + return(1); + } else { /* plate mode */ - RT_GET_SEG( segp, ap->a_resource); + RT_GET_SEG(segp, ap->a_resource); segp->seg_stp = stp; segp->seg_in.hit_surfno = 2; segp->seg_in.hit_dist = dist[1] - half_los; - if ( segp->seg_in.hit_dist < distmin ) + if (segp->seg_in.hit_dist < distmin) segp->seg_in.hit_dist = distmin; - VMOVE( segp->seg_in.hit_vpriv, cline->h ); + VMOVE(segp->seg_in.hit_vpriv, cline->h); segp->seg_out.hit_surfno = -2; segp->seg_out.hit_dist = segp->seg_in.hit_dist + cline->thickness; - VMOVE( segp->seg_out.hit_vpriv, cline->h ); - BU_LIST_INSERT( &(seghead->l), &(segp->l) ); + VMOVE(segp->seg_out.hit_vpriv, cline->h); + BU_LIST_INSERT(&(seghead->l), &(segp->l)); - RT_GET_SEG( segp, ap->a_resource); + RT_GET_SEG(segp, ap->a_resource); segp->seg_stp = stp; segp->seg_in.hit_surfno = 2; segp->seg_in.hit_dist = dist[1] + half_los; - if ( segp->seg_in.hit_dist > distmax ) + if (segp->seg_in.hit_dist > distmax) segp->seg_in.hit_dist = distmax; segp->seg_in.hit_dist -= cline->thickness; - VMOVE( segp->seg_in.hit_vpriv, cline->h ); + VMOVE(segp->seg_in.hit_vpriv, cline->h); segp->seg_out.hit_surfno = -2; segp->seg_out.hit_dist = segp->seg_in.hit_dist + cline->thickness; - VMOVE( segp->seg_out.hit_vpriv, cline->h ); - BU_LIST_INSERT( &(seghead->l), &(segp->l) ); + VMOVE(segp->seg_out.hit_vpriv, cline->h); + BU_LIST_INSERT(&(seghead->l), &(segp->l)); - return( 2 ); + return(2); } } + #define RT_CLINE_SEG_MISS(SEG) (SEG).seg_stp=RT_SOLTAB_NULL /** @@ -348,9 +343,10 @@ /* Number of ray/object pairs */ { - rt_vstub( stp, rp, segp, n, ap ); + rt_vstub(stp, rp, segp, n, ap); } + /** * R T _ C L I N E _ N O R M * @@ -362,29 +358,30 @@ vect_t tmp; fastf_t dot; - if ( hitp->hit_surfno == 1 || hitp->hit_surfno == -1 ) + if (hitp->hit_surfno == 1 || hitp->hit_surfno == -1) return; /* only need to do some calculations for surfno 2 or -2 */ /* this is wrong, but agrees with FASTGEN */ - VCROSS( tmp, rp->r_dir, hitp->hit_vpriv ); - VCROSS( hitp->hit_normal, tmp, hitp->hit_vpriv ); - VUNITIZE( hitp->hit_normal ); - dot = VDOT( hitp->hit_normal, rp->r_dir ); - if ( dot < 0.0 && hitp->hit_surfno < 0 ) - VREVERSE( hitp->hit_normal, hitp->hit_normal ) - else if ( dot > 0.0 && hitp->hit_surfno > 0 ) - VREVERSE( hitp->hit_normal, hitp->hit_normal ) + VCROSS(tmp, rp->r_dir, hitp->hit_vpriv); + VCROSS(hitp->hit_normal, tmp, hitp->hit_vpriv); + VUNITIZE(hitp->hit_normal); + dot = VDOT(hitp->hit_normal, rp->r_dir); + if (dot < 0.0 && hitp->hit_surfno < 0) + VREVERSE(hitp->hit_normal, hitp->hit_normal); + else if (dot > 0.0 && hitp->hit_surfno > 0) + VREVERSE(hitp->hit_normal, hitp->hit_normal); - if ( MAGNITUDE( hitp->hit_normal ) < 0.9 ) { - bu_log( "BAD normal for solid %s for ray -p %g %g %g -d %g %g %g\n", - stp->st_name, V3ARGS( rp->r_pt ), V3ARGS( rp->r_dir ) ); - bu_bomb( "BAD normal\n" ); - } - VJOIN1( hitp->hit_point, rp->r_pt, hitp->hit_dist, rp->r_dir ); + if (MAGNITUDE(hitp->hit_normal) < 0.9) { + bu_log("BAD normal for solid %s for ray -p %g %g %g -d %g %g %g\n", + stp->st_name, V3ARGS(rp->r_pt), V3ARGS(rp->r_dir)); + bu_bomb("BAD normal\n"); + } + VJOIN1(hitp->hit_point, rp->r_pt, hitp->hit_dist, rp->r_dir); } + /** * R T _ C L I N E _ C U R V E * @@ -398,9 +395,10 @@ cvp->crv_c1 = cvp->crv_c2 = 0; /* any tangent direction */ - bn_vec_ortho( cvp->crv_pdir, hitp->hit_normal ); + bn_vec_ortho(cvp->crv_pdir, hitp->hit_normal); } + /** * R T _ C L I N E_ U V * @@ -416,6 +414,7 @@ uvp->uv_dv = 0.0; } + /** * R T _ C L I N E _ F R E E */ @@ -425,9 +424,10 @@ register struct cline_specific *cline = (struct cline_specific *)stp->st_specific; - bu_free( (char *)cline, "cline_specific" ); + bu_free((char *)cline, "cline_specific"); } + /** * R T _ C L I N E _ C L A S S */ @@ -435,18 +435,19 @@ rt_cline_class(const struct soltab *stp, const fastf_t *min, const fastf_t *max, const struct bn_tol *tol) { - return( 0 ); + return(0); } + /** * R T _ C L I N E _ P L O T */ int rt_cline_plot(struct bu_list *vhead, struct rt_db_internal *ip, const struct rt_tess_tol *ttol, const struct bn_tol *tol) { - struct rt_cline_internal *cline_ip; - fastf_t top[16*3]; - fastf_t bottom[16*3]; + struct rt_cline_internal *cline_ip; + fastf_t top[16*3]; + fastf_t bottom[16*3]; point_t top_pt; vect_t unit_a, unit_b; vect_t a, b; @@ -457,62 +458,61 @@ cline_ip = (struct rt_cline_internal *)ip->idb_ptr; RT_CLINE_CK_MAGIC(cline_ip); - VADD2( top_pt, cline_ip->v, cline_ip->h ); - bn_vec_ortho( unit_a, cline_ip->h ); - VCROSS( unit_b, unit_a, cline_ip->h ); - VUNITIZE( unit_b ); - VSCALE( a, unit_a, cline_ip->radius ); - VSCALE( b, unit_b, cline_ip->radius ); + VADD2(top_pt, cline_ip->v, cline_ip->h); + bn_vec_ortho(unit_a, cline_ip->h); + VCROSS(unit_b, unit_a, cline_ip->h); + VUNITIZE(unit_b); + VSCALE(a, unit_a, cline_ip->radius); + VSCALE(b, unit_b, cline_ip->radius); - rt_ell_16pts( bottom, cline_ip->v, a, b ); - rt_ell_16pts( top, top_pt, a, b ); + rt_ell_16pts(bottom, cline_ip->v, a, b); + rt_ell_16pts(top, top_pt, a, b); /* Draw the top */ - RT_ADD_VLIST( vhead, &top[15*ELEMENTS_PER_VECT], BN_VLIST_LINE_MOVE ); - for ( i=0; i<16; i++ ) { - RT_ADD_VLIST( vhead, &top[i*ELEMENTS_PER_VECT], BN_VLIST_LINE_DRAW ); + RT_ADD_VLIST(vhead, &top[15*ELEMENTS_PER_VECT], BN_VLIST_LINE_MOVE); + for (i=0; i<16; i++) { + RT_ADD_VLIST(vhead, &top[i*ELEMENTS_PER_VECT], BN_VLIST_LINE_DRAW); } /* Draw the bottom */ - RT_ADD_VLIST( vhead, &bottom[15*ELEMENTS_PER_VECT], BN_VLIST_LINE_MOVE ); - for ( i=0; i<16; i++ ) { - RT_ADD_VLIST( vhead, &bottom[i*ELEMENTS_PER_VECT], BN_VLIST_LINE_DRAW ); + RT_ADD_VLIST(vhead, &bottom[15*ELEMENTS_PER_VECT], BN_VLIST_LINE_MOVE); + for (i=0; i<16; i++) { + RT_ADD_VLIST(vhead, &bottom[i*ELEMENTS_PER_VECT], BN_VLIST_LINE_DRAW); } /* Draw connections */ - for ( i=0; i<16; i += 4 ) { - RT_ADD_VLIST( vhead, &top[i*ELEMENTS_PER_VECT], BN_VLIST_LINE_MOVE ); - RT_ADD_VLIST( vhead, &bottom[i*ELEMENTS_PER_VECT], BN_VLIST_LINE_DRAW ); + for (i=0; i<16; i += 4) { + RT_ADD_VLIST(vhead, &top[i*ELEMENTS_PER_VECT], BN_VLIST_LINE_MOVE); + RT_ADD_VLIST(vhead, &bottom[i*ELEMENTS_PER_VECT], BN_VLIST_LINE_DRAW); } - if ( cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius ) - { + if (cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius) { /* draw inner cylinder */ inner_radius = cline_ip->radius - cline_ip->thickness; - VSCALE( a, unit_a, inner_radius ); - VSCALE( b, unit_b, inner_radius ); + VSCALE(a, unit_a, inner_radius); + VSCALE(b, unit_b, inner_radius); - rt_ell_16pts( bottom, cline_ip->v, a, b ); - rt_ell_16pts( top, top_pt, a, b ); + rt_ell_16pts(bottom, cline_ip->v, a, b); + rt_ell_16pts(top, top_pt, a, b); /* Draw the top */ - RT_ADD_VLIST( vhead, &top[15*ELEMENTS_PER_VECT], BN_VLIST_LINE_MOVE ); - for ( i=0; i<16; i++ ) { - RT_ADD_VLIST( vhead, &top[i*ELEMENTS_PER_VECT], BN_VLIST_LINE_DRAW ); + RT_ADD_VLIST(vhead, &top[15*ELEMENTS_PER_VECT], BN_VLIST_LINE_MOVE); + for (i=0; i<16; i++) { + RT_ADD_VLIST(vhead, &top[i*ELEMENTS_PER_VECT], BN_VLIST_LINE_DRAW); } /* Draw the bottom */ - RT_ADD_VLIST( vhead, &bottom[15*ELEMENTS_PER_VECT], BN_VLIST_LINE_MOVE ); - for ( i=0; i<16; i++ ) { - RT_ADD_VLIST( vhead, &bottom[i*ELEMENTS_PER_VECT], BN_VLIST_LINE_DRAW ); + RT_ADD_VLIST(vhead, &bottom[15*ELEMENTS_PER_VECT], BN_VLIST_LINE_MOVE); + for (i=0; i<16; i++) { + RT_ADD_VLIST(vhead, &bottom[i*ELEMENTS_PER_VECT], BN_VLIST_LINE_DRAW); } /* Draw connections */ - for ( i=0; i<16; i += 4 ) { - RT_ADD_VLIST( vhead, &top[i*ELEMENTS_PER_VECT], BN_VLIST_LINE_MOVE ); - RT_ADD_VLIST( vhead, &bottom[i*ELEMENTS_PER_VECT], BN_VLIST_LINE_DRAW ); + for (i=0; i<16; i += 4) { + RT_ADD_VLIST(vhead, &top[i*ELEMENTS_PER_VECT], BN_VLIST_LINE_MOVE); + RT_ADD_VLIST(vhead, &bottom[i*ELEMENTS_PER_VECT], BN_VLIST_LINE_DRAW); } } @@ -520,36 +520,38 @@ return(0); } + struct cline_vert { point_t pt; struct vertex *v; }; + /** * R T _ C L I N E _ T E S S * * Returns - - * -1 failure - * 0 OK. *r points to nmgregion that holds this tessellation. + * -1 failure + * 0 OK. *r points to nmgregion that holds this tessellation. */ int rt_cline_tess(struct nmgregion **r, struct model *m, struct rt_db_internal *ip, const struct rt_tess_tol *ttol, const struct bn_tol *tol) { - struct shell *s; - struct rt_cline_internal *cline_ip; - fastf_t ang_tol, abs_tol, norm_tol, rel_tol; - int nsegs, seg_no, i; - struct cline_vert *base_outer, *base_inner, *top_outer, *top_inner; - struct cline_vert base_center, top_center; - vect_t v1, v2; - point_t top; - struct bu_ptbl faces; + struct shell *s; + struct rt_cline_internal *cline_ip; + fastf_t ang_tol, abs_tol, norm_tol, rel_tol; + int nsegs, seg_no, i; + struct cline_vert *base_outer, *base_inner, *top_outer, *top_inner; + struct cline_vert base_center, top_center; + vect_t v1, v2; + point_t top; + struct bu_ptbl faces; RT_CK_DB_INTERNAL(ip); cline_ip = (struct rt_cline_internal *)ip->idb_ptr; RT_CLINE_CK_MAGIC(cline_ip); - *r = nmg_mrsv( m ); + *r = nmg_mrsv(m); s = BU_LIST_FIRST(shell, &(*r)->s_hd); ang_tol = bn_halfpi; @@ -557,31 +559,28 @@ rel_tol = bn_halfpi; norm_tol = bn_halfpi; - if ( ttol->abs <= 0.0 && ttol->rel <= 0.0 && ttol->norm <= 0.0 ) - { + if (ttol->abs <= 0.0 && ttol->rel <= 0.0 && ttol->norm <= 0.0) { /* no tolerances specified, use 10% relative tolerance */ - ang_tol = 2.0 * acos( 0.9 ); - } - else - { - if ( ttol->abs > 0.0 && ttol->abs < cline_ip->radius ) - abs_tol = 2.0 * acos( 1.0 - ttol->abs / cline_ip->radius ); - if ( ttol->rel > 0.0 && ttol->rel < 1.0 ) - rel_tol = 2.0 * acos( 1.0 - ttol->rel ); - if ( ttol->norm > 0.0 ) + ang_tol = 2.0 * acos(0.9); + } else { + if (ttol->abs > 0.0 && ttol->abs < cline_ip->radius) + abs_tol = 2.0 * acos(1.0 - ttol->abs / cline_ip->radius); + if (ttol->rel > 0.0 && ttol->rel < 1.0) + rel_tol = 2.0 * acos(1.0 - ttol->rel); + if (ttol->norm > 0.0) norm_tol = 2.0 * ttol->norm; } - if ( abs_tol < ang_tol ) + if (abs_tol < ang_tol) ang_tol = abs_tol; - if ( rel_tol < ang_tol ) + if (rel_tol < ang_tol) ang_tol = rel_tol; - if ( norm_tol < ang_tol ) + if (norm_tol < ang_tol) ang_tol = norm_tol; /* get number of segments per quadrant */ nsegs = (int)(bn_halfpi / ang_tol + 0.9999); - if ( nsegs < 2 ) + if (nsegs < 2) nsegs = 2; ang_tol = bn_halfpi / nsegs; @@ -590,34 +589,31 @@ nsegs *= 4; /* allocate memory for arrays of vertices */ - base_outer = (struct cline_vert *)bu_calloc( nsegs, sizeof( struct cline_vert ), "base outer vertices" ); - top_outer = (struct cline_vert *)bu_calloc( nsegs, sizeof( struct cline_vert ), "top outer vertices" ); + base_outer = (struct cline_vert *)bu_calloc(nsegs, sizeof(struct cline_vert), "base outer vertices"); + top_outer = (struct cline_vert *)bu_calloc(nsegs, sizeof(struct cline_vert), "top outer vertices"); - if ( cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius ) - { - base_inner = (struct cline_vert *)bu_calloc( nsegs, sizeof( struct cline_vert ), "base inner vertices" ); - top_inner = (struct cline_vert *)bu_calloc( nsegs, sizeof( struct cline_vert ), "top inner vertices" ); + if (cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius) { + base_inner = (struct cline_vert *)bu_calloc(nsegs, sizeof(struct cline_vert), "base inner vertices"); + top_inner = (struct cline_vert *)bu_calloc(nsegs, sizeof(struct cline_vert), "top inner vertices"); } else { base_inner = NULL; top_inner = NULL; } /* calculate geometry for each vertex */ - bn_vec_ortho( v1, cline_ip->h ); - VCROSS( v2, cline_ip->h, v1 ); - VUNITIZE( v2 ); - VADD2( top, cline_ip->v, cline_ip->h ); - for ( seg_no = 0; seg_no < nsegs; seg_no++ ) - { + bn_vec_ortho(v1, cline_ip->h); + VCROSS(v2, cline_ip->h, v1); + VUNITIZE(v2); + VADD2(top, cline_ip->v, cline_ip->h); + for (seg_no = 0; seg_no < nsegs; seg_no++) { fastf_t a, b, c, d, angle; angle = ang_tol * seg_no; - a = cos( angle ); - b = sin( angle ); + a = cos(angle); + b = sin(angle); - if ( cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius ) - { + if (cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius) { c = a * (cline_ip->radius - cline_ip->thickness); d = b * (cline_ip->radius - cline_ip->thickness); } else { @@ -627,197 +623,180 @@ a *= cline_ip->radius; b *= cline_ip->radius; - VJOIN2( base_outer[seg_no].pt, cline_ip->v, a, v1, b, v2 ); - VADD2( top_outer[seg_no].pt, base_outer[seg_no].pt, cline_ip->h ); + VJOIN2(base_outer[seg_no].pt, cline_ip->v, a, v1, b, v2); + VADD2(top_outer[seg_no].pt, base_outer[seg_no].pt, cline_ip->h); - if ( cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius ) - { - VJOIN2( base_inner[seg_no].pt, cline_ip->v, c, v1, d, v2 ); - VADD2( top_inner[seg_no].pt, base_inner[seg_no].pt, cline_ip->h ); + if (cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius) { + VJOIN2(base_inner[seg_no].pt, cline_ip->v, c, v1, d, v2); + VADD2(top_inner[seg_no].pt, base_inner[seg_no].pt, cline_ip->h); } } - bu_ptbl_init( &faces, 64, "faces"); + bu_ptbl_init(&faces, 64, "faces"); /* build outer faces */ - for ( seg_no=0; seg_no<nsegs; seg_no++ ) - { + for (seg_no=0; seg_no<nsegs; seg_no++) { int next_seg; struct vertex **verts[3]; struct faceuse *fu; next_seg = seg_no + 1; - if ( next_seg == nsegs ) + if (next_seg == nsegs) next_seg = 0; verts[2] = &top_outer[seg_no].v; verts[1] = &top_outer[next_seg].v; verts[0] = &base_outer[seg_no].v; - fu = nmg_cmface( s, verts, 3 ); - bu_ptbl_ins( &faces, (long *)fu ); + fu = nmg_cmface(s, verts, 3); + bu_ptbl_ins(&faces, (long *)fu); verts[2] = &base_outer[seg_no].v; verts[1] = &top_outer[next_seg].v; verts[0] = &base_outer[next_seg].v; - fu = nmg_cmface( s, verts, 3 ); - bu_ptbl_ins( &faces, (long *)fu ); + fu = nmg_cmface(s, verts, 3); + bu_ptbl_ins(&faces, (long *)fu); } /* build inner faces */ - if ( cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius ) - { - for ( seg_no=0; seg_no<nsegs; seg_no++ ) - { + if (cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius) { + for (seg_no=0; seg_no<nsegs; seg_no++) { int next_seg; struct vertex **verts[3]; struct faceuse *fu; next_seg = seg_no + 1; - if ( next_seg == nsegs ) + if (next_seg == nsegs) next_seg = 0; verts[0] = &top_inner[seg_no].v; verts[1] = &top_inner[next_seg].v; verts[2] = &base_inner[seg_no].v; - fu = nmg_cmface( s, verts, 3 ); - bu_ptbl_ins( &faces, (long *)fu ); + fu = nmg_cmface(s, verts, 3); + bu_ptbl_ins(&faces, (long *)fu); verts[0] = &base_inner[seg_no].v; verts[1] = &top_inner[next_seg].v; verts[2] = &base_inner[next_seg].v; - fu = nmg_cmface( s, verts, 3 ); - bu_ptbl_ins( &faces, (long *)fu ); + fu = nmg_cmface(s, verts, 3); + bu_ptbl_ins(&faces, (long *)fu); } } /* build top faces */ top_center.v = (struct vertex *)NULL; - VMOVE( top_center.pt, top ); - for ( seg_no=0; seg_no<nsegs; seg_no++ ) - { + VMOVE(top_center.pt, top); + for (seg_no=0; seg_no<nsegs; seg_no++) { int next_seg; struct vertex **verts[3]; struct faceuse *fu; next_seg = seg_no + 1; - if ( next_seg == nsegs ) + if (next_seg == nsegs) next_seg = 0; - if ( cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius ) - { + if (cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius) { verts[2] = &top_outer[seg_no].v; verts[1] = &top_inner[seg_no].v; verts[0] = &top_inner[next_seg].v; - fu = nmg_cmface( s, verts, 3 ); - bu_ptbl_ins( &faces, (long *)fu ); + fu = nmg_cmface(s, verts, 3); + bu_ptbl_ins(&faces, (long *)fu); verts[2] = &top_inner[next_seg].v; verts[1] = &top_outer[next_seg].v; verts[0] = &top_outer[seg_no].v; - fu = nmg_cmface( s, verts, 3 ); - bu_ptbl_ins( &faces, (long *)fu ); - } - else - { + fu = nmg_cmface(s, verts, 3); + bu_ptbl_ins(&faces, (long *)fu); + } else { verts[2] = &top_outer[seg_no].v; verts[1] = &top_center.v; verts[0] = &top_outer[next_seg].v; - fu = nmg_cmface( s, verts, 3 ); - bu_ptbl_ins( &faces, (long *)fu ); + fu = nmg_cmface(s, verts, 3); + bu_ptbl_ins(&faces, (long *)fu); } } /* build base faces */ base_center.v = (struct vertex *)NULL; - VMOVE( base_center.pt, cline_ip->v ); - for ( seg_no=0; seg_no<nsegs; seg_no++ ) - { + VMOVE(base_center.pt, cline_ip->v); + for (seg_no=0; seg_no<nsegs; seg_no++) { int next_seg; struct vertex **verts[3]; struct faceuse *fu; next_seg = seg_no + 1; - if ( next_seg == nsegs ) + if (next_seg == nsegs) next_seg = 0; - if ( cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius ) - { + if (cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius) { verts[0] = &base_outer[seg_no].v; verts[1] = &base_inner[seg_no].v; verts[2] = &base_inner[next_seg].v; - fu = nmg_cmface( s, verts, 3 ); - bu_ptbl_ins( &faces, (long *)fu ); + fu = nmg_cmface(s, verts, 3); + bu_ptbl_ins(&faces, (long *)fu); verts[0] = &base_inner[next_seg].v; verts[1] = &base_outer[next_seg].v; verts[2] = &base_outer[seg_no].v; - fu = nmg_cmface( s, verts, 3 ); - bu_ptbl_ins( &faces, (long *)fu ); - } - else - { + fu = nmg_cmface(s, verts, 3); + bu_ptbl_ins(&faces, (long *)fu); + } else { verts[0] = &base_outer[seg_no].v; verts[1] = &base_center.v; verts[2] = &base_outer[next_seg].v; - fu = nmg_cmface( s, verts, 3 ); - bu_ptbl_ins( &faces, (long *)fu ); + fu = nmg_cmface(s, verts, 3); + bu_ptbl_ins(&faces, (long *)fu); } } /* assign vertex geometry */ - if ( top_center.v ) - nmg_vertex_gv( top_center.v, top_center.pt ); - if ( base_center.v ) - nmg_vertex_gv( base_center.v, base_center.pt ); + if (top_center.v) + nmg_vertex_gv(top_center.v, top_center.pt); + if (base_center.v) + nmg_vertex_gv(base_center.v, base_center.pt); - for ( seg_no=0; seg_no<nsegs; seg_no++ ) - { - nmg_vertex_gv( top_outer[seg_no].v, top_outer[seg_no].pt ); - nmg_vertex_gv( base_outer[seg_no].v, base_outer[seg_no].pt ); + for (seg_no=0; seg_no<nsegs; seg_no++) { + nmg_vertex_gv(top_outer[seg_no].v, top_outer[seg_no].pt); + nmg_vertex_gv(base_outer[seg_no].v, base_outer[seg_no].pt); } - if ( cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius ) - { - for ( seg_no=0; seg_no<nsegs; seg_no++ ) - { - nmg_vertex_gv( top_inner[seg_no].v, top_inner[seg_no].pt ); - nmg_vertex_gv( base_inner[seg_no].v, base_inner[seg_no].pt ); + if (cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius) { + for (seg_no=0; seg_no<nsegs; seg_no++) { + nmg_vertex_gv(top_inner[seg_no].v, top_inner[seg_no].pt); + nmg_vertex_gv(base_inner[seg_no].v, base_inner[seg_no].pt); } } - bu_free( (char *)base_outer, "base outer vertices" ); - bu_free( (char *)top_outer, "top outer vertices" ); - if ( cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius ) - { - bu_free( (char *)base_inner, "base inner vertices" ); - bu_free( (char *)top_inner, "top inner vertices" ); + bu_free((char *)base_outer, "base outer vertices"); + bu_free((char *)top_outer, "top outer vertices"); + if (cline_ip->thickness > 0.0 && cline_ip->thickness < cline_ip->radius) { + bu_free((char *)base_inner, "base inner vertices"); + bu_free((char *)top_inner, "top inner vertices"); } /* Associate face plane equations */ - for ( i=0; i<BU_PTBL_END( &faces ); i++ ) - { + for (i=0; i<BU_PTBL_END(&faces); i++) { struct faceuse *fu; - fu = (struct faceuse *)BU_PTBL_GET( &faces, i ); - NMG_CK_FACEUSE( fu ); + fu = (struct faceuse *)BU_PTBL_GET(&faces, i); + NMG_CK_FACEUSE(fu); - if ( nmg_calc_face_g( fu ) ) - { - bu_log( "rt_tess_cline: failed to calculate plane equation\n" ); - nmg_pr_fu_briefly( fu, "" ); - return( -1 ); + if (nmg_calc_face_g(fu)) { + bu_log("rt_tess_cline: failed to calculate plane equation\n"); + nmg_pr_fu_briefly(fu, ""); + return(-1); } } - nmg_region_a( *r, tol ); - bu_ptbl_free( &faces ); + nmg_region_a(*r, tol); + bu_ptbl_free(&faces); return(0); } + /** * R T _ C L I N E _ I M P O R T * @@ -827,40 +806,41 @@ int rt_cline_import4(struct rt_db_internal *ip, const struct bu_external *ep, register const fastf_t *mat, const struct db_i *dbip) { - struct rt_cline_internal *cline_ip; - union record *rp; - point_t work; + struct rt_cline_internal *cline_ip; + union record *rp; + point_t work; - BU_CK_EXTERNAL( ep ); + BU_CK_EXTERNAL(ep); rp = (union record *)ep->ext_buf; /* Check record type */ - if ( rp->u_id != DBID_CLINE ) { + if (rp->u_id != DBID_CLINE) { bu_log("rt_cline_import4: defective record\n"); return(-1); } - RT_CK_DB_INTERNAL( ip ); + RT_CK_DB_INTERNAL(ip); ip->idb_major_type = DB5_MAJORTYPE_BRLCAD; ip->idb_type = ID_CLINE; ip->idb_meth = &rt_functab[ID_CLINE]; - ip->idb_ptr = bu_malloc( sizeof(struct rt_cline_internal), "rt_cline_internal"); + ip->idb_ptr = bu_malloc(sizeof(struct rt_cline_internal), "rt_cline_internal"); cline_ip = (struct rt_cline_internal *)ip->idb_ptr; cline_ip->magic = RT_CLINE_INTERNAL_MAGIC; if (mat == NULL) mat = bn_mat_identity; - ntohd( (unsigned char *)(&cline_ip->thickness), rp->cli.cli_thick, 1 ); + ntohd((unsigned char *)(&cline_ip->thickness), rp->cli.cli_thick, 1); cline_ip->thickness /= mat[15]; - ntohd( (unsigned char *)(&cline_ip->radius), rp->cli.cli_radius, 1 ); + ntohd((unsigned char *)(&cline_ip->radius), rp->cli.cli_radius, 1); cline_ip->radius /= mat[15]; - ntohd( (unsigned char *)(&work), rp->cli.cli_V, 3 ); - MAT4X3PNT( cline_ip->v, mat, work ); - ntohd( (unsigned char *)(&work), rp->cli.cli_h, 3 ); - MAT4X3VEC( cline_ip->h, mat, work ); + ntohd((unsigned char *)(&work), rp->cli.cli_V, 3); + MAT4X3PNT(cline_ip->v, mat, work); + ntohd((unsigned char *)(&work), rp->cli.cli_h, 3); + MAT4X3VEC(cline_ip->h, mat, work); return(0); /* OK */ } + /** * R T _ C L I N E _ E X P O R T * @@ -869,36 +849,37 @@ int rt_cline_export4(struct bu_external *ep, const struct rt_db_internal *ip, double local2mm, const struct db_i *dbip) { - struct rt_cline_internal *cline_ip; - union record *rec; - fastf_t tmp; - point_t work; + struct rt_cline_internal *cline_ip; + union record *rec; + fastf_t tmp; + point_t work; RT_CK_DB_INTERNAL(ip); - if ( ip->idb_type != ID_CLINE ) return(-1); + if (ip->idb_type != ID_CLINE) return(-1); cline_ip = (struct rt_cline_internal *)ip->idb_ptr; RT_CLINE_CK_MAGIC(cline_ip); BU_CK_EXTERNAL(ep); ep->ext_nbytes = sizeof(union record); - ep->ext_buf = (genptr_t)bu_calloc( 1, ep->ext_nbytes, "cline external"); + ep->ext_buf = (genptr_t)bu_calloc(1, ep->ext_nbytes, "cline external"); rec = (union record *)ep->ext_buf; rec->s.s_id = ID_SOLID; rec->cli.cli_id = DBID_CLINE; /* GED primitive type from db.h */ tmp = cline_ip->thickness * local2mm; - htond( rec->cli.cli_thick, (unsigned char *)(&tmp), 1 ); + htond(rec->cli.cli_thick, (unsigned char *)(&tmp), 1); tmp = cline_ip->radius * local2mm; - htond( rec->cli.cli_radius, (unsigned char *)(&tmp), 1 ); - VSCALE( work, cline_ip->v, local2mm ); - htond( rec->cli.cli_V, (unsigned char *)work, 3 ); - VSCALE( work, cline_ip->h, local2mm ); - htond( rec->cli.cli_h, (unsigned char *)work, 3 ); + htond(rec->cli.cli_radius, (unsigned char *)(&tmp), 1); + VSCALE(work, cline_ip->v, local2mm); + htond(rec->cli.cli_V, (unsigned char *)work, 3); + VSCALE(work, cline_ip->h, local2mm); + htond(rec->cli.cli_h, (unsigned char *)work, 3); return(0); } + /** * R T _ C L I N E _ I M P O R T 5 * @@ -908,24 +889,24 @@ int rt_cline_import5(struct rt_db_internal *ip, const struct bu_external *ep, register const fastf_t *mat, const struct db_i *dbip) { - struct rt_cline_internal *cline_ip; - fastf_t vec[8]; + struct rt_cline_internal *cline_ip; + fastf_t vec[8]; - BU_CK_EXTERNAL( ep ); + BU_CK_EXTERNAL(ep); - BU_ASSERT_LONG( ep->ext_nbytes, ==, SIZEOF_NETWORK_DOUBLE * 8 ); + BU_ASSERT_LONG(ep->ext_nbytes, ==, SIZEOF_NETWORK_DOUBLE * 8); - RT_CK_DB_INTERNAL( ip ); + RT_CK_DB_INTERNAL(ip); ip->idb_major_type = DB5_MAJORTYPE_BRLCAD; ip->idb_type = ID_CLINE; ip->idb_meth = &rt_functab[ID_CLINE]; - ip->idb_ptr = bu_malloc( sizeof(struct rt_cline_internal), "rt_cline_internal"); + ip->idb_ptr = bu_malloc(sizeof(struct rt_cline_internal), "rt_cline_internal"); cline_ip = (struct rt_cline_internal *)ip->idb_ptr; cline_ip->magic = RT_CLINE_INTERNAL_MAGIC; /* Convert from database (network) to internal (host) format */ - ntohd( (unsigned char *)vec, ep->ext_buf, 8 ); + ntohd((unsigned char *)vec, ep->ext_buf, 8); if (mat == NULL) mat = bn_mat_identity; cline_ip->thickness = vec[0] / mat[15]; @@ -936,6 +917,7 @@ return(0); /* OK */ } + /** * R T _ C L I N E _ E X P O R T 5 * @@ -944,11 +926,11 @@ int rt_cline_export5(struct bu_external *ep, const struct rt_db_internal *ip, double local2mm, const struct db_i *dbip) { - struct rt_cline_internal *cline_ip; - fastf_t vec[8]; + struct rt_cline_internal *cline_ip; + fastf_t vec[8]; RT_CK_DB_INTERNAL(ip); - if (ip->idb_type != ID_CLINE) return(-1); + if (ip->idb_type != ID_CLINE) return(-1); cline_ip = (struct rt_cline_internal *)ip->idb_ptr; RT_CLINE_CK_MAGIC(cline_ip); @@ -967,6 +949,7 @@ return(0); } + /** * R T _ C L I N E _ D E S C R I B E * @@ -977,33 +960,31 @@ int rt_cline_describe(struct bu_vls *str, const struct rt_db_internal *ip, int verbose, double mm2local) { - register struct rt_cline_internal *cline_ip = + register struct rt_cline_internal *cline_ip = (struct rt_cline_internal *)ip->idb_ptr; - char buf[256]; + char buf[256]; point_t local_v; vect_t local_h; RT_CLINE_CK_MAGIC(cline_ip); - bu_vls_strcat( str, "cline solid (CLINE)\n"); + bu_vls_strcat(str, "cline solid (CLINE)\n"); - VSCALE( local_v, cline_ip->v, mm2local ); - VSCALE( local_h, cline_ip->h, mm2local ); + VSCALE(local_v, cline_ip->v, mm2local); + VSCALE(local_h, cline_ip->h, mm2local); - if ( cline_ip->thickness > 0.0 ) - { - sprintf( buf, "\tV (%g %g %g)\n\tH (%g %g %g)\n\tradius %g\n\tplate mode thickness %g", - V3INTCLAMPARGS( local_v ), V3INTCLAMPARGS( local_h ), INTCLAMP(cline_ip->radius*mm2local), INTCLAMP(cline_ip->thickness*mm2local) ); + if (cline_ip->thickness > 0.0) { + sprintf(buf, "\tV (%g %g %g)\n\tH (%g %g %g)\n\tradius %g\n\tplate mode thickness %g", + V3INTCLAMPARGS(local_v), V3INTCLAMPARGS(local_h), INTCLAMP(cline_ip->radius*mm2local), INTCLAMP(cline_ip->thickness*mm2local)); + } else { + sprintf(buf, "\tV (%g %g %g)\n\tH (%g %g %g)\n\tradius %g\n\tVolume mode\n", + V3INTCLAMPARGS(local_v), V3INTCLAMPARGS(local_h), INTCLAMP(cline_ip->radius*mm2local)); } - else - { - sprintf( buf, "\tV (%g %g %g)\n\tH (%g %g %g)\n\tradius %g\n\tVolume mode\n", - V3INTCLAMPARGS( local_v ), V3INTCLAMPARGS( local_h ), INTCLAMP(cline_ip->radius*mm2local) ); - } - bu_vls_strcat( str, buf ); + bu_vls_strcat(str, buf); return(0); } + /** * R T _ C L I N E _ I F R E E * @@ -1013,7 +994,7 @@ void rt_cline_ifree(struct rt_db_internal *ip, struct resource *resp) { - register struct rt_cline_internal *cline_ip; + register struct rt_cline_internal *cline_ip; RT_CK_DB_INTERNAL(ip); if (!resp) resp = &rt_uniresource; @@ -1022,46 +1003,48 @@ RT_CLINE_CK_MAGIC(cline_ip); cline_ip->magic = 0; /* sanity */ - bu_free( (char *)cline_ip, "cline ifree" ); + bu_free((char *)cline_ip, "cline ifree"); ip->idb_ptr = GENPTR_NULL; /* sanity */ } + int rt_cline_tnurb(struct nmgregion **r, struct model *m, struct rt_db_internal *ip, const struct bn_tol *tol) { - return( 1 ); + return(1); } + int rt_cline_get(struct bu_vls *log, const struct rt_db_internal *intern, const char *attr) { register struct rt_cline_internal *cli = (struct rt_cline_internal *)intern->idb_ptr; - RT_CLINE_CK_MAGIC( cli ); + RT_CLINE_CK_MAGIC(cli); if (attr == (char *)NULL) { - bu_vls_strcpy( log, "cline" ); - bu_vls_printf( log, " V {%.25G %.25G %.25G}", V3ARGS( cli->v ) ); - bu_vls_printf( log, " H {%.25G %.25G %.25G}", V3ARGS( cli->h ) ); - bu_vls_printf( log, " R %.25G T %.25G", cli->radius, cli->thickness ); - } - else if ( *attr == 'V') - bu_... [truncated message content] |