1234567891011121314151617181920212223242526272829303132 |
- // Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
- // SPDX-FileCopyrightText: 2021 Jorrit Rouwe
- // SPDX-License-Identifier: MIT
- #pragma once
- #include <Jolt/TriangleSplitter/TriangleSplitter.h>
- 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<uint32> mMortonCodes;
- };
- JPH_NAMESPACE_END
|