@@ -50,8 +50,6 @@ void mged_center(struct mged_state *s, point_t center);
50
50
static void abs_zoom (struct mged_state * s );
51
51
void usejoy (struct mged_state * s , double xangle , double yangle , double zangle );
52
52
53
- int knob_rot (struct mged_state * s , vect_t rvec , char origin , int mf , int vf , int ef );
54
- int knob_tran (struct mged_state * s , vect_t tvec , int model_flag , int view_flag , int edit_flag );
55
53
int mged_erot_xyz (struct mged_state * s , char origin , vect_t rvec );
56
54
int mged_etran (struct mged_state * s , char coords , vect_t tvec );
57
55
int mged_mtran (struct mged_state * s , const vect_t tvec );
@@ -1251,6 +1249,49 @@ mged_print_knobvals(struct mged_state *s, Tcl_Interp *interp)
1251
1249
}
1252
1250
1253
1251
1252
+ static int
1253
+ knob_tran (struct mged_state * s ,
1254
+ vect_t tvec ,
1255
+ int model_flag ,
1256
+ int view_flag ,
1257
+ int edit_flag_tra )
1258
+ {
1259
+ if (edit_flag_tra ) {
1260
+ mged_etran (s , mged_variables -> mv_coords , tvec );
1261
+ } else if (model_flag || (mged_variables -> mv_coords == 'm' && !view_flag )) {
1262
+ mged_mtran (s , tvec );
1263
+ } else if (mged_variables -> mv_coords == 'o' ) {
1264
+ mged_otran (s , tvec );
1265
+ } else {
1266
+ mged_vtran (s , tvec );
1267
+ }
1268
+
1269
+ return TCL_OK ;
1270
+ }
1271
+
1272
+
1273
+ static int
1274
+ knob_rot (struct mged_state * s ,
1275
+ vect_t rvec ,
1276
+ char origin ,
1277
+ int model_flag ,
1278
+ int view_flag ,
1279
+ int edit_flag_rot )
1280
+ {
1281
+ if (edit_flag_rot ) {
1282
+ mged_erot_xyz (s , origin , rvec );
1283
+ } else if (model_flag || (mged_variables -> mv_coords == 'm' && !view_flag )) {
1284
+ mged_vrot_xyz (s , origin , 'm' , rvec );
1285
+ } else if (mged_variables -> mv_coords == 'o' ) {
1286
+ mged_vrot_xyz (s , origin , 'o' , rvec );
1287
+ } else {
1288
+ mged_vrot_xyz (s , origin , 'v' , rvec );
1289
+ }
1290
+
1291
+ return TCL_OK ;
1292
+ }
1293
+
1294
+
1254
1295
/* Main processing of knob twists. "knob id val id val ..." */
1255
1296
int
1256
1297
f_knob (ClientData clientData , Tcl_Interp * interp , int argc , const char * argv [])
@@ -1270,7 +1311,7 @@ f_knob(ClientData clientData, Tcl_Interp *interp, int argc, const char *argv[])
1270
1311
int incr_flag = 0 ; /* interpret values as increments */
1271
1312
int view_flag = 0 ; /* manipulate view using view coords */
1272
1313
int model_flag = 0 ; /* manipulate view using model coords */
1273
- int edit_flag = 0 ; /* force edit interpretation */
1314
+ int edit_flag_force = 0 ; /* force edit interpretation */
1274
1315
1275
1316
CHECK_DBI_NULL ;
1276
1317
@@ -1293,7 +1334,7 @@ f_knob(ClientData clientData, Tcl_Interp *interp, int argc, const char *argv[])
1293
1334
while ((c = bu_getopt (argc , (char * const * )argv , "eimo:v" )) != -1 ) {
1294
1335
switch (c ) {
1295
1336
case 'e' :
1296
- edit_flag = 1 ;
1337
+ edit_flag_force = 1 ;
1297
1338
break ;
1298
1339
case 'i' :
1299
1340
incr_flag = 1 ;
@@ -1316,10 +1357,10 @@ f_knob(ClientData clientData, Tcl_Interp *interp, int argc, const char *argv[])
1316
1357
argc -= bu_optind - 1 ;
1317
1358
}
1318
1359
1319
- int edit_flag_rot = (EDIT_ROTATE && ((mged_variables -> mv_transform == 'e' && !view_flag && !model_flag ) || edit_flag )) ? 1 : 0 ;
1320
- int edit_flag_tra = (EDIT_TRAN && ((mged_variables -> mv_transform == 'e' && !view_flag && !model_flag ) || edit_flag )) ? 1 : 0 ;
1360
+ int edit_flag_rot = (EDIT_ROTATE && ((mged_variables -> mv_transform == 'e' && !view_flag && !model_flag ) || edit_flag_force )) ? 1 : 0 ;
1361
+ int edit_flag_tra = (EDIT_TRAN && ((mged_variables -> mv_transform == 'e' && !view_flag && !model_flag ) || edit_flag_force )) ? 1 : 0 ;
1321
1362
// NOTE - edit_flag_sca doesn't care about model_flag...
1322
- int edit_flag_sca = (EDIT_SCALE && ((mged_variables -> mv_transform == 'e' && !view_flag ) || edit_flag )) ? 1 : 0 ;
1363
+ int edit_flag_sca = (EDIT_SCALE && ((mged_variables -> mv_transform == 'e' && !view_flag ) || edit_flag_force )) ? 1 : 0 ;
1323
1364
1324
1365
if (origin != 'v' && origin != 'm' && origin != 'e' && origin != 'k' ) {
1325
1366
origin = mged_variables -> mv_rotate_about ;
@@ -2323,62 +2364,18 @@ f_knob(ClientData clientData, Tcl_Interp *interp, int argc, const char *argv[])
2323
2364
}
2324
2365
2325
2366
if (do_tran ) {
2326
- (void )knob_tran (s , tvec , model_flag , view_flag , edit_flag );
2367
+ (void )knob_tran (s , tvec , model_flag , view_flag , edit_flag_tra );
2327
2368
}
2328
2369
2329
2370
if (do_rot ) {
2330
- (void )knob_rot (s , rvec , origin , model_flag , view_flag , edit_flag );
2371
+ (void )knob_rot (s , rvec , origin , model_flag , view_flag , edit_flag_rot );
2331
2372
}
2332
2373
2333
2374
check_nonzero_rates (s );
2334
2375
return TCL_OK ;
2335
2376
}
2336
2377
2337
2378
2338
- int
2339
- knob_tran (struct mged_state * s ,
2340
- vect_t tvec ,
2341
- int model_flag ,
2342
- int view_flag ,
2343
- int edit_flag )
2344
- {
2345
- if (EDIT_TRAN && ((mged_variables -> mv_transform == 'e' &&
2346
- !view_flag && !model_flag ) || edit_flag )) {
2347
- mged_etran (s , mged_variables -> mv_coords , tvec );
2348
- } else if (model_flag || (mged_variables -> mv_coords == 'm' && !view_flag )) {
2349
- mged_mtran (s , tvec );
2350
- } else if (mged_variables -> mv_coords == 'o' ) {
2351
- mged_otran (s , tvec );
2352
- } else {
2353
- mged_vtran (s , tvec );
2354
- }
2355
-
2356
- return TCL_OK ;
2357
- }
2358
-
2359
-
2360
- int
2361
- knob_rot (struct mged_state * s ,
2362
- vect_t rvec ,
2363
- char origin ,
2364
- int model_flag ,
2365
- int view_flag ,
2366
- int edit_flag )
2367
- {
2368
- if (EDIT_ROTATE && ((mged_variables -> mv_transform == 'e' &&
2369
- !view_flag && !model_flag ) || edit_flag )) {
2370
- mged_erot_xyz (s , origin , rvec );
2371
- } else if (model_flag || (mged_variables -> mv_coords == 'm' && !view_flag )) {
2372
- mged_vrot_xyz (s , origin , 'm' , rvec );
2373
- } else if (mged_variables -> mv_coords == 'o' ) {
2374
- mged_vrot_xyz (s , origin , 'o' , rvec );
2375
- } else {
2376
- mged_vrot_xyz (s , origin , 'v' , rvec );
2377
- }
2378
-
2379
- return TCL_OK ;
2380
- }
2381
-
2382
2379
2383
2380
/* absolute_scale's value range is [-1.0, 1.0] */
2384
2381
static void
0 commit comments