// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics) // SPDX-FileCopyrightText: 2021 Jorrit Rouwe // SPDX-License-Identifier: MIT #include #include #include JPH_NAMESPACE_BEGIN TriangleSplitterLongestAxis::TriangleSplitterLongestAxis(const VertexList &inVertices, const IndexedTriangleList &inTriangles) : TriangleSplitter(inVertices, inTriangles) { } bool TriangleSplitterLongestAxis::Split(const Range &inTriangles, Range &outLeft, Range &outRight) { // Calculate bounding box for triangles AABox bounds; for (uint t = inTriangles.mBegin; t < inTriangles.mEnd; ++t) bounds.Encapsulate(mVertices, GetTriangle(t)); // Calculate split plane uint dimension = bounds.GetExtent().GetHighestComponentIndex(); float split = bounds.GetCenter()[dimension]; return SplitInternal(inTriangles, dimension, split, outLeft, outRight); } JPH_NAMESPACE_END