diff -r 918b6c0f8b5b -r ed9685f44ab3 src/types/boundingbox.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/types/boundingbox.h Sat Dec 14 22:36:06 2019 +0200 @@ -0,0 +1,35 @@ +/* + * LDForge: LDraw parts authoring CAD + * Copyright (C) 2013 - 2018 Teemu Piippo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#include "vertex.h" +#include "math.h" + +class BoundingBox +{ +public: + void consider(const Point3D& vertex); + Point3D minimum {math::infinity, math::infinity, math::infinity}; + Point3D maximum {-math::infinity, -math::infinity, -math::infinity}; + BoundingBox& operator<<(const Point3D& v); +}; + +static constexpr BoundingBox emptyBoundingBox = {}; +Point3D center(const BoundingBox& box); +double longestMeasure(const BoundingBox& box); +double spaceDiagonal(const BoundingBox& box);