// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics) // SPDX-FileCopyrightText: 2021 Jorrit Rouwe // SPDX-License-Identifier: MIT #pragma once #include JPH_NAMESPACE_BEGIN /// Splitter using Morton codes, see: http://devblogs.nvidia.com/parallelforall/thinking-parallel-part-iii-tree-construction-gpu/ class JPH_EXPORT TriangleSplitterMorton : public TriangleSplitter { public: /// Constructor TriangleSplitterMorton(const VertexList &inVertices, const IndexedTriangleList &inTriangles); // See TriangleSplitter::GetStats virtual void GetStats(Stats &outStats) const override { outStats.mSplitterName = "TriangleSplitterMorton"; } // See TriangleSplitter::Split virtual bool Split(const Range &inTriangles, Range &outLeft, Range &outRight) override; private: // Precalculated Morton codes Array mMortonCodes; }; JPH_NAMESPACE_END