diff options
Diffstat (limited to 'demos/webgl/HelloWorld_old.cpp')
-rw-r--r-- | demos/webgl/HelloWorld_old.cpp | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/demos/webgl/HelloWorld_old.cpp b/demos/webgl/HelloWorld_old.cpp deleted file mode 100644 index cacd128e..00000000 --- a/demos/webgl/HelloWorld_old.cpp +++ /dev/null @@ -1,142 +0,0 @@ -/* -Bullet Continuous Collision Detection and Physics Library -Copyright (c) 2003-2007 Erwin Coumans http://continuousphysics.com/Bullet/ - -This software is provided 'as-is', without any express or implied warranty. -In no event will the authors be held liable for any damages arising from the use of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, -subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -*/ - - -#include "btBulletDynamicsCommon.h" -#include <stdio.h> - -/// This is a Hello World program for running a basic Bullet physics simulation - - btDefaultCollisionConfiguration* zz_collisionConfiguration; - btCollisionDispatcher* zz_dispatcher; - btBroadphaseInterface* zz_overlappingPairCache; - btSequentialImpulseConstraintSolver* zz_solver; - btDiscreteDynamicsWorld* zz_dynamicsWorld; - -void zz_prepare() -{ - - int i; - - ///collision configuration contains default setup for memory, collision setup. Advanced users can create their own configuration. - zz_collisionConfiguration = new btDefaultCollisionConfiguration(); - - ///use the default collision zz_dispatcher. For parallel processing you can use a diffent zz_dispatcher (see Extras/BulletMultiThreaded) - zz_dispatcher = new btCollisionDispatcher(zz_collisionConfiguration); - - ///btDbvtBroadphase is a good general purpose broadphase. You can also try out btAxis3Sweep. - zz_overlappingPairCache = new btDbvtBroadphase(); - - ///the default constraint zz_solver. For parallel processing you can use a different zz_solver (see Extras/BulletMultiThreaded) - zz_solver = new btSequentialImpulseConstraintSolver; - - zz_dynamicsWorld = new btDiscreteDynamicsWorld(zz_dispatcher,zz_overlappingPairCache,zz_solver,zz_collisionConfiguration); - - zz_dynamicsWorld->setGravity(btVector3(0,-10,0)); - - ///create a few basic rigid bodies - btCollisionShape* groundShape = new btStaticPlaneShape(btVector3(btScalar(0.),btScalar(1.),btScalar(0.)), 0); - - btTransform groundTransform; - groundTransform.setIdentity(); - groundTransform.setOrigin(btVector3(0,-6,0)); - - { - btScalar mass(0.); - - //rigidbody is dynamic if and only if mass is non zero, otherwise static - bool isDynamic = (mass != 0.f); - - btVector3 localInertia(0,0,0); - if (isDynamic) - groundShape->calculateLocalInertia(mass,localInertia); - - //using motionstate is recommended, it provides interpolation capabilities, and only synchronizes 'active' objects - btDefaultMotionState* myMotionState = new btDefaultMotionState(groundTransform); - btRigidBody::btRigidBodyConstructionInfo rbInfo(mass,myMotionState,groundShape,localInertia); - btRigidBody* body = new btRigidBody(rbInfo); - - //add the body to the dynamics world - zz_dynamicsWorld->addRigidBody(body); - } - - - for (int i = 0; i < 5; i++) - { - //create a dynamic rigidbody - - btCollisionShape* colShape = new btBoxShape(btVector3(1,1,1)); - //btCollisionShape* colShape = new btSphereShape(btScalar(1.)); - - /// Create Dynamic Objects - btTransform startTransform; - startTransform.setIdentity(); - - btScalar mass(1.f); - - //rigidbody is dynamic if and only if mass is non zero, otherwise static - bool isDynamic = (mass != 0.f); - - btVector3 localInertia(0,0,0); - if (isDynamic) - colShape->calculateLocalInertia(mass,localInertia); - - startTransform.setOrigin(btVector3(0,4+i*2.1,0)); - - //using motionstate is recommended, it provides interpolation capabilities, and only synchronizes 'active' objects - btDefaultMotionState* myMotionState = new btDefaultMotionState(startTransform); - btRigidBody::btRigidBodyConstructionInfo rbInfo(mass,myMotionState,colShape,localInertia); - btRigidBody* body = new btRigidBody(rbInfo); - - zz_dynamicsWorld->addRigidBody(body); - } -} - - -/// Do some simulation - - -void zz_simulate(float diff) { - zz_dynamicsWorld->stepSimulation(diff); -} - -void zz_read(int j, btVector3& location, btQuaternion& rotation) -{ - { - btCollisionObject* obj = zz_dynamicsWorld->getCollisionObjectArray()[j]; - btRigidBody* body = btRigidBody::upcast(obj); - if (body && body->getMotionState()) - { - btTransform trans; - body->getMotionState()->getWorldTransform(trans); - location = trans.getOrigin(); - rotation = trans.getRotation(); - //printf("world pos = %.5f,%.5f,%.5f\n",float(location.getX()),float(location.getY()),float(location.getZ())); - } - } -} - -int main(int argc, char** argv) -{ - zz_prepare(); - zz_simulate(1/60.);//new btVector3); - btVector3 location; - btQuaternion rotation; - zz_read(1, location, rotation); - printf("world pos = %.5f,%.5f,%.5f rot=%.5f,%.5f,%.5f,%.5f\n",float(location.getX()),float(location.getY()),float(location.getZ()), - float(rotation.getX()), float(rotation.getY()), float(rotation.getZ()), float(rotation.getW()) - ); -} - |