PhysicsClient.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef BT_PHYSICS_CLIENT_API_H
  2. #define BT_PHYSICS_CLIENT_API_H
  3. //#include "SharedMemoryCommands.h"
  4. #include "LinearMath/btVector3.h"
  5. class PhysicsClient {
  6. public:
  7. virtual ~PhysicsClient();
  8. // return true if connection succesfull, can also check 'isConnected'
  9. virtual bool connect() = 0;
  10. virtual void disconnectSharedMemory() = 0;
  11. virtual bool isConnected() const = 0;
  12. // return non-null if there is a status, nullptr otherwise
  13. virtual const struct SharedMemoryStatus* processServerStatus() = 0;
  14. virtual struct SharedMemoryCommand* getAvailableSharedMemoryCommand() = 0;
  15. virtual bool canSubmitCommand() const = 0;
  16. virtual bool submitClientCommand(const struct SharedMemoryCommand& command) = 0;
  17. virtual int getNumBodies() const = 0;
  18. virtual int getBodyUniqueId(int serialIndex) const = 0;
  19. virtual bool getBodyInfo(int bodyUniqueId, struct b3BodyInfo& info) const = 0;
  20. virtual int getNumJoints(int bodyUniqueId) const = 0;
  21. virtual bool getJointInfo(int bodyUniqueId, int jointIndex, struct b3JointInfo& info) const = 0;
  22. virtual void setSharedMemoryKey(int key) = 0;
  23. virtual void uploadBulletFileToSharedMemory(const char* data, int len) = 0;
  24. virtual int getNumDebugLines() const = 0;
  25. virtual const float* getDebugLinesFrom() const = 0;
  26. virtual const float* getDebugLinesTo() const = 0;
  27. virtual const float* getDebugLinesColor() const = 0;
  28. virtual void getCachedCameraImage(struct b3CameraImageData* cameraData)=0;
  29. virtual void getCachedContactPointInformation(struct b3ContactInformation* contactPointData)=0;
  30. };
  31. #endif // BT_PHYSICS_CLIENT_API_H