Jolt Physics
A multi core friendly Game Physics Engine
|
#include <TriangleSplitterFixedLeafSize.h>
Public Member Functions | |
TriangleSplitterFixedLeafSize (const VertexList &inVertices, const IndexedTriangleList &inTriangles, uint inLeafSize, uint inMinNumBins=8, uint inMaxNumBins=128, uint inNumTrianglesPerBin=6) | |
Constructor. More... | |
virtual void | GetStats (Stats &outStats) const override |
Get stats of splitter. More... | |
virtual bool | Split (const Range &inTriangles, Range &outLeft, Range &outRight) override |
Public Member Functions inherited from TriangleSplitter | |
TriangleSplitter (const VertexList &inVertices, const IndexedTriangleList &inTriangles) | |
Constructor. More... | |
virtual | ~TriangleSplitter ()=default |
Virtual destructor. More... | |
virtual void | GetStats (Stats &outStats) const =0 |
Get stats of splitter. More... | |
Range | GetInitialRange () const |
Range of triangles to start with. More... | |
virtual bool | Split (const Range &inTriangles, Range &outLeft, Range &outRight)=0 |
const VertexList & | GetVertices () const |
Get the list of vertices. More... | |
const IndexedTriangle & | GetTriangle (uint inIdx) const |
Get triangle by index. More... | |
Public Member Functions inherited from NonCopyable | |
NonCopyable ()=default | |
NonCopyable (const NonCopyable &)=delete | |
void | operator= (const NonCopyable &)=delete |
Additional Inherited Members | |
Protected Member Functions inherited from TriangleSplitter | |
bool | SplitInternal (const Range &inTriangles, uint inDimension, float inSplit, Range &outLeft, Range &outRight) |
Helper function to split triangles based on dimension and split value. More... | |
Protected Attributes inherited from TriangleSplitter | |
const VertexList & | mVertices |
Vertices of the indexed triangles. More... | |
const IndexedTriangleList & | mTriangles |
Unsorted triangles. More... | |
Array< Float3 > | mCentroids |
Unsorted centroids of triangles. More... | |
Array< uint > | mSortedTriangleIdx |
Indices to sort triangles. More... | |
Same as TriangleSplitterBinning, but ensuring that leaves have a fixed amount of triangles The resulting tree should be suitable for processing on GPU where we want all threads to process an equal amount of triangles
JPH_NAMESPACE_BEGIN TriangleSplitterFixedLeafSize::TriangleSplitterFixedLeafSize | ( | const VertexList & | inVertices, |
const IndexedTriangleList & | inTriangles, | ||
uint | inLeafSize, | ||
uint | inMinNumBins = 8 , |
||
uint | inMaxNumBins = 128 , |
||
uint | inNumTrianglesPerBin = 6 |
||
) |
Constructor.
|
inlineoverridevirtual |
Get stats of splitter.
Implements TriangleSplitter.
|
overridevirtual |
Split triangles into two groups left and right, returns false if no split could be made
inTriangles | The range of triangles (in mSortedTriangleIdx) to process |
outLeft | On return this will contain the ranges for the left subpart. mSortedTriangleIdx may have been shuffled. |
outRight | On return this will contain the ranges for the right subpart. mSortedTriangleIdx may have been shuffled. |
Implements TriangleSplitter.