Skip to content

Commit

Permalink
Add the resets for NMG variables.
Browse files Browse the repository at this point in the history
  • Loading branch information
starseeker committed Feb 4, 2025
1 parent 7cce33c commit fe2855e
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 13 deletions.
17 changes: 8 additions & 9 deletions src/mged/edsol.c
Original file line number Diff line number Diff line change
Expand Up @@ -1302,15 +1302,15 @@ sedit_apply(struct mged_state *s, int accept_flag)
{
struct directory *dp;

// TODO - may need a reset functab for this...
#if 0
es_eu = (struct edgeuse *)NULL; /* Reset es_eu */
/* reset internal variables */
if (EDOBJ[s->s_edit->es_int.idb_type].ft_prim_edit_reset)
(*EDOBJ[s->s_edit->es_int.idb_type].ft_prim_edit_reset)(s->s_edit);

es_pipe_pnt = (struct wdb_pipe_pnt *)NULL; /* Reset es_pipe_pnt */
es_metaball_pnt = (struct wdb_metaball_pnt *)NULL; /* Reset es_metaball_pnt */
bot_verts[0] = -1;
bot_verts[1] = -1;
bot_verts[2] = -1;
#endif

/* make sure we are in solid edit mode */
if (!illump) {
Expand Down Expand Up @@ -1891,14 +1891,13 @@ f_sedit_reset(ClientData clientData, Tcl_Interp *interp, int argc, const char *U
/* free old copy */
rt_db_free_internal(&s->s_edit->es_int);

#if 0
// TODO - may need reset functab for this...
/* reset internal variables */
if (EDOBJ[s->s_edit->es_int.idb_type].ft_prim_edit_reset)
(*EDOBJ[s->s_edit->es_int.idb_type].ft_prim_edit_reset)(s->s_edit);

/* reset */
es_pipe_pnt = (struct wdb_pipe_pnt *)NULL;
es_metaball_pnt = (struct wdb_metaball_pnt *)NULL;
es_s = (struct shell *)NULL;
es_eu = (struct edgeuse *)NULL;
#endif

/* read in a fresh copy */
if (!illump || !illump->s_u_data)
Expand Down
4 changes: 2 additions & 2 deletions src/mged/primitives/edfunctab.h
Original file line number Diff line number Diff line change
Expand Up @@ -314,8 +314,8 @@ struct rt_solid_edit_functab {
#define EDFUNCTAB_FUNC_PRIMEDIT_DESTROY_CAST(_func) ((void(*)(void *))((void (*)(void))_func))

/* Create primitive specific editing struct */
void *(*ft_prim_edit_reset)(struct rt_solid_edit *s);
#define EDFUNCTAB_FUNC_PRIMEDIT_RESET_CAST(_func) ((void *(*)(struct rt_solid_edit *))((void (*)(void))_func))
void (*ft_prim_edit_reset)(struct rt_solid_edit *s);
#define EDFUNCTAB_FUNC_PRIMEDIT_RESET_CAST(_func) ((void(*)(struct rt_solid_edit *))((void (*)(void))_func))

int (*ft_menu_str)(struct bu_vls *m, const struct rt_db_internal *ip, const struct bn_tol *tol);
#define EDFUNCTAB_FUNC_MENU_STR_CAST(_func) ((int(*)(struct bu_vls *, const struct rt_db_internal *, const struct bn_tol *))((void (*)(void))_func))
Expand Down
7 changes: 7 additions & 0 deletions src/mged/primitives/ednmg.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,13 @@ rt_solid_edit_nmg_prim_edit_destroy(struct rt_nmg_edit *e)
BU_PUT(e, struct rt_nmg_edit);
}

void
rt_solid_edit_nmg_prim_edit_reset(struct rt_solid_edit *s)
{
struct rt_nmg_edit *n = (struct rt_nmg_edit *)s->ipe_ptr;
n->es_eu = NULL;
n->es_s = NULL;
}

/*
* Handler for events in the NMG menu.
Expand Down
5 changes: 3 additions & 2 deletions src/mged/primitives/table.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,9 @@ extern "C" {
extern void rt_solid_edit_##name##_read_params(struct rt_db_internal *ip, const char *fc, const struct bn_tol *tol, fastf_t local2base); \
extern int rt_solid_edit_##name##_edit(struct rt_solid_edit *s, int edflag); \
extern int rt_solid_edit_##name##_edit_xy(struct rt_solid_edit *s, int edflag, vect_t mousevec); \
extern void *rt_solid_edit_##name##_prim_edit_create(void); \
extern void *rt_solid_edit_##name##_prim_edit_create(struct rt_solid_edit *s); \
extern void rt_solid_edit_##name##_prim_edit_destroy(void *); \
extern void rt_solid_edit_##name##_prim_edit_reset(struct rt_solid_edit *s); \
extern int rt_solid_edit_##name##_menu_str(struct bu_vls *m, const struct rt_db_internal *ip, const struct bn_tol *tol); \
extern struct rt_solid_edit_menu_item *rt_solid_edit_##name##_menu_item(const struct bn_tol *tol); \

Expand Down Expand Up @@ -288,7 +289,7 @@ const struct rt_solid_edit_functab EDOBJ[] = {
EDFUNCTAB_FUNC_EDITXY_CAST(rt_solid_edit_nmg_edit_xy), /* edit xy */
EDFUNCTAB_FUNC_PRIMEDIT_CREATE_CAST(rt_solid_edit_nmg_prim_edit_create), /* prim edit create */
EDFUNCTAB_FUNC_PRIMEDIT_DESTROY_CAST(rt_solid_edit_nmg_prim_edit_destroy), /* prim edit destroy */
NULL, /* prim edit reset*/
EDFUNCTAB_FUNC_PRIMEDIT_RESET_CAST(rt_solid_edit_nmg_prim_edit_reset), /* prim edit reset */
EDFUNCTAB_FUNC_MENU_STR_CAST(rt_solid_edit_generic_menu_str), /* menu_str */
EDFUNCTAB_FUNC_MENU_ITEM_CAST(rt_solid_edit_nmg_menu_item) /* menu_item */
},
Expand Down

0 comments on commit fe2855e

Please sign in to comment.