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

Reply via email to