Bullet Collision Detection & Physics Library
Classes | Public Member Functions | Public Attributes | List of all members
btSoftBodyLinkDataOpenCL Class Reference

#include <btSoftBodySolverLinkData_OpenCL.h>

Inheritance diagram for btSoftBodyLinkDataOpenCL:
Inheritance graph
[legend]
Collaboration diagram for btSoftBodyLinkDataOpenCL:
Collaboration graph
[legend]

Classes

struct  BatchPair
 

Public Member Functions

 btSoftBodyLinkDataOpenCL (cl_command_queue queue, cl_context ctx)
 
virtual ~btSoftBodyLinkDataOpenCL ()
 
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...
 
- Public Member Functions inherited from btSoftBodyLinkData
 btSoftBodyLinkData ()
 
virtual ~btSoftBodyLinkData ()
 
virtual void clear ()
 
int getNumLinks ()
 
LinkNodePairgetVertexPair (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::Vector3getCurrentLength (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...
 

Public Attributes

bool m_onGPU
 
cl_command_queue m_cqCommandQue
 
btOpenCLBuffer< LinkNodePair > m_clLinks
 
btOpenCLBuffer< float > m_clLinkStrength
 
btOpenCLBuffer< float > m_clLinksMassLSC
 
btOpenCLBuffer< float > m_clLinksRestLengthSquared
 
btOpenCLBuffer
< Vectormath::Aos::Vector3
m_clLinksCLength
 
btOpenCLBuffer< float > m_clLinksLengthRatio
 
btOpenCLBuffer< float > m_clLinksRestLength
 
btOpenCLBuffer< float > m_clLinksMaterialLinearStiffnessCoefficient
 
btAlignedObjectArray< int > m_linkAddresses
 Link addressing information for each cloth. More...
 
btAlignedObjectArray< BatchPairm_batchStartLengths
 Start and length values for computation batches over link data. 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
 

Detailed Description

Definition at line 24 of file btSoftBodySolverLinkData_OpenCL.h.

Constructor & Destructor Documentation

btSoftBodyLinkDataOpenCL::btSoftBodyLinkDataOpenCL ( cl_command_queue  queue,
cl_context  ctx 
)

Definition at line 164 of file btSoftBodySolver_OpenCL.cpp.

btSoftBodyLinkDataOpenCL::~btSoftBodyLinkDataOpenCL ( )
virtual

Definition at line 177 of file btSoftBodySolver_OpenCL.cpp.

Member Function Documentation

void btSoftBodyLinkDataOpenCL::createLinks ( int  numLinks)
virtual

Allocate enough space in all link-related arrays to fit numLinks links.

Reimplemented from btSoftBodyLinkData.

Definition at line 188 of file btSoftBodySolver_OpenCL.cpp.

void btSoftBodyLinkDataOpenCL::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 259 of file btSoftBodySolver_OpenCL.cpp.

bool btSoftBodyLinkDataOpenCL::moveFromAccelerator ( )
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 234 of file btSoftBodySolver_OpenCL.cpp.

bool btSoftBodyLinkDataOpenCL::moveToAccelerator ( )
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 215 of file btSoftBodySolver_OpenCL.cpp.

bool btSoftBodyLinkDataOpenCL::onAccelerator ( )
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 210 of file btSoftBodySolver_OpenCL.cpp.

void btSoftBodyLinkDataOpenCL::setLinkAt ( const LinkDescription link,
int  linkIndex 
)
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 200 of file btSoftBodySolver_OpenCL.cpp.

Member Data Documentation

btAlignedObjectArray< BatchPair > btSoftBodyLinkDataOpenCL::m_batchStartLengths

Start and length values for computation batches over link data.

Definition at line 68 of file btSoftBodySolverLinkData_OpenCL.h.

btOpenCLBuffer<LinkNodePair> btSoftBodyLinkDataOpenCL::m_clLinks

Definition at line 32 of file btSoftBodySolverLinkData_OpenCL.h.

btOpenCLBuffer<Vectormath::Aos::Vector3> btSoftBodyLinkDataOpenCL::m_clLinksCLength

Definition at line 36 of file btSoftBodySolverLinkData_OpenCL.h.

btOpenCLBuffer<float> btSoftBodyLinkDataOpenCL::m_clLinksLengthRatio

Definition at line 37 of file btSoftBodySolverLinkData_OpenCL.h.

btOpenCLBuffer<float> btSoftBodyLinkDataOpenCL::m_clLinksMassLSC

Definition at line 34 of file btSoftBodySolverLinkData_OpenCL.h.

btOpenCLBuffer<float> btSoftBodyLinkDataOpenCL::m_clLinksMaterialLinearStiffnessCoefficient

Definition at line 39 of file btSoftBodySolverLinkData_OpenCL.h.

btOpenCLBuffer<float> btSoftBodyLinkDataOpenCL::m_clLinksRestLength

Definition at line 38 of file btSoftBodySolverLinkData_OpenCL.h.

btOpenCLBuffer<float> btSoftBodyLinkDataOpenCL::m_clLinksRestLengthSquared

Definition at line 35 of file btSoftBodySolverLinkData_OpenCL.h.

btOpenCLBuffer<float> btSoftBodyLinkDataOpenCL::m_clLinkStrength

Definition at line 33 of file btSoftBodySolverLinkData_OpenCL.h.

cl_command_queue btSoftBodyLinkDataOpenCL::m_cqCommandQue

Definition at line 29 of file btSoftBodySolverLinkData_OpenCL.h.

btAlignedObjectArray< int > btSoftBodyLinkDataOpenCL::m_linkAddresses

Link addressing information for each cloth.

Allows link locations to be computed independently of data batching.

Definition at line 63 of file btSoftBodySolverLinkData_OpenCL.h.

bool btSoftBodyLinkDataOpenCL::m_onGPU

Definition at line 27 of file btSoftBodySolverLinkData_OpenCL.h.


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