src/Misc.cc

changeset 639
851634b85893
parent 629
b75c6cce02e2
child 642
751a8df42842
equal deleted inserted replaced
638:382226e40865 639:851634b85893
97 100000000l, 97 100000000l,
98 1000000000l, 98 1000000000l,
99 }; 99 };
100 100
101 // ============================================================================= 101 // =============================================================================
102 // ----------------------------------------------------------------------------- 102 //
103 // Grid stuff 103 // Grid stuff
104 //
104 cfg (Int, grid, Grid::Medium); 105 cfg (Int, grid, Grid::Medium);
105 cfg (Float, grid_coarse_x, 5.0f); 106 cfg (Float, grid_coarse_x, 5.0f);
106 cfg (Float, grid_coarse_y, 5.0f); 107 cfg (Float, grid_coarse_y, 5.0f);
107 cfg (Float, grid_coarse_z, 5.0f); 108 cfg (Float, grid_coarse_z, 5.0f);
108 cfg (Float, grid_coarse_angle, 45.0f); 109 cfg (Float, grid_coarse_angle, 45.0f);
123 { "Medium", { &grid_medium_x, &grid_medium_y, &grid_medium_z, &grid_medium_angle }}, 124 { "Medium", { &grid_medium_x, &grid_medium_y, &grid_medium_z, &grid_medium_angle }},
124 { "Fine", { &grid_fine_x, &grid_fine_y, &grid_fine_z, &grid_fine_angle }} 125 { "Fine", { &grid_fine_x, &grid_fine_y, &grid_fine_z, &grid_fine_angle }}
125 }; 126 };
126 127
127 // ============================================================================= 128 // =============================================================================
129 //
128 // Snap the given coordinate value on the current grid's given axis. 130 // Snap the given coordinate value on the current grid's given axis.
129 // ----------------------------------------------------------------------------- 131 //
130 double Grid::snap (double in, const Grid::Config axis) 132 double Grid::snap (double in, const Grid::Config axis)
131 { 133 {
132 const double gridval = *currentGrid().confs[axis]; 134 const double gridval = *currentGrid().confs[axis];
133 const long mult = abs (in / gridval); 135 const long mult = abs (in / gridval);
134 const bool neg = (in < 0); 136 const bool neg = (in < 0);
142 144
143 return out; 145 return out;
144 } 146 }
145 147
146 // ============================================================================= 148 // =============================================================================
147 // ----------------------------------------------------------------------------- 149 //
148 bool numeric (const QString& tok) 150 bool numeric (const QString& tok)
149 { 151 {
150 bool gotDot = false; 152 bool gotDot = false;
151 153
152 for (int i = 0; i < tok.length(); ++i) 154 for (int i = 0; i < tok.length(); ++i)
174 176
175 return true; 177 return true;
176 } 178 }
177 179
178 // ============================================================================= 180 // =============================================================================
179 // ----------------------------------------------------------------------------- 181 //
180 void simplify (int& numer, int& denom) 182 void simplify (int& numer, int& denom)
181 { 183 {
182 bool repeat; 184 bool repeat;
183 185
184 do 186 do
203 } 205 }
204 while (repeat); 206 while (repeat);
205 } 207 }
206 208
207 // ============================================================================= 209 // =============================================================================
208 // ----------------------------------------------------------------------------- 210 //
209 Vertex rotPoint (const LDObjectList& objs) 211 Vertex rotPoint (const LDObjectList& objs)
210 { 212 {
211 switch ((ERotationPoint) edit_rotpoint) 213 switch ((ERotationPoint) edit_rotpoint)
212 { 214 {
213 case EObjectOrigin: 215 case EObjectOrigin:
239 241
240 return Vertex(); 242 return Vertex();
241 } 243 }
242 244
243 // ============================================================================= 245 // =============================================================================
244 // ----------------------------------------------------------------------------- 246 //
245 void configRotationPoint() 247 void configRotationPoint()
246 { 248 {
247 QDialog* dlg = new QDialog; 249 QDialog* dlg = new QDialog;
248 Ui::RotPointUI ui; 250 Ui::RotPointUI ui;
249 ui.setupUi (dlg); 251 ui.setupUi (dlg);
279 edit_customrotpoint.y() = ui.customY->value(); 281 edit_customrotpoint.y() = ui.customY->value();
280 edit_customrotpoint.z() = ui.customZ->value(); 282 edit_customrotpoint.z() = ui.customZ->value();
281 } 283 }
282 284
283 // ============================================================================= 285 // =============================================================================
284 // ----------------------------------------------------------------------------- 286 //
285 QString join (initlist<StringFormatArg> vals, QString delim) 287 QString join (initlist<StringFormatArg> vals, QString delim)
286 { 288 {
287 QStringList list; 289 QStringList list;
288 290
289 for (const StringFormatArg& arg : vals) 291 for (const StringFormatArg& arg : vals)
291 293
292 return list.join (delim); 294 return list.join (delim);
293 } 295 }
294 296
295 // ============================================================================= 297 // =============================================================================
296 // ----------------------------------------------------------------------------- 298 //
297 void roundToDecimals (double& a, int decimals) 299 void roundToDecimals (double& a, int decimals)
298 { 300 {
299 assert (decimals >= 0 && decimals < (signed) (sizeof g_e10 / sizeof *g_e10)); 301 assert (decimals >= 0 && decimals < (signed) (sizeof g_e10 / sizeof *g_e10));
300 a = round (a * g_e10[decimals]) / g_e10[decimals]; 302 a = round (a * g_e10[decimals]) / g_e10[decimals];
301 } 303 }

mercurial