need to add streaming because memory is too small to store all lines initial test of PD control in physics server, need to switch to PD control for motor constraint, instead of using external forces.
57 lines
1.4 KiB
C++
57 lines
1.4 KiB
C++
#ifndef PHYSICS_SERVER_SHARED_MEMORY_H
|
|
#define PHYSICS_SERVER_SHARED_MEMORY_H
|
|
|
|
#include "LinearMath/btVector3.h"
|
|
|
|
struct SharedMemLines
|
|
{
|
|
btVector3 m_from;
|
|
btVector3 m_to;
|
|
btVector3 m_color;
|
|
};
|
|
|
|
|
|
class PhysicsServerSharedMemory
|
|
{
|
|
struct PhysicsServerInternalData* m_data;
|
|
|
|
protected:
|
|
|
|
void createJointMotors(class btMultiBody* body);
|
|
|
|
virtual void createEmptyDynamicsWorld();
|
|
virtual void deleteDynamicsWorld();
|
|
|
|
void releaseSharedMemory();
|
|
|
|
bool loadUrdf(const char* fileName, const class btVector3& pos, const class btQuaternion& orn,
|
|
bool useMultiBody, bool useFixedBase);
|
|
|
|
public:
|
|
PhysicsServerSharedMemory();
|
|
virtual ~PhysicsServerSharedMemory();
|
|
|
|
virtual void setSharedMemoryKey(int key);
|
|
|
|
//todo: implement option to allocated shared memory from client
|
|
virtual bool connectSharedMemory( struct GUIHelperInterface* guiHelper);
|
|
|
|
virtual void disconnectSharedMemory (bool deInitializeSharedMemory);
|
|
|
|
virtual void processClientCommands();
|
|
|
|
bool supportsJointMotor(class btMultiBody* body, int linkIndex);
|
|
|
|
//for physicsDebugDraw and renderScene are mainly for debugging purposes
|
|
//and for physics visualization. The idea is that physicsDebugDraw can also send wireframe
|
|
//to a physics client, over shared memory
|
|
void physicsDebugDraw(int debugDrawFlags);
|
|
void renderScene();
|
|
|
|
};
|
|
|
|
|
|
#endif //PHYSICS_SERVER_EXAMPLESHARED_MEMORY_H
|
|
|
|
|