src/basics.cpp

changeset 1013
fa025ba493d8
parent 1011
4fdd74a04790
child 1014
f0a8ecb6a357
equal deleted inserted replaced
1012:413ecd6b9801 1013:fa025ba493d8
238 return true; 238 return true;
239 } 239 }
240 240
241 // ============================================================================= 241 // =============================================================================
242 // 242 //
243 LDBoundingBox::LDBoundingBox() 243 BoundingBox::BoundingBox()
244 { 244 {
245 reset(); 245 reset();
246 } 246 }
247 247
248 // ============================================================================= 248 // =============================================================================
249 // 249 //
250 void LDBoundingBox::calcObject (LDObject* obj) 250 void BoundingBox::calcObject (LDObject* obj)
251 { 251 {
252 switch (obj->type()) 252 switch (obj->type())
253 { 253 {
254 case OBJ_Line: 254 case OBJ_Line:
255 case OBJ_Triangle: 255 case OBJ_Triangle:
272 } 272 }
273 } 273 }
274 274
275 // ============================================================================= 275 // =============================================================================
276 // 276 //
277 LDBoundingBox& LDBoundingBox::operator<< (const Vertex& v) 277 BoundingBox& BoundingBox::operator<< (const Vertex& v)
278 { 278 {
279 calcVertex (v); 279 calcVertex (v);
280 return *this; 280 return *this;
281 } 281 }
282 282
283 // ============================================================================= 283 // =============================================================================
284 // 284 //
285 LDBoundingBox& LDBoundingBox::operator<< (LDObject* obj) 285 BoundingBox& BoundingBox::operator<< (LDObject* obj)
286 { 286 {
287 calcObject (obj); 287 calcObject (obj);
288 return *this; 288 return *this;
289 } 289 }
290 290
291 // ============================================================================= 291 // =============================================================================
292 // 292 //
293 void LDBoundingBox::calcVertex (const Vertex& vertex) 293 void BoundingBox::calcVertex (const Vertex& vertex)
294 { 294 {
295 m_vertex0.setX (qMin (vertex.x(), m_vertex0.x())); 295 m_vertex0.setX (qMin (vertex.x(), m_vertex0.x()));
296 m_vertex0.setY (qMin (vertex.y(), m_vertex0.y())); 296 m_vertex0.setY (qMin (vertex.y(), m_vertex0.y()));
297 m_vertex0.setZ (qMin (vertex.z(), m_vertex0.z())); 297 m_vertex0.setZ (qMin (vertex.z(), m_vertex0.z()));
298 m_vertex1.setX (qMax (vertex.x(), m_vertex1.x())); 298 m_vertex1.setX (qMax (vertex.x(), m_vertex1.x()));
303 303
304 // ============================================================================= 304 // =============================================================================
305 // 305 //
306 // Clears the bounding box 306 // Clears the bounding box
307 // 307 //
308 void LDBoundingBox::reset() 308 void BoundingBox::reset()
309 { 309 {
310 m_vertex0 = Vertex (10000.0, 10000.0, 10000.0); 310 m_vertex0 = Vertex (10000.0, 10000.0, 10000.0);
311 m_vertex1 = Vertex (-10000.0, -10000.0, -10000.0); 311 m_vertex1 = Vertex (-10000.0, -10000.0, -10000.0);
312 m_isEmpty = true; 312 m_isEmpty = true;
313 } 313 }
314 314
315 // ============================================================================= 315 // =============================================================================
316 // 316 //
317 // Returns the length of the bounding box on the longest measure. 317 // Returns the length of the bounding box on the longest measure.
318 // 318 //
319 double LDBoundingBox::longestMeasurement() const 319 double BoundingBox::longestMeasurement() const
320 { 320 {
321 double xscale = (m_vertex0.x() - m_vertex1.x()); 321 double xscale = (m_vertex0.x() - m_vertex1.x());
322 double yscale = (m_vertex0.y() - m_vertex1.y()); 322 double yscale = (m_vertex0.y() - m_vertex1.y());
323 double zscale = (m_vertex0.z() - m_vertex1.z()); 323 double zscale = (m_vertex0.z() - m_vertex1.z());
324 double size = zscale; 324 double size = zscale;
339 339
340 // ============================================================================= 340 // =============================================================================
341 // 341 //
342 // Yields the center of the bounding box. 342 // Yields the center of the bounding box.
343 // 343 //
344 Vertex LDBoundingBox::center() const 344 Vertex BoundingBox::center() const
345 { 345 {
346 return Vertex ( 346 return Vertex (
347 (m_vertex0.x() + m_vertex1.x()) / 2, 347 (m_vertex0.x() + m_vertex1.x()) / 2,
348 (m_vertex0.y() + m_vertex1.y()) / 2, 348 (m_vertex0.y() + m_vertex1.y()) / 2,
349 (m_vertex0.z() + m_vertex1.z()) / 2); 349 (m_vertex0.z() + m_vertex1.z()) / 2);
350 } 350 }
351 351
352 bool LDBoundingBox::isEmpty() const 352 bool BoundingBox::isEmpty() const
353 { 353 {
354 return m_isEmpty; 354 return m_isEmpty;
355 } 355 }
356 356
357 const Vertex& LDBoundingBox::vertex0() const 357 const Vertex& BoundingBox::vertex0() const
358 { 358 {
359 return m_vertex0; 359 return m_vertex0;
360 } 360 }
361 361
362 const Vertex& LDBoundingBox::vertex1() const 362 const Vertex& BoundingBox::vertex1() const
363 { 363 {
364 return m_vertex1; 364 return m_vertex1;
365 } 365 }

mercurial