[Plib-cvs] plib/examples/src/ssg/dynamics dynamics.cxx,1.3,1.4
Brought to you by:
sjbaker
From: Steve B. <sj...@us...> - 2002-08-11 19:52:11
|
Update of /cvsroot/plib/plib/examples/src/ssg/dynamics In directory usw-pr-cvs1:/tmp/cvs-serv1434/plib/examples/src/ssg/dynamics Modified Files: dynamics.cxx Log Message: Added collisions to dynamics demo. Index: dynamics.cxx =================================================================== RCS file: /cvsroot/plib/plib/examples/src/ssg/dynamics/dynamics.cxx,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- dynamics.cxx 11 Aug 2002 18:34:54 -0000 1.3 +++ dynamics.cxx 11 Aug 2002 19:52:07 -0000 1.4 @@ -15,6 +15,8 @@ #define GUI_BASE 80 #define VIEW_GUI_BASE 20 #define FONT_COLOUR 1,1,1,1 +#define DEEPEST_HELL -10000.0 +#define HOT_TOLERANCE 1.0 ssgRoot *scene = NULL ; ssgaWaveSystem *ocean = NULL ; @@ -33,11 +35,11 @@ { particle [ 0 ] -> setPos ( 2.0f, -4.0f, 0.0f ) ; [...94 lines suppressed...] + particle [ i ] -> update ( dt ) ; - if ( particle [ i ] -> getVel ()[2] < 0.0f ) - particle [ i ] -> getVel ()[2] = 0.0f ; + sgVec3 normal ; - if ( particle [ i ] -> getForce ()[2] < 0.0f ) - particle [ i ] -> getForce ()[2] = 0.0f ; - } + float hot = getHeightAndNormal ( particle [ i ] -> getPos(), normal ) ; - particle [ i ] -> update ( dt ) ; + if ( particle [ i ] -> getPos ()[2] <= hot ) + { + particle [ i ] -> bounce ( normal, RESTITUTION ) ; + particle [ i ] -> getPos ()[2] = hot ; + } } for ( int i = 0 ; i < num_particles ; i++ ) |