Merge pull request #1019 from erikogenvik/kinematic_controller_initialization
Kinematic controller initialization
This commit is contained in:
@@ -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)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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 ()
|
||||||
|
|||||||
24
test/BulletDynamics/CMakeLists.txt
Normal file
24
test/BulletDynamics/CMakeLists.txt
Normal 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)
|
||||||
27
test/BulletDynamics/test_btKinematicCharacterController.cpp
Normal file
27
test/BulletDynamics/test_btKinematicCharacterController.cpp
Normal 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();
|
||||||
|
}
|
||||||
@@ -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 )
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user