From a164245915ae2541e9566a7e052d1d092541b7ed Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Tue, 27 Jan 2015 13:52:10 -0800 Subject: [PATCH 1/2] link against pthreads using cmake when building under Linux, shared libs (linking against pthreads is just a workaround for buggy NVidia drivers that require it) --- btgui/OpenGLWindow/CMakeLists.txt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/btgui/OpenGLWindow/CMakeLists.txt b/btgui/OpenGLWindow/CMakeLists.txt index 5d4460818..f552958bb 100644 --- a/btgui/OpenGLWindow/CMakeLists.txt +++ b/btgui/OpenGLWindow/CMakeLists.txt @@ -53,6 +53,13 @@ endif () if (BUILD_SHARED_LIBS) target_link_libraries(OpenGLWindow Bullet3Common) + if (WIN32 OR APPLE) + target_link_libraries(OpenGLWindow ${OPENGL_gl_LIBRARY}) + else() + set (CMAKE_THREAD_PREFER_PTHREAD TRUE) + FIND_PACKAGE(Threads) + target_link_libraries(OpenGLWindow ${CMAKE_THREAD_LIBS_INIT}) + endif() endif() -target_link_libraries(OpenGLWindow ${OPENGL_gl_LIBRARY}) +#target_link_libraries(OpenGLWindow ${OPENGL_gl_LIBRARY}) From c7671779c238d9761c9d14de25898d60f44ff3fa Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Wed, 4 Feb 2015 10:47:13 -0800 Subject: [PATCH 2/2] add method to add triangle by its indices for btTriangleMesh See also https://github.com/bulletphysics/bullet3/pull/315 thanks to quiasmo for the contribution --- src/BulletCollision/CollisionShapes/btTriangleMesh.cpp | 7 +++++++ src/BulletCollision/CollisionShapes/btTriangleMesh.h | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp b/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp index 5fbed334e..e4de73209 100644 --- a/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp +++ b/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp @@ -75,6 +75,13 @@ void btTriangleMesh::addIndex(int index) } } +void btTriangleMesh::addTriangleIndices(int index1, int index2, int index3 ) +{ + m_indexedMeshes[0].m_numTriangles++; + addIndex( index1 ); + addIndex( index2 ); + addIndex( index3 ); +} int btTriangleMesh::findOrAddVertex(const btVector3& vertex, bool removeDuplicateVertices) { diff --git a/src/BulletCollision/CollisionShapes/btTriangleMesh.h b/src/BulletCollision/CollisionShapes/btTriangleMesh.h index 0afc2321f..ac4afa7f6 100644 --- a/src/BulletCollision/CollisionShapes/btTriangleMesh.h +++ b/src/BulletCollision/CollisionShapes/btTriangleMesh.h @@ -52,7 +52,10 @@ class btTriangleMesh : public btTriangleIndexVertexArray ///By default addTriangle won't search for duplicate vertices, because the search is very slow for large triangle meshes. ///In general it is better to directly use btTriangleIndexVertexArray instead. void addTriangle(const btVector3& vertex0,const btVector3& vertex1,const btVector3& vertex2, bool removeDuplicateVertices=false); - + + ///Add a triangle using its indices. Make sure the indices are pointing within the vertices array, so add the vertices first (and to be sure, avoid removal of duplicate vertices) + void addTriangleIndices(int index1, int index2, int index3 ); + int getNumTriangles() const; virtual void preallocateVertices(int numverts);