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