Skip to content

Commit 23f29ed

Browse files
committed
Use a struct to hold saved flags for less verbosity.
1 parent 762dcaf commit 23f29ed

File tree

1 file changed

+57
-90
lines changed

1 file changed

+57
-90
lines changed

src/mged/doevent.c

+57-90
Original file line numberDiff line numberDiff line change
@@ -146,16 +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;
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;
159180
fastf_t f;
160181
fastf_t fx, fy;
161182
fastf_t td;
@@ -217,23 +238,16 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
217238
break;
218239
case AMM_ROT:
219240
{
220-
char save_coords;
221-
222-
save_coords = mged_variables->mv_coords;
223241
mged_variables->mv_coords = 'v';
224242

225243
if (edit_mode) {
226244

227245
if (s->edit_state.global_editing_state == ST_S_EDIT) {
228-
save_edflag = s->s_edit->edit_flag;
229-
save_rot = s->s_edit->solid_edit_rotate;
230-
save_tra = s->s_edit->solid_edit_translate;
231-
save_sca = s->s_edit->solid_edit_scale;
232-
save_pic = s->s_edit->solid_edit_pick;
246+
save_flags(&edflags, s);
233247
if (!SEDIT_ROTATE)
234248
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_ROT);
235249
} else {
236-
save_edflag = edobj;
250+
edflags.save_edflag = edobj;
237251
edobj = BE_O_ROTATE;
238252
}
239253

@@ -261,9 +275,6 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
261275
}
262276
case AMM_TRAN:
263277
{
264-
char save_coords;
265-
266-
save_coords = mged_variables->mv_coords;
267278
mged_variables->mv_coords = 'v';
268279

269280
fx = dx / (fastf_t)width * 2.0;
@@ -272,15 +283,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
272283
if (edit_mode) {
273284

274285
if (s->edit_state.global_editing_state == ST_S_EDIT) {
275-
save_edflag = s->s_edit->edit_flag;
276-
save_rot = s->s_edit->solid_edit_rotate;
277-
save_tra = s->s_edit->solid_edit_translate;
278-
save_sca = s->s_edit->solid_edit_scale;
279-
save_pic = s->s_edit->solid_edit_pick;
286+
save_flags(&edflags, s);
280287
if (!SEDIT_TRAN)
281288
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_TRANS);
282289
} else {
283-
save_edflag = edobj;
290+
edflags.save_edflag = edobj;
284291
edobj = BE_O_XY;
285292
}
286293

@@ -340,14 +347,10 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
340347
case AMM_SCALE:
341348
if (edit_mode) {
342349
if (s->edit_state.global_editing_state == ST_S_EDIT && !SEDIT_SCALE) {
343-
save_edflag = s->s_edit->edit_flag;
344-
save_rot = s->s_edit->solid_edit_rotate;
345-
save_tra = s->s_edit->solid_edit_translate;
346-
save_sca = s->s_edit->solid_edit_scale;
347-
save_pic = s->s_edit->solid_edit_pick;
350+
save_flags(&edflags, s);
348351
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_SCALE);
349352
} else if (s->edit_state.global_editing_state == ST_O_EDIT && !OEDIT_SCALE) {
350-
save_edflag = edobj;
353+
edflags.save_edflag = edobj;
351354
edobj = BE_O_SCALE;
352355
}
353356
}
@@ -401,15 +404,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
401404
case AMM_CON_ROT_X:
402405
if (edit_mode) {
403406
if (s->edit_state.global_editing_state == ST_S_EDIT) {
404-
save_edflag = s->s_edit->edit_flag;
405-
save_rot = s->s_edit->solid_edit_rotate;
406-
save_tra = s->s_edit->solid_edit_translate;
407-
save_sca = s->s_edit->solid_edit_scale;
408-
save_pic = s->s_edit->solid_edit_pick;
407+
save_flags(&edflags, s);
409408
if (!SEDIT_ROTATE)
410409
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_ROT);
411410
} else {
412-
save_edflag = edobj;
411+
edflags.save_edflag = edobj;
413412
edobj = BE_O_ROTATE;
414413
}
415414
}
@@ -429,15 +428,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
429428
case AMM_CON_ROT_Y:
430429
if (edit_mode) {
431430
if (s->edit_state.global_editing_state == ST_S_EDIT) {
432-
save_edflag = s->s_edit->edit_flag;
433-
save_rot = s->s_edit->solid_edit_rotate;
434-
save_tra = s->s_edit->solid_edit_translate;
435-
save_sca = s->s_edit->solid_edit_scale;
436-
save_pic = s->s_edit->solid_edit_pick;
431+
save_flags(&edflags, s);
437432
if (!SEDIT_ROTATE)
438433
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_ROT);
439434
} else {
440-
save_edflag = edobj;
435+
edflags.save_edflag = edobj;
441436
edobj = BE_O_ROTATE;
442437
}
443438
}
@@ -457,15 +452,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
457452
case AMM_CON_ROT_Z:
458453
if (edit_mode) {
459454
if (s->edit_state.global_editing_state == ST_S_EDIT) {
460-
save_edflag = s->s_edit->edit_flag;
461-
save_rot = s->s_edit->solid_edit_rotate;
462-
save_tra = s->s_edit->solid_edit_translate;
463-
save_sca = s->s_edit->solid_edit_scale;
464-
save_pic = s->s_edit->solid_edit_pick;
455+
save_flags(&edflags, s);
465456
if (!SEDIT_ROTATE)
466457
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_ROT);
467458
} else {
468-
save_edflag = edobj;
459+
edflags.save_edflag = edobj;
469460
edobj = BE_O_ROTATE;
470461
}
471462
}
@@ -485,15 +476,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
485476
case AMM_CON_TRAN_X:
486477
if (edit_mode) {
487478
if (s->edit_state.global_editing_state == ST_S_EDIT) {
488-
save_edflag = s->s_edit->edit_flag;
489-
save_rot = s->s_edit->solid_edit_rotate;
490-
save_tra = s->s_edit->solid_edit_translate;
491-
save_sca = s->s_edit->solid_edit_scale;
492-
save_pic = s->s_edit->solid_edit_pick;
479+
save_flags(&edflags, s);
493480
if (!SEDIT_TRAN)
494481
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_TRANS);
495482
} else if (s->edit_state.global_editing_state == ST_O_EDIT && !OEDIT_TRAN) {
496-
save_edflag = edobj;
483+
edflags.save_edflag = edobj;
497484
edobj = BE_O_X;
498485
}
499486
}
@@ -512,15 +499,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
512499
case AMM_CON_TRAN_Y:
513500
if (edit_mode) {
514501
if (s->edit_state.global_editing_state == ST_S_EDIT) {
515-
save_edflag = s->s_edit->edit_flag;
516-
save_rot = s->s_edit->solid_edit_rotate;
517-
save_tra = s->s_edit->solid_edit_translate;
518-
save_sca = s->s_edit->solid_edit_scale;
519-
save_pic = s->s_edit->solid_edit_pick;
502+
save_flags(&edflags, s);
520503
if (!SEDIT_TRAN)
521504
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_TRANS);
522505
} else if (s->edit_state.global_editing_state == ST_O_EDIT && !OEDIT_TRAN) {
523-
save_edflag = edobj;
506+
edflags.save_edflag = edobj;
524507
edobj = BE_O_Y;
525508
}
526509
}
@@ -539,15 +522,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
539522
case AMM_CON_TRAN_Z:
540523
if (edit_mode) {
541524
if (s->edit_state.global_editing_state == ST_S_EDIT) {
542-
save_edflag = s->s_edit->edit_flag;
543-
save_rot = s->s_edit->solid_edit_rotate;
544-
save_tra = s->s_edit->solid_edit_translate;
545-
save_sca = s->s_edit->solid_edit_scale;
546-
save_pic = s->s_edit->solid_edit_pick;
525+
save_flags(&edflags, s);
547526
if (!SEDIT_TRAN)
548527
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_TRANS);
549528
} else if (s->edit_state.global_editing_state == ST_O_EDIT && !OEDIT_TRAN) {
550-
save_edflag = edobj;
529+
edflags.save_edflag = edobj;
551530
edobj = BE_O_XY;
552531
}
553532
}
@@ -566,15 +545,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
566545
case AMM_CON_SCALE_X:
567546
if (edit_mode) {
568547
if (s->edit_state.global_editing_state == ST_S_EDIT) {
569-
save_edflag = s->s_edit->edit_flag;
570-
save_rot = s->s_edit->solid_edit_rotate;
571-
save_tra = s->s_edit->solid_edit_translate;
572-
save_sca = s->s_edit->solid_edit_scale;
573-
save_pic = s->s_edit->solid_edit_pick;
548+
save_flags(&edflags, s);
574549
if (!SEDIT_SCALE)
575550
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_SCALE);
576551
} else if (s->edit_state.global_editing_state == ST_O_EDIT && !OEDIT_SCALE) {
577-
save_edflag = edobj;
552+
edflags.save_edflag = edobj;
578553
edobj = BE_O_XSCALE;
579554
}
580555
}
@@ -593,15 +568,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
593568
case AMM_CON_SCALE_Y:
594569
if (edit_mode) {
595570
if (s->edit_state.global_editing_state == ST_S_EDIT) {
596-
save_edflag = s->s_edit->edit_flag;
597-
save_rot = s->s_edit->solid_edit_rotate;
598-
save_tra = s->s_edit->solid_edit_translate;
599-
save_sca = s->s_edit->solid_edit_scale;
600-
save_pic = s->s_edit->solid_edit_pick;
571+
save_flags(&edflags, s);
601572
if (!SEDIT_SCALE)
602573
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_SCALE);
603574
} else if (s->edit_state.global_editing_state == ST_O_EDIT && !OEDIT_SCALE) {
604-
save_edflag = edobj;
575+
edflags.save_edflag = edobj;
605576
edobj = BE_O_YSCALE;
606577
}
607578
}
@@ -620,15 +591,11 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
620591
case AMM_CON_SCALE_Z:
621592
if (edit_mode) {
622593
if (s->edit_state.global_editing_state == ST_S_EDIT) {
623-
save_edflag = s->s_edit->edit_flag;
624-
save_rot = s->s_edit->solid_edit_rotate;
625-
save_tra = s->s_edit->solid_edit_translate;
626-
save_sca = s->s_edit->solid_edit_scale;
627-
save_pic = s->s_edit->solid_edit_pick;
594+
save_flags(&edflags, s);
628595
if (!SEDIT_SCALE)
629596
rt_solid_edit_set_edflag(s->s_edit, RT_SOLID_EDIT_SCALE);
630597
} else if (s->edit_state.global_editing_state == ST_O_EDIT && !OEDIT_SCALE) {
631-
save_edflag = edobj;
598+
edflags.save_edflag = edobj;
632599
edobj = BE_O_ZSCALE;
633600
}
634601
}
@@ -694,15 +661,15 @@ motion_event_handler(struct mged_state *s, XMotionEvent *xmotion)
694661
(void)Tcl_Eval(s->interp, bu_vls_addr(&cmd));
695662

696663
reset_edflag:
697-
if (save_edflag != -1) {
664+
if (edflags.save_edflag != -1) {
698665
if (s->edit_state.global_editing_state == ST_S_EDIT) {
699-
s->s_edit->edit_flag = save_edflag ;
700-
s->s_edit->solid_edit_rotate = save_rot;
701-
s->s_edit->solid_edit_translate = save_tra;
702-
s->s_edit->solid_edit_scale = save_sca;
703-
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;
704671
} else if (s->edit_state.global_editing_state == ST_O_EDIT)
705-
edobj = save_edflag;
672+
edobj = edflags.save_edflag;
706673
}
707674

708675
handled:

0 commit comments

Comments
 (0)