Revision: 76181
          http://sourceforge.net/p/brlcad/code/76181
Author:   starseeker
Date:     2020-06-22 21:52:17 +0000 (Mon, 22 Jun 2020)
Log Message:
-----------
It looks like this might be the use case for which the ged_refresh_handler 
callback was introduced.

Modified Paths:
--------------
    brlcad/trunk/include/dm/bview.h
    brlcad/trunk/src/libged/view/data_lines.c
    brlcad/trunk/src/libtclcad/tclcad_obj.c

Modified: brlcad/trunk/include/dm/bview.h
===================================================================
--- brlcad/trunk/include/dm/bview.h     2020-06-22 18:56:37 UTC (rev 76180)
+++ brlcad/trunk/include/dm/bview.h     2020-06-22 21:52:17 UTC (rev 76181)
@@ -268,7 +268,6 @@
     fastf_t                     gv_curve_scale;
     fastf_t                     gv_data_vZ;
     size_t                      gv_bot_threshold;
-    int                         gv_refresh;
 };
 
 

Modified: brlcad/trunk/src/libged/view/data_lines.c
===================================================================
--- brlcad/trunk/src/libged/view/data_lines.c   2020-06-22 18:56:37 UTC (rev 
76180)
+++ brlcad/trunk/src/libged/view/data_lines.c   2020-06-22 21:52:17 UTC (rev 
76181)
@@ -46,19 +46,20 @@
     struct view_dlines_state *vs = (struct view_dlines_state *)bs;
     struct ged *gedp = vs->gedp;
     struct bview_data_line_state *gdlsp = vs->gdlsp;
-    if (argc == 2) {
+    if (argc == 1) {
        bu_vls_printf(gedp->ged_result_str, "%d", gdlsp->gdls_draw);
        return GED_OK;
     }
 
-    if (argc == 3) {
+    if (argc == 2) {
        int i;
 
-       if (bu_sscanf(argv[2], "%d", &i) != 1) return GED_ERROR;
+       if (bu_sscanf(argv[1], "%d", &i) != 1) return GED_ERROR;
 
        gdlsp->gdls_draw = (i) ? 1 : 0;
 
-       gedp->ged_gvp->gv_refresh = 1;
+       if (gedp->ged_refresh_handler != GED_REFRESH_CALLBACK_PTR_NULL)
+           (*gedp->ged_refresh_handler)(gedp->ged_refresh_clientdata);
        return GED_OK;
     }
 
@@ -72,18 +73,18 @@
     struct ged *gedp = vs->gedp;
     struct bview_data_line_state *gdlsp = vs->gdlsp;
 
-    if (argc == 2) {
+    if (argc == 1) {
        bu_vls_printf(gedp->ged_result_str, "%d %d %d", 
V3ARGS(gdlsp->gdls_color));
        return GED_OK;
     }
 
-    if (argc == 5) {
+    if (argc == 4) {
        int r, g, b;
 
        /* set background color */
-       if (bu_sscanf(argv[2], "%d", &r) != 1 ||
-               bu_sscanf(argv[3], "%d", &g) != 1 ||
-               bu_sscanf(argv[4], "%d", &b) != 1)
+       if (bu_sscanf(argv[1], "%d", &r) != 1 ||
+               bu_sscanf(argv[2], "%d", &g) != 1 ||
+               bu_sscanf(argv[3], "%d", &b) != 1)
            return GED_ERROR;
 
        /* validate color */
@@ -94,7 +95,9 @@
 
        VSET(gdlsp->gdls_color, r, g, b);
 
-       gedp->ged_gvp->gv_refresh = 1;
+       if (gedp->ged_refresh_handler != GED_REFRESH_CALLBACK_PTR_NULL)
+           (*gedp->ged_refresh_handler)(gedp->ged_refresh_clientdata);
+
        return GED_OK;
     }
 
@@ -108,20 +111,22 @@
     struct ged *gedp = vs->gedp;
     struct bview_data_line_state *gdlsp = vs->gdlsp;
 
-    if (argc == 2) {
+    if (argc == 1) {
        bu_vls_printf(gedp->ged_result_str, "%d", gdlsp->gdls_line_width);
        return GED_OK;
     }
 
-    if (argc == 3) {
+    if (argc == 2) {
        int line_width;
 
-       if (bu_sscanf(argv[2], "%d", &line_width) != 1)
+       if (bu_sscanf(argv[1], "%d", &line_width) != 1)
            return GED_ERROR;
 
        gdlsp->gdls_line_width = line_width;
 
-       gedp->ged_gvp->gv_refresh = 1;
+       if (gedp->ged_refresh_handler != GED_REFRESH_CALLBACK_PTR_NULL)
+           (*gedp->ged_refresh_handler)(gedp->ged_refresh_clientdata);
+
        return GED_OK;
     }
 
@@ -136,7 +141,7 @@
     struct bview_data_line_state *gdlsp = vs->gdlsp;
     int i;
 
-    if (argc == 2) {
+    if (argc == 1) {
        for (i = 0; i < gdlsp->gdls_num_points; ++i) {
            bu_vls_printf(gedp->ged_result_str, " {%lf %lf %lf} ", 
V3ARGS(gdlsp->gdls_points[i]));
        }
@@ -143,11 +148,11 @@
        return GED_OK;
     }
 
-    if (argc == 3) {
+    if (argc == 2) {
        int ac;
        const char **av;
 
-       if (bu_argv_from_tcl_list(argv[2], &ac, &av)) {
+       if (bu_argv_from_tcl_list(argv[1], &ac, &av)) {
            bu_vls_printf(gedp->ged_result_str, "failed to parse list");
            return GED_ERROR;
        }
@@ -165,7 +170,9 @@
 
        /* Clear out data points */
        if (ac < 1) {
-           gedp->ged_gvp->gv_refresh = 1;
+           if (gedp->ged_refresh_handler != GED_REFRESH_CALLBACK_PTR_NULL)
+               (*gedp->ged_refresh_handler)(gedp->ged_refresh_clientdata);
+
            bu_free((char *)av, "av");
            return GED_OK;
        }
@@ -182,7 +189,9 @@
                gdlsp->gdls_points = (point_t *)0;
                gdlsp->gdls_num_points = 0;
 
-               gedp->ged_gvp->gv_refresh = 1;
+               if (gedp->ged_refresh_handler != GED_REFRESH_CALLBACK_PTR_NULL)
+                   (*gedp->ged_refresh_handler)(gedp->ged_refresh_clientdata);
+
                bu_free((char *)av, "av");
                return GED_ERROR;
            }
@@ -190,7 +199,8 @@
            VMOVE(gdlsp->gdls_points[i], scan);
        }
 
-       gedp->ged_gvp->gv_refresh = 1;
+       if (gedp->ged_refresh_handler != GED_REFRESH_CALLBACK_PTR_NULL)
+           (*gedp->ged_refresh_handler)(gedp->ged_refresh_clientdata);
        bu_free((char *)av, "av");
        return GED_OK;
     }
@@ -234,7 +244,9 @@
        vs.gdlsp = &gedp->ged_gvp->gv_data_lines;
     }
 
-    if (bu_cmd_valid(_view_dline_cmds, argv[1]) != BRLCAD_OK) {
+    argc--;argv++;
+
+    if (bu_cmd_valid(_view_dline_cmds, argv[0]) != BRLCAD_OK) {
        bu_vls_printf(gedp->ged_result_str, "invalid subcommand: %s", argv[1]);
        return GED_ERROR;
     }

Modified: brlcad/trunk/src/libtclcad/tclcad_obj.c
===================================================================
--- brlcad/trunk/src/libtclcad/tclcad_obj.c     2020-06-22 18:56:37 UTC (rev 
76180)
+++ brlcad/trunk/src/libtclcad/tclcad_obj.c     2020-06-22 21:52:17 UTC (rev 
76181)
@@ -3676,10 +3676,7 @@
 
     gedp->ged_gvp = btmp;
 
-    if (gdvp->gdv_view->gv_refresh) {
-       to_refresh_view(gdvp);
-       gdvp->gdv_view->gv_refresh = 0;
-    }
+    to_refresh_view(gdvp);
     if (ret == GED_ERROR)
        bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
 
@@ -3732,10 +3729,7 @@
 
     gedp->ged_gvp = btmp;
 
-    if (gdvp->gdv_view->gv_refresh) {
-       to_refresh_view(gdvp);
-       gdvp->gdv_view->gv_refresh = 0;
-    }
+    to_refresh_view(gdvp);
 
     if (ret == GED_ERROR)
        bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);

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

Reply via email to