Bullet Collision Detection & Physics Library
|
#include <btSoftBodySolverLinkData_DX11SIMDAware.h>
Classes | |
struct | BatchPair |
struct | NumBatchesVerticesPair |
Public Member Functions | |
btSoftBodyLinkDataDX11SIMDAware (ID3D11Device *d3dDevice, ID3D11DeviceContext *d3dDeviceContext) | |
virtual | ~btSoftBodyLinkDataDX11SIMDAware () |
virtual void | createLinks (int numLinks) |
Allocate enough space in all link-related arrays to fit numLinks links. More... | |
virtual void | setLinkAt (const LinkDescription &link, int linkIndex) |
Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks. More... | |
virtual bool | onAccelerator () |
Return true if data is on the accelerator. More... | |
virtual bool | moveToAccelerator () |
Move data from host memory to the accelerator. More... | |
virtual bool | moveFromAccelerator () |
Move data from host memory from the accelerator. More... | |
void | generateBatches () |
Generate (and later update) the batching for the entire link set. More... | |
int | getMaxVerticesPerWavefront () |
int | getWavefrontSize () |
int | getLinksPerWorkItem () |
int | getMaxLinksPerWavefront () |
int | getMaxBatchesPerWavefront () |
int | getNumWavefronts () |
NumBatchesVerticesPair | getNumBatchesAndVerticesWithinWavefront (int wavefront) |
int | getVertexGlobalAddresses (int vertexIndex) |
LinkNodePair | getVertexPairLocalAddresses (int linkIndex) |
Get post-batching local addresses of the vertex pair for a link assuming all vertices used by a wavefront are loaded locally. More... | |
Public Member Functions inherited from btSoftBodyLinkData | |
btSoftBodyLinkData () | |
virtual | ~btSoftBodyLinkData () |
virtual void | clear () |
int | getNumLinks () |
LinkNodePair & | getVertexPair (int linkIndex) |
Return reference to the vertex index pair for link linkIndex as stored on the host. More... | |
float & | getStrength (int linkIndex) |
Return reference to strength of link linkIndex as stored on the host. More... | |
virtual float & | getStrengthCorrected (int linkIndex) |
Return a reference to the strength of the link corrected for link sorting. More... | |
float & | getRestLength (int linkIndex) |
Return reference to the rest length of link linkIndex as stored on the host. More... | |
float & | getLinearStiffnessCoefficient (int linkIndex) |
Return reference to linear stiffness coefficient for link linkIndex as stored on the host. More... | |
float & | getMassLSC (int linkIndex) |
Return reference to the MassLSC value for link linkIndex as stored on the host. More... | |
float & | getRestLengthSquared (int linkIndex) |
Return reference to rest length squared for link linkIndex as stored on the host. More... | |
Vectormath::Aos::Vector3 & | getCurrentLength (int linkIndex) |
Return reference to current length of link linkIndex as stored on the host. More... | |
float & | getLinkLengthRatio (int linkIndex) |
Return the link length ratio from for link linkIndex as stored on the host. More... | |
Additional Inherited Members | |
Protected Attributes inherited from btSoftBodyLinkData | |
btAlignedObjectArray < LinkNodePair > | m_links |
btAlignedObjectArray< float > | m_linkStrength |
btAlignedObjectArray< float > | m_linksMassLSC |
btAlignedObjectArray< float > | m_linksRestLengthSquared |
btAlignedObjectArray < Vectormath::Aos::Vector3 > | m_linksCLength |
btAlignedObjectArray< float > | m_linksLengthRatio |
btAlignedObjectArray< float > | m_linksRestLength |
btAlignedObjectArray< float > | m_linksMaterialLinearStiffnessCoefficient |
Definition at line 26 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
btSoftBodyLinkDataDX11SIMDAware::btSoftBodyLinkDataDX11SIMDAware | ( | ID3D11Device * | d3dDevice, |
ID3D11DeviceContext * | d3dDeviceContext | ||
) |
|
virtual |
Definition at line 86 of file btSoftBodySolver_DX11SIMDAware.cpp.
|
virtual |
Allocate enough space in all link-related arrays to fit numLinks links.
Reimplemented from btSoftBodyLinkData.
Definition at line 96 of file btSoftBodySolver_DX11SIMDAware.cpp.
void btSoftBodyLinkDataDX11SIMDAware::generateBatches | ( | ) |
Generate (and later update) the batching for the entire link set.
This redoes a lot of work because it batches the entire set when each cloth is inserted. In theory we could delay it until just before we need the cloth. It's a one-off overhead, though, so that is a later optimisation.
Definition at line 885 of file btSoftBodySolver_DX11SIMDAware.cpp.
|
inline |
Definition at line 132 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
|
inline |
Definition at line 142 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
|
inline |
Definition at line 137 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
|
inline |
Definition at line 122 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
|
inline |
Definition at line 152 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
|
inline |
Definition at line 147 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
|
inline |
Definition at line 157 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
|
inline |
Get post-batching local addresses of the vertex pair for a link assuming all vertices used by a wavefront are loaded locally.
Definition at line 165 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
|
inline |
Definition at line 127 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
|
virtual |
Move data from host memory from the accelerator.
The CPU version will always return that it has moved it.
Reimplemented from btSoftBodyLinkData.
Definition at line 144 of file btSoftBodySolver_DX11SIMDAware.cpp.
|
virtual |
Move data from host memory to the accelerator.
The CPU version will always return that it has moved it.
Reimplemented from btSoftBodyLinkData.
Definition at line 125 of file btSoftBodySolver_DX11SIMDAware.cpp.
|
virtual |
Return true if data is on the accelerator.
The CPU version of this class will return true here because the CPU is the same as the accelerator.
Reimplemented from btSoftBodyLinkData.
Definition at line 120 of file btSoftBodySolver_DX11SIMDAware.cpp.
|
virtual |
Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks.
Reimplemented from btSoftBodyLinkData.
Definition at line 107 of file btSoftBodySolver_DX11SIMDAware.cpp.
ID3D11Device* btSoftBodyLinkDataDX11SIMDAware::m_d3dDevice |
Definition at line 30 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
ID3D11DeviceContext* btSoftBodyLinkDataDX11SIMDAware::m_d3dDeviceContext |
Definition at line 31 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
btDX11Buffer<float> btSoftBodyLinkDataDX11SIMDAware::m_dx11LinksMassLSC |
Definition at line 61 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
btDX11Buffer<float> btSoftBodyLinkDataDX11SIMDAware::m_dx11LinksMaterialLinearStiffnessCoefficient |
Definition at line 64 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
btDX11Buffer<float> btSoftBodyLinkDataDX11SIMDAware::m_dx11LinksRestLength |
Definition at line 63 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
btDX11Buffer<float> btSoftBodyLinkDataDX11SIMDAware::m_dx11LinksRestLengthSquared |
Definition at line 62 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
btDX11Buffer<float> btSoftBodyLinkDataDX11SIMDAware::m_dx11LinkStrength |
Definition at line 60 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
btDX11Buffer<LinkNodePair> btSoftBodyLinkDataDX11SIMDAware::m_dx11LinkVerticesLocalAddresses |
Definition at line 59 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
btDX11Buffer< NumBatchesVerticesPair > btSoftBodyLinkDataDX11SIMDAware::m_dx11NumBatchesAndVerticesWithinWaves |
Definition at line 51 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
btDX11Buffer<int> btSoftBodyLinkDataDX11SIMDAware::m_dx11WavefrontVerticesGlobalAddresses |
Definition at line 57 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
btAlignedObjectArray< int > btSoftBodyLinkDataDX11SIMDAware::m_linkAddresses |
Link addressing information for each cloth.
Allows link locations to be computed independently of data batching.
Definition at line 88 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
btAlignedObjectArray<int> btSoftBodyLinkDataDX11SIMDAware::m_linksPerWavefront |
Definition at line 49 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
const int btSoftBodyLinkDataDX11SIMDAware::m_linksPerWorkItem |
Definition at line 34 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
btAlignedObjectArray< LinkNodePair > btSoftBodyLinkDataDX11SIMDAware::m_linkVerticesLocalAddresses |
Definition at line 58 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
int btSoftBodyLinkDataDX11SIMDAware::m_maxBatchesWithinWave |
Definition at line 36 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
const int btSoftBodyLinkDataDX11SIMDAware::m_maxLinksPerWavefront |
Definition at line 35 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
int btSoftBodyLinkDataDX11SIMDAware::m_maxVertex |
Definition at line 40 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
int btSoftBodyLinkDataDX11SIMDAware::m_maxVerticesWithinWave |
Definition at line 37 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
btAlignedObjectArray<NumBatchesVerticesPair> btSoftBodyLinkDataDX11SIMDAware::m_numBatchesAndVerticesWithinWaves |
Definition at line 50 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
int btSoftBodyLinkDataDX11SIMDAware::m_numWavefronts |
Definition at line 38 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
bool btSoftBodyLinkDataDX11SIMDAware::m_onGPU |
Definition at line 29 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
btAlignedObjectArray< BatchPair > btSoftBodyLinkDataDX11SIMDAware::m_wavefrontBatchStartLengths |
Start and length values for computation batches over link data.
Definition at line 93 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
const int btSoftBodyLinkDataDX11SIMDAware::m_wavefrontSize |
Definition at line 33 of file btSoftBodySolverLinkData_DX11SIMDAware.h.
btAlignedObjectArray< int > btSoftBodyLinkDataDX11SIMDAware::m_wavefrontVerticesGlobalAddresses |
Definition at line 56 of file btSoftBodySolverLinkData_DX11SIMDAware.h.