Skip to content

Commit 67c59c9

Browse files
committed
Don't work with e_para unless that input type is specified.
1 parent 0b421ce commit 67c59c9

File tree

12 files changed

+143
-122
lines changed

12 files changed

+143
-122
lines changed

src/librt/primitives/ehy/edehy.c

+11-9
Original file line numberDiff line numberDiff line change
@@ -254,17 +254,19 @@ rt_solid_edit_ehy_pscale(struct rt_solid_edit *s)
254254
return BRLCAD_ERROR;
255255
}
256256

257-
if (s->e_para[0] <= 0.0) {
258-
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
259-
s->e_inpara = 0;
260-
return BRLCAD_ERROR;
257+
if (s->e_inpara) {
258+
if (s->e_para[0] <= 0.0) {
259+
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
260+
s->e_inpara = 0;
261+
return BRLCAD_ERROR;
262+
}
263+
264+
/* must convert to base units */
265+
s->e_para[0] *= s->local2base;
266+
s->e_para[1] *= s->local2base;
267+
s->e_para[2] *= s->local2base;
261268
}
262269

263-
/* must convert to base units */
264-
s->e_para[0] *= s->local2base;
265-
s->e_para[1] *= s->local2base;
266-
s->e_para[2] *= s->local2base;
267-
268270
switch (s->edit_flag) {
269271
case ECMD_EHY_H:
270272
ecmd_ehy_h(s);

src/librt/primitives/ell/edell.c

+11-9
Original file line numberDiff line numberDiff line change
@@ -237,17 +237,19 @@ rt_solid_edit_ell_pscale(struct rt_solid_edit *s)
237237
return BRLCAD_ERROR;
238238
}
239239

240-
if (s->e_para[0] <= 0.0) {
241-
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
242-
s->e_inpara = 0;
243-
return BRLCAD_ERROR;
240+
if (s->e_inpara) {
241+
if (s->e_para[0] <= 0.0) {
242+
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
243+
s->e_inpara = 0;
244+
return BRLCAD_ERROR;
245+
}
246+
247+
/* must convert to base units */
248+
s->e_para[0] *= s->local2base;
249+
s->e_para[1] *= s->local2base;
250+
s->e_para[2] *= s->local2base;
244251
}
245252

246-
/* must convert to base units */
247-
s->e_para[0] *= s->local2base;
248-
s->e_para[1] *= s->local2base;
249-
s->e_para[2] *= s->local2base;
250-
251253
switch (s->edit_flag) {
252254
case ECMD_ELL_SCALE_A:
253255
ecmd_ell_scale_a(s);

src/librt/primitives/epa/edepa.c

+11-9
Original file line numberDiff line numberDiff line change
@@ -229,17 +229,19 @@ rt_solid_edit_epa_pscale(struct rt_solid_edit *s)
229229
return BRLCAD_ERROR;
230230
}
231231

232-
if (s->e_para[0] <= 0.0) {
233-
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
234-
s->e_inpara = 0;
235-
return BRLCAD_ERROR;
232+
if (s->e_inpara) {
233+
if (s->e_para[0] <= 0.0) {
234+
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
235+
s->e_inpara = 0;
236+
return BRLCAD_ERROR;
237+
}
238+
239+
/* must convert to base units */
240+
s->e_para[0] *= s->local2base;
241+
s->e_para[1] *= s->local2base;
242+
s->e_para[2] *= s->local2base;
236243
}
237244

238-
/* must convert to base units */
239-
s->e_para[0] *= s->local2base;
240-
s->e_para[1] *= s->local2base;
241-
s->e_para[2] *= s->local2base;
242-
243245
switch (s->edit_flag) {
244246
case ECMD_EPA_H:
245247
ecmd_epa_h(s);

src/librt/primitives/eto/edeto.c

+11-9
Original file line numberDiff line numberDiff line change
@@ -330,16 +330,18 @@ rt_solid_edit_eto_pscale(struct rt_solid_edit *s)
330330
return BRLCAD_ERROR;
331331
}
332332

333-
if (s->e_para[0] <= 0.0) {
334-
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
335-
s->e_inpara = 0;
336-
return BRLCAD_ERROR;
337-
}
333+
if (s->e_inpara) {
334+
if (s->e_para[0] <= 0.0) {
335+
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
336+
s->e_inpara = 0;
337+
return BRLCAD_ERROR;
338+
}
338339

339-
/* must convert to base units */
340-
s->e_para[0] *= s->local2base;
341-
s->e_para[1] *= s->local2base;
342-
s->e_para[2] *= s->local2base;
340+
/* must convert to base units */
341+
s->e_para[0] *= s->local2base;
342+
s->e_para[1] *= s->local2base;
343+
s->e_para[2] *= s->local2base;
344+
}
343345

344346
switch (s->edit_flag) {
345347
case ECMD_ETO_R:

src/librt/primitives/hyp/edhyp.c

+11-9
Original file line numberDiff line numberDiff line change
@@ -315,16 +315,18 @@ rt_solid_edit_hyp_pscale(struct rt_solid_edit *s)
315315
return BRLCAD_ERROR;
316316
}
317317

318-
if (s->e_para[0] <= 0.0) {
319-
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
320-
s->e_inpara = 0;
321-
return BRLCAD_ERROR;
322-
}
318+
if (s->e_inpara) {
319+
if (s->e_para[0] <= 0.0) {
320+
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
321+
s->e_inpara = 0;
322+
return BRLCAD_ERROR;
323+
}
323324

324-
/* must convert to base units */
325-
s->e_para[0] *= s->local2base;
326-
s->e_para[1] *= s->local2base;
327-
s->e_para[2] *= s->local2base;
325+
/* must convert to base units */
326+
s->e_para[0] *= s->local2base;
327+
s->e_para[1] *= s->local2base;
328+
s->e_para[2] *= s->local2base;
329+
}
328330

329331
switch (s->edit_flag) {
330332
case ECMD_HYP_H:

src/librt/primitives/metaball/edmetaball.c

+11-9
Original file line numberDiff line numberDiff line change
@@ -454,16 +454,18 @@ rt_solid_edit_metaball_pscale(struct rt_solid_edit *s)
454454
return BRLCAD_ERROR;
455455
}
456456

457-
if (s->e_para[0] <= 0.0) {
458-
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
459-
s->e_inpara = 0;
460-
return BRLCAD_ERROR;
461-
}
457+
if (s->e_inpara) {
458+
if (s->e_para[0] <= 0.0) {
459+
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
460+
s->e_inpara = 0;
461+
return BRLCAD_ERROR;
462+
}
462463

463-
/* must convert to base units */
464-
s->e_para[0] *= s->local2base;
465-
s->e_para[1] *= s->local2base;
466-
s->e_para[2] *= s->local2base;
464+
/* must convert to base units */
465+
s->e_para[0] *= s->local2base;
466+
s->e_para[1] *= s->local2base;
467+
s->e_para[2] *= s->local2base;
468+
}
467469

468470
switch (s->edit_flag) {
469471
case ECMD_METABALL_SET_THRESHOLD:

src/librt/primitives/part/edpart.c

+11-9
Original file line numberDiff line numberDiff line change
@@ -219,17 +219,19 @@ rt_solid_edit_part_pscale(struct rt_solid_edit *s)
219219
return BRLCAD_ERROR;
220220
}
221221

222-
if (s->e_para[0] <= 0.0) {
223-
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
224-
s->e_inpara = 0;
225-
return BRLCAD_ERROR;
222+
if (s->e_inpara) {
223+
if (s->e_para[0] <= 0.0) {
224+
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
225+
s->e_inpara = 0;
226+
return BRLCAD_ERROR;
227+
}
228+
229+
/* must convert to base units */
230+
s->e_para[0] *= s->local2base;
231+
s->e_para[1] *= s->local2base;
232+
s->e_para[2] *= s->local2base;
226233
}
227234

228-
/* must convert to base units */
229-
s->e_para[0] *= s->local2base;
230-
s->e_para[1] *= s->local2base;
231-
s->e_para[2] *= s->local2base;
232-
233235
switch (s->edit_flag) {
234236
case ECMD_PART_H:
235237
ecmd_part_h(s);

src/librt/primitives/pipe/edpipe.c

+6-4
Original file line numberDiff line numberDiff line change
@@ -1127,10 +1127,12 @@ rt_solid_edit_pipe_pscale(struct rt_solid_edit *s)
11271127
return BRLCAD_ERROR;
11281128
}
11291129

1130-
/* must convert to base units */
1131-
s->e_para[0] *= s->local2base;
1132-
s->e_para[1] *= s->local2base;
1133-
s->e_para[2] *= s->local2base;
1130+
if (s->e_inpara) {
1131+
/* must convert to base units */
1132+
s->e_para[0] *= s->local2base;
1133+
s->e_para[1] *= s->local2base;
1134+
s->e_para[2] *= s->local2base;
1135+
}
11341136

11351137
switch (s->edit_flag) {
11361138
case ECMD_PIPE_PT_OD: /* scale OD of one pipe segment */

src/librt/primitives/rhc/edrhc.c

+11-9
Original file line numberDiff line numberDiff line change
@@ -241,17 +241,19 @@ rt_solid_edit_rhc_pscale(struct rt_solid_edit *s)
241241
return BRLCAD_ERROR;
242242
}
243243

244-
if (s->e_para[0] <= 0.0) {
245-
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
246-
s->e_inpara = 0;
247-
return BRLCAD_ERROR;
244+
if (s->e_inpara) {
245+
if (s->e_para[0] <= 0.0) {
246+
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
247+
s->e_inpara = 0;
248+
return BRLCAD_ERROR;
249+
}
250+
251+
/* must convert to base units */
252+
s->e_para[0] *= s->local2base;
253+
s->e_para[1] *= s->local2base;
254+
s->e_para[2] *= s->local2base;
248255
}
249256

250-
/* must convert to base units */
251-
s->e_para[0] *= s->local2base;
252-
s->e_para[1] *= s->local2base;
253-
s->e_para[2] *= s->local2base;
254-
255257
switch (s->edit_flag) {
256258
case ECMD_RHC_B:
257259
ecmd_rhc_b(s);

src/librt/primitives/rpc/edrpc.c

+11-9
Original file line numberDiff line numberDiff line change
@@ -217,17 +217,19 @@ rt_solid_edit_rpc_pscale(struct rt_solid_edit *s)
217217
return BRLCAD_ERROR;
218218
}
219219

220-
if (s->e_para[0] <= 0.0) {
221-
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
222-
s->e_inpara = 0;
223-
return BRLCAD_ERROR;
220+
if (s->e_inpara) {
221+
if (s->e_para[0] <= 0.0) {
222+
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
223+
s->e_inpara = 0;
224+
return BRLCAD_ERROR;
225+
}
226+
227+
/* must convert to base units */
228+
s->e_para[0] *= s->local2base;
229+
s->e_para[1] *= s->local2base;
230+
s->e_para[2] *= s->local2base;
224231
}
225232

226-
/* must convert to base units */
227-
s->e_para[0] *= s->local2base;
228-
s->e_para[1] *= s->local2base;
229-
s->e_para[2] *= s->local2base;
230-
231233
switch (s->edit_flag) {
232234
case ECMD_RPC_B:
233235
ecmd_rpc_b(s);

src/librt/primitives/superell/edsuperell.c

+11-9
Original file line numberDiff line numberDiff line change
@@ -243,17 +243,19 @@ rt_solid_edit_superell_pscale(struct rt_solid_edit *s)
243243
return BRLCAD_ERROR;
244244
}
245245

246-
if (s->e_para[0] <= 0.0) {
247-
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
248-
s->e_inpara = 0;
249-
return BRLCAD_ERROR;
246+
if (s->e_inpara) {
247+
if (s->e_para[0] <= 0.0) {
248+
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
249+
s->e_inpara = 0;
250+
return BRLCAD_ERROR;
251+
}
252+
253+
/* must convert to base units */
254+
s->e_para[0] *= s->local2base;
255+
s->e_para[1] *= s->local2base;
256+
s->e_para[2] *= s->local2base;
250257
}
251258

252-
/* must convert to base units */
253-
s->e_para[0] *= s->local2base;
254-
s->e_para[1] *= s->local2base;
255-
s->e_para[2] *= s->local2base;
256-
257259
switch (s->edit_flag) {
258260
case ECMD_SUPERELL_SCALE_A:
259261
ecmd_superell_scale_a(s);

src/librt/primitives/vol/edvol.c

+27-28
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,7 @@ vol_ed(struct rt_solid_edit *s, int arg, int UNUSED(a), int UNUSED(b), void *UNU
5252
case ECMD_VOL_FSIZE:
5353
break;
5454
case ECMD_VOL_CSIZE:
55-
s->solid_edit_scale = 1;
56-
break;
5755
case ECMD_VOL_THRESH_LO:
58-
s->solid_edit_scale = 1;
59-
break;
6056
case ECMD_VOL_THRESH_HI:
6157
s->solid_edit_scale = 1;
6258
break;
@@ -92,27 +88,28 @@ rt_solid_edit_vol_menu_item(const struct bn_tol *UNUSED(tol))
9288
void
9389
ecmd_vol_csize(struct rt_solid_edit *s)
9490
{
95-
struct rt_vol_internal *vol =
96-
(struct rt_vol_internal *)s->es_int.idb_ptr;
91+
struct rt_vol_internal *vol = (struct rt_vol_internal *)s->es_int.idb_ptr;
9792
bu_clbk_t f = NULL;
9893
void *d = NULL;
9994

10095
RT_VOL_CK_MAGIC(vol);
10196

102-
/* must convert to base units */
103-
s->e_para[0] *= s->local2base;
104-
s->e_para[1] *= s->local2base;
105-
s->e_para[2] *= s->local2base;
97+
// Specified numerical input
98+
if (s_>e_inpara) {
99+
if (s->e_inpara != 3) {
100+
bu_vls_printf(s->log_str, "x, y, and z cell sizes are required\n");
101+
rt_solid_edit_map_clbk_get(&f, &d, s->m, ECMD_PRINT_RESULTS, BU_CLBK_DURING);
102+
if (f)
103+
(*f)(0, NULL, d, NULL);
104+
return;
105+
} else {
106+
VMOVE(vol->cellsize, s->e_para);
107+
return;
108+
}
109+
}
106110

107-
if (s->e_inpara == 3) {
108-
VMOVE(vol->cellsize, s->e_para);
109-
} else if (s->e_inpara > 0 && s->e_inpara != 3) {
110-
bu_vls_printf(s->log_str, "x, y, and z cell sizes are required\n");
111-
rt_solid_edit_map_clbk_get(&f, &d, s->m, ECMD_PRINT_RESULTS, BU_CLBK_DURING);
112-
if (f)
113-
(*f)(0, NULL, d, NULL);
114-
return;
115-
} else if (s->es_scale > 0.0) {
111+
// XY coord (usually mouse) based scaling
112+
if (s->es_scale > 0.0) {
116113
VSCALE(vol->cellsize, vol->cellsize, s->es_scale);
117114
s->es_scale = 0.0;
118115
}
@@ -297,16 +294,18 @@ rt_solid_edit_vol_pscale(struct rt_solid_edit *s)
297294
return BRLCAD_ERROR;
298295
}
299296

300-
if (s->e_para[0] <= 0.0) {
301-
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
302-
s->e_inpara = 0;
303-
return BRLCAD_ERROR;
304-
}
297+
if (s->e_inpara) {
298+
if (s->e_para[0] <= 0.0) {
299+
bu_vls_printf(s->log_str, "ERROR: SCALE FACTOR <= 0\n");
300+
s->e_inpara = 0;
301+
return BRLCAD_ERROR;
302+
}
305303

306-
/* must convert to base units */
307-
s->e_para[0] *= s->local2base;
308-
s->e_para[1] *= s->local2base;
309-
s->e_para[2] *= s->local2base;
304+
/* must convert to base units */
305+
s->e_para[0] *= s->local2base;
306+
s->e_para[1] *= s->local2base;
307+
s->e_para[2] *= s->local2base;
308+
}
310309

311310
switch (s->edit_flag) {
312311
case ECMD_VOL_CSIZE:

0 commit comments

Comments
 (0)