Commit Graph

166 Commits

Author SHA1 Message Date
erwincoumans
de763a26e7 fix portability of BulletInverseDynamics (usual issues: std::pow, M_PI, std::vector->idArray<T>::type, snprintf, pass vec3 and mat33 by const reference, not by value) 2015-11-17 21:51:02 -08:00
Erwin Coumans
aa4d119f98 add real-time safe Inverse Dynamics library+test+utils
an example for the example browser will follow.
thanks to Thomas Buschmann
2015-11-17 08:27:38 -08:00
Erwin Coumans
2317307a22 Add b3GetStatusActualState() to C_API.
Change pick-and-move C_API to use handlers
2015-11-04 16:08:28 -08:00
Erwin Coumans
8a956318e5 fix case sensitive issue 2015-10-28 16:02:55 -07:00
erwin coumans
2d5d89d999 Allow to request the state of a rigid body (position, orientation, lin/ang velocity) through shared memory API
PhysicsClientC_API: b3RequestActualStateCommandInit requires a body unique Id as second argument
2015-10-27 15:46:13 -07:00
erwincoumans
57f50f1778 Create a PhysicsLoopBack that includes both PhysicsClient and PhysicsServer over shared memory.
Add a test for PhysicsLoopBack.
2015-10-26 17:56:21 -07:00
erwin coumans
4a29986662 initial support for multiple robots in shared memory API 2015-10-13 11:32:25 -07:00
=
5e4badc099 make PhysicsClient an interface class, and move shared memory implementation
of physics client into PhysicsClientSharedMemory class/file.
This will allow implementation of UDP and other transport protocols to a physics server.
2015-09-24 22:50:34 -07:00
=
066ff5f2e9 fix c error 2015-09-17 13:42:02 -07:00
=
23bdd0ed36 more work on physics client c-api over shared memory 2015-09-17 09:37:44 -07:00
=
003a42478b another step closer to useable shared memory C API
(force/torque sensor needs new API)
in a nutshell, users of shared memory physics API should not
directly poke into shared memory, not fill 'SharedMemorCommand'
nor read SharedMemoryStatus directly. The C-API declares 'handles' for those,
to avoid it from happening.
2015-09-16 23:09:10 -07:00
erwin coumans
40d07139a9 fix build 2015-09-04 10:28:32 -07:00
erwin coumans
f75df90d82 Allow batches of debug lines. The PhysicsClientExample rendering is still slow (one line at a time, instead of batches)
Prepare for IMU sensor in Shared Memory Server
2015-09-03 14:18:22 -07:00
Erwin Coumans (Google)
3d130d9d66 reset simulation in test/SharedMemory/test for proper cleanup,
and it can restart without shutting down/restarting physics server
w
2015-08-27 17:51:31 -07:00
erwincoumans
49a89ab0e7 fix SharedMemory/test.c compile errors 2015-08-02 19:10:42 -07:00
=
eb6663ed4b further work on shared memory API
fix dependency of BulletDynamics to Bullet3Common (b3Printf)
2015-08-02 14:00:43 -07:00
erwincoumans
19c5be5646 small progress towards shared memory C-api and test.c. 2015-07-30 23:22:44 -07:00
Erwin Coumans
812c67e221 fix various warnings, more work on shared memory API 2015-07-22 18:06:05 -07:00
erwincoumans
6c9ce344ea fix shadowmap crash on some Intel GPUs, see https://github.com/bulletphysics/bullet3/issues/4
remove targetdir from all libraries in premake, so it is much easier to create a separate folder for all binary+lib
transmit the serialized btMultiBody data back from server to client, after the server loads a URDF file. This includes base+link+joint names
tweak the serialization routines, so it is easier to skip pointers and to serialize directly to a shared memory buffer
also tweak the serialization code to allow to process data without 'DNA' schema data (assuming file-DNA = memory DNA)
2015-07-10 22:20:06 -07:00
Erwin Coumans
074b869a9f enable premake4 option --ios and Test_LinearMath
usage: ./premake4_osx --ios xcode4
open xcode4ios/0_Bullet3Solution.xcworkspace
2015-05-12 09:17:27 -07:00
Erwin Coumans
0da584a42d allow to compile and run the ExampleBrowser on older Mac OSX versions (without OpenGL3)
using the 'NO_OPENGL3' preprocessor definition
both premake/cmake has support for this now
needs some testing
2015-05-06 10:35:14 -07:00
=
7eec0dc57d add enet for some client/server tests 2015-05-05 12:51:38 -07:00
Erwin Coumans (Google)
dd6ec0bcfd fix Linux build 2015-04-28 20:56:18 -07:00
Erwin Coumans
df86a69a71 fix Mac OSX build, minor addition in example descriptions 2015-04-27 20:58:01 -07:00
erwin coumans
27227e5e4a add SoftDemo examples
add example description for all examples (with word-wrap)
add the VoronoiFractureDemo, note that the collision are disabled after breaking constraints.
add optional GwenOpenGLTest, to make it easier to see Gwen user interface features.
2015-04-27 18:35:07 -07:00
Erwin Coumans
889cbdc0ef fixes in Mac modifier keys, remove enet/lua tests 2015-04-16 17:35:34 -07:00
erwincoumans
794c8ec064 add BspDemo.bsp data file
add sphere2.urdf
move btSpatialAlgebra into LinearMath
remove some warnings, introduce BT_ZERO, BT_ONE, BT_HALF as defines for 0.f/0., 1.f/1., 0.5f/0.5 respectively
2015-04-16 10:17:35 -07:00
erwincoumans
b36936a4ab Update Test_v3interp.cpp
add test case for https://github.com/bulletphysics/bullet3/pull/313
2015-02-10 18:12:55 -08:00
Erwin Coumans
c64377b76c fix linux build of test/collision 2014-11-03 20:19:13 -08:00
Erwin Coumans
b1863f7ce2 Refactored GJK, EPA and MPR as a template class, reducing/removing the dependencies
to the rest of the Bullet code base. This code will replace the original GJK/EPA
in a future commit.

Added btMprPenetration, an implementation of Minkowski Portal Refinement
by Daniel Fiser. Original MPR idea is by Gary Snethen, and the first
implementation is here: https://github.com/erwincoumans/xenocollide
It is an alternative to EPA, although computing the local penetration depth.
EPA computes the global penetration depth. In many cases, MPR is sufficient
and performs better than EPA.
2014-11-02 12:53:36 -08:00
Erwin Coumans
07e2dcc749 minor cleanup of btgui/demo3 stuff, much more demo cleanup is needed
moved some files in btgui/Bullet3AppSupport
2014-09-16 12:08:24 -07:00
Erwin Coumans
4af9c5a4c9 remove some warnings 2014-08-21 13:32:32 -07:00
erwin coumans
670576ec72 remove #include <stdbool.h> it breaks MSVC 2010
enable gtest by default when using premake, added flag without-gtest
use gtest ASSERT_EQ( expected_value, actual_value) instead of the reverse,
this fixes issue 205 (https://github.com/bulletphysics/bullet3/issues/205)
2014-08-12 12:18:32 -07:00
erwincoumans
6c01c83986 Merge pull request #170 from erwincoumans/master
sync repos
2014-05-07 09:00:24 -07:00
erwin coumans
2cf7806c87 add the 'extras' and Bullet 2 tests, to make it easier to create a new intermediate release 2014-05-07 08:54:08 -07:00
Erwin Coumans
4996a64238 fix CMake build on Mac OSX 2014-04-28 11:11:45 -07:00
erwincoumans
a50dfe8e19 add CMake support to build gtest 2014-04-08 09:04:32 -07:00
erwincoumans
122ceacb6d move OpenCL initialization for the unit tests in a shared header file, and support some basic command-line arguments
--cl_device=1 --cl_platform=1 --allow_opencl_cpu
add chaindemo, test for mass ratios
restore sleeping/activation mode in featherstone demo
Use _VARIADIC_MAX=10 to avoid Google Test issues with Visual Studio 2012, thanks to Mobeen for the report
Enable verbose printf for unit tests
2014-02-11 10:33:00 -08:00
erwincoumans
d65cd8060a add Lua and basic Lua->C/C++ integration test, in preparation for Bullet demos setup using Lua scripts. 2014-02-05 19:39:48 -08:00
Erwin Coumans
94db38358c add zlib/minizip so we can load compressed data (github/git is bad in handling large binary files) 2014-02-04 13:39:55 -08:00
Erwin Coumans
ac32af2b1c fix linux build (case sensitive folder Test -> test etc) 2014-01-31 22:40:42 -08:00
erwin coumans
50c61b0d11 just show maximum memory in OpenCL initialization/memory allocation test 2014-01-30 11:22:08 -08:00
erwin coumans
ec39c2f210 Removed to bitonic sort and ios, they were not used and confuse Bram :)
http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?t=9570
2013-11-25 21:38:44 -08:00
erwin coumans
26dfaa441e add some command-line options
--use_jacobi
--allow_opencl_cpu

b3LauncherCL constructor takes string, to make it easier to determine failing OpenCL kernel
b3SetCustomErrorMessageFunc, printf error and exit(0)
2013-11-19 13:42:53 -08:00
erwincoumans
677722bba3 support compound versus compound collision shape acceleration on GPU, using aabb tree versus aabb tree.
Remove constructor from b3Vector3,  to make it a POD type, so it can go into a union (and more compatible with OpenCL float4)
Use b3MakeVector3 instead of constructor
Share some code between C++ and GPU in a shared file: see b3TransformAabb2 in src/Bullet3Collision/BroadPhaseCollision/shared/b3Aabb.h
Improve PairBench a bit, show timings and #overlapping pairs.
Increase shadowmap default size to 8192x8192 (hope the GPU supports it)
2013-08-20 03:19:59 -07:00
erwin coumans
b32ae0c75c move some files to shared folders
use b3Aabb for compound vs compound on host (for testing, towards BVH)
2013-08-14 17:48:12 -07:00
erwincoumans
3bf003ace1 change lcpp Lua preprocessor, to keep #defines and comments, remove empty lines
remove duplicate data in b3Contact4 (now in btContact4Data shared between CPU/C++ and OpenCL)
OpenCL kernels use #include "Bullet3Collision/NarrowPhaseCollision/shared/b3Contact4Data.h"
Increase number of batches back to 250 (from 50), need to fix this hard coded number (see https://github.com/erwincoumans/bullet3/issues/12)
Work towards GJK/EPA, in addition to SAT/clipping (early on)
2013-08-08 12:24:09 -07:00
erwin coumans
a69ba48de4 Move b3Quickprof.* from Bullet 3.x src folder to btgui/Timing
The Bullet 3.x B3_PROFILE can be customized using b3SetCustomEnterProfileZoneFunc/b3SetCustomLeaveProfileZoneFunc defined in Bullet3Common/b3Logging,
so you can hook Bullet 3.x up to your profiler of choice.
The Demos3/BasicGpuDemo will show the Bullet 3.x timings inside the Bullet 2.x btQuickprof profiler.
2013-06-19 22:08:03 -07:00
erwincoumans
a81d847c24 Linux fixes 2013-06-17 22:45:59 -07:00
erwincoumans
227d88f553 fix Linux build 2013-06-17 21:57:04 -07:00
erwin coumans
f73d11d896 tweak default values of b3Config.h so some laptop GPUs can run 128k scenes
return the result of resize
use size_t instead of int for btOpenCLArray
BasicInitialize demo will test how much memory can be allocated, using the btOpenCLArray
2013-06-14 12:10:16 -07:00
erwincoumans
74bdccc2cf fix Linux build (tested on Ubuntu 12.10, 32bit) 2013-06-05 08:51:13 -07:00
Erwin Coumans
4dd529513f fix Mac OSX build 2013-06-04 09:09:10 -07:00
erwin coumans
76b0d7697a Added b3Printf, b3Warning and b3Error that can be re-routed to custom handlers.
See in src/Bullet3Common/b3Logging.h for details
2013-06-03 13:10:27 -07:00
erwin coumans
70b4ead641 remove some warnings 2013-06-03 10:16:50 -07:00
Erwin Coumans
084bc4ec32 improve the benchmark mode, with 2 files (csv and details) 2013-05-23 18:34:39 -07:00
erwincoumans
29e70b2802 Add option to use clew to manually open the OpenCL dynamic library
fix Linux build of App_Bullet3_OpenCL_Demos. Unfortunately the simulation doesn't work properly, need to fix it
(and add unit tests)
2013-05-20 17:58:19 -07:00
erwin coumans
818a78efe3 enet NAT punchthrough test improvement, seems to work fine for my test setup 2013-05-04 21:28:51 -07:00
erwin coumans
c0a1ad8fcd add enet test for remote visual debugger 2013-05-04 19:50:56 -07:00
erwin coumans
3438d1c8f6 compute actual local workgroup size, instead of a hard-coded value 2013-05-01 10:04:56 -07:00
erwincoumans
bf7a779562 fix crash in Test_BitonicSort 2013-04-30 12:40:55 -07:00
Erwin Coumans
86a3cb5d2e only use GPU devices for Bitonic Sort (require workgroup sizes > 1, and most CPU devices only provide 1) 2013-04-30 12:18:46 -07:00
erwincoumans
92f0938af3 add bitonic sort, as comparison.
fix stringify.bat for Windows (need to fix Mac/Linux version too)
2013-04-30 11:40:09 -07:00
erwincoumans
3ac332f3a7 reorder files, in preparation for Bullet 3 -> Bullet 2 merge 2013-04-29 19:04:08 -07:00
erwincoumans
55b69201a9 rename to b3 convention, to avoid naming conflicts when using in combination with Bullet 2.x 2013-04-29 15:19:36 -07:00
erwin coumans
dc1984713a add option for btDbvtBroadphase (comparison) 2013-04-20 23:59:00 -07:00