57 // ============================================================================= |
57 // ============================================================================= |
58 // ----------------------------------------------------------------------------- |
58 // ----------------------------------------------------------------------------- |
59 vertex vertex::midpoint (const vertex& other) |
59 vertex vertex::midpoint (const vertex& other) |
60 { vertex mid; |
60 { vertex mid; |
61 |
61 |
62 for (const Axis ax : g_Axes) |
62 for (const Axis ax : g_Axes) |
63 mid[ax] = (m_coords[ax] + other[ax]) / 2; |
63 mid[ax] = (m_coords[ax] + other[ax]) / 2; |
64 |
64 |
65 return mid; |
65 return mid; |
66 } |
66 } |
67 |
67 |
561 |
561 |
562 // ============================================================================= |
562 // ============================================================================= |
563 // ----------------------------------------------------------------------------- |
563 // ----------------------------------------------------------------------------- |
564 void LDBoundingBox::calcVertex (const vertex& v) |
564 void LDBoundingBox::calcVertex (const vertex& v) |
565 { for (const Axis ax : g_Axes) |
565 { for (const Axis ax : g_Axes) |
566 { if (v[ax] < m_v0[ax]) |
566 { if (v[ax] < m_Vertex0[ax]) |
567 m_v0[ax] = v[ax]; |
567 m_Vertex0[ax] = v[ax]; |
568 |
568 |
569 if (v[ax] > m_v1[ax]) |
569 if (v[ax] > m_Vertex1[ax]) |
570 m_v1[ax] = v[ax]; |
570 m_Vertex1[ax] = v[ax]; |
571 } |
571 } |
572 |
572 |
573 m_empty = false; |
573 setEmpty (false); |
574 } |
574 } |
575 |
575 |
576 // ============================================================================= |
576 // ============================================================================= |
577 // ----------------------------------------------------------------------------- |
577 // ----------------------------------------------------------------------------- |
578 void LDBoundingBox::reset() |
578 void LDBoundingBox::reset() |
579 { m_v0[X] = m_v0[Y] = m_v0[Z] = 0x7FFFFFFF; |
579 { m_Vertex0[X] = m_Vertex0[Y] = m_Vertex0[Z] = 0x7FFFFFFF; |
580 m_v1[X] = m_v1[Y] = m_v1[Z] = 0xFFFFFFFF; |
580 m_Vertex1[X] = m_Vertex1[Y] = m_Vertex1[Z] = 0xFFFFFFFF; |
581 |
581 |
582 m_empty = true; |
582 setEmpty (true); |
583 } |
583 } |
584 |
584 |
585 // ============================================================================= |
585 // ============================================================================= |
586 // ----------------------------------------------------------------------------- |
586 // ----------------------------------------------------------------------------- |
587 double LDBoundingBox::size() const |
587 double LDBoundingBox::size() const |
588 { double xscale = (m_v0[X] - m_v1[X]); |
588 { double xscale = (m_Vertex0[X] - m_Vertex1[X]); |
589 double yscale = (m_v0[Y] - m_v1[Y]); |
589 double yscale = (m_Vertex0[Y] - m_Vertex1[Y]); |
590 double zscale = (m_v0[Z] - m_v1[Z]); |
590 double zscale = (m_Vertex0[Z] - m_Vertex1[Z]); |
591 double size = zscale; |
591 double size = zscale; |
592 |
592 |
593 if (xscale > yscale) |
593 if (xscale > yscale) |
594 { if (xscale > zscale) |
594 { if (xscale > zscale) |
595 size = xscale; |
595 size = xscale; |
605 |
605 |
606 // ============================================================================= |
606 // ============================================================================= |
607 // ----------------------------------------------------------------------------- |
607 // ----------------------------------------------------------------------------- |
608 vertex LDBoundingBox::center() const |
608 vertex LDBoundingBox::center() const |
609 { return vertex ( |
609 { return vertex ( |
610 (m_v0[X] + m_v1[X]) / 2, |
610 (m_Vertex0[X] + m_Vertex1[X]) / 2, |
611 (m_v0[Y] + m_v1[Y]) / 2, |
611 (m_Vertex0[Y] + m_Vertex1[Y]) / 2, |
612 (m_v0[Z] + m_v1[Z]) / 2); |
612 (m_Vertex0[Z] + m_Vertex1[Z]) / 2); |
613 } |
613 } |