16 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
16 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 */ |
17 */ |
18 |
18 |
19 #include "boundingbox.h" |
19 #include "boundingbox.h" |
20 |
20 |
21 BoundingBox& BoundingBox::operator<<(const glm::vec3& vertex) |
21 /** |
|
22 * @brief Resizes @c box so that @c vertex fits inside |
|
23 * @param box |
|
24 * @param vertex |
|
25 */ |
|
26 void addPointToBox(BoundingBox &box, const glm::vec3 &vertex) |
22 { |
27 { |
23 this->consider(vertex); |
28 box.minimum.x = math::min(vertex.x, box.minimum.x); |
24 return *this; |
29 box.minimum.y = math::min(vertex.y, box.minimum.y); |
25 } |
30 box.minimum.z = math::min(vertex.z, box.minimum.z); |
26 |
31 box.maximum.x = math::max(vertex.x, box.maximum.x); |
27 void BoundingBox::consider(const glm::vec3& vertex) |
32 box.maximum.y = math::max(vertex.y, box.maximum.y); |
28 { |
33 box.maximum.z = math::max(vertex.z, box.maximum.z); |
29 this->minimum.x = math::min(vertex.x, this->minimum.x); |
|
30 this->minimum.y = math::min(vertex.y, this->minimum.y); |
|
31 this->minimum.z = math::min(vertex.z, this->minimum.z); |
|
32 this->maximum.x = math::max(vertex.x, this->maximum.x); |
|
33 this->maximum.y = math::max(vertex.y, this->maximum.y); |
|
34 this->maximum.z = math::max(vertex.z, this->maximum.z); |
|
35 } |
34 } |
36 |
35 |
37 /* |
36 /* |
38 * Returns the length of the bounding box on the longest measure. |
37 * Returns the length of the bounding box on the longest measure. |
39 */ |
38 */ |