src/Types.cc

changeset 648
ed6170728ae4
parent 644
93dcd1a0e4bd
child 653
a9966d51ebf1
child 690
9e9c52ca955e
equal deleted inserted replaced
647:b87941923eb4 648:ed6170728ae4
187 m_vals[i] = fillval; 187 m_vals[i] = fillval;
188 } 188 }
189 189
190 // ============================================================================= 190 // =============================================================================
191 // 191 //
192 Matrix::Matrix (initlist<double> vals) 192 Matrix::Matrix (QList<double> vals)
193 { 193 {
194 assert (vals.size() == 9); 194 assert (vals.size() == 9);
195 memcpy (&m_vals[0], & (*vals.begin()), sizeof m_vals); 195 memcpy (&m_vals[0], & (*vals.begin()), sizeof m_vals);
196 } 196 }
197 197
257 257
258 // ============================================================================= 258 // =============================================================================
259 // 259 //
260 double Matrix::getDeterminant() const 260 double Matrix::getDeterminant() const
261 { 261 {
262 return (val (0) * val (4) * val (8)) + 262 return (value (0) * value (4) * value (8)) +
263 (val (1) * val (5) * val (6)) + 263 (value (1) * value (5) * value (6)) +
264 (val (2) * val (3) * val (7)) - 264 (value (2) * value (3) * value (7)) -
265 (val (2) * val (4) * val (6)) - 265 (value (2) * value (4) * value (6)) -
266 (val (1) * val (3) * val (8)) - 266 (value (1) * value (3) * value (8)) -
267 (val (0) * val (5) * val (7)); 267 (value (0) * value (5) * value (7));
268 } 268 }
269 269
270 // ============================================================================= 270 // =============================================================================
271 // 271 //
272 bool Matrix::operator== (const Matrix& other) const 272 bool Matrix::operator== (const Matrix& other) const
273 { 273 {
274 for (int i = 0; i < 9; ++i) 274 for (int i = 0; i < 9; ++i)
275 if (val (i) != other[i]) 275 if (value (i) != other[i])
276 return false; 276 return false;
277 277
278 return true; 278 return true;
279 } 279 }
280 280
285 reset(); 285 reset();
286 } 286 }
287 287
288 // ============================================================================= 288 // =============================================================================
289 // 289 //
290 void LDBoundingBox::calculate() 290 void LDBoundingBox::calculateFromCurrentDocument()
291 { 291 {
292 reset(); 292 reset();
293 293
294 if (!getCurrentDocument()) 294 if (!getCurrentDocument())
295 return; 295 return;
347 return *this; 347 return *this;
348 } 348 }
349 349
350 // ============================================================================= 350 // =============================================================================
351 // 351 //
352 void LDBoundingBox::calcVertex (const Vertex& v) 352 void LDBoundingBox::calcVertex (const Vertex& vertex)
353 { 353 {
354 for_axes (ax) 354 for_axes (ax)
355 { 355 {
356 m_vertex0[ax] = min (v[ax], m_vertex0[ax]); 356 m_vertex0[ax] = min (vertex[ax], m_vertex0[ax]);
357 m_vertex1[ax] = max (v[ax], m_vertex1[ax]); 357 m_vertex1[ax] = max (vertex[ax], m_vertex1[ax]);
358 } 358 }
359 359
360 setEmpty (false); 360 setEmpty (false);
361 } 361 }
362 362
369 setEmpty (true); 369 setEmpty (true);
370 } 370 }
371 371
372 // ============================================================================= 372 // =============================================================================
373 // 373 //
374 double LDBoundingBox::size() const 374 double LDBoundingBox::longestMeasurement() const
375 { 375 {
376 double xscale = (m_vertex0[X] - m_vertex1[X]); 376 double xscale = (m_vertex0[X] - m_vertex1[X]);
377 double yscale = (m_vertex0[Y] - m_vertex1[Y]); 377 double yscale = (m_vertex0[Y] - m_vertex1[Y]);
378 double zscale = (m_vertex0[Z] - m_vertex1[Z]); 378 double zscale = (m_vertex0[Z] - m_vertex1[Z]);
379 double size = zscale; 379 double size = zscale;

mercurial