Add inverse dynamics / mass matrix code from DeepMimic, thanks to Xue Bin (Jason) Peng Add example how to use stable PD control for humanoid with spherical joints (see humanoidMotionCapture.py) Fix related to TinyRenderer object transforms not updating when using collision filtering
48 lines
2.9 KiB
C++
48 lines
2.9 KiB
C++
#ifndef PHYSX_SERVER_COMMAND_PROCESSOR_H
|
|
#define PHYSX_SERVER_COMMAND_PROCESSOR_H
|
|
|
|
#include "../PhysicsCommandProcessorInterface.h"
|
|
|
|
class PhysXServerCommandProcessor : public PhysicsCommandProcessorInterface
|
|
{
|
|
struct PhysXServerCommandProcessorInternalData* m_data;
|
|
|
|
bool processSyncBodyInfoCommand(const struct SharedMemoryCommand& clientCmd, struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes);
|
|
bool processRequestInternalDataCommand(const struct SharedMemoryCommand& clientCmd, struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes);
|
|
bool processSyncUserDataCommand(const struct SharedMemoryCommand& clientCmd, struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes);
|
|
bool processLoadURDFCommand(const struct SharedMemoryCommand& clientCmd, struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes);
|
|
bool processRequestBodyInfoCommand(const struct SharedMemoryCommand& clientCmd, struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes);
|
|
bool processForwardDynamicsCommand(const struct SharedMemoryCommand& clientCmd, struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes);
|
|
bool processSendPhysicsParametersCommand(const struct SharedMemoryCommand& clientCmd, struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes);
|
|
bool processRequestActualStateCommand(const struct SharedMemoryCommand& clientCmd, struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes);
|
|
bool processResetSimulationCommand(const struct SharedMemoryCommand& clientCmd, struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes);
|
|
|
|
bool processCustomCommand(const struct SharedMemoryCommand& clientCmd, struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes);
|
|
|
|
void resetSimulation();
|
|
bool processStateLoggingCommand(const struct SharedMemoryCommand& clientCmd, struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes);
|
|
public:
|
|
PhysXServerCommandProcessor();
|
|
|
|
virtual ~PhysXServerCommandProcessor();
|
|
|
|
virtual bool connect();
|
|
|
|
virtual void disconnect();
|
|
|
|
virtual bool isConnected() const;
|
|
|
|
virtual bool processCommand(const struct SharedMemoryCommand& clientCmd, struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes);
|
|
|
|
virtual bool receiveStatus(struct SharedMemoryStatus& serverStatusOut, char* bufferServerToClient, int bufferSizeInBytes);
|
|
|
|
virtual void renderScene(int renderFlags) {}
|
|
virtual void physicsDebugDraw(int debugDrawFlags) {}
|
|
virtual void setGuiHelper(struct GUIHelperInterface* guiHelper) {}
|
|
virtual void setTimeOut(double timeOutInSeconds) {}
|
|
|
|
virtual void reportNotifications() {}
|
|
};
|
|
|
|
#endif //PHYSX_SERVER_COMMAND_PROCESSOR_H
|