src/misc.cpp

changeset 268
778eed342ee4
parent 257
481566b60ecd
child 286
7a562bf3d829
equal deleted inserted replaced
267:95fde37e1f00 268:778eed342ee4
180 } 180 }
181 181
182 // ============================================================================= 182 // =============================================================================
183 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 183 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
184 // ============================================================================= 184 // =============================================================================
185 void simplify (short& dNum, short& dDenom) { 185 void simplify (short& numer, short& denom) {
186 bool bRepeat; 186 bool repeat;
187 187
188 do { 188 do {
189 bRepeat = false; 189 repeat = false;
190 190
191 for (ulong x = 0; x < NUM_PRIMES; x++) { 191 for (ushort x = 0; x < NUM_PRIMES; x++) {
192 ulong i = NUM_PRIMES - x - 1; 192 const ushort prime = g_primes[NUM_PRIMES - x - 1];
193 ushort uPrime = g_primes[i];
194 193
195 if (dNum <= uPrime || dDenom <= uPrime) 194 if (numer <= prime || denom <= prime)
196 continue; 195 continue;
197 196
198 if ((dNum % uPrime == 0) && (dDenom % uPrime == 0)) { 197 if ((numer % prime == 0) && (denom % prime == 0)) {
199 dNum /= uPrime; 198 numer /= prime;
200 dDenom /= uPrime; 199 denom /= prime;
201 bRepeat = true; 200 repeat = true;
202 break; 201 break;
203 } 202 }
204 } 203 }
205 } while (bRepeat); 204 } while (repeat);
206 } 205 }
207 206
208 // ============================================================================= 207 // =============================================================================
209 vertex rotPoint (const vector<LDObject*>& objs) { 208 vertex rotPoint (const vector<LDObject*>& objs) {
210 if (edit_rotpoint == 1) 209 if (edit_rotpoint == 1)
212 211
213 bbox box; 212 bbox box;
214 213
215 // Calculate center vertex 214 // Calculate center vertex
216 for (LDObject* obj : objs) { 215 for (LDObject* obj : objs) {
217 if (obj->getType () == LDObject::Subfile) 216 if (obj->hasMatrix ())
218 box << static_cast<LDSubfile*> (obj)->pos; 217 box << dynamic_cast<LDMatrixObject*> (obj)->position ();
219 else if (obj->getType () == LDObject::Radial)
220 box << static_cast<LDRadial*> (obj)->pos;
221 else 218 else
222 box << obj; 219 box << obj;
223 } 220 }
224 221
225 return box.center (); 222 return box.center ();

mercurial