Merge pull request #1019 from erikogenvik/kinematic_controller_initialization

Kinematic controller initialization
This commit is contained in:
erwincoumans
2017-03-16 10:54:41 -07:00
committed by GitHub
5 changed files with 83 additions and 6 deletions

View File

@@ -138,8 +138,34 @@ IF(BUILD_CLSOCKET)
) )
ENDIF() ENDIF()
ADD_EXECUTABLE(App_RobotSimulator ${RobotSimulator_SRCS})
#some code to support OpenGL and Glew cross platform
IF (WIN32)
INCLUDE_DIRECTORIES(
${BULLET_PHYSICS_SOURCE_DIR}/btgui/OpenGLWindow/GlewWindows
)
ADD_DEFINITIONS(-DGLEW_STATIC)
LINK_LIBRARIES( ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} )
ELSE(WIN32)
IF(APPLE)
find_library(COCOA NAMES Cocoa)
MESSAGE(${COCOA})
link_libraries(${COCOA} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY})
ELSE(APPLE)
INCLUDE_DIRECTORIES(
${BULLET_PHYSICS_SOURCE_DIR}/btgui/OpenGLWindow/GlewWindows
)
ADD_DEFINITIONS("-DGLEW_INIT_OPENGL11_FUNCTIONS=1")
ADD_DEFINITIONS("-DGLEW_STATIC")
ADD_DEFINITIONS("-DGLEW_DYNAMIC_LOAD_ALL_GLX_FUNCTIONS=1")
LINK_LIBRARIES( pthread dl )
ENDIF(APPLE)
ENDIF(WIN32)
ADD_EXECUTABLE(App_RobotSimulator ${RobotSimulator_SRCS})
SET_TARGET_PROPERTIES(App_RobotSimulator PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(App_RobotSimulator PROPERTIES VERSION ${BULLET_VERSION})
SET_TARGET_PROPERTIES(App_RobotSimulator PROPERTIES DEBUG_POSTFIX "_d") SET_TARGET_PROPERTIES(App_RobotSimulator PROPERTIES DEBUG_POSTFIX "_d")
@@ -153,7 +179,6 @@ ENDIF(WIN32)
TARGET_LINK_LIBRARIES(App_RobotSimulator BulletExampleBrowserLib BulletFileLoader BulletWorldImporter BulletSoftBody BulletDynamics BulletCollision BulletInverseDynamicsUtils BulletInverseDynamics LinearMath OpenGLWindow gwen BussIK Bullet3Common) TARGET_LINK_LIBRARIES(App_RobotSimulator BulletExampleBrowserLib BulletFileLoader BulletWorldImporter BulletSoftBody BulletDynamics BulletCollision BulletInverseDynamicsUtils BulletInverseDynamics LinearMath OpenGLWindow gwen BussIK Bullet3Common)

View File

@@ -137,8 +137,6 @@ btKinematicCharacterController::btKinematicCharacterController (btPairCachingGho
m_ghostObject = ghostObject; m_ghostObject = ghostObject;
m_up.setValue(0.0f, 0.0f, 1.0f); m_up.setValue(0.0f, 0.0f, 1.0f);
m_jumpAxis.setValue(0.0f, 0.0f, 1.0f); m_jumpAxis.setValue(0.0f, 0.0f, 1.0f);
setUp(up);
setStepHeight(stepHeight);
m_addedMargin = 0.02; m_addedMargin = 0.02;
m_walkDirection.setValue(0.0,0.0,0.0); m_walkDirection.setValue(0.0,0.0,0.0);
m_AngVel.setValue(0.0, 0.0, 0.0); m_AngVel.setValue(0.0, 0.0, 0.0);
@@ -156,13 +154,16 @@ btKinematicCharacterController::btKinematicCharacterController (btPairCachingGho
m_wasOnGround = false; m_wasOnGround = false;
m_wasJumping = false; m_wasJumping = false;
m_interpolateUp = true; m_interpolateUp = true;
setMaxSlope(btRadians(45.0));
m_currentStepOffset = 0.0; m_currentStepOffset = 0.0;
m_maxPenetrationDepth = 0.2; m_maxPenetrationDepth = 0.2;
full_drop = false; full_drop = false;
bounce_fix = false; bounce_fix = false;
m_linearDamping = btScalar(0.0); m_linearDamping = btScalar(0.0);
m_angularDamping = btScalar(0.0); m_angularDamping = btScalar(0.0);
setUp(up);
setStepHeight(stepHeight);
setMaxSlope(btRadians(45.0));
} }
btKinematicCharacterController::~btKinematicCharacterController () btKinematicCharacterController::~btKinematicCharacterController ()

View File

@@ -0,0 +1,24 @@
SUBDIRS(pendulum )
INCLUDE_DIRECTORIES(
"${PROJECT_SOURCE_DIR}/src"
"${PROJECT_SOURCE_DIR}/test/gtest-1.7.0/include")
ADD_DEFINITIONS(-DUSE_GTEST)
ADD_DEFINITIONS(-D_VARIADIC_MAX=10)
LINK_LIBRARIES(BulletDynamics BulletCollision LinearMath gtest)
IF (NOT WIN32)
LINK_LIBRARIES(pthread)
ENDIF()
ADD_EXECUTABLE(Test_btKinematicCharacterController test_btKinematicCharacterController.cpp)
ADD_TEST(Test_btKinematicCharacterController_PASS Test_btKinematicCharacterController)
IF (INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES)
SET_TARGET_PROPERTIES(Test_btKinematicCharacterController PROPERTIES DEBUG_POSTFIX "_Debug")
SET_TARGET_PROPERTIES(Test_btKinematicCharacterController PROPERTIES MINSIZEREL_POSTFIX "_MinsizeRel")
SET_TARGET_PROPERTIES(Test_btKinematicCharacterController PROPERTIES RELWITHDEBINFO_POSTFIX "_RelWithDebugInfo")
ENDIF(INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES)

View File

@@ -0,0 +1,27 @@
#include <btBulletDynamicsCommon.h>
#include <BulletDynamics/Character/btKinematicCharacterController.h>
#include <gtest/gtest.h>
#include <BulletCollision/CollisionDispatch/btGhostObject.h>
GTEST_TEST(BulletDynamics, KinematicCharacterController) {
btPairCachingGhostObject* ghostObject = new btPairCachingGhostObject();
btBoxShape* convexShape = new btBoxShape(btVector3(1, 1, 1));
//For now only a simple test that it initializes correctly.
btKinematicCharacterController* tested = new btKinematicCharacterController(ghostObject, convexShape, 1);
EXPECT_TRUE(tested);
EXPECT_FLOAT_EQ(-9.8 * 3.0, tested->getGravity().x());
EXPECT_FLOAT_EQ(0, tested->getGravity().y());
EXPECT_FLOAT_EQ(0, tested->getGravity().z());
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

View File

@@ -3,5 +3,5 @@ IF(BUILD_BULLET3)
SUBDIRS( InverseDynamics SharedMemory ) SUBDIRS( InverseDynamics SharedMemory )
ENDIF(BUILD_BULLET3) ENDIF(BUILD_BULLET3)
SUBDIRS( gtest-1.7.0 collision RobotLogging BulletDynamics/pendulum ) SUBDIRS( gtest-1.7.0 collision RobotLogging BulletDynamics )