mirror of
https://github.com/bulletphysics/bullet3
synced 2024-12-14 13:50:04 +00:00
9553892770
Implement collisionFilterPlugin, use setCollisionFilterPair to enable or disable collision detection between specific pairs of objects. Also, expose setCollisionFilterGroupMask as PyBullet API and in urdf using the tag <collision group="1" mask="2"/>. See examples/pybullet/examples/collisionFilter.py for an example. PyBullet default: Lower the warmstarting factor, for maximal coordinates rigid bodies for more stable simulation. Add btCollisionWorld::refreshBroadphaseProxy to easier recreate the broadphase proxy without adding/removing objects to the world.
43 lines
1.5 KiB
C++
43 lines
1.5 KiB
C++
#ifndef B3_PLUGIN_MANAGER_H
|
|
#define B3_PLUGIN_MANAGER_H
|
|
|
|
#include "plugins/b3PluginAPI.h"
|
|
|
|
enum b3PluginManagerTickMode
|
|
{
|
|
B3_PRE_TICK_MODE=1,
|
|
B3_POST_TICK_MODE,
|
|
B3_PROCESS_CLIENT_COMMANDS_TICK,
|
|
};
|
|
|
|
class b3PluginManager
|
|
{
|
|
struct b3PluginManagerInternalData* m_data;
|
|
|
|
public:
|
|
|
|
b3PluginManager(class PhysicsCommandProcessorInterface* physSdk);
|
|
virtual ~b3PluginManager();
|
|
|
|
int loadPlugin(const char* pluginPath, const char* postFixStr ="");
|
|
void unloadPlugin(int pluginUniqueId);
|
|
int executePluginCommand(int pluginUniqueId, const struct b3PluginArguments* arguments);
|
|
void addEvents(const struct b3VRControllerEvent* vrControllerEvents, int numVRControllerEvents, const struct b3KeyboardEvent* keyEvents, int numKeyEvents, const struct b3MouseEvent* mouseEvents, int numMouseEvents);
|
|
void clearEvents();
|
|
|
|
void addNotification(const struct b3Notification& notification);
|
|
void reportNotifications();
|
|
|
|
void tickPlugins(double timeStep, b3PluginManagerTickMode tickMode);
|
|
|
|
int registerStaticLinkedPlugin(const char* pluginPath, PFN_INIT initFunc, PFN_EXIT exitFunc, PFN_EXECUTE executeCommandFunc, PFN_TICK preTickFunc, PFN_TICK postTickFunc, PFN_GET_RENDER_INTERFACE getRendererFunc, PFN_TICK processClientCommandsFunc, PFN_GET_COLLISION_INTERFACE getCollisionFunc, bool initPlugin=true);
|
|
|
|
void selectPluginRenderer(int pluginUniqueId);
|
|
struct UrdfRenderingInterface* getRenderInterface();
|
|
|
|
void selectCollisionPlugin(int pluginUniqueId);
|
|
struct b3PluginCollisionInterface* getCollisionInterface();
|
|
};
|
|
|
|
#endif //B3_PLUGIN_MANAGER_H
|