Skip to content

Commit

Permalink
Adjust edit_xy methods, add sedit equiv. call
Browse files Browse the repository at this point in the history
Ah, OK.  The edit_xy routines merely set the stage for the full-on
processing edit call.  Initial breakout was slightly off the mark in
that it was having the edit_xy calls try to do everything in certain
cases and not calling the main routine from sedit_mouse, which is why
most things weren't updating properly.

Will need another pass to make sure all the equivalents are in place as
compared to the big case table, but with this change setting the A
parameter in cone.s in moss.g example is behaving much better.
  • Loading branch information
starseeker committed Feb 7, 2025
1 parent 02092e7 commit 427cd9f
Show file tree
Hide file tree
Showing 14 changed files with 27 additions and 35 deletions.
2 changes: 0 additions & 2 deletions src/librt/primitives/arb8/edarb.c
Original file line number Diff line number Diff line change
Expand Up @@ -1329,7 +1329,6 @@ rt_solid_edit_arb_edit_xy(
case RT_SOLID_EDIT_SCALE:
case RT_SOLID_EDIT_PSCALE:
rt_solid_edit_generic_sscale_xy(s, mousevec);
rt_solid_edit_arb_edit(s);
return 0;
case RT_SOLID_EDIT_TRANS:
rt_solid_edit_generic_strans_xy(&pos_view, s, mousevec);
Expand All @@ -1352,7 +1351,6 @@ rt_solid_edit_arb_edit_xy(
}

rt_update_edit_absolute_tran(s, pos_view);
rt_solid_edit_arb_edit(s);

return 0;
}
Expand Down
2 changes: 0 additions & 2 deletions src/librt/primitives/ars/edars.c
Original file line number Diff line number Diff line change
Expand Up @@ -923,7 +923,6 @@ rt_solid_edit_ars_edit_xy(
case RT_SOLID_EDIT_SCALE:
case RT_SOLID_EDIT_PSCALE:
rt_solid_edit_generic_sscale_xy(s, mousevec);
rt_solid_edit_ars_edit(s);
return 0;
case RT_SOLID_EDIT_TRANS:
rt_solid_edit_generic_strans_xy(&pos_view, s, mousevec);
Expand All @@ -948,7 +947,6 @@ rt_solid_edit_ars_edit_xy(
}

rt_update_edit_absolute_tran(s, pos_view);
rt_solid_edit_ars_edit(s);

return 0;
}
Expand Down
2 changes: 0 additions & 2 deletions src/librt/primitives/bot/edbot.c
Original file line number Diff line number Diff line change
Expand Up @@ -779,7 +779,6 @@ rt_solid_edit_bot_edit_xy(
case RT_SOLID_EDIT_SCALE:
case RT_SOLID_EDIT_PSCALE:
rt_solid_edit_generic_sscale_xy(s, mousevec);
rt_solid_edit_bot_edit(s);
return 0;
case RT_SOLID_EDIT_TRANS:
rt_solid_edit_generic_strans_xy(&pos_view, s, mousevec);
Expand Down Expand Up @@ -814,7 +813,6 @@ rt_solid_edit_bot_edit_xy(
}

rt_update_edit_absolute_tran(s, pos_view);
rt_solid_edit_bot_edit(s);

return 0;
}
Expand Down
2 changes: 0 additions & 2 deletions src/librt/primitives/bspline/edbspline.c
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,6 @@ rt_solid_edit_bspline_edit_xy(
case RT_SOLID_EDIT_SCALE:
case RT_SOLID_EDIT_PSCALE:
rt_solid_edit_generic_sscale_xy(s, mousevec);
rt_solid_edit_bspline_edit(s);
return 0;
case RT_SOLID_EDIT_TRANS:
rt_solid_edit_generic_strans_xy(&pos_view, s, mousevec);
Expand Down Expand Up @@ -421,7 +420,6 @@ rt_solid_edit_bspline_edit_xy(
}

rt_update_edit_absolute_tran(s, pos_view);
rt_solid_edit_bspline_edit(s);

return 0;
}
Expand Down
2 changes: 0 additions & 2 deletions src/librt/primitives/cline/edcline.c
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,6 @@ rt_solid_edit_cline_edit_xy(
case ECMD_CLINE_SCALE_T:
case ECMD_CLINE_SCALE_R:
rt_solid_edit_generic_sscale_xy(s, mousevec);
rt_solid_edit_cline_edit(s);
return 0;
case RT_SOLID_EDIT_TRANS:
rt_solid_edit_generic_strans_xy(&pos_view, s, mousevec);
Expand All @@ -347,7 +346,6 @@ rt_solid_edit_cline_edit_xy(
}

rt_update_edit_absolute_tran(s, pos_view);
rt_solid_edit_cline_edit(s);

return 0;
}
Expand Down
2 changes: 0 additions & 2 deletions src/librt/primitives/dsp/eddsp.c
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,6 @@ rt_solid_edit_dsp_edit_xy(
case ECMD_DSP_SCALE_Y:
case ECMD_DSP_SCALE_ALT:
rt_solid_edit_generic_sscale_xy(s, mousevec);
rt_solid_edit_dsp_edit(s);
return 0;
case RT_SOLID_EDIT_TRANS:
rt_solid_edit_generic_strans_xy(&pos_view, s, mousevec);
Expand All @@ -293,7 +292,6 @@ rt_solid_edit_dsp_edit_xy(
}

rt_update_edit_absolute_tran(s, pos_view);
rt_solid_edit_dsp_edit(s);

return 0;
}
Expand Down
2 changes: 0 additions & 2 deletions src/librt/primitives/ebm/edebm.c
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,6 @@ rt_solid_edit_ebm_edit_xy(
case RT_SOLID_EDIT_PSCALE:
case ECMD_EBM_HEIGHT:
rt_solid_edit_generic_sscale_xy(s, mousevec);
rt_solid_edit_ebm_edit(s);
return 0;
case RT_SOLID_EDIT_TRANS:
rt_solid_edit_generic_strans_xy(&pos_view, s, mousevec);
Expand All @@ -279,7 +278,6 @@ rt_solid_edit_ebm_edit_xy(
}

rt_update_edit_absolute_tran(s, pos_view);
rt_solid_edit_ebm_edit(s);

return 0;
}
Expand Down
2 changes: 0 additions & 2 deletions src/librt/primitives/extrude/edextrude.c
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,6 @@ rt_solid_edit_extrude_edit_xy(
case RT_SOLID_EDIT_PSCALE:
case ECMD_EXTR_SCALE_H:
rt_solid_edit_generic_sscale_xy(s, mousevec);
rt_solid_edit_extrude_edit(s);
return 0;
case RT_SOLID_EDIT_TRANS:
rt_solid_edit_generic_strans_xy(&pos_view, s, mousevec);
Expand All @@ -381,7 +380,6 @@ rt_solid_edit_extrude_edit_xy(
}

rt_update_edit_absolute_tran(s, pos_view);
rt_solid_edit_extrude_edit(s);

return 0;
}
Expand Down
2 changes: 0 additions & 2 deletions src/librt/primitives/metaball/edmetaball.c
Original file line number Diff line number Diff line change
Expand Up @@ -534,7 +534,6 @@ rt_solid_edit_metaball_edit_xy(
case RT_SOLID_EDIT_SCALE:
case RT_SOLID_EDIT_PSCALE:
rt_solid_edit_generic_sscale_xy(s, mousevec);
rt_solid_edit_metaball_edit(s);
return 0;
case RT_SOLID_EDIT_TRANS:
rt_solid_edit_generic_strans_xy(&pos_view, s, mousevec);
Expand All @@ -558,7 +557,6 @@ rt_solid_edit_metaball_edit_xy(
}

rt_update_edit_absolute_tran(s, pos_view);
rt_solid_edit_metaball_edit(s);

return 0;
}
Expand Down
2 changes: 0 additions & 2 deletions src/librt/primitives/nmg/ednmg.c
Original file line number Diff line number Diff line change
Expand Up @@ -1021,7 +1021,6 @@ rt_solid_edit_nmg_edit_xy(
case RT_SOLID_EDIT_SCALE:
case RT_SOLID_EDIT_PSCALE:
rt_solid_edit_generic_sscale_xy(s, mousevec);
rt_solid_edit_nmg_edit(s);
return 0;
case RT_SOLID_EDIT_TRANS:
rt_solid_edit_generic_strans_xy(&pos_view, s, mousevec);
Expand Down Expand Up @@ -1049,7 +1048,6 @@ rt_solid_edit_nmg_edit_xy(
}

rt_update_edit_absolute_tran(s, pos_view);
rt_solid_edit_nmg_edit(s);

return 0;
}
Expand Down
2 changes: 0 additions & 2 deletions src/librt/primitives/pipe/edpipe.c
Original file line number Diff line number Diff line change
Expand Up @@ -1224,7 +1224,6 @@ rt_solid_edit_pipe_edit_xy(
case RT_SOLID_EDIT_SCALE:
case RT_SOLID_EDIT_PSCALE:
rt_solid_edit_generic_sscale_xy(s, mousevec);
rt_solid_edit_pipe_edit(s);
return 0;
case RT_SOLID_EDIT_TRANS:
rt_solid_edit_generic_strans_xy(&pos_view, s, mousevec);
Expand All @@ -1250,7 +1249,6 @@ rt_solid_edit_pipe_edit_xy(
}

rt_update_edit_absolute_tran(s, pos_view);
rt_solid_edit_pipe_edit(s);

return 0;
}
Expand Down
30 changes: 20 additions & 10 deletions src/librt/primitives/tgc/edtgc.c
Original file line number Diff line number Diff line change
Expand Up @@ -816,10 +816,13 @@ rt_solid_edit_tgc_pscale(struct rt_solid_edit *s)
int
rt_solid_edit_tgc_edit(struct rt_solid_edit *s)
{
int ret = 0;

switch (s->edit_flag) {
case RT_SOLID_EDIT_SCALE:
/* scale the solid uniformly about its vertex point */
return rt_solid_edit_generic_sscale(s, &s->es_int);
ret = rt_solid_edit_generic_sscale(s, &s->es_int);
break;
case RT_SOLID_EDIT_TRANS:
/* translate solid */
rt_solid_edit_generic_strans(s, &s->es_int);
Expand All @@ -829,18 +832,28 @@ rt_solid_edit_tgc_edit(struct rt_solid_edit *s)
rt_solid_edit_generic_srot(s, &s->es_int);
break;
case ECMD_TGC_MV_H:
return ecmd_tgc_mv_h(s);
ret = ecmd_tgc_mv_h(s);
break;
case ECMD_TGC_MV_HH:
return ecmd_tgc_mv_hh(s);
ret = ecmd_tgc_mv_hh(s);
break;
case ECMD_TGC_ROT_H:
return ecmd_tgc_rot_h(s);
ret = ecmd_tgc_rot_h(s);
break;
case ECMD_TGC_ROT_AB:
return ecmd_tgc_rot_ab(s);
ret = ecmd_tgc_rot_ab(s);
break;
default:
return rt_solid_edit_tgc_pscale(s);
ret = rt_solid_edit_tgc_pscale(s);
}

return 0;
bu_clbk_t f = NULL;
void *d = NULL;
rt_solid_edit_map_clbk_get(&f, &d, s->m, ECMD_REPLOT_EDITING_SOLID, BU_CLBK_DURING);
if (f)
(*f)(0, NULL, d, NULL);

return ret;
}

int
Expand All @@ -858,7 +871,6 @@ rt_solid_edit_tgc_edit_xy(
case RT_SOLID_EDIT_SCALE:
case RT_SOLID_EDIT_PSCALE:
rt_solid_edit_generic_sscale_xy(s, mousevec);
rt_solid_edit_tgc_edit(s);
return 0;
case RT_SOLID_EDIT_TRANS:
rt_solid_edit_generic_strans_xy(&pos_view, s, mousevec);
Expand All @@ -879,12 +891,10 @@ rt_solid_edit_tgc_edit_xy(
default:
// Everything else should be a scale
rt_solid_edit_generic_sscale_xy(s, mousevec);
rt_solid_edit_tgc_edit(s);
return 0;
}

rt_update_edit_absolute_tran(s, pos_view);
rt_solid_edit_tgc_edit(s);

return 0;
}
Expand Down
2 changes: 0 additions & 2 deletions src/librt/primitives/vol/edvol.c
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,6 @@ rt_solid_edit_vol_edit_xy(
case ECMD_VOL_THRESH_LO:
case ECMD_VOL_THRESH_HI:
rt_solid_edit_generic_sscale_xy(s, mousevec);
rt_solid_edit_vol_edit(s);
return 0;
case RT_SOLID_EDIT_TRANS:
rt_solid_edit_generic_strans_xy(&pos_view, s, mousevec);
Expand All @@ -380,7 +379,6 @@ rt_solid_edit_vol_edit_xy(
}

rt_update_edit_absolute_tran(s, pos_view);
rt_solid_edit_vol_edit(s);

return 0;
}
Expand Down
8 changes: 7 additions & 1 deletion src/mged/edsol.c
Original file line number Diff line number Diff line change
Expand Up @@ -754,15 +754,21 @@ sedit_mouse(struct mged_state *s, const vect_t mousevec)
if (s->s_edit->edit_flag <= 0)
return;

int ret = 0;
const struct rt_db_internal *ip = &s->s_edit->es_int;
if (EDOBJ[ip->idb_type].ft_edit_xy) {
bu_vls_trunc(s->s_edit->log_str, 0);
(*EDOBJ[ip->idb_type].ft_edit_xy)(s->s_edit, mousevec);
ret = (*EDOBJ[ip->idb_type].ft_edit_xy)(s->s_edit, mousevec);
if (bu_vls_strlen(s->s_edit->log_str)) {
Tcl_AppendResult(s->interp, bu_vls_cstr(s->s_edit->log_str), (char *)NULL);
bu_vls_trunc(s->s_edit->log_str, 0);
}
}

if (ret == BRLCAD_ERROR)
return;

rt_solid_edit_process(s->s_edit);
}


Expand Down

0 comments on commit 427cd9f

Please sign in to comment.