Jolt Physics
A multi core friendly Game Physics Engine
Loading...
Searching...
No Matches
TriangleSplitterMorton Class Reference

Splitter using Morton codes, see: http://devblogs.nvidia.com/parallelforall/thinking-parallel-part-iii-tree-construction-gpu/. More...

#include <TriangleSplitterMorton.h>

Inheritance diagram for TriangleSplitterMorton:
TriangleSplitter NonCopyable

Public Member Functions

 TriangleSplitterMorton (const VertexList &inVertices, const IndexedTriangleList &inTriangles)
 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 VertexListGetVertices () const
 Get the list of vertices. More...
 
const IndexedTriangleGetTriangle (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 VertexListmVertices
 Vertices of the indexed triangles. More...
 
const IndexedTriangleListmTriangles
 Unsorted triangles. More...
 
Array< Float3mCentroids
 Unsorted centroids of triangles. More...
 
Array< uintmSortedTriangleIdx
 Indices to sort triangles. More...
 

Detailed Description

Constructor & Destructor Documentation

◆ TriangleSplitterMorton()

JPH_NAMESPACE_BEGIN TriangleSplitterMorton::TriangleSplitterMorton ( const VertexList inVertices,
const IndexedTriangleList inTriangles 
)

Constructor.

Member Function Documentation

◆ GetStats()

virtual void TriangleSplitterMorton::GetStats ( Stats outStats) const
inlineoverridevirtual

Get stats of splitter.

Implements TriangleSplitter.

◆ Split()

bool TriangleSplitterMorton::Split ( const Range inTriangles,
Range outLeft,
Range outRight 
)
overridevirtual

Split triangles into two groups left and right, returns false if no split could be made

Parameters
inTrianglesThe range of triangles (in mSortedTriangleIdx) to process
outLeftOn return this will contain the ranges for the left subpart. mSortedTriangleIdx may have been shuffled.
outRightOn return this will contain the ranges for the right subpart. mSortedTriangleIdx may have been shuffled.
Returns
Returns true when a split was found

Implements TriangleSplitter.


The documentation for this class was generated from the following files: