diff --git a/Extras/BulletRobotics/CMakeLists.txt b/Extras/BulletRobotics/CMakeLists.txt index 0e1683360..ad37212a1 100644 --- a/Extras/BulletRobotics/CMakeLists.txt +++ b/Extras/BulletRobotics/CMakeLists.txt @@ -9,6 +9,7 @@ INCLUDE_DIRECTORIES( ) SET(BulletRobotics_SRCS + ../../examples/SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.cpp ../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.cpp ../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.h ../../examples/SharedMemory/b3RobotSimulatorClientAPI_NoGUI.cpp diff --git a/Extras/BulletRobotics/premake4.lua b/Extras/BulletRobotics/premake4.lua index b1e942ce5..deb4a869a 100644 --- a/Extras/BulletRobotics/premake4.lua +++ b/Extras/BulletRobotics/premake4.lua @@ -81,6 +81,7 @@ if not _OPTIONS["no-enet"] then files { + "../../examples/SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.cpp", "../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.cpp", "../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.h", "../../examples/SharedMemory/b3RobotSimulatorClientAPI_NoGUI.cpp", diff --git a/examples/ExampleBrowser/CMakeLists.txt b/examples/ExampleBrowser/CMakeLists.txt index 2677f2fe3..331bb1900 100644 --- a/examples/ExampleBrowser/CMakeLists.txt +++ b/examples/ExampleBrowser/CMakeLists.txt @@ -145,6 +145,8 @@ SET(BulletExampleBrowser_SRCS ../TinyRenderer/tgaimage.cpp ../TinyRenderer/our_gl.cpp ../TinyRenderer/TinyRenderer.cpp + ../SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.cpp + ../SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.h ../SharedMemory/plugins/pdControlPlugin/pdControlPlugin.cpp ../SharedMemory/plugins/pdControlPlugin/pdControlPlugin.h ../SharedMemory/plugins/tinyRendererPlugin/tinyRendererPlugin.cpp diff --git a/examples/ExampleBrowser/premake4.lua b/examples/ExampleBrowser/premake4.lua index 1e5eea67a..1ed5e0965 100644 --- a/examples/ExampleBrowser/premake4.lua +++ b/examples/ExampleBrowser/premake4.lua @@ -115,6 +115,7 @@ project "App_BulletExampleBrowser" "../SharedMemory/PhysicsServerCommandProcessor.cpp", "../SharedMemory/PhysicsServerCommandProcessor.h", "../SharedMemory/b3PluginManager.cpp", + "../SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.cpp", "../SharedMemory/plugins/tinyRendererPlugin/TinyRendererVisualShapeConverter.cpp", "../SharedMemory/plugins/tinyRendererPlugin/tinyRendererPlugin.cpp", "../SharedMemory/plugins/pdControlPlugin/pdControlPlugin.cpp", diff --git a/examples/SharedMemory/CMakeLists.txt b/examples/SharedMemory/CMakeLists.txt index 2d126396d..7bc68ab2b 100644 --- a/examples/SharedMemory/CMakeLists.txt +++ b/examples/SharedMemory/CMakeLists.txt @@ -1,5 +1,7 @@ SET(SharedMemory_SRCS + plugins/collisionFilterPlugin/collisionFilterPlugin.cpp + plugins/collisionFilterPlugin/collisionFilterPlugin.h plugins/pdControlPlugin/pdControlPlugin.cpp plugins/pdControlPlugin/pdControlPlugin.h b3RobotSimulatorClientAPI_NoDirect.cpp diff --git a/examples/SharedMemory/PhysicsServerCommandProcessor.cpp b/examples/SharedMemory/PhysicsServerCommandProcessor.cpp index e95d597fa..adaed8fbc 100644 --- a/examples/SharedMemory/PhysicsServerCommandProcessor.cpp +++ b/examples/SharedMemory/PhysicsServerCommandProcessor.cpp @@ -46,6 +46,10 @@ #include "BulletCollision/NarrowPhaseCollision/btRaycastCallback.h" #include "LinearMath/TaskScheduler/btThreadSupportInterface.h" +#ifndef SKIP_COLLISION_FILTER_PLUGIN +#include "plugins/collisionFilterPlugin/collisionFilterPlugin.h" +#endif + #ifndef SKIP_STATIC_PD_CONTROL_PLUGIN #include "plugins/pdControlPlugin/pdControlPlugin.h" #endif //SKIP_STATIC_PD_CONTROL_PLUGIN @@ -1625,6 +1629,8 @@ struct PhysicsServerCommandProcessorInternalData btScalar m_oldPickingDist; bool m_prevCanSleep; int m_pdControlPlugin; + int m_collisionFilterPlugin; + #ifdef B3_ENABLE_TINY_AUDIO b3SoundEngine m_soundEngine; #endif @@ -1662,6 +1668,7 @@ struct PhysicsServerCommandProcessorInternalData m_pickedConstraint(0), m_pickingMultiBodyPoint2Point(0), m_pdControlPlugin(-1), + m_collisionFilterPlugin(-1), m_threadPool(0) { @@ -1677,6 +1684,11 @@ struct PhysicsServerCommandProcessorInternalData } #endif //SKIP_STATIC_PD_CONTROL_PLUGIN +#ifndef SKIP_COLLISION_FILTER_PLUGIN + { + m_collisionFilterPlugin = m_pluginManager.registerStaticLinkedPlugin("collisionFilterPlugin", initPlugin_collisionFilterPlugin, exitPlugin_collisionFilterPlugin, executePluginCommand_collisionFilterPlugin, 0,0,0); + } +#endif #ifndef SKIP_STATIC_TINYRENDERER_PLUGIN int renderPluginId = m_pluginManager.registerStaticLinkedPlugin("tinyRendererPlugin", initPlugin_tinyRendererPlugin, exitPlugin_tinyRendererPlugin, executePluginCommand_tinyRendererPlugin,0,0,getRenderInterface_tinyRendererPlugin); diff --git a/examples/SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.cpp b/examples/SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.cpp index d61937271..6e962470f 100644 --- a/examples/SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.cpp +++ b/examples/SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.cpp @@ -8,22 +8,22 @@ #include "../b3PluginContext.h" #include -struct MyClass +struct CollisionFilterMyClass { int m_testData; - MyClass() + CollisionFilterMyClass() :m_testData(42) { } - virtual ~MyClass() + virtual ~CollisionFilterMyClass() { } }; -B3_SHARED_API int initPlugin_testPlugin(struct b3PluginContext* context) +B3_SHARED_API int initPlugin_collisionFilterPlugin(struct b3PluginContext* context) { - MyClass* obj = new MyClass(); + CollisionFilterMyClass* obj = new CollisionFilterMyClass(); context->m_userPointer = obj; printf("hi!\n"); @@ -31,21 +31,21 @@ B3_SHARED_API int initPlugin_testPlugin(struct b3PluginContext* context) } -B3_SHARED_API int preTickPluginCallback_testPlugin(struct b3PluginContext* context) +B3_SHARED_API int preTickPluginCallback_collisionFilterPlugin(struct b3PluginContext* context) { //apply pd control here, apply forces using the PD gains return 0; } -B3_SHARED_API int postTickPluginCallback_testPlugin(struct b3PluginContext* context) +B3_SHARED_API int postTickPluginCallback_collisionFilterPlugin(struct b3PluginContext* context) { - MyClass* obj = (MyClass* )context->m_userPointer; + CollisionFilterMyClass* obj = (CollisionFilterMyClass* )context->m_userPointer; obj->m_testData++; return 0; } -B3_SHARED_API int executePluginCommand_testPlugin(struct b3PluginContext* context, const struct b3PluginArguments* arguments) +B3_SHARED_API int executePluginCommand_collisionFilterPlugin(struct b3PluginContext* context, const struct b3PluginArguments* arguments) { //set the PD gains printf("text argument:%s\n",arguments->m_text); @@ -69,7 +69,7 @@ B3_SHARED_API int executePluginCommand_testPlugin(struct b3PluginContext* contex } printf("]\n"); - MyClass* obj = (MyClass*) context->m_userPointer; + CollisionFilterMyClass* obj = (CollisionFilterMyClass*) context->m_userPointer; b3SharedMemoryStatusHandle statusHandle; int statusType = -1; @@ -88,9 +88,9 @@ B3_SHARED_API int executePluginCommand_testPlugin(struct b3PluginContext* contex } -B3_SHARED_API void exitPlugin_testPlugin(struct b3PluginContext* context) +B3_SHARED_API void exitPlugin_collisionFilterPlugin(struct b3PluginContext* context) { - MyClass* obj = (MyClass*) context->m_userPointer; + CollisionFilterMyClass* obj = (CollisionFilterMyClass*) context->m_userPointer; delete obj; context->m_userPointer = 0; diff --git a/examples/SharedMemory/premake4.lua b/examples/SharedMemory/premake4.lua index be66e7e42..6330786cf 100644 --- a/examples/SharedMemory/premake4.lua +++ b/examples/SharedMemory/premake4.lua @@ -60,6 +60,7 @@ myfiles = "PhysicsServerCommandProcessor.h", "b3PluginManager.cpp", "b3PluginManager.h", + "plugins/collisionFilterPlugin/collisionFilterPlugin.cpp", "plugins/pdControlPlugin/pdControlPlugin.cpp", "plugins/pdControlPlugin/pdControlPlugin.h", "../OpenGLWindow/SimpleCamera.cpp", @@ -472,4 +473,3 @@ include "plugins/tinyRendererPlugin" include "plugins/pdControlPlugin" include "plugins/collisionFilterPlugin" - diff --git a/examples/SharedMemory/tcp/premake4.lua b/examples/SharedMemory/tcp/premake4.lua index a4879953d..ac96b300e 100644 --- a/examples/SharedMemory/tcp/premake4.lua +++ b/examples/SharedMemory/tcp/premake4.lua @@ -93,6 +93,7 @@ myfiles = "../PhysicsDirect.cpp", "../PhysicsClientC_API.cpp", "../PhysicsClient.cpp", + "../plugins/collisionFilterPlugin/collisionFilterPlugin.cpp", "../plugins/pdControlPlugin/pdControlPlugin.cpp", "../plugins/pdControlPlugin/pdControlPlugin.h", "../b3RobotSimulatorClientAPI_NoDirect.cpp", diff --git a/examples/SharedMemory/udp/premake4.lua b/examples/SharedMemory/udp/premake4.lua index f9b7f8c4b..f0d046c0d 100644 --- a/examples/SharedMemory/udp/premake4.lua +++ b/examples/SharedMemory/udp/premake4.lua @@ -77,6 +77,7 @@ language "C++" myfiles = { + "../plugins/collisionFilterPlugin/collisionFilterPlugin.cpp", "../plugins/pdControlPlugin/pdControlPlugin.cpp", "../plugins/pdControlPlugin/pdControlPlugin.h", "../b3RobotSimulatorClientAPI_NoDirect.cpp", diff --git a/examples/TwoJoint/CMakeLists.txt b/examples/TwoJoint/CMakeLists.txt index 966b5e2a6..a596ab404 100644 --- a/examples/TwoJoint/CMakeLists.txt +++ b/examples/TwoJoint/CMakeLists.txt @@ -10,6 +10,7 @@ INCLUDE_DIRECTORIES( SET(RobotSimulator_SRCS TwoJointMain.cpp + ../../examples/SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.cpp ../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.cpp ../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.h ../../examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp diff --git a/examples/Utils/ChromeTraceUtil.cpp b/examples/Utils/ChromeTraceUtil.cpp index fefa9171c..9027b4202 100644 --- a/examples/Utils/ChromeTraceUtil.cpp +++ b/examples/Utils/ChromeTraceUtil.cpp @@ -4,6 +4,7 @@ #include "LinearMath/btQuickprof.h" #include "LinearMath/btAlignedObjectArray.h" #include "Bullet3Common/b3Logging.h" +#include struct btTiming { @@ -155,13 +156,13 @@ struct btTimings int m_activeBuffer; btAlignedObjectArray m_timings[1]; }; -#ifndef BT_NO_PROFILE +//#ifndef BT_NO_PROFILE btTimings gTimings[BT_QUICKPROF_MAX_THREAD_COUNT]; #define MAX_NESTING 1024 int gStackDepths[BT_QUICKPROF_MAX_THREAD_COUNT] = { 0 }; const char* gFuncNames[BT_QUICKPROF_MAX_THREAD_COUNT][MAX_NESTING]; unsigned long long int gStartTimes[BT_QUICKPROF_MAX_THREAD_COUNT][MAX_NESTING]; -#endif +//#endif btClock clk; @@ -276,4 +277,4 @@ void b3ChromeUtilsStopTimingsAndWriteJsonFile(const char* fileNamePrefix) void b3ChromeUtilsEnableProfiling() { gProfileDisabled = false; -} \ No newline at end of file +} diff --git a/examples/pybullet/CMakeLists.txt b/examples/pybullet/CMakeLists.txt index d01ad1655..f3cacc5b3 100644 --- a/examples/pybullet/CMakeLists.txt +++ b/examples/pybullet/CMakeLists.txt @@ -15,6 +15,7 @@ ENDIF() SET(pybullet_SRCS pybullet.c + ../../examples/SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.cpp ../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.cpp ../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.h ../../examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp diff --git a/setup.py b/setup.py index cfb5f5b8e..cfea0b36b 100644 --- a/setup.py +++ b/setup.py @@ -50,6 +50,7 @@ sources = ["examples/pybullet/pybullet.c"]\ +["examples/TinyRenderer/our_gl.cpp"]\ +["examples/TinyRenderer/TinyRenderer.cpp"]\ +["examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.cpp"]\ ++["examples/SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.cpp"]\ +["examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp"]\ +["examples/SharedMemory/IKTrajectoryHelper.cpp"]\ +["examples/SharedMemory/InProcessMemory.cpp"]\ diff --git a/src/LinearMath/btQuickprof.h b/src/LinearMath/btQuickprof.h index 7b38d71b9..e3afc5a80 100644 --- a/src/LinearMath/btQuickprof.h +++ b/src/LinearMath/btQuickprof.h @@ -65,16 +65,19 @@ btLeaveProfileZoneFunc* btGetCurrentLeaveProfileZoneFunc(); void btSetCustomEnterProfileZoneFunc(btEnterProfileZoneFunc* enterFunc); void btSetCustomLeaveProfileZoneFunc(btLeaveProfileZoneFunc* leaveFunc); -#ifndef BT_NO_PROFILE // FIX redefinition +#ifndef BT_ENABLE_PROFILE //To disable built-in profiling, please comment out next line -//#define BT_NO_PROFILE 1 +#ifndef BT_NO_PROFILE +#define BT_NO_PROFILE 1 #endif //BT_NO_PROFILE +#endif //BT_ENABLE_PROFILE + +const unsigned int BT_QUICKPROF_MAX_THREAD_COUNT = 64; #ifndef BT_NO_PROFILE //btQuickprofGetCurrentThreadIndex will return -1 if thread index cannot be determined, //otherwise returns thread index in range [0..maxThreads] unsigned int btQuickprofGetCurrentThreadIndex2(); -const unsigned int BT_QUICKPROF_MAX_THREAD_COUNT = 64; #include //@todo remove this, backwards compatibility diff --git a/test/SharedMemory/CMakeLists.txt b/test/SharedMemory/CMakeLists.txt index 78746108b..5835d1991 100644 --- a/test/SharedMemory/CMakeLists.txt +++ b/test/SharedMemory/CMakeLists.txt @@ -29,6 +29,7 @@ ENDIF() ADD_EXECUTABLE(Test_PhysicsClientServer gtestwrap.cpp ../../examples/SharedMemory/PhysicsClient.cpp + ../../examples/SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.cpp ../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.cpp ../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.h ../../examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp diff --git a/test/SharedMemory/premake4.lua b/test/SharedMemory/premake4.lua index f51f77e04..01676802e 100644 --- a/test/SharedMemory/premake4.lua +++ b/test/SharedMemory/premake4.lua @@ -172,6 +172,7 @@ project ("Test_PhysicsServerLoopBack") "test.c", "../../examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp", "../../examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.h", + "../../examples/SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.cpp", "../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.cpp", "../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.h", "../../examples/SharedMemory/IKTrajectoryHelper.cpp", @@ -264,6 +265,7 @@ end "test.c", "../../examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp", "../../examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.h", + "../../examples/SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.cpp", "../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.cpp", "../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.h", "../../examples/SharedMemory/IKTrajectoryHelper.cpp", @@ -372,6 +374,7 @@ project ("Test_PhysicsServerInProcessExampleBrowser") "test.c", "../../examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp", "../../examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.h", + "../../examples/SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.cpp", "../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.cpp", "../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.h", "../../examples/SharedMemory/IKTrajectoryHelper.cpp",