Skip to content

Commit

Permalink
checkpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
Nicholas Kinsey committed Jan 9, 2011
1 parent 9f25b0e commit 2d5c20c
Show file tree
Hide file tree
Showing 17 changed files with 173 additions and 108 deletions.
6 changes: 3 additions & 3 deletions package.coffee
Expand Up @@ -11,7 +11,7 @@
licenses: [
{
type: 'FEISTY'
url: 'http://github.com/feisty/license/LICENSE'
url: 'http://github.com/feisty/license/raw/master/LICENSE'
}
]

Expand All @@ -36,8 +36,8 @@
main: './lib/bullet.coffee'

dependencies:
'coffee-script': '= 1.0.0'
'coffee-script': '>= 1.0.0'

engines:
node: '= 0.3.2'
node: '>= 0.3.3'
}
37 changes: 37 additions & 0 deletions package.js
@@ -0,0 +1,37 @@
(function() {
({
name: 'bullet',
description: '"Bullet" physics for node.js',
keywords: ['bullet', 'physics', 'dynamics', 'engine', 'binding', 'wrapper'],
version: '0.1.0',
author: 'Feisty Studios <node-bullet@feistystudios.com> (http://feistystudios.com/)',
licenses: [
{
type: 'FEISTY',
url: 'http://github.com/feisty/license/LICENSE'
}
],
contributors: ['Nicholas Kinsey <nicholas.kinsey@feistystudios.com>'],
repository: {
type: 'git',
url: 'http://github.com/feisty/node-bullet.git',
private: 'git@github.com:feisty/node-bullet.git',
web: 'http://github.com/feisty/node-bullet'
},
bugs: {
mail: 'node-bullet@feistystudios.com',
web: 'http://github.com/feisty/node-bullet/issues'
},
directories: {
lib: './lib',
doc: './doc'
},
main: './lib/bullet.coffee',
dependencies: {
'coffee-script': '= 1.0.0'
},
engines: {
node: '= 0.3.2'
}
});
}).call(this);
6 changes: 3 additions & 3 deletions package.json
Expand Up @@ -7,7 +7,7 @@
licenses: [
{
type: 'FEISTY',
url: 'http://github.com/feisty/license/LICENSE'
url: 'http://github.com/feisty/license/raw/master/LICENSE'
}
],
contributors: ['Nicholas Kinsey <nicholas.kinsey@feistystudios.com>'],
Expand All @@ -27,9 +27,9 @@
},
main: './lib/bullet.coffee',
dependencies: {
'coffee-script': '= 1.0.0'
'coffee-script': '>= 1.0.0'
},
engines: {
node: '= 0.3.2'
node: '>= 0.3.3'
}
}
4 changes: 4 additions & 0 deletions src/CollisionDispatcher.cc
Expand Up @@ -29,7 +29,11 @@ CollisionDispatcher::New(const Arguments &args) {
}

CollisionDispatcher::CollisionDispatcher(DefaultCollisionConfiguration* defaultCollisionConfiguration): ObjectWrap() {
_btCollisionDispatcher = new btCollisionDispatcher(defaultCollisionConfiguration->_btDefaultCollisionConfiguration);
}

CollisionDispatcher::~CollisionDispatcher() {
if (_btCollisionDispatcher) {
delete _btCollisionDispatcher;
}
}
4 changes: 4 additions & 0 deletions src/CollisionDispatcher.h
Expand Up @@ -7,6 +7,8 @@

#include "DefaultCollisionConfiguration.h"

#include "btBulletDynamicsCommon.h"

using namespace v8;
using namespace node;

Expand All @@ -18,6 +20,8 @@ class CollisionDispatcher: public node::ObjectWrap {
static Handle<Value> New(const Arguments &args);

CollisionDispatcher(DefaultCollisionConfiguration* defaultCollisionConfiguration);

btCollisionDispatcher* _btCollisionDispatcher;

private:
~CollisionDispatcher();
Expand Down
4 changes: 4 additions & 0 deletions src/DbvtBroadphase.cc
Expand Up @@ -26,7 +26,11 @@ DbvtBroadphase::New(const Arguments &args) {
}

DbvtBroadphase::DbvtBroadphase(): ObjectWrap() {
_btDbvtBroadphase = new btDbvtBroadphase();
}

DbvtBroadphase::~DbvtBroadphase() {
if (_btDbvtBroadphase) {
delete _btDbvtBroadphase;
}
}
4 changes: 4 additions & 0 deletions src/DbvtBroadphase.h
Expand Up @@ -5,6 +5,8 @@
#include <node.h>
#include <node_object_wrap.h>

#include "btBulletDynamicsCommon.h"

using namespace v8;
using namespace node;

Expand All @@ -16,6 +18,8 @@ class DbvtBroadphase: public node::ObjectWrap {
static Handle<Value> New(const Arguments &args);

DbvtBroadphase();

btDbvtBroadphase* _btDbvtBroadphase;

private:
~DbvtBroadphase();
Expand Down
4 changes: 4 additions & 0 deletions src/DefaultCollisionConfiguration.cc
Expand Up @@ -26,7 +26,11 @@ DefaultCollisionConfiguration::New(const Arguments &args) {
}

DefaultCollisionConfiguration::DefaultCollisionConfiguration(): ObjectWrap() {
_btDefaultCollisionConfiguration = new btDefaultCollisionConfiguration();
}

DefaultCollisionConfiguration::~DefaultCollisionConfiguration() {
if (_btDefaultCollisionConfiguration) {
delete _btDefaultCollisionConfiguration;
}
}
4 changes: 4 additions & 0 deletions src/DefaultCollisionConfiguration.h
Expand Up @@ -5,6 +5,8 @@
#include <node.h>
#include <node_object_wrap.h>

#include "btBulletDynamicsCommon.h"

using namespace v8;
using namespace node;

Expand All @@ -16,6 +18,8 @@ class DefaultCollisionConfiguration: public node::ObjectWrap {
static Handle<Value> New(const Arguments &args);

DefaultCollisionConfiguration();

btDefaultCollisionConfiguration* _btDefaultCollisionConfiguration;

private:
~DefaultCollisionConfiguration();
Expand Down
54 changes: 18 additions & 36 deletions src/DiscreteDynamicsWorld.cc
Expand Up @@ -28,19 +28,19 @@ Handle<Value>
DiscreteDynamicsWorld::New(const Arguments &args) {
HandleScope scope;

// Local<Object> collisionDispatcherHandle = args[0]->ToObject();
// CollisionDispatcher* collisionDispatcher = ObjectWrap::Unwrap<CollisionDispatcher>(collisionDispatcherHandle);
//
// Local<Object> dbvtBroadphaseHandle = args[1]->ToObject();
// DbvtBroadphase* dbvtBroadphase = ObjectWrap::Unwrap<DbvtBroadphase>(dbvtBroadphaseHandle);
//
// Local<Object> sequentialImpulseConstraintSolverHandle = args[2]->ToObject();
// SequentialImpulseConstraintSolver* sequentialImpulseConstraintSolver = ObjectWrap::Unwrap<SequentialImpulseConstraintSolver>(sequentialImpulseConstraintSolverHandle);
//
// Local<Object> defaultCollisionConfigurationHandle = args[3]->ToObject();
// DefaultCollisionConfiguration* defaultCollisionConfiguration = ObjectWrap::Unwrap<DefaultCollisionConfiguration>(defaultCollisionConfigurationHandle);

DiscreteDynamicsWorld* discreteDynamicsWorld = new DiscreteDynamicsWorld(/*collisionDispatcher, dbvtBroadphase, sequentialImpulseConstraintSolver, defaultCollisionConfiguration*/);
Local<Object> collisionDispatcherHandle = args[0]->ToObject();
CollisionDispatcher* collisionDispatcher = ObjectWrap::Unwrap<CollisionDispatcher>(collisionDispatcherHandle);

Local<Object> dbvtBroadphaseHandle = args[1]->ToObject();
DbvtBroadphase* dbvtBroadphase = ObjectWrap::Unwrap<DbvtBroadphase>(dbvtBroadphaseHandle);

Local<Object> sequentialImpulseConstraintSolverHandle = args[2]->ToObject();
SequentialImpulseConstraintSolver* sequentialImpulseConstraintSolver = ObjectWrap::Unwrap<SequentialImpulseConstraintSolver>(sequentialImpulseConstraintSolverHandle);

Local<Object> defaultCollisionConfigurationHandle = args[3]->ToObject();
DefaultCollisionConfiguration* defaultCollisionConfiguration = ObjectWrap::Unwrap<DefaultCollisionConfiguration>(defaultCollisionConfigurationHandle);

DiscreteDynamicsWorld* discreteDynamicsWorld = new DiscreteDynamicsWorld(collisionDispatcher, dbvtBroadphase, sequentialImpulseConstraintSolver, defaultCollisionConfiguration);
discreteDynamicsWorld->Wrap(args.This());

return scope.Close(args.This());
Expand Down Expand Up @@ -86,34 +86,16 @@ DiscreteDynamicsWorld::StepSimulation(const Arguments &args) {
// body->getMotionState()->getWorldTransform(trans);
// printf("world pos = %f,%f,%f\n",float(trans.getOrigin().getX()),float(trans.getOrigin().getY()),float(trans.getOrigin().getZ()));
// }
//
// obj = discreteDynamicsWorld->_btDiscreteDynamicsWorld->getCollisionObjectArray()[1];
// body = btRigidBody::upcast(obj);
// if (body && body->getMotionState())
// {
// btTransform trans;
// body->getMotionState()->getWorldTransform(trans);
// printf("world pos = %f,%f,%f\n",float(trans.getOrigin().getX()),float(trans.getOrigin().getY()),float(trans.getOrigin().getZ()));
// }

return scope.Close(Undefined());
}

DiscreteDynamicsWorld::DiscreteDynamicsWorld(/*CollisionDispatcher* collisionDispatcher, DbvtBroadphase* dbvtBroadphase, SequentialImpulseConstraintSolver* sequentialImpulseConstraintSolver, DefaultCollisionConfiguration* defaultCollisionConfiguration*/): ObjectWrap() {
// TODO Create and use the actual binded objects instead of this hack

btDefaultCollisionConfiguration* collisionConfiguration = new btDefaultCollisionConfiguration();
btCollisionDispatcher* dispatcher = new btCollisionDispatcher(collisionConfiguration);
btDbvtBroadphase* broadphase = new btDbvtBroadphase();
btSequentialImpulseConstraintSolver* solver = new btSequentialImpulseConstraintSolver();

_btDiscreteDynamicsWorld = new btDiscreteDynamicsWorld(dispatcher, broadphase, solver, collisionConfiguration);

// _btDiscreteDynamicsWorld = new btDiscreteDynamicsWorld(collisionDispatcher, dbvtBroadphase, sequentialImpulseConstraintSolver, defaultCollisionConfiguration);;
DiscreteDynamicsWorld::DiscreteDynamicsWorld(CollisionDispatcher* collisionDispatcher, DbvtBroadphase* dbvtBroadphase, SequentialImpulseConstraintSolver* sequentialImpulseConstraintSolver, DefaultCollisionConfiguration* defaultCollisionConfiguration): ObjectWrap() {
_btDiscreteDynamicsWorld = new btDiscreteDynamicsWorld(collisionDispatcher->_btCollisionDispatcher, dbvtBroadphase->_btDbvtBroadphase, sequentialImpulseConstraintSolver->_btSequentialImpulseConstraintSolver, defaultCollisionConfiguration->_btDefaultCollisionConfiguration);
}

DiscreteDynamicsWorld::~DiscreteDynamicsWorld() {
// if (_btDiscreteDynamicsWorld) {
// free(_btDiscreteDynamicsWorld);
// }
if (_btDiscreteDynamicsWorld) {
delete _btDiscreteDynamicsWorld;
}
}
2 changes: 1 addition & 1 deletion src/DiscreteDynamicsWorld.h
Expand Up @@ -27,7 +27,7 @@ class DiscreteDynamicsWorld: public node::ObjectWrap {
static Handle<Value> AddRigidBody(const Arguments &args);
static Handle<Value> StepSimulation(const Arguments &args);

DiscreteDynamicsWorld(/*CollisionDispatcher* collisionDispatcher, DbvtBroadphase* dbvtBroadphase, SequentialImpulseConstraintSolver* sequentialImpulseConstraintSolver, DefaultCollisionConfiguration* defaultCollisionConfiguration*/);
DiscreteDynamicsWorld(CollisionDispatcher* collisionDispatcher, DbvtBroadphase* dbvtBroadphase, SequentialImpulseConstraintSolver* sequentialImpulseConstraintSolver, DefaultCollisionConfiguration* defaultCollisionConfiguration);

btDiscreteDynamicsWorld* _btDiscreteDynamicsWorld;

Expand Down
11 changes: 4 additions & 7 deletions src/RigidBody.cc
Expand Up @@ -13,8 +13,6 @@ RigidBody::Initialize(Handle<Object> target) {
Local<ObjectTemplate> proto = constructor->PrototypeTemplate();

target->Set(String::NewSymbol("RigidBody"), constructor->GetFunction());

scope.Close();
}

Handle<Value>
Expand All @@ -27,7 +25,7 @@ RigidBody::New(const Arguments &args) {
return scope.Close(args.This());
}

RigidBody::RigidBody(): ObjectWrap() {
RigidBody::RigidBody(): ObjectWrap() {
btTransform transform;
transform.setIdentity();
transform.setOrigin(btVector3((float)rand()/(float)RAND_MAX*1000.0, (float)rand()/(float)RAND_MAX*1000.0, (float)rand()/(float)RAND_MAX*1000.0));
Expand All @@ -44,8 +42,7 @@ RigidBody::RigidBody(): ObjectWrap() {
}

RigidBody::~RigidBody() {
// if (_btRigidBody) {
// free(_btRigidBody);
// _btRigidbody = NULL;
// }
if (_btRigidBody) {
//delete _btRigidBody;
}
}
4 changes: 4 additions & 0 deletions src/SequentialImpulseConstraintSolver.cc
Expand Up @@ -26,7 +26,11 @@ SequentialImpulseConstraintSolver::New(const Arguments &args) {
}

SequentialImpulseConstraintSolver::SequentialImpulseConstraintSolver(): ObjectWrap() {
_btSequentialImpulseConstraintSolver = new btSequentialImpulseConstraintSolver();
}

SequentialImpulseConstraintSolver::~SequentialImpulseConstraintSolver() {
if (_btSequentialImpulseConstraintSolver) {
delete _btSequentialImpulseConstraintSolver;
}
}
4 changes: 4 additions & 0 deletions src/SequentialImpulseConstraintSolver.h
Expand Up @@ -5,6 +5,8 @@
#include <node.h>
#include <node_object_wrap.h>

#include "btBulletDynamicsCommon.h"

using namespace v8;
using namespace node;

Expand All @@ -16,6 +18,8 @@ class SequentialImpulseConstraintSolver: public node::ObjectWrap {
static Handle<Value> New(const Arguments &args);

SequentialImpulseConstraintSolver();

btSequentialImpulseConstraintSolver* _btSequentialImpulseConstraintSolver;

private:
~SequentialImpulseConstraintSolver();
Expand Down
34 changes: 17 additions & 17 deletions src/init.cc
@@ -1,13 +1,13 @@
// #include "btBulletDynamicsCommon.h"
#include "btBulletDynamicsCommon.h"

// #include "Bullet.h"
// #include "DefaultCollisionConfiguration.h"
// #include "CollisionDispatcher.h"
// #include "DbvtBroadphase.h"
// #include "SequentialImpulseConstraintSolver.h"
// #include "DiscreteDynamicsWorld.h"
// #include "BoxShape.h"
// #include "Transform.h"
#include "Bullet.h"
#include "DefaultCollisionConfiguration.h"
#include "CollisionDispatcher.h"
#include "DbvtBroadphase.h"
#include "SequentialImpulseConstraintSolver.h"
#include "DiscreteDynamicsWorld.h"
#include "BoxShape.h"
#include "Transform.h"
#include "RigidBody.h"

#include <v8.h>
Expand All @@ -19,14 +19,14 @@ using namespace node;

extern "C" {
static void init (Handle<Object> target) {
// Bullet::Initialize(target);
// DefaultCollisionConfiguration::Initialize(target);
// CollisionDispatcher::Initialize(target);
// DbvtBroadphase::Initialize(target);
// SequentialImpulseConstraintSolver::Initialize(target);
// DiscreteDynamicsWorld::Initialize(target);
// BoxShape::Initialize(target);
// Transform::Initialize(target);
Bullet::Initialize(target);
DefaultCollisionConfiguration::Initialize(target);
CollisionDispatcher::Initialize(target);
DbvtBroadphase::Initialize(target);
SequentialImpulseConstraintSolver::Initialize(target);
DiscreteDynamicsWorld::Initialize(target);
BoxShape::Initialize(target);
Transform::Initialize(target);
RigidBody::Initialize(target);
}

Expand Down

0 comments on commit 2d5c20c

Please sign in to comment.