Code Monkey home page Code Monkey logo

oimophysics's People

Contributors

laser-bunny avatar mreuler avatar pschroen avatar saharan avatar vbt-ytokan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oimophysics's Issues

Contrainst for rotations

With Babylon.js and oimo physic engine, In order to move a player, i use a box and a wheel (motor) with a hinge joint.

But is it possible to add an other contrainst for restrincting the rotations (only Y) so that the player doesn't fall over and stays straight?

I did a playground: https://www.babylonjs-playground.com/#CRMQZP#6

DebugDraw - How?

How do we render the DebugDraw in Haxe?
I've created the debug draw, set the world debug draw to this.
Now how do we actually display it?
Currently using: OpenFL->Away3D->Oimo

Failed to build a simple TypeScript example with Browserify

oimophysics 1.2.2: https://www.npmjs.com/package/oimophysics/v/1.2.2

My example (see source below) works with Parcel but does not work with Browserify.

Error log:

`
E:_Projects\Physics\oimo\oimo-debug-drawer-webgl-ts>npm run release

[email protected] release E:_Projects\Physics\oimo\oimo-debug-drawer-webgl-ts
npm run compile && npm run bundle && npm run uglify

[email protected] compile E:_Projects\Physics\oimo\oimo-debug-drawer-webgl-ts
tsc -p tsconfigs/tsconfig.release.json

[email protected] bundle E:_Projects\Physics\oimo\oimo-debug-drawer-webgl-ts
browserify public/js/main.js -o public/js/bundle.js

SyntaxError: 'import' and 'export' may appear only with 'sourceType: module' (54881:0) while parsing E:_Projects\node_modules\oimophysics\OimoPhysics.js while parsing file: E:_Projects\node_modules\oimophysics\OimoPhysics.js
at DestroyableTransform.end [as _flush] (C:\Users\8Observer8\AppData\Roaming\npm\node_modules\browserify\node_modules\insert-module-globals\index.js:114:21)
at DestroyableTransform.prefinish (C:\Users\8Observer8\AppData\Roaming\npm\node_modules\browserify\node_modules\readable-stream\lib_stream_transform.js:138:10)
at DestroyableTransform.emit (events.js:400:28)
at prefinish (C:\Users\8Observer8\AppData\Roaming\npm\node_modules\browserify\node_modules\readable-stream\lib_stream_writable.js:619:14)
at finishMaybe (C:\Users\8Observer8\AppData\Roaming\npm\node_modules\browserify\node_modules\readable-stream\lib_stream_writable.js:627:5)
at endWritable (C:\Users\8Observer8\AppData\Roaming\npm\node_modules\browserify\node_modules\readable-stream\lib_stream_writable.js:638:3)
at DestroyableTransform.Writable.end (C:\Users\8Observer8\AppData\Roaming\npm\node_modules\browserify\node_modules\readable-stream\lib_stream_writable.js:594:41)
at DestroyableTransform.onend (C:\Users\8Observer8\AppData\Roaming\npm\node_modules\browserify\node_modules\readable-stream\lib_stream_readable.js:577:10)
at Object.onceWrapper (events.js:519:28)
at DestroyableTransform.emit (events.js:412:35)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] bundle: browserify public/js/main.js -o public/js/bundle.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] bundle script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\8Observer8\AppData\Roaming\npm-cache_logs\2022-09-16T11_33_02_421Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] release: npm run compile && npm run bundle && npm run uglify
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] release script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\8Observer8\AppData\Roaming\npm-cache_logs\2022-09-16T11_33_02_563Z-debug.log

E:_Projects\Physics\oimo\oimo-debug-drawer-webgl-ts>
`

Example. Browserify, UglifyJS, TypeScript were installed globally.

Project structure:

image

Command to build for release: npm run release

package.json

{
  "name": "oimo-debug-drawer-webgl-ts",
  "version": "1.0.0",
  "description": "",
  "main": "public/js/bundle.js",
  "targets": {
    "main": {
       "includeNodeModules": true
    }
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "del_files": "del /f /q /s .\\public\\js\\*.*",
    "dev": "npm run del_files && parcel watch src/main.ts",
    "compile": "tsc -p tsconfigs/tsconfig.release.json",
    "bundle": "browserify public/js/main.js -o public/js/bundle.js",
    "uglify": "uglifyjs public/js/bundle.js -o public/js/bundle.js",
    "release": "npm run compile && npm run bundle && npm run uglify"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "oimophysics": "^1.2.2"
  }
}

tsconfigs/tsconfig.release.json

{
    "compilerOptions": {
        "target": "ES5",
        "outDir": "../public/js",
        "sourceMap": false,
        "types": [
            "node"
        ],
        "allowSyntheticDefaultImports": true,
        "esModuleInterop": true
    },
    "include": [
        "../src/**/*.ts"
    ],
    "exclude": [
        "node_modules"
    ]
}

src/main.ts

import { oimo } from "oimophysics";

const oimoWorld = new oimo.dynamics.World();
oimoWorld.setGravity(new oimo.common.Vec3(0, -9.8, 0));

console.log(oimoWorld.getGravity());

public/index.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script type="module" src="js/bundle.js"></script>
</body>

</html>

public/js/main.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var oimophysics_1 = require("oimophysics");
var oimoWorld = new oimophysics_1.oimo.dynamics.World();
oimoWorld.setGravity(new oimophysics_1.oimo.common.Vec3(0, -9.8, 0));
console.log(oimoWorld.getGravity());

ConeGeometry.hx (double-check one function for accuracy)

Hello, I've seen some copies of OimoPhysics floating around, not sure which one is the best one for me to use, as I do not know how to use externs that well, but I've noticed a difference in ConeGeometry.hx

	override public function _updateMass():Void {
		var r2:Float = _radius * _radius;
		var h2:Float = _halfHeight * _halfHeight * 4;
		_volume = MathUtil.PI * r2 * _halfHeight * 2 / 3;
		M.mat3_diagonal(_inertiaCoeff,
			1 / 20 * (3 * r2 + 2 * h2),
			3 / 10 * r2,
			1 / 12 * (3 * r2 + 2 * h2)
		);
	}
	```
Where it says 1 / 12, I've seen a different version showing 1 / 20.
So alt version:
1 / 20
3 / 10
1 / 20

Stepping a single rigid body

Hello!

Is it possible to step a single rigid body?

For example I have a dozen dynamic rigid bodies and a dozen static bodies, I would like to retain the velocity and position on all dynamic bodies while stepping and updating the position/velocities of a single rigid body x number of times.

Can I do this? I've considered sleeping all bodies except the one I want to update but I don't think that would retain the velocities?

Thanks!

Please, upload a new version to NPM

Hi, @saharan. Please, upload a new version (v1.2.3) to NPM. The latest version of OimoPysics (v1.2.3) was released on January 29, 2022, but it was not uploaded to NPM. v1.2.2 was published 3 years ago.

OimoPhysics for NodeJS

What would interest me is to be able to run OimoPhysics with NodeJS on the server side, and not just only on the client side (browser). There is already a module for NodeJS (https://github.com/lo-th/Oimo.js/) but it is out of date, so it isn't interesting. It is best to be synchronized with the original project.

I don't know Haxe at all but i see that there is a library to create modules for NodeJS: https://github.com/HaxeFoundation/hxnodejs

So, i guess is possible to generate a module for NodeJS.

On Linux, i cloned OimoPhysics github, installed Haxe and hxnodejs. But i don't know how to compile/export OimoPhysics from the sources.

If i check the hxnodejs documentation, is like this line:
haxe -lib hxnodejs -main Main -js main.js

But i don't see any "main" in the OimoPhysics sources.

Tutorials?

Not really a technical issue as such, but I was wondering if there were any 'getting started' type tutorials for this library?

Trigger / Ghosting - Events / Callback

Is it possible to have bodies that do "collide" but have no collision response.
I currently implemented it with an aabb test between all bodies vs. a specific collision group
(my trigger group, which is masked for collision)

But that does obviously not allow for trigger to dectect other rb's than a aligned boxes.
I was going through the implementation of detection but i could not find a possibility to have a collision detection but no collision response, besides a callback.

Is there anything planed, or there that i did not see? Is the engine still in active development? Because i really like the very clear structure.

Build failed

Simply create a World instance with latest version and haxe 4.0.0-rc.1, tried target cpp, python and js.

package com.test.oimo;
import oimo.dynamics.World;
class TestOimo {
	var world:World;
	static function main(){
		world = new World();
	}
}
src/oimo/m/B.hx:181: lines 181-187 : error: { type : haxe.macro.ComplexType, name : String, expr : Null<haxe.macro.Expr> } has no field isFinal
src/oimo/m/B.hx:181: lines 181-187 :  have: Array<{ type, name, expr }>
src/oimo/m/B.hx:181: lines 181-187 :  want: Array<haxe.macro.Var>
src/oimo/m/B.hx:181: lines 181-187 : For function argument 'a'
src/oimo/collision/geometry/Geometry.hx:12: characters 1-8 : Build failure

Haxe version

Hi, can you make workable version of engine for haxe.

add getSleeping

can be cool to add

public inline function getSleeping():Bool{
return _sleeping;
}

to rigidBody because _sleeping is rename on compile

How to integrate

I want to use/integrate OimoPhysics within a certain typescript game engine, but i have some difficulties using it properly.

I want to use the type definition file so as i see it i have to use the javascript module export of OimoPhysics. But if i use it that way i either get errors like "unexpected token 'export'" from the last line of the OimoPhysics.js or if i import it as type="module" i get no errors but i can only run it on a server but it does nothing.

If i use the standard OimoPhysics.min.js and use window.OIMO instead of importing it. I can use Oimo and test it and i really like it. But in that case i have no Type Definitions.

I would appreciate every help. I tried many things revolving around typescript modules but it might be a specific thing with OimoPhysics since the Typedefintion part seems quite recent.

ConeGeometry

Request: an extra parameter to control how many sides the Cone Geometry has, is there already a way to do this?

Continious collision detection.

Hi, would it be complicated to integrate continious collision detection for certain bodies? Bodies with high speed slips through each other, i managed to resolve this problem with multiple world.step call each frame but this highly impacts performance. And one more question, are there any plans with terrain geometry?

removeShape (RigidBody.hx) - Error

	public function removeShape(shape:Shape):Void {
		// first, remove the shape from the linked list so that it will be ignored
		M.list_remove(_shapeList, _shapeListLast, _prev, _next, shape);
		_numShapes--;
		shape._rigidBody = null;

		// then remove the shape from the world
		if (_world != null) {
			_world._removeShape(shape);
		}

		_shapeModified();
	}

Should shape._rigidBody = null go (after) before _shapeModified();?
As _world.removeShape(shape); requires shape._rigidBody(NULL)._contactLinkList

Move a body with local coordinates

If I apply a force with applyImpulse or linearVelocity to x on an object, it moves relative to the global coordinates. I would like it to move relative to its local coordinates (so depending on its rotation).

How to do?

Cannot read property 'x' of null in FaceClipper.reduce

It seems possible that min1, min2, min1V and min2V sometimes aren't being set (and remain null), leading to the error mentioned in the title.

This seems to happen during BoxBoxDetector. Spheres and Boxes appear to collide just fine.

TypeError Cannot read property 'x' of null oimo_collision_narrowphase_detector__$BoxBoxDetector_FaceClipper.reduce https://j4k75.csb.app/node_modules/oimophysics/OimoPhysics.js:1:156619 oimo_collision_narrowphase_detector_BoxBoxDetector.detectImpl https://j4k75.csb.app/node_modules/oimophysics/OimoPhysics.js:1:145380 oimo_collision_narrowphase_detector_BoxBoxDetector.detect https://j4k75.csb.app/node_modules/oimophysics/OimoPhysics.js:1:122639 oimo_dynamics_Contact._updateManifold https://j4k75.csb.app/node_modules/oimophysics/OimoPhysics.js:1:374223 oimo_dynamics_World._updateContacts https://j4k75.csb.app/node_modules/oimophysics/OimoPhysics.js:1:416406 oimo_dynamics_World.step https://j4k75.csb.app/node_modules/oimophysics/OimoPhysics.js:1:615737

"Hello World" on the server side with OimoPhysics

Hello. I will describe my steps. Please, write what step is wrong.

I created a new folder and the package.json file using this command:

npm init -y

I installed the engine:

npm i saharan/OimoPhysics

I added "type": "module" to the package.json file:

{
  "name": "oimophysics-server-js",
  "version": "1.0.0",
  "description": "",
  "type": "module",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "oimophysics": "github:saharan/OimoPhysics"
  }
}

I created the src/server/app.js file:

import "oimophysics";

const world = new OIMO.World();
world.gravity = new OIMO.Vec3(0, -9.8, 0);
console.log(world.gravity);

I tried to run app.js with nodemon src/server/app.js but I had this error:

const world = new OIMO.World();
              ^

ReferenceError: OIMO is not defined

Type not found : oimo.common.Mat4 when attempting to build demo's

I'm attempting to build the demos as per the instructions in the project Readme.

I've installed Haxe Compiler 4.0.0-preview and from the demos folder I've run haxe -cp src -main demo.js.DemoJS -js index.js. It returns the following error:

src/demo/common/DemoBase.hx:4: characters 8-24 : Type not found : oimo.common.Mat4

I'm new to Haxe so might be missing something obvious. Any help would be appreciated!

RigidBody awake condition little error

こんにちわsaharanさん、はじめまして。OimoPhysics.haxeとしてOimoPhysicsをforkしたtor4kichiと言います。よろしくお願いします。
RigidBodyのスリープ解除条件の記述についてです。

https://github.com/saharan/OimoPhysics/blob/master/src/com/element/oimo/physics/dynamics/World.as

問題の箇所
World.as / function step / line 384~385

var lv:Vec3 = tmpB.linearVelocity;
var av:Vec3 = tmpB.linearVelocity;

とありますが、これは

var lv:Vec3 = tmpB.linearVelocity;
var av:Vec3 = tmpB.angularVelocity;

と書こうとされていたのではないでしょうか?

Disable collision after setCollisionMask

Hello!

I got a sphere, a box and a cylinder. I want that when my sphere rolls on the box but when it touches the cylinder, the sphere falls.

I update collisionGroup/collisionMask when I have a contact between the sphere and the cylinder, but it continues collide with the cylinder and with my box.

Sample code

// Collision Group
var CollisionGroup = {
  FLOOR: 1,
  SPHERE: 2,
  SPHERE_OUT: 4,
  BOX: 8,
  CYLINDER: 16
}

// Sphere
sphereShape.addCollisionGroup( CollisionGroup.SPHERE );
sphereShape.addCollisionMask( CollisionGroup.FLOOR );

// Box
boxShape.addCollisionGroup( CollisionGroup.BOX );
boxShape.addCollisionMask( CollisionGroup.BALL );

// Cylinder
cylinderShape.addCollisionGroup( CollisionGroup.CYLINDER );
cylinderShape.addCollisionMask( CollisionGroup.SPHERE );

// Functions
function addSphere( sphere ) {
  sphereShape.setCollisionGroup( CollisionGroup.SPHERE );
  sphereShape.setCollisionMask( sphereShape.getCollisionMask() | CollisionGroup.CYLINDER | CollisionGroup.BOX );
}

function removeSphere( sphere ) {
  sphereShape.setCollisionGroup( CollisionGroup.SPHERE_OUT );
  sphereShape.setCollisionMask( CollisionGroup.FLOOR );
}

I can't change gravity in OimoPhysics 1.2.4

I'm trying to change gravity. world.gravity changes, but does not affect the gravity of the world. I even change the sign, but result is the same: https://playcode.io/1189009 (another playground: https://plnkr.co/edit/pPrpB8rorficnBOE)

It's for world.gravity = new OIMO.Vec3(0, -10, 0);

oimo_common_Vec3 {x: 0, y: -10, z: 0}
oimo_common_Vec3 {x: 0, y: 4.9974894976, z: 0}
oimo_common_Vec3 {x: 0, y: 4.9924684928000005, z: 0}
oimo_common_Vec3 {x: 0, y: 4.9849369856, z: 0}
oimo_common_Vec3 {x: 0, y: 4.974894976, z: 0}
oimo_common_Vec3 {x: 0, y: 4.962342464, z: 0}
oimo_common_Vec3 {x: 0, y: 4.9472794496, z: 0}
oimo_common_Vec3 {x: 0, y: 4.9297059328, z: 0}
oimo_common_Vec3 {x: 0, y: 4.9096219136000006, z: 0}
oimo_common_Vec3 {x: 0, y: 4.887027392, z: 0}
oimo_common_Vec3 {x: 0, y: 4.861922368, z: 0}

It's for world.gravity = new OIMO.Vec3(0, 10, 0);

oimo_common_Vec3 {x: 0, y: 10, z: 0}
oimo_common_Vec3 {x: 0, y: 4.9974894976, z: 0}
oimo_common_Vec3 {x: 0, y: 4.9924684928000005, z: 0}
oimo_common_Vec3 {x: 0, y: 4.9849369856, z: 0}
oimo_common_Vec3 {x: 0, y: 4.974894976, z: 0}
oimo_common_Vec3 {x: 0, y: 4.962342464, z: 0}
oimo_common_Vec3 {x: 0, y: 4.9472794496, z: 0}
oimo_common_Vec3 {x: 0, y: 4.9297059328, z: 0}
oimo_common_Vec3 {x: 0, y: 4.9096219136000006, z: 0}
oimo_common_Vec3 {x: 0, y: 4.887027392, z: 0}
oimo_common_Vec3 {x: 0, y: 4.861922368, z: 0}

Scaling the Rigidbody Shape at runtime

How can i change the size of the Shape at runtime? E.g. i have a capsule and want to change the height.
There is no option to do so, only setPosition/setOrientation and such for the RigidBody itself.
I'm implementing OimoPhysics into a game engine and user need to change the Shape at runtime after it's initially created. Currently i have to recreate the whole RB when they do so, which brings it's own set of problems.
When i try to RigidBody.removeShape and then addShape the newly scaled one oimo breaks because it shortly did not have a shape i guess?

Need help. I basically need similar functionality to e.g. Unity's collider where i can change the Shape in an editor through fields/sliders.

Inertia of Cone Geometry seems wrong

Oimophysics uses Inertia about center of shape at (0,H/2,0) assuming origin at center of base of shape.

While calculating Inertia of body, parallel axis theorem is used but I think cone geometry should be treated differently as its center of mass lies at (0,H/4,0) rather than (0,H/2,0).

Correct me If I misunderstood your method of calculating inertia tensor.

Moving Dynamic Rigid Body

Hi!
First of all, awesome project! Congratulations!
I'm trying to use your library in a small fps like project... I'm using the available javascript binary...
I'm trying to move a simple dynamic rigid body in a place with static rigid bodies...
But I can't get the dynamic body to move applying impulses or forces...
So I tried to move using the setPosition method of the rigid body. It works, but seems like the gravity stops acting on the body after this...
What am I doing wrong?

The following code I use on main character class:

class Character {
	constructor(px, py, pz){
		this.body_cnf = new OIMO.RigidBodyConfig();
		this.body_cnf.type= OIMO.RigidBodyType.DYNAMIC;
		this.body_cnf.position = new OIMO.Vec3(px, py, pz);
		this.body = new OIMO.RigidBody(this.body_cnf);
		this.shape_cnf = new OIMO.ShapeConfig();
		this.shape_cnf.geometry = new OIMO.CylinderGeometry(0.5,1.0);
		this.shape_cnf.density=70.0;
		this.shape_cnf.position=new OIMO.Vec3(px,py,pz);
		this.body.addShape(new OIMO.Shape(this.shape_cnf ));
		world.addRigidBody(this.body);
	}
	moveFront(){
		this.body.applyImpulse(new OIMO.Vec3(0,0,1), this.body.getPosition());
		//Also tried
		//this.body.applyForce(new OIMO.Vec3(0,0,1), this.body.getPosition());
	}
	moveBack(){
		this.body.applyImpulse(new OIMO.Vec3(0,0,-1), this.body.getPosition());
		//Also tried
		//this.body.applyForce(new OIMO.Vec3(0,0,-1), this.body.getPosition());
	}
}

Thanks!

Cannot use as haxe library?

I would like to use this library to compile to native android via lime, yet I've found the code is riddled with build macros to turn it into a JavaScript file.

Can I use this library directly in a Haxe project? Thanks.

about raycast

Hi Saharan,
A great option for raycast is add a mask if possible
world.rayCast( begin, end, callback, mask = 1 )

to pass through object

Terrain support?

Hi @saharan
Thank you for your wonderful physics library - it is awesome! I would like to know if you are planning to add terrain-shape support. If you were not already planning it, may I request that this feature be added?

I have some ideas for games that require basic shape (sphere and box) colliding with triangles in a terrain. If you can't do the full terrain class, would you at least consider doing a sphere-triangle and box-triangle collision routine? Then we could add the terrain shape or triangle-mesh class on our own.

Again,thanks for the great library!
-Erich

Question: What is the equivalent of setLinearFactor() in bullet physics?

Hi! Thanks for the wonderful physics engine!
I got a question: if I want to lock a specific axis of an object, in bullet I can use setLinearFactor() and set that axis to 0.0. In Oimo I found that there is setRotationFactor() for rotation, but I didn't find the equivalent for location. May I know what is the best way to achieve this?

Regards
Milo

Build failed

OimoPhysics/build.hxml:

--class-path demos/src/
--class-path src/
--main demo.js.DemoJS
--js demo.js

Terminal output:

haxe build.hxml 
src/oimo/m/B.hx:181: lines 181-187 : error: { type : haxe.macro.ComplexType, name : String, expr : Null<haxe.macro.Expr> } has no field isFinal
src/oimo/m/B.hx:181: lines 181-187 : ... have: Array<{ type, name, expr }>
src/oimo/m/B.hx:181: lines 181-187 : ... want: Array<haxe.macro.Var>
src/oimo/m/B.hx:181: lines 181-187 : ... For function argument 'a'
src/oimo/collision/broadphase/Proxy.hx:11: characters 1-8 : Build failure

However, it does work if I use the Armory3D fork as suggested in #22.

events?

Hello,

I was wondering what kind of events i can use when collision is detected? I have looked through the code but couldn't find one that I can use, maybe I have overlooked something? I need some sort of collision event notification to make a game out of it.

By the way, It's a wonderful library Thank You :)

Uncaught ReferenceError: HxOverrides is not defined

Since v1.2.4 (e8dd122) the JavaScript module has been throwing this error with a missing global for HxOverrides.

Building the JavaScript module does generate the following:

class HxOverrides {
	static now() {
		return Date.now();
	}
}

However with your instructions to "Remove all lines before var oimo = oimo || {};", that HxOverrides class is removed, but the code is still referencing it.

The previous version was just using Date.now(), and the other JavaScript files in bin/js/ include the HxOverrides class.

So not sure if they're supposed to include HxOverrides or not. 🤷‍♂️

error in GenericJoint

i see error in getRotationalSpringDampers of GenericJoint

return _translSds.toArray();
should be
return _rotSds.toArray();

Any plans for a heightmap collision geometry?

I just recently integrated this library into a project, before realizing it doesn't have support for heightmaps. I tried hacking something together using convex hulls, but any version of it was either too slow or too imprecise.

Are there any plans to implement heightmap collision detection? Otherwise I'm afraid I'll have to switch to something different :(

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.