33 lines
924 B
C++
33 lines
924 B
C++
// 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
|