diff --git a/src/librt/primitives/cline/edcline.c b/src/librt/primitives/cline/edcline.c index 83b70ca582..d2028277a9 100644 --- a/src/librt/primitives/cline/edcline.c +++ b/src/librt/primitives/cline/edcline.c @@ -54,7 +54,6 @@ cline_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *U s->solid_edit_scale = 1; break; default: - rt_solid_edit_set_edflag(s, arg); break; }; diff --git a/src/librt/primitives/ehy/edehy.c b/src/librt/primitives/ehy/edehy.c index 9940b7cfad..ea33d25d8a 100644 --- a/src/librt/primitives/ehy/edehy.c +++ b/src/librt/primitives/ehy/edehy.c @@ -43,6 +43,16 @@ static void ehy_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UNUSED(data)) { rt_solid_edit_set_edflag(s, arg); + switch (arg) { + case ECMD_EHY_H: + case ECMD_EHY_R1: + case ECMD_EHY_R2: + case ECMD_EHY_C: + s->solid_edit_scale = 1; + break; + default: + break; + }; bu_clbk_t f = NULL; void *d = NULL; diff --git a/src/librt/primitives/ell/edell.c b/src/librt/primitives/ell/edell.c index 764912b807..1eabab9602 100644 --- a/src/librt/primitives/ell/edell.c +++ b/src/librt/primitives/ell/edell.c @@ -44,6 +44,17 @@ ell_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UNU { rt_solid_edit_set_edflag(s, arg); + switch (arg) { + case ECMD_ELL_SCALE_A: + case ECMD_ELL_SCALE_B: + case ECMD_ELL_SCALE_C: + case ECMD_ELL_SCALE_ABC: + s->solid_edit_scale = 1; + break; + default: + break; + }; + bu_clbk_t f = NULL; void *d = NULL; int flag = 1; diff --git a/src/librt/primitives/epa/edepa.c b/src/librt/primitives/epa/edepa.c index 8aff07305a..0cb5ac2d87 100644 --- a/src/librt/primitives/epa/edepa.c +++ b/src/librt/primitives/epa/edepa.c @@ -43,6 +43,17 @@ epa_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UNU { rt_solid_edit_set_edflag(s, arg); + switch (arg) { + case ECMD_EPA_H: + case ECMD_EPA_R1: + case ECMD_EPA_R2: + s->solid_edit_scale = 1; + break; + default: + break; + }; + + bu_clbk_t f = NULL; void *d = NULL; int flag = 1; diff --git a/src/librt/primitives/eto/edeto.c b/src/librt/primitives/eto/edeto.c index 156d63b939..b1e5e35e22 100644 --- a/src/librt/primitives/eto/edeto.c +++ b/src/librt/primitives/eto/edeto.c @@ -43,8 +43,18 @@ static void eto_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UNUSED(data)) { rt_solid_edit_set_edflag(s, arg); - if (arg == ECMD_ETO_ROT_C) - s->solid_edit_rotate = 1; + + switch (arg) { + case ECMD_ETO_R: + case ECMD_ETO_RD: + case ECMD_ETO_SCALE_C: + s->solid_edit_scale = 1; + break; + case ECMD_ETO_ROT_C: + s->solid_edit_rotate = 1; + default: + break; + }; bu_clbk_t f = NULL; void *d = NULL; diff --git a/src/librt/primitives/extrude/edextrude.c b/src/librt/primitives/extrude/edextrude.c index 8b0dbd97e5..2e674d6265 100644 --- a/src/librt/primitives/extrude/edextrude.c +++ b/src/librt/primitives/extrude/edextrude.c @@ -56,7 +56,6 @@ extr_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UN s->solid_edit_translate = 1; break; default: - rt_solid_edit_set_edflag(s, arg); break; }; diff --git a/src/librt/primitives/hyp/edhyp.c b/src/librt/primitives/hyp/edhyp.c index 46b7b4a39b..5d64e7f798 100644 --- a/src/librt/primitives/hyp/edhyp.c +++ b/src/librt/primitives/hyp/edhyp.c @@ -46,8 +46,21 @@ static void hyp_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UNUSED(data)) { rt_solid_edit_set_edflag(s, arg); - if (arg == ECMD_HYP_ROT_H) - s->solid_edit_rotate = 1; + + switch (arg) { + case ECMD_HYP_H: + case ECMD_HYP_SCALE_A: + case ECMD_HYP_SCALE_B: + case ECMD_HYP_C: + s->solid_edit_scale = 1; + break; + case ECMD_HYP_ROT_H: + case ECMD_HYP_ROT_A: + s->solid_edit_rotate = 1; + break; + default: + break; + }; bu_clbk_t f = NULL; void *d = NULL; diff --git a/src/librt/primitives/metaball/edmetaball.c b/src/librt/primitives/metaball/edmetaball.c index b364a2ba37..282fdcac3b 100644 --- a/src/librt/primitives/metaball/edmetaball.c +++ b/src/librt/primitives/metaball/edmetaball.c @@ -111,6 +111,7 @@ metaball_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void m->es_metaball_pnt = next; rt_metaball_pnt_print(m->es_metaball_pnt, s->base2local); rt_solid_edit_set_edflag(s, RT_SOLID_EDIT_IDLE); + // TODO - should we really be calling this here? rt_solid_edit_process(s); break; case ECMD_METABALL_PT_PREV: @@ -126,6 +127,7 @@ metaball_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void m->es_metaball_pnt = prev; rt_metaball_pnt_print(m->es_metaball_pnt, s->base2local); rt_solid_edit_set_edflag(s, RT_SOLID_EDIT_IDLE); + // TODO - should we really be calling this here? rt_solid_edit_process(s); break; case ECMD_METABALL_PT_MOV: @@ -134,17 +136,19 @@ metaball_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void rt_solid_edit_set_edflag(s, RT_SOLID_EDIT_IDLE); return; } + // TODO - should we really be calling this here? rt_solid_edit_process(s); break; case ECMD_METABALL_PT_FLDSTR: + s->solid_edit_scale = 1; if (!m->es_metaball_pnt) { bu_vls_printf(s->log_str, "No Metaball Point selected\n"); rt_solid_edit_set_edflag(s, RT_SOLID_EDIT_IDLE); return; } - rt_solid_edit_set_edflag(s, RT_SOLID_EDIT_SCALE); break; case ECMD_METABALL_PT_DEL: + // TODO - should we really be calling this here? rt_solid_edit_process(s); break; case ECMD_METABALL_PT_ADD: diff --git a/src/librt/primitives/nmg/ednmg.c b/src/librt/primitives/nmg/ednmg.c index 25c61d0a69..388c305e70 100644 --- a/src/librt/primitives/nmg/ednmg.c +++ b/src/librt/primitives/nmg/ednmg.c @@ -100,13 +100,19 @@ nmg_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UNU bu_clbk_t f = NULL; void *d = NULL; + rt_solid_edit_set_edflag(s, arg); + switch (arg) { default: bu_vls_printf(s->log_str, "nmg_ed: undefined menu event?\n"); return; case ECMD_NMG_EPICK: + s->solid_edit_pick = 1; + break; case ECMD_NMG_EMOVE: case ECMD_NMG_ESPLIT: + s->solid_edit_translate = 1; + break; case ECMD_NMG_EKILL: break; case ECMD_NMG_EDEBUG: @@ -149,6 +155,7 @@ nmg_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UNU bu_vls_free(&tmp_vls); } + // TODO - should we really be calling this here? rt_solid_edit_process(s); return; case ECMD_NMG_BACK: @@ -169,6 +176,7 @@ nmg_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UNU bu_vls_free(&tmp_vls); } + // TODO - should we really be calling this here? rt_solid_edit_process(s); return; case ECMD_NMG_RADIAL: @@ -189,6 +197,7 @@ nmg_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UNU bu_vls_free(&tmp_vls); } + // TODO - should we really be calling this here? rt_solid_edit_process(s); return; case ECMD_NMG_LEXTRU: @@ -201,6 +210,7 @@ nmg_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UNU struct edgeuse *eu; fastf_t area; int wire_loop_count = 0; + s->solid_edit_translate = 1; m = (struct model *)s->es_int.idb_ptr; NMG_CK_MODEL(m); @@ -340,21 +350,7 @@ nmg_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UNU break; } - rt_solid_edit_set_edflag(s, arg); - - switch (arg) { - case ECMD_NMG_EMOVE: - case ECMD_NMG_ESPLIT: - case ECMD_NMG_LEXTRU: - s->solid_edit_translate = 1; - break; - case ECMD_NMG_EPICK: - s->solid_edit_pick = 1; - break; - default: - break; - }; - + // TODO - should we really be calling this here? rt_solid_edit_process(s); } struct rt_solid_edit_menu_item nmg_menu[] = { diff --git a/src/librt/primitives/part/edpart.c b/src/librt/primitives/part/edpart.c index 2d70e8aba8..6b5bcb38d6 100644 --- a/src/librt/primitives/part/edpart.c +++ b/src/librt/primitives/part/edpart.c @@ -43,6 +43,16 @@ part_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UN { rt_solid_edit_set_edflag(s, arg); + switch (arg) { + case ECMD_PART_H: + case ECMD_PART_v: + case ECMD_PART_h: + s->solid_edit_scale = 1; + break; + default: + break; + }; + bu_clbk_t f = NULL; void *d = NULL; int flag = 1; diff --git a/src/librt/primitives/pipe/edpipe.c b/src/librt/primitives/pipe/edpipe.c index 0ee816dbc1..dd5bbdfb3e 100644 --- a/src/librt/primitives/pipe/edpipe.c +++ b/src/librt/primitives/pipe/edpipe.c @@ -112,6 +112,7 @@ pipe_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UN p->es_pipe_pnt = next; rt_pipe_pnt_print(p->es_pipe_pnt, s->base2local); rt_solid_edit_set_edflag(s, RT_SOLID_EDIT_IDLE); + // TODO - should we really be calling this here? rt_solid_edit_process(s); break; case ECMD_PIPE_PREV_PT: @@ -127,6 +128,7 @@ pipe_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UN p->es_pipe_pnt = prev; rt_pipe_pnt_print(p->es_pipe_pnt, s->base2local); rt_solid_edit_set_edflag(s, RT_SOLID_EDIT_IDLE); + // TODO - should we really be calling this here? rt_solid_edit_process(s); break; case ECMD_PIPE_PT_MOVE: @@ -145,12 +147,12 @@ pipe_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UN rt_solid_edit_set_edflag(s, RT_SOLID_EDIT_IDLE); return; } - rt_solid_edit_set_edflag(s, RT_SOLID_EDIT_SCALE); + s->solid_edit_scale = 1; break; case ECMD_PIPE_SCALE_OD: case ECMD_PIPE_SCALE_ID: case ECMD_PIPE_SCALE_RADIUS: - rt_solid_edit_set_edflag(s, RT_SOLID_EDIT_SCALE); + s->solid_edit_scale = 1; break; case ECMD_PIPE_PT_ADD: s->solid_edit_translate = 1; diff --git a/src/librt/primitives/rhc/edrhc.c b/src/librt/primitives/rhc/edrhc.c index 8f70e8350d..c55f9e6f04 100644 --- a/src/librt/primitives/rhc/edrhc.c +++ b/src/librt/primitives/rhc/edrhc.c @@ -44,6 +44,17 @@ rhc_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UNU { rt_solid_edit_set_edflag(s, arg); + switch (arg) { + case ECMD_RHC_B: + case ECMD_RHC_H: + case ECMD_RHC_R: + case ECMD_RHC_C: + s->solid_edit_scale = 1; + break; + default: + break; + }; + bu_clbk_t f = NULL; void *d = NULL; int flag = 1; diff --git a/src/librt/primitives/rpc/edrpc.c b/src/librt/primitives/rpc/edrpc.c index 452c5d886a..0e79fbc2b2 100644 --- a/src/librt/primitives/rpc/edrpc.c +++ b/src/librt/primitives/rpc/edrpc.c @@ -43,6 +43,16 @@ rpc_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UNU { rt_solid_edit_set_edflag(s, arg); + switch (arg) { + case ECMD_RPC_B: + case ECMD_RPC_H: + case ECMD_RPC_R: + s->solid_edit_scale = 1; + break; + default: + break; + }; + bu_clbk_t f = NULL; void *d = NULL; int flag = 1; diff --git a/src/librt/primitives/superell/edsuperell.c b/src/librt/primitives/superell/edsuperell.c index be521c3bd1..0f24a53f14 100644 --- a/src/librt/primitives/superell/edsuperell.c +++ b/src/librt/primitives/superell/edsuperell.c @@ -44,6 +44,17 @@ superell_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void { rt_solid_edit_set_edflag(s, arg); + switch (arg) { + case ECMD_SUPERELL_SCALE_A: + case ECMD_SUPERELL_SCALE_B: + case ECMD_SUPERELL_SCALE_C: + case ECMD_SUPERELL_SCALE_ABC: + s->solid_edit_scale = 1; + break; + default: + break; + }; + bu_clbk_t f = NULL; void *d = NULL; int flag = 1; diff --git a/src/librt/primitives/vol/edvol.c b/src/librt/primitives/vol/edvol.c index 1a5eef0c45..a580db011c 100644 --- a/src/librt/primitives/vol/edvol.c +++ b/src/librt/primitives/vol/edvol.c @@ -95,7 +95,7 @@ ecmd_vol_csize(struct rt_solid_edit *s) RT_VOL_CK_MAGIC(vol); // Specified numerical input - if (s_>e_inpara) { + if (s->e_inpara) { if (s->e_inpara != 3) { bu_vls_printf(s->log_str, "x, y, and z cell sizes are required\n"); rt_solid_edit_map_clbk_get(&f, &d, s->m, ECMD_PRINT_RESULTS, BU_CLBK_DURING);