fixed Soft Body compile issues on Mac OSX, added build files

This commit is contained in:
erwin.coumans
2008-04-14 07:44:54 +00:00
parent 9efc46681a
commit 7a7b46b448
5 changed files with 79 additions and 10 deletions

View File

@@ -0,0 +1,62 @@
# This is basically the overall name of the project in Visual Studio this is the name of the Solution File
# For every executable you have with a main method you should have an add_executable line below.
# For every add executable line you should list every .cpp and .h file you have associated with that executable.
# This is the variable for Windows. I use this to define the root of my directory structure.
SET(GLUT_ROOT ${BULLET_PHYSICS_SOURCE_DIR}/Glut)
# You shouldn't have to modify anything below this line
########################################################
# This is the shortcut to finding GLU, GLUT and OpenGL if they are properly installed on your system
# This should be the case.
INCLUDE (${CMAKE_ROOT}/Modules/FindGLU.cmake)
INCLUDE (${CMAKE_ROOT}/Modules/FindGLUT.cmake)
INCLUDE (${CMAKE_ROOT}/Modules/FindOpenGL.cmake)
IF (WIN32)
# This is the Windows code for which Opengl, and Glut are not properly installed
# since I can't install them I must cheat and copy libraries around
INCLUDE_DIRECTORIES(${GLUT_ROOT})
# LINK_DIRECTORIES(${GLUT_ROOT}\\lib)
IF (${GLUT_glut_LIBRARY} MATCHES "GLUT_glut_LIBRARY-NOTFOUND")
SET(GLUT_glut_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glut32.lib)
# LINK_LIBRARIES(${GLUT_ROOT}\\lib\\glut32 ${OPENGL_gl_LIBRARY} ${OPENGL_glU_LIBRARY})
# TARGET_LINK_LIBRARIES(table ${GLUT_ROOT}\\lib\\glut32)
#
# ADD_CUSTOM_COMMAND(TARGET table POST_BUILD COMMAND copy ${GLUT_ROOT}\\lib\\glut32.dll ${GLUT_ROOT}\\bin\\vs2005\\Debug
# COMMAND copy ${GLUT_ROOT}\\lib\\glut32.dll ${GLUT_ROOT}\\bin\\vs2003\\Debug
# COMMAND copy ${GLUT_ROOT}\\lib\\glut32.dll ${GLUT_ROOT}\\bin\\vs6\\Debug)
ELSE (${GLUT_glut_LIBRARY} MATCHES "GLUT_glut_LIBRARY-NOTFOUND")
# LINK_LIBRARIES(${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glU_LIBRARY})
# TARGET_LINK_LIBRARIES(table ${GLUT_glut_LIBRARY})
ENDIF(${GLUT_glut_LIBRARY} MATCHES "GLUT_glut_LIBRARY-NOTFOUND")
# TARGET_LINK_LIBRARIES(table ${OPENGL_gl_LIBRARY})
# TARGET_LINK_LIBRARIES(table ${OPENGL_glu_LIBRARY})
ELSE (WIN32)
# This is the lines for linux. This should always work if everything is installed and working fine.
# SET(CMAKE_BUILD_TYPE Debug)
# SET(CMAKE_CXX_FLAGS_DEBUG "-g")
INCLUDE_DIRECTORIES(/usr/include /usr/local/include ${GLUT_INCLUDE_DIR})
# TARGET_LINK_LIBRARIES(table ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glU_LIBRARY})
# TARGET_LINK_LIBRARIES(checker ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glU_LIBRARY})
ENDIF (WIN32)
INCLUDE_DIRECTORIES(
${BULLET_PHYSICS_SOURCE_DIR}/src ${BULLET_PHYSICS_SOURCE_DIR}/Demos/OpenGL }
)
LINK_LIBRARIES(
LibOpenGLSupport LibBulletDynamics LibBulletCollision LibLinearMath ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY}
)
ADD_EXECUTABLE(SliderConstraintDemo
SliderConstraintDemo.cpp
main.cpp
)

View File

@@ -0,0 +1,3 @@
SubDir TOP Demos SliderConstraintDemo ;
BulletDemo SliderConstraintDemo : [ Wildcard *.h *.cpp ] ;

View File

@@ -826,7 +826,7 @@ void SoftDemo::renderme()
m_cameraTargetPosition=btVector3(0,0,0); m_cameraTargetPosition=btVector3(0,0,0);
/* Anm */ /* Anm */
if(!isIdle()) if(!isIdle())
m_animtime=::GetTickCount()/1000.; m_animtime=m_clock.getTimeMilliseconds()/1000.f;
/* Ray cast */ /* Ray cast */
if(m_raycast) if(m_raycast)
{ {

View File

@@ -1,3 +1,4 @@
/* /*
Bullet Continuous Collision Detection and Physics Library Bullet Continuous Collision Detection and Physics Library
Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/

View File

@@ -470,15 +470,7 @@ static inline btScalar RayTriangle(const btVector3& org,
// Private implementation // Private implementation
// //
// struct RayCaster : public btDbvt::ICollide
static int RaycastInternal(const btSoftBody* psb,
const btVector3& org,
const btVector3& dir,
btScalar& mint,
int& face,
bool bcountonly)
{
struct RayCaster : btDbvt::ICollide
{ {
btVector3 o; btVector3 o;
btVector3 d; btVector3 d;
@@ -518,6 +510,16 @@ static int RaycastInternal(const btSoftBody* psb,
return((ctr-(nd*prj)).length2()<=sqr); return((ctr-(nd*prj)).length2()<=sqr);
} }
}; };
//
static int RaycastInternal(const btSoftBody* psb,
const btVector3& org,
const btVector3& dir,
btScalar& mint,
int& face,
bool bcountonly)
{
int cnt=0; int cnt=0;
if(bcountonly||psb->m_fdbvt.empty()) if(bcountonly||psb->m_fdbvt.empty())
{/* Full search */ {/* Full search */
@@ -1515,6 +1517,7 @@ bool btSoftBody::rayCast(const btVector3& org,
results.time, results.time,
results.face,false)!=0); results.face,false)!=0);
} }
return(false); return(false);
} }