Revision: 76164 http://sourceforge.net/p/brlcad/code/76164 Author: starseeker Date: 2020-06-19 18:30:58 +0000 (Fri, 19 Jun 2020) Log Message: ----------- Replace MGED's _grid_state with the bview.h version of the structure (used by libged)
Modified Paths: -------------- brlcad/trunk/include/dm/bview.h brlcad/trunk/src/mged/attach.c brlcad/trunk/src/mged/dm-generic.c brlcad/trunk/src/mged/doevent.c brlcad/trunk/src/mged/grid.c brlcad/trunk/src/mged/mged.c brlcad/trunk/src/mged/mged_dm.h brlcad/trunk/src/mged/share.c Modified: brlcad/trunk/include/dm/bview.h =================================================================== --- brlcad/trunk/include/dm/bview.h 2020-06-19 18:29:52 UTC (rev 76163) +++ brlcad/trunk/include/dm/bview.h 2020-06-19 18:30:58 UTC (rev 76164) @@ -110,6 +110,7 @@ }; struct bview_grid_state { + int rc; int draw; /* draw grid */ int snap; /* snap to grid */ fastf_t anchor[3]; Modified: brlcad/trunk/src/mged/attach.c =================================================================== --- brlcad/trunk/src/mged/attach.c 2020-06-19 18:29:52 UTC (rev 76163) +++ brlcad/trunk/src/mged/attach.c 2020-06-19 18:30:58 UTC (rev 76164) @@ -896,9 +896,9 @@ color_scheme->cs_rc = 1; - BU_ALLOC(grid_state, struct _grid_state); + BU_ALLOC(grid_state, struct bview_grid_state); *grid_state = *initial_dm_list->dml_grid_state; /* struct copy */ - grid_state->gr_rc = 1; + grid_state->rc = 1; BU_ALLOC(axes_state, struct _axes_state); *axes_state = *initial_dm_list->dml_axes_state; /* struct copy */ Modified: brlcad/trunk/src/mged/dm-generic.c =================================================================== --- brlcad/trunk/src/mged/dm-generic.c 2020-06-19 18:29:52 UTC (rev 76163) +++ brlcad/trunk/src/mged/dm-generic.c 2020-06-19 18:30:58 UTC (rev 76164) @@ -167,7 +167,7 @@ point_t view_pt; point_t model_pt; - if (grid_state->gr_snap) + if (grid_state->snap) snap_to_grid(&fx, &fy); if (mged_variables->mv_perspective_mode) @@ -187,7 +187,7 @@ mged_variables->mv_mouse_behavior == 'r' || mged_variables->mv_mouse_behavior == 'z') && !stolen) { - if (grid_state->gr_snap) + if (grid_state->snap) snap_to_grid(&fx, &fy); rubber_band->rb_active = 1; @@ -216,7 +216,7 @@ point_t model_pt; point_t view_pt; - if (grid_state->gr_snap) + if (grid_state->snap) snap_to_grid(&fx, &fy); VSET(view_pt, fx, fy, 1.0); @@ -223,7 +223,7 @@ MAT4X3PNT(model_pt, view_state->vs_gvp->gv_view2model, view_pt); VSCALE(model_pt, model_pt, base2local); bu_vls_printf(&vls, "adc xyz %lf %lf %lf\n", model_pt[X], model_pt[Y], model_pt[Z]); - } else if (grid_state->gr_snap && !stolen && + } else if (grid_state->snap && !stolen && SEDIT_TRAN && mged_variables->mv_transform == 'e') { point_t view_pt; point_t model_pt; @@ -235,7 +235,7 @@ MAT4X3PNT(model_pt, view_state->vs_gvp->gv_view2model, view_pt); VSCALE(model_pt, model_pt, base2local); bu_vls_printf(&vls, "p %lf %lf %lf", model_pt[X], model_pt[Y], model_pt[Z]); - } else if (grid_state->gr_snap && !stolen && + } else if (grid_state->snap && !stolen && OEDIT_TRAN && mged_variables->mv_transform == 'e') { point_t view_pt; point_t model_pt; @@ -247,7 +247,7 @@ MAT4X3PNT(model_pt, view_state->vs_gvp->gv_view2model, view_pt); VSCALE(model_pt, model_pt, base2local); bu_vls_printf(&vls, "translate %lf %lf %lf", model_pt[X], model_pt[Y], model_pt[Z]); - } else if (grid_state->gr_snap && !stolen && + } else if (grid_state->snap && !stolen && STATE != ST_S_PICK && STATE != ST_O_PICK && STATE != ST_O_PATH && !SEDIT_PICK && !EDIT_SCALE) { point_t view_pt; @@ -289,7 +289,7 @@ case 't': am_mode = AMM_TRAN; - if (grid_state->gr_snap) { + if (grid_state->snap) { int save_edflag; if ((STATE == ST_S_EDIT || STATE == ST_O_EDIT) && @@ -376,7 +376,7 @@ VSET(view_pt, dm_Xx2Normal(DMP, dml_omx), dm_Xy2Normal(DMP, dml_omy, 1), 0.0); - if (grid_state->gr_snap) + if (grid_state->snap) snap_to_grid(&view_pt[X], &view_pt[Y]); MAT4X3PNT(model_pt, view_state->vs_gvp->gv_view2model, view_pt); Modified: brlcad/trunk/src/mged/doevent.c =================================================================== --- brlcad/trunk/src/mged/doevent.c 2020-06-19 18:29:52 UTC (rev 76163) +++ brlcad/trunk/src/mged/doevent.c 2020-06-19 18:30:58 UTC (rev 76164) @@ -263,7 +263,7 @@ fastf_t x = dm_Xx2Normal(DMP, mx); fastf_t y = dm_Xy2Normal(DMP, my, 1); - if (grid_state->gr_snap) + if (grid_state->snap) snap_to_grid(&x, &y); rubber_band->rb_width = x - rubber_band->rb_x; @@ -361,7 +361,7 @@ if (mged_variables->mv_rateknobs) bu_vls_printf(&cmd, "knob -i X %lf Y %lf\n", fx, fy); - else if (grid_state->gr_snap) { + else if (grid_state->snap) { point_t view_pt; point_t model_pt; point_t vcenter, diff; @@ -391,7 +391,7 @@ if (mged_variables->mv_rateknobs) /* otherwise, drag to translate the view */ bu_vls_printf(&cmd, "knob -i -v X %lf Y %lf\n", fx, fy); else { - if (grid_state->gr_snap) { + if (grid_state->snap) { /* accumulate distance mouse moved since starting to translate */ dml_mouse_dx += dx; dml_mouse_dy += dy; @@ -454,7 +454,7 @@ VSET(view_pt, dm_Xx2Normal(DMP, mx), dm_Xy2Normal(DMP, my, 1), 0.0); - if (grid_state->gr_snap) + if (grid_state->snap) snap_to_grid(&view_pt[X], &view_pt[Y]); MAT4X3PNT(model_pt, view_state->vs_gvp->gv_view2model, view_pt); Modified: brlcad/trunk/src/mged/grid.c =================================================================== --- brlcad/trunk/src/mged/grid.c 2020-06-19 18:29:52 UTC (rev 76163) +++ brlcad/trunk/src/mged/grid.c 2020-06-19 18:30:58 UTC (rev 76164) @@ -44,28 +44,29 @@ static void set_grid_res(const struct bu_structparse *, const char *, void *, const char *, void *); -struct _grid_state default_grid_state = { - /* gr_rc */ 1, - /* gr_draw */ 0, - /* gr_snap */ 0, - /* gr_anchor */ VINIT_ZERO, - /* gr_res_h */ 1.0, - /* gr_res_v */ 1.0, - /* gr_res_major_h */ 5, - /* gr_res_major_v */ 5, +struct bview_grid_state default_grid_state = { + /* rc */ 1, + /* draw */ 0, + /* snap */ 0, + /* anchor */ VINIT_ZERO, + /* res_h */ 1.0, + /* res_v */ 1.0, + /* res_major_h */ 5, + /* res_major_v */ 5, + /* color */ {0, 0, 0} }; -#define GRID_O(_m) bu_offsetof(struct _grid_state, _m) +#define GRID_O(_m) bu_offsetof(struct bview_grid_state, _m) struct bu_structparse grid_vparse[] = { - {"%d", 1, "draw", GRID_O(gr_draw), set_grid_draw, NULL, NULL }, - {"%d", 1, "snap", GRID_O(gr_snap), grid_set_dirty_flag, NULL, NULL }, - {"%f", 3, "anchor", GRID_O(gr_anchor), grid_set_dirty_flag, NULL, NULL }, - {"%f", 1, "rh", GRID_O(gr_res_h), set_grid_res, NULL, NULL }, - {"%f", 1, "rv", GRID_O(gr_res_v), set_grid_res, NULL, NULL }, - {"%d", 1, "mrh", GRID_O(gr_res_major_h), set_grid_res, NULL, NULL }, - {"%d", 1, "mrv", GRID_O(gr_res_major_v), set_grid_res, NULL, NULL }, - {"", 0, NULL, 0, BU_STRUCTPARSE_FUNC_NULL, NULL, NULL } + {"%d", 1, "draw", GRID_O(draw), set_grid_draw, NULL, NULL }, + {"%d", 1, "snap", GRID_O(snap), grid_set_dirty_flag, NULL, NULL }, + {"%f", 3, "anchor", GRID_O(anchor), grid_set_dirty_flag, NULL, NULL }, + {"%f", 1, "rh", GRID_O(res_h), set_grid_res, NULL, NULL }, + {"%f", 1, "rv", GRID_O(res_v), set_grid_res, NULL, NULL }, + {"%d", 1, "mrh", GRID_O(res_major_h), set_grid_res, NULL, NULL }, + {"%d", 1, "mrv", GRID_O(res_major_v), set_grid_res, NULL, NULL }, + {"", 0, NULL, 0, BU_STRUCTPARSE_FUNC_NULL, NULL, NULL } }; @@ -94,7 +95,7 @@ struct dm_list *dlp; if (DBIP == DBI_NULL) { - grid_state->gr_draw = 0; + grid_state->draw = 0; return; } @@ -101,11 +102,11 @@ grid_set_dirty_flag(sdp, name, base, value, data); /* This gets done at most one time. */ - if (grid_auto_size && grid_state->gr_draw) { + if (grid_auto_size && grid_state->draw) { fastf_t res = view_state->vs_gvp->gv_size*base2local / 64.0; - grid_state->gr_res_h = res; - grid_state->gr_res_v = res; + grid_state->res_h = res; + grid_state->res_v = res; FOR_ALL_DISPLAYS(dlp, &head_dm_list.l) if (dlp->dml_grid_state == grid_state) dlp->dml_grid_auto_size = 0; @@ -151,12 +152,12 @@ fastf_t inv_aspect; if (DBIP == DBI_NULL || - ZERO(grid_state->gr_res_h) || - ZERO(grid_state->gr_res_v)) + ZERO(grid_state->res_h) || + ZERO(grid_state->res_v)) return; - inv_grid_res_h= 1.0 / grid_state->gr_res_h; - inv_grid_res_v= 1.0 / grid_state->gr_res_v; + inv_grid_res_h= 1.0 / grid_state->res_h; + inv_grid_res_v= 1.0 / grid_state->res_v; sf = view_state->vs_gvp->gv_scale*base2local; @@ -165,7 +166,7 @@ int width = dm_get_width(DMP); fastf_t pixel_size = 2.0 * sf / (fastf_t)width; - if (grid_state->gr_res_h < pixel_size || grid_state->gr_res_v < pixel_size) + if (grid_state->res_h < pixel_size || grid_state->res_v < pixel_size) return; } @@ -172,10 +173,10 @@ inv_sf = 1.0 / sf; inv_aspect = 1.0 / dm_get_aspect(DMP); - nv_dots = 2.0 * inv_aspect * sf * inv_grid_res_v + (2 * grid_state->gr_res_major_v); - nh_dots = 2.0 * sf * inv_grid_res_h + (2 * grid_state->gr_res_major_h); + nv_dots = 2.0 * inv_aspect * sf * inv_grid_res_v + (2 * grid_state->res_major_v); + nh_dots = 2.0 * sf * inv_grid_res_h + (2 * grid_state->res_major_h); - VSCALE(model_grid_anchor, grid_state->gr_anchor, local2base); + VSCALE(model_grid_anchor, grid_state->anchor, local2base); MAT4X3PNT(view_grid_anchor, view_state->vs_gvp->gv_model2view, model_grid_anchor); VSCALE(view_grid_anchor_local, view_grid_anchor, sf); @@ -187,11 +188,11 @@ { int nmh, nmv; - nmh = nh / grid_state->gr_res_major_h + 1; - nmv = nv / grid_state->gr_res_major_v + 1; + nmh = nh / grid_state->res_major_h + 1; + nmv = nv / grid_state->res_major_v + 1; VSET(view_grid_start_pt_local, - view_grid_anchor_local[X] - (nmh * grid_state->gr_res_h * grid_state->gr_res_major_h), - view_grid_anchor_local[Y] - (nmv * grid_state->gr_res_v * grid_state->gr_res_major_v), + view_grid_anchor_local[X] - (nmh * grid_state->res_h * grid_state->res_major_h), + view_grid_anchor_local[Y] - (nmv * grid_state->res_v * grid_state->res_major_v), 0.0); } @@ -202,22 +203,22 @@ dm_set_line_attr(DMP, 1, 0); /* solid lines */ /* draw horizontal dots */ - for (i = 0; i < nv_dots; i += grid_state->gr_res_major_v) { - fy = (view_grid_start_pt_local[Y] + (i * grid_state->gr_res_v)) * inv_sf; + for (i = 0; i < nv_dots; i += grid_state->res_major_v) { + fy = (view_grid_start_pt_local[Y] + (i * grid_state->res_v)) * inv_sf; for (j = 0; j < nh_dots; ++j) { - fx = (view_grid_start_pt_local[X] + (j * grid_state->gr_res_h)) * inv_sf; + fx = (view_grid_start_pt_local[X] + (j * grid_state->res_h)) * inv_sf; dm_draw_point_2d(DMP, fx, fy * dm_get_aspect(DMP)); } } /* draw vertical dots */ - if (grid_state->gr_res_major_v != 1) { - for (i = 0; i < nh_dots; i += grid_state->gr_res_major_h) { - fx = (view_grid_start_pt_local[X] + (i * grid_state->gr_res_h)) * inv_sf; + if (grid_state->res_major_v != 1) { + for (i = 0; i < nh_dots; i += grid_state->res_major_h) { + fx = (view_grid_start_pt_local[X] + (i * grid_state->res_h)) * inv_sf; for (j = 0; j < nv_dots; ++j) { - fy = (view_grid_start_pt_local[Y] + (j * grid_state->gr_res_v)) * inv_sf; + fy = (view_grid_start_pt_local[Y] + (j * grid_state->res_v)) * inv_sf; dm_draw_point_2d(DMP, fx, fy * dm_get_aspect(DMP)); } } @@ -240,8 +241,8 @@ fastf_t inv_sf; if (DBIP == DBI_NULL || - ZERO(grid_state->gr_res_h) || - ZERO(grid_state->gr_res_v)) + ZERO(grid_state->res_h) || + ZERO(grid_state->res_v)) return; sf = view_state->vs_gvp->gv_scale*base2local; @@ -250,12 +251,12 @@ VSET(view_pt, *mx, *my, 0.0); VSCALE(view_pt, view_pt, sf); /* view_pt now in local units */ - VSCALE(model_grid_anchor, grid_state->gr_anchor, local2base); + VSCALE(model_grid_anchor, grid_state->anchor, local2base); MAT4X3PNT(view_grid_anchor, view_state->vs_gvp->gv_model2view, model_grid_anchor); VSCALE(view_grid_anchor, view_grid_anchor, sf); /* view_grid_anchor now in local units */ - grid_units_h = (view_grid_anchor[X] - view_pt[X]) / grid_state->gr_res_h; - grid_units_v = (view_grid_anchor[Y] - view_pt[Y]) / grid_state->gr_res_v; + grid_units_h = (view_grid_anchor[X] - view_pt[X]) / grid_state->res_h; + grid_units_v = (view_grid_anchor[Y] - view_pt[Y]) / grid_state->res_v; nh = grid_units_h; nv = grid_units_v; @@ -263,18 +264,18 @@ grid_units_v -= nv; /* now contains only the fraction part */ if (grid_units_h <= -0.5) - *mx = view_grid_anchor[X] - ((nh - 1) * grid_state->gr_res_h); + *mx = view_grid_anchor[X] - ((nh - 1) * grid_state->res_h); else if (0.5 <= grid_units_h) - *mx = view_grid_anchor[X] - ((nh + 1) * grid_state->gr_res_h); + *mx = view_grid_anchor[X] - ((nh + 1) * grid_state->res_h); else - *mx = view_grid_anchor[X] - (nh * grid_state->gr_res_h); + *mx = view_grid_anchor[X] - (nh * grid_state->res_h); if (grid_units_v <= -0.5) - *my = view_grid_anchor[Y] - ((nv - 1) * grid_state->gr_res_v); + *my = view_grid_anchor[Y] - ((nv - 1) * grid_state->res_v); else if (0.5 <= grid_units_v) - *my = view_grid_anchor[Y] - ((nv + 1) * grid_state->gr_res_v); + *my = view_grid_anchor[Y] - ((nv + 1) * grid_state->res_v); else - *my = view_grid_anchor[Y] - (nv * grid_state->gr_res_v); + *my = view_grid_anchor[Y] - (nv * grid_state->res_v); *mx *= inv_sf; *my *= inv_sf; @@ -355,8 +356,8 @@ int nh, nv; if (DBIP == DBI_NULL || - ZERO(grid_state->gr_res_h) || - ZERO(grid_state->gr_res_v)) + ZERO(grid_state->res_h) || + ZERO(grid_state->res_v)) return; sf = view_state->vs_gvp->gv_scale*base2local; @@ -363,8 +364,8 @@ inv_sf = 1 / sf; /* convert mouse distance to grid units */ - grid_units_h = *view_dx * sf / grid_state->gr_res_h; - grid_units_v = *view_dy * sf / grid_state->gr_res_v; + grid_units_h = *view_dx * sf / grid_state->res_h; + grid_units_v = *view_dy * sf / grid_state->res_v; nh = grid_units_h; nv = grid_units_v; grid_units_h -= nh; @@ -371,18 +372,18 @@ grid_units_v -= nv; if (grid_units_h <= -0.5) - *view_dx = (nh - 1) * grid_state->gr_res_h; + *view_dx = (nh - 1) * grid_state->res_h; else if (0.5 <= grid_units_h) - *view_dx = (nh + 1) * grid_state->gr_res_h; + *view_dx = (nh + 1) * grid_state->res_h; else - *view_dx = nh * grid_state->gr_res_h; + *view_dx = nh * grid_state->res_h; if (grid_units_v <= -0.5) - *view_dy = (nv - 1) * grid_state->gr_res_v; + *view_dy = (nv - 1) * grid_state->res_v; else if (0.5 <= grid_units_v) - *view_dy = (nv + 1) * grid_state->gr_res_v; + *view_dy = (nv + 1) * grid_state->res_v; else - *view_dy = nv * grid_state->gr_res_v; + *view_dy = nv * grid_state->res_v; *view_dx *= inv_sf; *view_dy *= inv_sf; @@ -396,8 +397,8 @@ point_t vcenter, diff; if (DBIP == DBI_NULL || - ZERO(grid_state->gr_res_h) || - ZERO(grid_state->gr_res_v)) + ZERO(grid_state->res_h) || + ZERO(grid_state->res_v)) return; round_to_grid(&view_dx, &view_dy); @@ -424,9 +425,9 @@ struct bu_vls cmd = BU_VLS_INIT_ZERO; FOR_ALL_DISPLAYS(dlp, &head_dm_list.l) { - dlp->dml_grid_state->gr_res_h *= sf; - dlp->dml_grid_state->gr_res_v *= sf; - VSCALE(dlp->dml_grid_state->gr_anchor, dlp->dml_grid_state->gr_anchor, sf); + dlp->dml_grid_state->res_h *= sf; + dlp->dml_grid_state->res_v *= sf; + VSCALE(dlp->dml_grid_state->anchor, dlp->dml_grid_state->anchor, sf); } bu_vls_strcpy(&save_result, Tcl_GetStringResult(INTERP)); Modified: brlcad/trunk/src/mged/mged.c =================================================================== --- brlcad/trunk/src/mged/mged.c 2020-06-19 18:29:52 UTC (rev 76163) +++ brlcad/trunk/src/mged/mged.c 2020-06-19 18:30:58 UTC (rev 76164) @@ -109,7 +109,7 @@ extern struct _color_scheme default_color_scheme; /* defined in grid.c */ -extern struct _grid_state default_grid_state; +extern struct bview_grid_state default_grid_state; /* defined in axes.c */ extern struct _axes_state default_axes_state; @@ -1291,7 +1291,7 @@ BU_ALLOC(color_scheme, struct _color_scheme); *color_scheme = default_color_scheme; /* struct copy */ - BU_ALLOC(grid_state, struct _grid_state); + BU_ALLOC(grid_state, struct bview_grid_state); *grid_state = default_grid_state; /* struct copy */ BU_ALLOC(axes_state, struct _axes_state); @@ -2378,7 +2378,7 @@ if (rubber_band->rb_active || rubber_band->rb_draw) draw_rect(); - if (grid_state->gr_draw) + if (grid_state->draw) draw_grid(); /* Compute and display angle/distance cursor */ Modified: brlcad/trunk/src/mged/mged_dm.h =================================================================== --- brlcad/trunk/src/mged/mged_dm.h 2020-06-19 18:29:52 UTC (rev 76163) +++ brlcad/trunk/src/mged/mged_dm.h 2020-06-19 18:30:58 UTC (rev 76164) @@ -179,19 +179,6 @@ int dl_flag; }; - -struct _grid_state { - int gr_rc; - int gr_draw; /* draw grid */ - int gr_snap; /* snap to grid */ - fastf_t gr_anchor[3]; - fastf_t gr_res_h; /* grid resolution in h */ - fastf_t gr_res_v; /* grid resolution in v */ - int gr_res_major_h; /* major grid resolution in h */ - int gr_res_major_v; /* major grid resolution in v */ -}; - - struct _adc_state { int adc_rc; int adc_draw; @@ -441,7 +428,7 @@ struct _rubber_band *dml_rubber_band; struct _mged_variables *dml_mged_variables; struct _color_scheme *dml_color_scheme; - struct _grid_state *dml_grid_state; + struct bview_grid_state *dml_grid_state; struct _axes_state *dml_axes_state; struct _dlist_state *dml_dlist_state; Modified: brlcad/trunk/src/mged/share.c =================================================================== --- brlcad/trunk/src/mged/share.c 2020-06-19 18:29:52 UTC (rev 76163) +++ brlcad/trunk/src/mged/share.c 2020-06-19 18:30:58 UTC (rev 76164) @@ -200,7 +200,7 @@ break; case 'g': case 'G': - SHARE_RESOURCE(uflag, _grid_state, dml_grid_state, gr_rc, dlp1, dlp2, vls, "share: grid_state"); + SHARE_RESOURCE(uflag, bview_grid_state, dml_grid_state, rc, dlp1, dlp2, vls, "share: grid_state"); break; case 'm': case 'M': @@ -382,7 +382,7 @@ dlp2->dml_rubber_band = (struct _rubber_band *)NULL; dlp2->dml_mged_variables = (struct _mged_variables *)NULL; dlp2->dml_color_scheme = (struct _color_scheme *)NULL; - dlp2->dml_grid_state = (struct _grid_state *)NULL; + dlp2->dml_grid_state = (struct bview_grid_state *)NULL; dlp2->dml_axes_state = (struct _axes_state *)NULL; /* it doesn't make sense to save display list info */ @@ -418,7 +418,7 @@ if (!--dlp->dml_color_scheme->cs_rc) bu_free((void *)dlp->dml_color_scheme, "free_all_resources: color_scheme"); - if (!--dlp->dml_grid_state->gr_rc) + if (!--dlp->dml_grid_state->rc) bu_free((void *)dlp->dml_grid_state, "free_all_resources: grid_state"); if (!--dlp->dml_axes_state->ax_rc) 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