Skip to content

Commit 3726cf7

Browse files
committed
Use a struct to hold saved flags for less verbosity.
1 parent 2b5c36f commit 3726cf7

File tree

1 file changed

+63
-99
lines changed

1 file changed

+63
-99
lines changed

src/mged/doevent.c

+63-99
Original file line numberDiff line numberDiff line change
@@ -146,19 +146,37 @@ doEvent(ClientData UNUSED(clientData), void *UNUSED(eventPtr)) {
146146
#endif /* HAVE_X11_XLIB_H */
147147

148148

149+
struct saved_edflags {
150+
int save_edflag;
151+
int save_rot;
152+
int save_tra;
153+
int save_sca;
154+
int save_pic;
155+
};
156+
157+
static void
158+
save_flags(struct saved_edflags *sf, struct mged_state *s)
159+
{
160+
sf->save_edflag = s->s_edit->edit_flag;
161+
sf->save_rot = s->s_edit->solid_edit_rotate;
162+
sf->save_tra = s->s_edit->solid_edit_translate;
163+
sf->save_sca = s->s_edit->solid_edit_scale;
164+
sf->save_pic = s->s_edit->solid_edit_pick;
165+
}
166+
167+
149168
#ifdef HAVE_X11_TYPES
150169
static void
151170
motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
152171
{
153172
struct bu_vls cmd = BU_VLS_INIT_ZERO;
154-
int save_edflag = -1;
155-
int save_rot = 0;
156-
int save_tra = 0;
157-
int save_sca = 0;
158-
int save_pic = 0;
159-
int mx, my;
160-
int dx, dy;
161-
int width, height;
173+
char save_coords = mged_variables->mv_coords;
174+
struct saved_edflags edflags;
175+
edflags.save_edflag = -1;
176+
edflags.save_rot = 0;
177+
edflags.save_tra = 0;
178+
edflags.save_sca = 0;
179+
edflags.save_pic = 0;
162180
fastf_t f;
163181
fastf_t fx, fy;
164182
fastf_t td;
@@ -168,12 +186,12 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
168186
if (s->dbip == DBI_NULL)
169187
return;
170188

171-
width = dm_get_width(DMP);
172-
height = dm_get_height(DMP);
173-
mx = xmotion->x;
174-
my = xmotion->y;
175-
dx = mx - dm_omx;
176-
dy = my - dm_omy;
189+
int width = dm_get_width(DMP);
190+
int height = dm_get_height(DMP);
191+
int mx = xmotion->x;
192+
int my = xmotion->y;
193+
int dx = mx - dm_omx;
194+
int dy = my - dm_omy;
177195

178196
switch (am_mode) {
179197
case AMM_IDLE:
@@ -220,23 +238,16 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
220238
break;
221239
case AMM_ROT:
222240
{
223-
char save_coords;
224-
225-
save_coords = mged_variables->mv_coords;
226241
mged_variables->mv_coords = 'v';
227242

228243
if (edit_mode) {
229244

230245
if (s->edit_state.global_editing_state == ST_S_EDIT) {
231-
save_edflag = s->s_edit->edit_flag;
232-
save_rot = s->s_edit->solid_edit_rotate;
233-
save_tra = s->s_edit->solid_edit_translate;
234-
save_sca = s->s_edit->solid_edit_scale;
235-
save_pic = s->s_edit->solid_edit_pick;
246+
save_flags(&edflags, s);
236247
if (!SEDIT_ROTATE)
237248
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_ROT);
238249
} else {
239-
save_edflag = edobj;
250+
edflags.save_edflag = edobj;
240251
edobj = BE_O_ROTATE;
241252
}
242253

@@ -264,9 +275,6 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
264275
}
265276
case AMM_TRAN:
266277
{
267-
char save_coords;
268-
269-
save_coords = mged_variables->mv_coords;
270278
mged_variables->mv_coords = 'v';
271279

272280
fx = dx / (fastf_t)width * 2.0;
@@ -275,15 +283,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
275283
if (edit_mode) {
276284

277285
if (s->edit_state.global_editing_state == ST_S_EDIT) {
278-
save_edflag = s->s_edit->edit_flag;
279-
save_rot = s->s_edit->solid_edit_rotate;
280-
save_tra = s->s_edit->solid_edit_translate;
281-
save_sca = s->s_edit->solid_edit_scale;
282-
save_pic = s->s_edit->solid_edit_pick;
286+
save_flags(&edflags, s);
283287
if (!SEDIT_TRAN)
284288
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_TRANS);
285289
} else {
286-
save_edflag = edobj;
290+
edflags.save_edflag = edobj;
287291
edobj = BE_O_XY;
288292
}
289293

@@ -343,14 +347,10 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
343347
case AMM_SCALE:
344348
if (edit_mode) {
345349
if (s->edit_state.global_editing_state == ST_S_EDIT && !SEDIT_SCALE) {
346-
save_edflag = s->s_edit->edit_flag;
347-
save_rot = s->s_edit->solid_edit_rotate;
348-
save_tra = s->s_edit->solid_edit_translate;
349-
save_sca = s->s_edit->solid_edit_scale;
350-
save_pic = s->s_edit->solid_edit_pick;
350+
save_flags(&edflags, s);
351351
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_SCALE);
352352
} else if (s->edit_state.global_editing_state == ST_O_EDIT && !OEDIT_SCALE) {
353-
save_edflag = edobj;
353+
edflags.save_edflag = edobj;
354354
edobj = BE_O_SCALE;
355355
}
356356
}
@@ -404,15 +404,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
404404
case AMM_CON_ROT_X:
405405
if (edit_mode) {
406406
if (s->edit_state.global_editing_state == ST_S_EDIT) {
407-
save_edflag = s->s_edit->edit_flag;
408-
save_rot = s->s_edit->solid_edit_rotate;
409-
save_tra = s->s_edit->solid_edit_translate;
410-
save_sca = s->s_edit->solid_edit_scale;
411-
save_pic = s->s_edit->solid_edit_pick;
407+
save_flags(&edflags, s);
412408
if (!SEDIT_ROTATE)
413409
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_ROT);
414410
} else {
415-
save_edflag = edobj;
411+
edflags.save_edflag = edobj;
416412
edobj = BE_O_ROTATE;
417413
}
418414
}
@@ -432,15 +428,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
432428
case AMM_CON_ROT_Y:
433429
if (edit_mode) {
434430
if (s->edit_state.global_editing_state == ST_S_EDIT) {
435-
save_edflag = s->s_edit->edit_flag;
436-
save_rot = s->s_edit->solid_edit_rotate;
437-
save_tra = s->s_edit->solid_edit_translate;
438-
save_sca = s->s_edit->solid_edit_scale;
439-
save_pic = s->s_edit->solid_edit_pick;
431+
save_flags(&edflags, s);
440432
if (!SEDIT_ROTATE)
441433
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_ROT);
442434
} else {
443-
save_edflag = edobj;
435+
edflags.save_edflag = edobj;
444436
edobj = BE_O_ROTATE;
445437
}
446438
}
@@ -460,15 +452,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
460452
case AMM_CON_ROT_Z:
461453
if (edit_mode) {
462454
if (s->edit_state.global_editing_state == ST_S_EDIT) {
463-
save_edflag = s->s_edit->edit_flag;
464-
save_rot = s->s_edit->solid_edit_rotate;
465-
save_tra = s->s_edit->solid_edit_translate;
466-
save_sca = s->s_edit->solid_edit_scale;
467-
save_pic = s->s_edit->solid_edit_pick;
455+
save_flags(&edflags, s);
468456
if (!SEDIT_ROTATE)
469457
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_ROT);
470458
} else {
471-
save_edflag = edobj;
459+
edflags.save_edflag = edobj;
472460
edobj = BE_O_ROTATE;
473461
}
474462
}
@@ -488,15 +476,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
488476
case AMM_CON_TRAN_X:
489477
if (edit_mode) {
490478
if (s->edit_state.global_editing_state == ST_S_EDIT) {
491-
save_edflag = s->s_edit->edit_flag;
492-
save_rot = s->s_edit->solid_edit_rotate;
493-
save_tra = s->s_edit->solid_edit_translate;
494-
save_sca = s->s_edit->solid_edit_scale;
495-
save_pic = s->s_edit->solid_edit_pick;
479+
save_flags(&edflags, s);
496480
if (!SEDIT_TRAN)
497481
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_TRANS);
498482
} else if (s->edit_state.global_editing_state == ST_O_EDIT && !OEDIT_TRAN) {
499-
save_edflag = edobj;
483+
edflags.save_edflag = edobj;
500484
edobj = BE_O_X;
501485
}
502486
}
@@ -515,15 +499,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
515499
case AMM_CON_TRAN_Y:
516500
if (edit_mode) {
517501
if (s->edit_state.global_editing_state == ST_S_EDIT) {
518-
save_edflag = s->s_edit->edit_flag;
519-
save_rot = s->s_edit->solid_edit_rotate;
520-
save_tra = s->s_edit->solid_edit_translate;
521-
save_sca = s->s_edit->solid_edit_scale;
522-
save_pic = s->s_edit->solid_edit_pick;
502+
save_flags(&edflags, s);
523503
if (!SEDIT_TRAN)
524504
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_TRANS);
525505
} else if (s->edit_state.global_editing_state == ST_O_EDIT && !OEDIT_TRAN) {
526-
save_edflag = edobj;
506+
edflags.save_edflag = edobj;
527507
edobj = BE_O_Y;
528508
}
529509
}
@@ -542,15 +522,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
542522
case AMM_CON_TRAN_Z:
543523
if (edit_mode) {
544524
if (s->edit_state.global_editing_state == ST_S_EDIT) {
545-
save_edflag = s->s_edit->edit_flag;
546-
save_rot = s->s_edit->solid_edit_rotate;
547-
save_tra = s->s_edit->solid_edit_translate;
548-
save_sca = s->s_edit->solid_edit_scale;
549-
save_pic = s->s_edit->solid_edit_pick;
525+
save_flags(&edflags, s);
550526
if (!SEDIT_TRAN)
551527
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_TRANS);
552528
} else if (s->edit_state.global_editing_state == ST_O_EDIT && !OEDIT_TRAN) {
553-
save_edflag = edobj;
529+
edflags.save_edflag = edobj;
554530
edobj = BE_O_XY;
555531
}
556532
}
@@ -569,15 +545,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
569545
case AMM_CON_SCALE_X:
570546
if (edit_mode) {
571547
if (s->edit_state.global_editing_state == ST_S_EDIT) {
572-
save_edflag = s->s_edit->edit_flag;
573-
save_rot = s->s_edit->solid_edit_rotate;
574-
save_tra = s->s_edit->solid_edit_translate;
575-
save_sca = s->s_edit->solid_edit_scale;
576-
save_pic = s->s_edit->solid_edit_pick;
548+
save_flags(&edflags, s);
577549
if (!SEDIT_SCALE)
578550
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_SCALE);
579551
} else if (s->edit_state.global_editing_state == ST_O_EDIT && !OEDIT_SCALE) {
580-
save_edflag = edobj;
552+
edflags.save_edflag = edobj;
581553
edobj = BE_O_XSCALE;
582554
}
583555
}
@@ -596,15 +568,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
596568
case AMM_CON_SCALE_Y:
597569
if (edit_mode) {
598570
if (s->edit_state.global_editing_state == ST_S_EDIT) {
599-
save_edflag = s->s_edit->edit_flag;
600-
save_rot = s->s_edit->solid_edit_rotate;
601-
save_tra = s->s_edit->solid_edit_translate;
602-
save_sca = s->s_edit->solid_edit_scale;
603-
save_pic = s->s_edit->solid_edit_pick;
571+
save_flags(&edflags, s);
604572
if (!SEDIT_SCALE)
605573
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_SCALE);
606574
} else if (s->edit_state.global_editing_state == ST_O_EDIT && !OEDIT_SCALE) {
607-
save_edflag = edobj;
575+
edflags.save_edflag = edobj;
608576
edobj = BE_O_YSCALE;
609577
}
610578
}
@@ -623,15 +591,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
623591
case AMM_CON_SCALE_Z:
624592
if (edit_mode) {
625593
if (s->edit_state.global_editing_state == ST_S_EDIT) {
626-
save_edflag = s->s_edit->edit_flag;
627-
save_rot = s->s_edit->solid_edit_rotate;
628-
save_tra = s->s_edit->solid_edit_translate;
629-
save_sca = s->s_edit->solid_edit_scale;
630-
save_pic = s->s_edit->solid_edit_pick;
594+
save_flags(&edflags, s);
631595
if (!SEDIT_SCALE)
632596
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_SCALE);
633597
} else if (s->edit_state.global_editing_state == ST_O_EDIT && !OEDIT_SCALE) {
634-
save_edflag = edobj;
598+
edflags.save_edflag = edobj;
635599
edobj = BE_O_ZSCALE;
636600
}
637601
}
@@ -697,15 +661,15 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
697661
(void)Tcl_Eval(s->interp, bu_vls_addr(&cmd));
698662

699663
reset_edflag:
700-
if (save_edflag != -1) {
664+
if (edflags.save_edflag != -1) {
701665
if (s->edit_state.global_editing_state == ST_S_EDIT) {
702-
s->s_edit->edit_flag = save_edflag ;
703-
s->s_edit->solid_edit_rotate = save_rot;
704-
s->s_edit->solid_edit_translate = save_tra;
705-
s->s_edit->solid_edit_scale = save_sca;
706-
s->s_edit->solid_edit_pick = save_pic;
666+
s->s_edit->edit_flag = edflags.save_edflag;
667+
s->s_edit->solid_edit_rotate = edflags.save_rot;
668+
s->s_edit->solid_edit_translate = edflags.save_tra;
669+
s->s_edit->solid_edit_scale = edflags.save_sca;
670+
s->s_edit->solid_edit_pick = edflags.save_pic;
707671
} else if (s->edit_state.global_editing_state == ST_O_EDIT)
708-
edobj = save_edflag;
672+
edobj = edflags.save_edflag;
709673
}
710674

711675
handled:

0 commit comments

Comments
 (0)