![]()  | 
  
    Jolt Physics
    
   A multi core friendly Game Physics Engine 
   | 
 
Structure that describes the resulting splits from the large island splitter. More...
#include <LargeIslandSplitter.h>
Public Types | |
| enum | EIterationStatus : uint64 {  StatusIterationMask = 0xffff000000000000 , StatusIterationShift = 48 , StatusSplitMask = 0x0000ffff00000000 , StatusSplitShift = 32 , StatusItemMask = 0x00000000ffffffff }  | 
Public Member Functions | |
| uint | GetNumSplits () const | 
| void | GetConstraintsInSplit (uint inSplitIndex, uint32 &outConstraintsBegin, uint32 &outConstraintsEnd) const | 
| void | GetContactsInSplit (uint inSplitIndex, uint32 &outContactsBegin, uint32 &outContactsEnd) const | 
| void | ResetStatus () | 
| Reset current status so that no work can be picked up from this split.  More... | |
| void | StartFirstBatch () | 
| Make the first batch available to other threads.  More... | |
| EStatus | FetchNextBatch (uint32 &outConstraintsBegin, uint32 &outConstraintsEnd, uint32 &outContactsBegin, uint32 &outContactsEnd, bool &outFirstIteration) | 
| Fetch the next batch to process.  More... | |
| void | MarkBatchProcessed (uint inNumProcessed, bool &outLastIteration, bool &outFinalBatch) | 
| Mark a batch as processed.  More... | |
Static Public Member Functions | |
| static int | sGetIteration (uint64 inStatus) | 
| static uint | sGetSplit (uint64 inStatus) | 
| static uint | sGetItem (uint64 inStatus) | 
Public Attributes | |
| Split | mSplits [cNumSplits] | 
| Data per split.  More... | |
| uint32 | mIslandIndex | 
| Index of the island that was split.  More... | |
| uint | mNumSplits | 
| Number of splits that were created (excluding the non-parallel split)  More... | |
| int | mNumIterations | 
| Number of iterations to do.  More... | |
| int | mNumVelocitySteps | 
| Number of velocity steps to do (cached for 2nd sub step)  More... | |
| int | mNumPositionSteps | 
| Number of position steps to do.  More... | |
| atomic< uint64 > | mStatus | 
| Status of the split, see EIterationStatus.  More... | |
| atomic< uint > | mItemsProcessed | 
| Number of items that have been marked as processed.  More... | |
Structure that describes the resulting splits from the large island splitter.
| JPH_NAMESPACE_BEGIN LargeIslandSplitter::EStatus LargeIslandSplitter::Splits::FetchNextBatch | ( | uint32 & | outConstraintsBegin, | 
| uint32 & | outConstraintsEnd, | ||
| uint32 & | outContactsBegin, | ||
| uint32 & | outContactsEnd, | ||
| bool & | outFirstIteration | ||
| ) | 
Fetch the next batch to process.
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
| void LargeIslandSplitter::Splits::MarkBatchProcessed | ( | uint | inNumProcessed, | 
| bool & | outLastIteration, | ||
| bool & | outFinalBatch | ||
| ) | 
Mark a batch as processed.
      
  | 
  inline | 
Reset current status so that no work can be picked up from this split.
      
  | 
  inlinestatic | 
      
  | 
  inline | 
Make the first batch available to other threads.
| uint32 LargeIslandSplitter::Splits::mIslandIndex | 
Index of the island that was split.
| atomic<uint> LargeIslandSplitter::Splits::mItemsProcessed | 
Number of items that have been marked as processed.
| int LargeIslandSplitter::Splits::mNumIterations | 
Number of iterations to do.
| int LargeIslandSplitter::Splits::mNumPositionSteps | 
Number of position steps to do.
| uint LargeIslandSplitter::Splits::mNumSplits | 
Number of splits that were created (excluding the non-parallel split)
| int LargeIslandSplitter::Splits::mNumVelocitySteps | 
Number of velocity steps to do (cached for 2nd sub step)
| Split LargeIslandSplitter::Splits::mSplits[cNumSplits] | 
Data per split.
| atomic<uint64> LargeIslandSplitter::Splits::mStatus | 
Status of the split, see EIterationStatus.