Blender V5.0
btBatchedConstraints.cpp File Reference
#include "btBatchedConstraints.h"
#include "LinearMath/btIDebugDraw.h"
#include "LinearMath/btMinMax.h"
#include "LinearMath/btStackAlloc.h"
#include "LinearMath/btQuickprof.h"
#include <string.h>
#include <cmath>

Go to the source code of this file.

Classes

struct  btBatchedConstraintInfo
struct  btBatchInfo
struct  ReadSolverConstraintsLoop
struct  ExpandConstraintRowsLoop
struct  UpdateConstraintBatchIdsForMergesLoop
struct  WriteOutConstraintIndicesLoop
class  PreallocatedMemoryHelper< N >
struct  btIntVec3
struct  AssignConstraintsToGridBatchesParams
struct  AssignConstraintsToGridBatchesLoop

Functions

static void debugDrawSingleBatch (const btBatchedConstraints *bc, btConstraintArray *constraints, const btAlignedObjectArray< btSolverBody > &bodies, int iBatch, const btVector3 &color, const btVector3 &offset)
static void debugDrawPhase (const btBatchedConstraints *bc, btConstraintArray *constraints, const btAlignedObjectArray< btSolverBody > &bodies, int iPhase, const btVector3 &color0, const btVector3 &color1, const btVector3 &offset)
static void debugDrawAllBatches (const btBatchedConstraints *bc, btConstraintArray *constraints, const btAlignedObjectArray< btSolverBody > &bodies)
static void initBatchedBodyDynamicFlags (btAlignedObjectArray< bool > *outBodyDynamicFlags, const btAlignedObjectArray< btSolverBody > &bodies)
static int runLengthEncodeConstraintInfo (btBatchedConstraintInfo *outConInfos, int numConstraints)
static int initBatchedConstraintInfo (btBatchedConstraintInfo *outConInfos, btConstraintArray *constraints)
static void expandConstraintRowsInPlace (int *constraintBatchIds, const btBatchedConstraintInfo *conInfos, int numConstraints, int numConstraintRows)
static void expandConstraintRows (int *destConstraintBatchIds, const int *srcConstraintBatchIds, const btBatchedConstraintInfo *conInfos, int numConstraints, int numConstraintRows)
static void expandConstraintRowsMt (int *destConstraintBatchIds, const int *srcConstraintBatchIds, const btBatchedConstraintInfo *conInfos, int numConstraints, int numConstraintRows)
static void initBatchedConstraintInfoArray (btAlignedObjectArray< btBatchedConstraintInfo > *outConInfos, btConstraintArray *constraints)
static void mergeSmallBatches (btBatchInfo *batches, int iBeginBatch, int iEndBatch, int minBatchSize, int maxBatchSize)
static void updateConstraintBatchIdsForMerges (int *constraintBatchIds, int numConstraints, const btBatchInfo *batches, int numBatches)
static void updateConstraintBatchIdsForMergesMt (int *constraintBatchIds, int numConstraints, const btBatchInfo *batches, int numBatches)
bool BatchCompare (const btBatchedConstraints::Range &a, const btBatchedConstraints::Range &b)
static void writeOutConstraintIndicesForRangeOfBatches (btBatchedConstraints *bc, const int *constraintBatchIds, int numConstraints, int *constraintIdPerBatch, int batchBegin, int batchEnd)
static void writeOutConstraintIndicesMt (btBatchedConstraints *bc, const int *constraintBatchIds, int numConstraints, int *constraintIdPerBatch, int maxNumBatchesPerPhase, int numPhases)
static void writeGrainSizes (btBatchedConstraints *bc)
static void writeOutBatches (btBatchedConstraints *bc, const int *constraintBatchIds, int numConstraints, const btBatchInfo *batches, int *batchWork, int maxNumBatchesPerPhase, int numPhases)
static btVector3 findMaxDynamicConstraintExtent (btVector3 *bodyPositions, bool *bodyDynamicFlags, btBatchedConstraintInfo *conInfos, int numConstraints, int numBodies)
static void assignConstraintsToGridBatches (const AssignConstraintsToGridBatchesParams &params, int iConBegin, int iConEnd)
static void setupSpatialGridBatchesMt (btBatchedConstraints *batchedConstraints, btAlignedObjectArray< char > *scratchMemory, btConstraintArray *constraints, const btAlignedObjectArray< btSolverBody > &bodies, int minBatchSize, int maxBatchSize, bool use2DGrid)
static void setupSingleBatch (btBatchedConstraints *bc, int numConstraints)

Variables

const int kNoMerge = -1

Function Documentation

◆ assignConstraintsToGridBatches()

void assignConstraintsToGridBatches ( const AssignConstraintsToGridBatchesParams & params,
int iConBegin,
int iConEnd )
static

◆ BatchCompare()

bool BatchCompare ( const btBatchedConstraints::Range & a,
const btBatchedConstraints::Range & b )
inline

◆ debugDrawAllBatches()

◆ debugDrawPhase()

◆ debugDrawSingleBatch()

void debugDrawSingleBatch ( const btBatchedConstraints * bc,
btConstraintArray * constraints,
const btAlignedObjectArray< btSolverBody > & bodies,
int iBatch,
const btVector3 & color,
const btVector3 & offset )
static

◆ expandConstraintRows()

void expandConstraintRows ( int * destConstraintBatchIds,
const int * srcConstraintBatchIds,
const btBatchedConstraintInfo * conInfos,
int numConstraints,
int numConstraintRows )
static

◆ expandConstraintRowsInPlace()

void expandConstraintRowsInPlace ( int * constraintBatchIds,
const btBatchedConstraintInfo * conInfos,
int numConstraints,
int numConstraintRows )
static

◆ expandConstraintRowsMt()

void expandConstraintRowsMt ( int * destConstraintBatchIds,
const int * srcConstraintBatchIds,
const btBatchedConstraintInfo * conInfos,
int numConstraints,
int numConstraintRows )
static

Definition at line 323 of file btBatchedConstraints.cpp.

References BT_PROFILE, btParallelFor(), and numConstraints.

Referenced by setupSpatialGridBatchesMt().

◆ findMaxDynamicConstraintExtent()

btVector3 findMaxDynamicConstraintExtent ( btVector3 * bodyPositions,
bool * bodyDynamicFlags,
btBatchedConstraintInfo * conInfos,
int numConstraints,
int numBodies )
static

◆ initBatchedBodyDynamicFlags()

void initBatchedBodyDynamicFlags ( btAlignedObjectArray< bool > * outBodyDynamicFlags,
const btAlignedObjectArray< btSolverBody > & bodies )
static

◆ initBatchedConstraintInfo()

◆ initBatchedConstraintInfoArray()

◆ mergeSmallBatches()

void mergeSmallBatches ( btBatchInfo * batches,
int iBeginBatch,
int iEndBatch,
int minBatchSize,
int maxBatchSize )
static

◆ runLengthEncodeConstraintInfo()

int runLengthEncodeConstraintInfo ( btBatchedConstraintInfo * outConInfos,
int numConstraints )
static

◆ setupSingleBatch()

◆ setupSpatialGridBatchesMt()

◆ updateConstraintBatchIdsForMerges()

void updateConstraintBatchIdsForMerges ( int * constraintBatchIds,
int numConstraints,
const btBatchInfo * batches,
int numBatches )
static

◆ updateConstraintBatchIdsForMergesMt()

void updateConstraintBatchIdsForMergesMt ( int * constraintBatchIds,
int numConstraints,
const btBatchInfo * batches,
int numBatches )
static

Definition at line 424 of file btBatchedConstraints.cpp.

References BT_PROFILE, btParallelFor(), and numConstraints.

Referenced by setupSpatialGridBatchesMt().

◆ writeGrainSizes()

◆ writeOutBatches()

◆ writeOutConstraintIndicesForRangeOfBatches()

void writeOutConstraintIndicesForRangeOfBatches ( btBatchedConstraints * bc,
const int * constraintBatchIds,
int numConstraints,
int * constraintIdPerBatch,
int batchBegin,
int batchEnd )
static

◆ writeOutConstraintIndicesMt()

void writeOutConstraintIndicesMt ( btBatchedConstraints * bc,
const int * constraintBatchIds,
int numConstraints,
int * constraintIdPerBatch,
int maxNumBatchesPerPhase,
int numPhases )
static

Variable Documentation

◆ kNoMerge

const int kNoMerge = -1