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
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits