summaryrefslogtreecommitdiff
path: root/examples/SharedMemory/PhysicsClientC_API.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/SharedMemory/PhysicsClientC_API.cpp')
-rw-r--r--examples/SharedMemory/PhysicsClientC_API.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/examples/SharedMemory/PhysicsClientC_API.cpp b/examples/SharedMemory/PhysicsClientC_API.cpp
index ae6015da4..71bdd5c54 100644
--- a/examples/SharedMemory/PhysicsClientC_API.cpp
+++ b/examples/SharedMemory/PhysicsClientC_API.cpp
@@ -1525,6 +1525,24 @@ B3_SHARED_API b3SharedMemoryCommandHandle b3GetMeshDataCommandInit(b3PhysicsClie
return 0;
}
+B3_SHARED_API b3SharedMemoryCommandHandle b3GetTetraMeshDataCommandInit(b3PhysicsClientHandle physClient, int bodyUniqueId)
+{
+ PhysicsClient* cl = (PhysicsClient*)physClient;
+ b3Assert(cl);
+ b3Assert(cl->canSubmitCommand());
+ if (cl)
+ {
+ struct SharedMemoryCommand* command = cl->getAvailableSharedMemoryCommand();
+ b3Assert(command);
+ command->m_type = CMD_REQUEST_TETRA_MESH_DATA;
+ command->m_updateFlags = 0;
+ command->m_resetTetraMeshDataArgs.m_startingVertex = 0;
+ command->m_resetTetraMeshDataArgs.m_bodyUniqueId = bodyUniqueId;
+ return (b3SharedMemoryCommandHandle)command;
+ }
+ return 0;
+}
+
B3_SHARED_API void b3GetMeshDataSetCollisionShapeIndex(b3SharedMemoryCommandHandle commandHandle, int shapeIndex)
{
struct SharedMemoryCommand* command = (struct SharedMemoryCommand*) commandHandle;
@@ -1549,6 +1567,18 @@ B3_SHARED_API void b3GetMeshDataSetFlags(b3SharedMemoryCommandHandle commandHand
}
}
+B3_SHARED_API void b3GetTetraMeshDataSetFlags(b3SharedMemoryCommandHandle commandHandle, int flags)
+{
+ struct SharedMemoryCommand* command = (struct SharedMemoryCommand*)commandHandle;
+ b3Assert(command);
+ b3Assert(command->m_type == CMD_REQUEST_TETRA_MESH_DATA);
+ if (command->m_type == CMD_REQUEST_TETRA_MESH_DATA)
+ {
+ command->m_updateFlags = B3_TETRA_MESH_DATA_FLAGS;
+ command->m_requestMeshDataArgs.m_flags = flags;
+ }
+}
+
B3_SHARED_API void b3GetMeshDataSimulationMesh(b3SharedMemoryCommandHandle commandHandle)
{
struct SharedMemoryCommand* command = (struct SharedMemoryCommand*)commandHandle;
@@ -1574,6 +1604,15 @@ B3_SHARED_API void b3GetMeshData(b3PhysicsClientHandle physClient, struct b3Mesh
}
}
+B3_SHARED_API void b3GetTetraMeshData(b3PhysicsClientHandle physClient, struct b3TetraMeshData* meshData)
+{
+ PhysicsClient* cl = (PhysicsClient*)physClient;
+ if (cl)
+ {
+ cl->getCachedTetraMeshData(meshData);
+ }
+}
+
B3_SHARED_API int b3CreateVisualShapeAddSphere(b3SharedMemoryCommandHandle commandHandle, double radius)
{
return b3CreateCollisionShapeAddSphere(commandHandle, radius);