1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-08 12:40:44 +00:00
Files
godot/thirdparty/jolt_physics/Jolt/TriangleGrouper/TriangleGrouper.h
Mikael Hermansson d470c2ac6a Add Jolt Physics as an alternative 3D physics engine
Co-authored-by: Jorrit Rouwe <jrouwe@gmail.com>
2024-12-11 13:57:25 +01:00

28 lines
1.1 KiB
C++

// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
// SPDX-FileCopyrightText: 2021 Jorrit Rouwe
// SPDX-License-Identifier: MIT
#pragma once
#include <Jolt/Geometry/IndexedTriangle.h>
#include <Jolt/Core/NonCopyable.h>
JPH_NAMESPACE_BEGIN
/// A class that groups triangles in batches of N (according to closeness)
class JPH_EXPORT TriangleGrouper : public NonCopyable
{
public:
/// Virtual destructor
virtual ~TriangleGrouper() = default;
/// Group a batch of indexed triangles
/// @param inVertices The list of vertices
/// @param inTriangles The list of indexed triangles (indexes into inVertices)
/// @param inGroupSize How big each group should be
/// @param outGroupedTriangleIndices An ordered list of indices (indexing into inTriangles), contains groups of inGroupSize large worth of indices to triangles that are grouped together. If the triangle count is not an exact multiple of inGroupSize the last batch will be smaller.
virtual void Group(const VertexList &inVertices, const IndexedTriangleList &inTriangles, int inGroupSize, Array<uint> &outGroupedTriangleIndices) = 0;
};
JPH_NAMESPACE_END