Bullet Collision Detection & Physics Library
|
#include <btSoftBodySolver_OpenCL.h>
Classes | |
struct | AnchorNodeInfoCL |
struct | CollisionObjectIndices |
struct | UIntVector3 |
Public Member Functions | |
btOpenCLSoftBodySolver (cl_command_queue queue, cl_context ctx, bool bUpdateAchchoredNodePos=false) | |
virtual | ~btOpenCLSoftBodySolver () |
btOpenCLAcceleratedSoftBodyInterface * | findSoftBodyInterface (const btSoftBody *const softBody) |
virtual btSoftBodyLinkData & | getLinkData () |
virtual btSoftBodyVertexData & | getVertexData () |
virtual btSoftBodyTriangleData & | getTriangleData () |
virtual SolverTypes | getSolverType () const |
Return the type of the solver. More... | |
virtual bool | checkInitialized () |
Ensure that this solver is initialized. More... | |
virtual void | updateSoftBodies () |
Perform necessary per-step updates of soft bodies such as recomputing normals and bounding boxes. More... | |
virtual void | optimize (btAlignedObjectArray< btSoftBody * > &softBodies, bool forceUpdate=false) |
Optimize soft bodies in this solver. More... | |
virtual void | copyBackToSoftBodies (bool bMove=true) |
Copy necessary data back to the original soft body source objects. More... | |
virtual void | solveConstraints (float solverdt) |
Solve constraints for a set of soft bodies. More... | |
virtual void | predictMotion (float solverdt) |
Predict motion of soft bodies into next timestep. More... | |
virtual void | processCollision (btSoftBody *, const btCollisionObjectWrapper *) |
virtual void | processCollision (btSoftBody *, btSoftBody *) |
Process a collision between two soft bodies. More... | |
virtual void | setDefaultWorkgroupSize (size_t workGroupSize) |
virtual size_t | getDefaultWorkGroupSize () const |
void | setCLFunctions (CLFunctions *funcs) |
Public Member Functions inherited from btSoftBodySolver | |
btSoftBodySolver () | |
virtual | ~btSoftBodySolver () |
virtual void | processCollision (btSoftBody *, const struct btCollisionObjectWrapper *)=0 |
Process a collision between one of the world's soft bodies and another collision object. More... | |
virtual void | setNumberOfPositionIterations (int iterations) |
Set the number of velocity constraint solver iterations this solver uses. More... | |
virtual int | getNumberOfPositionIterations () |
Get the number of velocity constraint solver iterations this solver uses. More... | |
virtual void | setNumberOfVelocityIterations (int iterations) |
Set the number of velocity constraint solver iterations this solver uses. More... | |
virtual int | getNumberOfVelocityIterations () |
Get the number of velocity constraint solver iterations this solver uses. More... | |
float | getTimeScale () |
Return the timescale that the simulation is using. More... | |
Public Attributes | |
btSoftBodyLinkDataOpenCL | m_linkData |
btSoftBodyVertexDataOpenCL | m_vertexData |
btSoftBodyTriangleDataOpenCL | m_triangleData |
Protected Member Functions | |
virtual bool | buildShaders () |
void | resetNormalsAndAreas (int numVertices) |
void | normalizeNormalsAndAreas (int numVertices) |
void | executeUpdateSoftBodies (int firstTriangle, int numTriangles) |
void | prepareCollisionConstraints () |
Sort the collision object details array and generate indexing into it for the per-cloth collision object array. More... | |
Vectormath::Aos::Vector3 | ProjectOnAxis (const Vectormath::Aos::Vector3 &v, const Vectormath::Aos::Vector3 &a) |
void | ApplyClampedForce (float solverdt, const Vectormath::Aos::Vector3 &force, const Vectormath::Aos::Vector3 &vertexVelocity, float inverseMass, Vectormath::Aos::Vector3 &vertexForce) |
int | findSoftBodyIndex (const btSoftBody *const softBody) |
virtual void | applyForces (float solverdt) |
void | updateFixedVertexPositions () |
virtual void | integrate (float solverdt) |
Integrate motion on the solver. More... | |
virtual void | updateConstants (float timeStep) |
float | computeTriangleArea (const Vectormath::Aos::Point3 &vertex0, const Vectormath::Aos::Point3 &vertex1, const Vectormath::Aos::Point3 &vertex2) |
void | prepareLinks () |
void | solveLinksForVelocity (int startLink, int numLinks, float kst) |
void | updatePositionsFromVelocities (float solverdt) |
virtual void | solveLinksForPosition (int startLink, int numLinks, float kst, float ti) |
void | updateVelocitiesFromPositionsWithVelocities (float isolverdt) |
void | updateVelocitiesFromPositionsWithoutVelocities (float isolverdt) |
virtual void | solveCollisionsAndUpdateVelocities (float isolverdt) |
void | updateBounds () |
void | releaseKernels () |
Additional Inherited Members | |
Public Types inherited from btSoftBodySolver | |
enum | SolverTypes { DEFAULT_SOLVER, CPU_SOLVER, CL_SOLVER, CL_SIMD_SOLVER, DX_SOLVER, DX_SIMD_SOLVER } |
Definition at line 243 of file btSoftBodySolver_OpenCL.h.
btOpenCLSoftBodySolver::btOpenCLSoftBodySolver | ( | cl_command_queue | queue, |
cl_context | ctx, | ||
bool | bUpdateAchchoredNodePos = false |
||
) |
Definition at line 603 of file btSoftBodySolver_OpenCL.cpp.
|
virtual |
Definition at line 652 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Definition at line 1013 of file btSoftBodySolver_OpenCL.cpp.
|
protectedvirtual |
Definition at line 1050 of file btSoftBodySolver_OpenCL.cpp.
|
protectedvirtual |
Reimplemented in btOpenCLSoftBodySolverSIMDAware.
Definition at line 1786 of file btSoftBodySolver_OpenCL.cpp.
|
virtual |
Ensure that this solver is initialized.
Implements btSoftBodySolver.
Definition at line 1777 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Definition at line 1120 of file btSoftBodySolver_OpenCL.cpp.
|
virtual |
Copy necessary data back to the original soft body source objects.
Implements btSoftBodySolver.
Definition at line 678 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Definition at line 957 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Definition at line 1766 of file btSoftBodySolver_OpenCL.cpp.
btOpenCLAcceleratedSoftBodyInterface * btOpenCLSoftBodySolver::findSoftBodyInterface | ( | const btSoftBody *const | softBody | ) |
Definition at line 1754 of file btSoftBodySolver_OpenCL.cpp.
|
inlinevirtual |
Definition at line 492 of file btSoftBodySolver_OpenCL.h.
|
virtual |
Reimplemented in btOpenCLSoftBodySolverSIMDAware.
Definition at line 899 of file btSoftBodySolver_OpenCL.cpp.
|
inlinevirtual |
Return the type of the solver.
Implements btSoftBodySolver.
Reimplemented in btOpenCLSoftBodySolverSIMDAware.
Definition at line 466 of file btSoftBodySolver_OpenCL.h.
|
virtual |
Definition at line 911 of file btSoftBodySolver_OpenCL.cpp.
|
virtual |
Definition at line 905 of file btSoftBodySolver_OpenCL.cpp.
|
protectedvirtual |
Integrate motion on the solver.
Definition at line 1093 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Definition at line 937 of file btSoftBodySolver_OpenCL.cpp.
|
virtual |
Optimize soft bodies in this solver.
Implements btSoftBodySolver.
Reimplemented in btOpenCLSoftBodySolverSIMDAware.
Definition at line 711 of file btSoftBodySolver_OpenCL.cpp.
|
virtual |
Predict motion of soft bodies into next timestep.
Implements btSoftBodySolver.
Definition at line 1638 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Sort the collision object details array and generate indexing into it for the per-cloth collision object array.
Definition at line 1188 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Definition at line 1308 of file btSoftBodySolver_OpenCL.cpp.
|
virtual |
Definition at line 1710 of file btSoftBodySolver_OpenCL.cpp.
|
virtual |
Process a collision between two soft bodies.
Implements btSoftBodySolver.
Definition at line 1704 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Definition at line 1008 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Definition at line 657 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Definition at line 917 of file btSoftBodySolver_OpenCL.cpp.
|
inline |
Definition at line 497 of file btSoftBodySolver_OpenCL.h.
|
inlinevirtual |
Definition at line 488 of file btSoftBodySolver_OpenCL.h.
|
protectedvirtual |
Reimplemented in btOpenCLSoftBodySolverSIMDAware.
Definition at line 1439 of file btSoftBodySolver_OpenCL.cpp.
|
virtual |
Solve constraints for a set of soft bodies.
Implements btSoftBodySolver.
Reimplemented in btOpenCLSoftBodySolverSIMDAware.
Definition at line 1234 of file btSoftBodySolver_OpenCL.cpp.
|
protectedvirtual |
Reimplemented in btOpenCLSoftBodySolverSIMDAware.
Definition at line 1347 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Definition at line 1370 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Definition at line 1133 of file btSoftBodySolver_OpenCL.cpp.
|
protectedvirtual |
Reimplemented in btOpenCLSoftBodySolverSIMDAware.
Definition at line 1144 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Definition at line 1024 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Definition at line 1328 of file btSoftBodySolver_OpenCL.cpp.
|
virtual |
Perform necessary per-step updates of soft bodies such as recomputing normals and bounding boxes.
Implements btSoftBodySolver.
Definition at line 978 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Definition at line 1415 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Definition at line 1391 of file btSoftBodySolver_OpenCL.cpp.
|
protected |
Definition at line 375 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 366 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 363 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 364 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 386 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 369 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 367 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 365 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 346 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 308 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 340 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 318 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 330 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 354 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 326 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 334 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 322 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 314 of file btSoftBodySolver_OpenCL.h.
|
protected |
Collision shapes being passed across to the cloths in this solver.
Definition at line 345 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 389 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 291 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 390 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 290 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 392 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 374 of file btSoftBodySolver_OpenCL.h.
btSoftBodyLinkDataOpenCL btOpenCLSoftBodySolver::m_linkData |
Definition at line 284 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 382 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 385 of file btSoftBodySolver_OpenCL.h.
|
protected |
Acceleration value to be applied to all non-static vertices in the solver.
Index n is cloth n, array sized by number of cloths in the world not the solver.
Definition at line 307 of file btSoftBodySolver_OpenCL.h.
|
protected |
Collision shape details: pair of index of first collision shape for the cloth and number of collision objects.
Definition at line 339 of file btSoftBodySolver_OpenCL.h.
|
protected |
Velocity damping factor.
Definition at line 317 of file btSoftBodySolver_OpenCL.h.
|
protected |
Drag parameter for wind effect on cloth.
Definition at line 329 of file btSoftBodySolver_OpenCL.h.
|
protected |
Friction coefficient for each cloth.
Definition at line 353 of file btSoftBodySolver_OpenCL.h.
|
protected |
Lift parameter for wind effect on cloth.
Definition at line 325 of file btSoftBodySolver_OpenCL.h.
|
protected |
Density of the medium in which each cloth sits.
Definition at line 333 of file btSoftBodySolver_OpenCL.h.
|
protected |
Velocity correction coefficient.
Definition at line 321 of file btSoftBodySolver_OpenCL.h.
|
protected |
Wind velocity to be applied normal to all non-static vertices in the solver.
Index n is cloth n, array sized by number of cloths in the world not the solver.
Definition at line 313 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 371 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 381 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 296 of file btSoftBodySolver_OpenCL.h.
|
protected |
Cloths owned by this solver.
Only our cloths are in this array.
Definition at line 302 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 380 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 372 of file btSoftBodySolver_OpenCL.h.
btSoftBodyTriangleDataOpenCL btOpenCLSoftBodySolver::m_triangleData |
Definition at line 286 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 373 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 387 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 376 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 383 of file btSoftBodySolver_OpenCL.h.
|
protected |
Variable to define whether we need to update solver constants on the next iteration.
Definition at line 294 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 377 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 378 of file btSoftBodySolver_OpenCL.h.
btSoftBodyVertexDataOpenCL btOpenCLSoftBodySolver::m_vertexData |
Definition at line 285 of file btSoftBodySolver_OpenCL.h.
|
protected |
Definition at line 379 of file btSoftBodySolver_OpenCL.h.