Revision: 76236 http://sourceforge.net/p/brlcad/code/76236 Author: starseeker Date: 2020-06-29 16:27:29 +0000 (Mon, 29 Jun 2020) Log Message: ----------- More work on line snapping... still not able to get it to respond to the Archer mouse...
Modified Paths: -------------- brlcad/trunk/src/libged/view/data_lines.c brlcad/trunk/src/libged/view/snap.c brlcad/trunk/src/libtclcad/tclcad_obj.c Modified: brlcad/trunk/src/libged/view/data_lines.c =================================================================== --- brlcad/trunk/src/libged/view/data_lines.c 2020-06-29 14:22:57 UTC (rev 76235) +++ brlcad/trunk/src/libged/view/data_lines.c 2020-06-29 16:27:29 UTC (rev 76236) @@ -31,6 +31,9 @@ * Archer> view sdata_lines line_width 100 * Archer> view sdata_lines color 255 0 0 * + * in sph.s sph 0 0 0 10 + * view sdata_lines points {{1.5 -10 0} {1.5 10 0}}; view sdata_lines color 255 0 0; view sdata_lines draw 1 + * * Note that gedp->ged_gvp must be set to the correct display * manager before calling this command, to put the output in * the correct display manager. If the same line is to be shown @@ -89,6 +92,29 @@ } static int +_view_dlines_cmd_snap(void *bs, int argc, const char **argv) +{ + struct view_dlines_state *vs = (struct view_dlines_state *)bs; + struct ged *gedp = vs->gedp; + if (argc == 1) { + bu_vls_printf(gedp->ged_result_str, "%d", gedp->ged_gvp->gv_snap_lines); + return GED_OK; + } + + if (argc == 2) { + int i; + + if (bu_sscanf(argv[1], "%d", &i) != 1) return GED_ERROR; + + gedp->ged_gvp->gv_snap_lines = (i) ? 1 : 0; + + return GED_OK; + } + + return GED_ERROR; +} + +static int _view_dlines_cmd_color(void *bs, int argc, const char **argv) { struct view_dlines_state *vs = (struct view_dlines_state *)bs; @@ -235,6 +261,7 @@ { "color", _view_dlines_cmd_color}, { "line_width", _view_dlines_cmd_line_width}, { "points", _view_dlines_cmd_points}, + { "snap", _view_dlines_cmd_snap}, { (char *)NULL, NULL} }; Modified: brlcad/trunk/src/libged/view/snap.c =================================================================== --- brlcad/trunk/src/libged/view/snap.c 2020-06-29 14:22:57 UTC (rev 76235) +++ brlcad/trunk/src/libged/view/snap.c 2020-06-29 16:27:29 UTC (rev 76236) @@ -250,8 +250,9 @@ MAT4X3PNT(p, gedp->ged_gvp->gv_view2model, vp); if (ged_snap_lines(&out_pt, gedp, &p) == GED_OK) { MAT4X3PNT(vp, gedp->ged_gvp->gv_model2view, out_pt); - (*vx) = p[0]; - (*vy) = p[1]; + (*vx) = vp[0]; + (*vy) = vp[1]; + bu_log("x, y: %g, %g\n", *vx, *vy); return 1; } Modified: brlcad/trunk/src/libtclcad/tclcad_obj.c =================================================================== --- brlcad/trunk/src/libtclcad/tclcad_obj.c 2020-06-29 14:22:57 UTC (rev 76235) +++ brlcad/trunk/src/libtclcad/tclcad_obj.c 2020-06-29 16:27:29 UTC (rev 76236) @@ -13771,7 +13771,7 @@ fvy = vy; gedp->ged_gvp = gdvp->gdv_view; - if (!gedp->ged_gvp->gv_grid.snap) { + if (!gedp->ged_gvp->gv_snap_lines && !gedp->ged_gvp->gv_grid.snap) { bu_vls_printf(gedp->ged_result_str, "%lf %lf", fvx, fvy); return GED_OK; } @@ -13780,7 +13780,7 @@ if (gedp->ged_gvp->gv_snap_lines) { snapped = ged_snap_to_lines(gedp, &fvx, &fvy); } - if (!snapped) { + if (!snapped && gedp->ged_gvp->gv_grid.snap) { ged_snap_to_grid(gedp, &fvx, &fvy); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits