#include "stdafx.h" #include "BabylonVertex.h" #include #include #include "BabylonCamera.h" babylon_boundingbox::babylon_boundingbox() : _minX(std::numeric_limits::max()), _minY(std::numeric_limits::max()), _minZ(std::numeric_limits::max()), _maxX(std::numeric_limits::min()), _maxY(std::numeric_limits::min()), _maxZ(std::numeric_limits::min()) { } babylon_boundingbox::babylon_boundingbox(FbxScene* scene){ FbxVector4 vmin, vmax, vcenter; scene->ComputeBoundingBoxMinMaxCenter(vmin, vmax, vcenter); _minX = static_cast(vmin[0]); _minY = static_cast(vmin[1]); _minZ = static_cast(vmin[2]); _maxX = static_cast(vmax[0]); _maxY = static_cast(vmax[1]); _maxZ = static_cast(vmax[2]); } void babylon_boundingbox::addPosition(float x, float y, float z){ _minX = std::min(x, _minX); _minY = std::min(y, _minY); _minZ = std::min(z, _minZ); _maxX = std::max(x, _maxX); _maxY = std::max(y, _maxY); _maxZ = std::max(z, _maxZ); } babylon_boundingbox::~babylon_boundingbox() { } babylon_boundingbox mergeBoundingBoxes(const std::vector& boxes){ babylon_boundingbox result; for (const auto& b : boxes){ result.addPosition(b.getMin()); result.addPosition(b.getMax()); } return result; }