1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| /************** Mass API *********************/
var sizeOfMass = (1+4+4*3)*4;
var dMassSetZero = Module.cwrap('dMassSetZero',null,['number']);
var dMassSetParameters = Module.cwrap('dMassSetParameters',null,['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number']);
var dMassSetSphere = Module.cwrap('dMassSetSphere',null,['number', 'number', 'number']);
var dMassSetSphereTotal = Module.cwrap('dMassSetSphereTotal',null,['number', 'number', 'number']);
var dMassSetCapsule = Module.cwrap('dMassSetCapsule',null,['number', 'number', 'number', 'number', 'number']);
var dMassSetCapsuleTotal = Module.cwrap('dMassSetCapsuleTotal',null,['number', 'number', 'number', 'number', 'number']);
var dMassSetCylinder = Module.cwrap('dMassSetCylinder',null,['number', 'number', 'number', 'number', 'number']);
var dMassSetCylinderTotal = Module.cwrap('dMassSetCylinderTotal',null,['number', 'number', 'number', 'number', 'number']);
var dMassSetBox = Module.cwrap('dMassSetBox',null,['number', 'number', 'number', 'number', 'number']);
var dMassSetBoxTotal = Module.cwrap('dMassSetBoxTotal',null,['number', 'number', 'number', 'number', 'number']);
var dMassAdjust = Module.cwrap('dMassAdjust',null,['number', 'number']);
var dMassTranslate = Module.cwrap('dMassTranslate',null,['number', 'number', 'number', 'number']);
var dMassRotate = Module.cwrap('dMassRotate',null,['number', 'number']);
var dMassAdd = Module.cwrap('dMassAdd',null,['number', 'number']);
ODE.Mass = function ()
{
var pointer = arguments[0] || Module._malloc(sizeOfMass);
this.getPointer = function() { return pointer;}
this.destroy = function() { return Module._free(pointer); }
this.setZero = function() { dMassSetZero(pointer); return this;}
this.setParameters = function( mass,cgx, cgy, cgz, I11, I22, I33, I12, I13, I23) { dMassSetParameters(pointer, mass,cgx, cgy, cgz, I11, I22, I33, I12, I13, I23); return this;}
this.setSphere = function(density, radius) { dMassSetSphere(pointer,density, radius); return this;}
this.setSphereTotal = function(total_mass, radius) { dMassSetSphereTotal(pointer,total_mass, radius); return this;}
this.setCapsule = function(density, direction, a, b) { dMassSetCapsule(pointer, density, direction, a, b); return this;}
this.setCapsuleTotal = function(total_mass, direction, a, b) { dMassSetCapsuleTotal(pointer, total_mass, direction, a, b); return this;}
this.setCylinder = function(density, direction, a, b) { dMassSetCylinder(pointer, density, direction, a, b); return this;}
this.setCylinderTotal = function(total_mass, direction, a, b) { dMassSetCylinderTotal(pointer, total_mass, direction, a, b); return this;}
this.setBox = function(density, lx, ly, lz) { dMassSetBox(pointer, density, lx, ly, lz); return this;}
this.setBoxTotal = function(total_mass, lx, ly, lz) { dMassSetBoxTotal(pointer, total_mass, lx, ly, lz); return this;}
this.adjust = function(newmass) { dMassAdjust(pointer, newmass); return this;}
this.translate = function(x,y,z) { dMassTranslate(pointer, x,y,z); return this;}
this.rotate = function(rotation) { dMassRotate(mass, rotation.getPointer()); return this;}
this.add = function(mass) { dMassAdd(pointer, mass.getPointer()); return this;}
} |