110 // ============================================================================= |
110 // ============================================================================= |
111 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
111 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
112 // ============================================================================= |
112 // ============================================================================= |
113 void bbox::calcVertex (vertex v) { |
113 void bbox::calcVertex (vertex v) { |
114 for (const Axis ax : g_Axes) { |
114 for (const Axis ax : g_Axes) { |
115 if (v[ax] < v0[ax]) |
115 if (v[ax] < m_v0[ax]) |
116 v0[ax] = v[ax]; |
116 m_v0[ax] = v[ax]; |
117 |
117 |
118 if (v[ax] > v1[ax]) |
118 if (v[ax] > m_v1[ax]) |
119 v1[ax] = v[ax]; |
119 m_v1[ax] = v[ax]; |
120 } |
120 } |
|
121 |
|
122 m_empty = false; |
121 } |
123 } |
122 |
124 |
123 // ============================================================================= |
125 // ============================================================================= |
124 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
126 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
125 // ============================================================================= |
127 // ============================================================================= |
126 void bbox::reset () { |
128 void bbox::reset () { |
127 v0[X] = v0[Y] = v0[Z] = +0x7FFFFFFF; |
129 m_v0[X] = m_v0[Y] = m_v0[Z] = +0x7FFFFFFF; |
128 v1[X] = v1[Y] = v1[Z] = -0x7FFFFFFF; |
130 m_v1[X] = m_v1[Y] = m_v1[Z] = -0x7FFFFFFF; |
|
131 |
|
132 m_empty = true; |
129 } |
133 } |
130 |
134 |
131 // ============================================================================= |
135 // ============================================================================= |
132 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
133 // ============================================================================= |
137 // ============================================================================= |
134 double bbox::size () const { |
138 double bbox::size () const { |
135 double fXScale = (v0[X] - v1[X]); |
139 double fXScale = (m_v0[X] - m_v1[X]); |
136 double fYScale = (v0[Y] - v1[Y]); |
140 double fYScale = (m_v0[Y] - m_v1[Y]); |
137 double fZScale = (v0[Z] - v1[Z]); |
141 double fZScale = (m_v0[Z] - m_v1[Z]); |
138 double fSize = fZScale; |
142 double fSize = fZScale; |
139 |
143 |
140 if (fXScale > fYScale) { |
144 if (fXScale > fYScale) { |
141 if (fXScale > fZScale) |
145 if (fXScale > fZScale) |
142 fSize = fXScale; |
146 fSize = fXScale; |
150 } |
154 } |
151 |
155 |
152 // ============================================================================= |
156 // ============================================================================= |
153 vertex bbox::center () const { |
157 vertex bbox::center () const { |
154 return vertex ( |
158 return vertex ( |
155 (v0[X] + v1[X]) / 2, |
159 (m_v0[X] + m_v1[X]) / 2, |
156 (v0[Y] + v1[Y]) / 2, |
160 (m_v0[Y] + m_v1[Y]) / 2, |
157 (v0[Z] + v1[Z]) / 2); |
161 (m_v0[Z] + m_v1[Z]) / 2); |
158 } |
162 } |
|
163 |
|
164 // ============================================================================= |
|
165 bool bbox::empty() const { |
|
166 return m_empty; |
|
167 } |