Skip to content

Instantly share code, notes, and snippets.

@BlueMagnificent
BlueMagnificent / contact_manifold_check.html
Last active August 3, 2020 15:19
Javascript 3D Physics Tut 3 Contact Manifold Check
<html>
<head>
<meta charset="utf-8">
<title>Collision JS 3D Physics</title>
<style>
body { margin: 0; }
</style>
</head>
<body>
@BlueMagnificent
BlueMagnificent / detectCollision.js
Last active August 2, 2020 22:52
Javascript 3D Physics Tut 3 Detect Collision
function detectCollision(){
let dispatcher = physicsWorld.getDispatcher();
let numManifolds = dispatcher.getNumManifolds();
for ( let i = 0; i < numManifolds; i ++ ) {
let contactManifold = dispatcher.getManifoldByIndexInternal( i );
let numContacts = contactManifold.getNumContacts();
@BlueMagnificent
BlueMagnificent / updatePhysics.js
Created August 2, 2020 22:55
Javascript 3D Physics Tut 3 Update Physics
function updatePhysics( deltaTime ){
// Step world
physicsWorld.stepSimulation( deltaTime, 10 );
// Update rigid bodies
for ( let i = 0; i < rigidBodies.length; i++ ) {
let objThree = rigidBodies[ i ];
let objAmmo = objThree.userData.physicsBody;
let ms = objAmmo.getMotionState();
@BlueMagnificent
BlueMagnificent / contact_manifold_check_one.html
Last active August 3, 2020 15:19
Javascript 3D Physics Tut 3 Contact Manifold Check One
<html>
<head>
<meta charset="utf-8">
<title>Collision JS 3D Physics</title>
<style>
body { margin: 0; }
</style>
</head>
<body>
@BlueMagnificent
BlueMagnificent / contact_manifold_check_two.html
Last active November 16, 2021 06:17
Javascript 3D Physics Tut 3 contact manifold check two
<html>
<head>
<meta charset="utf-8">
<title>Collision JS 3D Physics</title>
<style>
body { margin: 0; }
</style>
</head>
<body>
@BlueMagnificent
BlueMagnificent / contact_test.html
Last active August 3, 2020 15:20
Javascript 3D Physics Tut 3 contact test
<html>
<head>
<meta charset="utf-8">
<title>Collision JS 3D Physics</title>
<style>
body { margin: 0; }
</style>
</head>
<body>
@BlueMagnificent
BlueMagnificent / setupContactResultCallback.js
Last active August 3, 2020 09:24
Javascript 3D Physics Tut 3 Setup Contact Result Callback
function setupContactResultCallback(){
cbContactResult = new Ammo.ConcreteContactResultCallback();
cbContactResult.addSingleResult = function(cp, colObj0Wrap, partId0, index0, colObj1Wrap, partId1, index1){
let contactPoint = Ammo.wrapPointer( cp, Ammo.btManifoldPoint );
const distance = contactPoint.getDistance();
@BlueMagnificent
BlueMagnificent / contact_test_one.html
Last active August 3, 2020 15:20
Javascript 3D Physics Tut 3 Contact Test One
<html>
<head>
<meta charset="utf-8">
<title>Collision JS 3D Physics</title>
<style>
body { margin: 0; }
</style>
</head>
<body>
<script src="js/three.js"></script>
@BlueMagnificent
BlueMagnificent / setupContactPairResultCallback.js
Last active August 3, 2020 16:04
Javascript 3D Physics Tut 3 Setup Contact Pair Result Callback
function setupContactPairResultCallback(){
cbContactPairResult = new Ammo.ConcreteContactResultCallback();
cbContactPairResult.hasContact = false;
cbContactPairResult.addSingleResult = function(cp, colObj0Wrap, partId0, index0, colObj1Wrap, partId1, index1){
let contactPoint = Ammo.wrapPointer( cp, Ammo.btManifoldPoint );
@BlueMagnificent
BlueMagnificent / jump.js
Created August 3, 2020 13:35
Javascript 3D Physics Tut 3 Jump
function jump(){
cbContactPairResult.hasContact = false;
physicsWorld.contactPairTest(ball.userData.physicsBody, redTile.userData.physicsBody, cbContactPairResult);
if( !cbContactPairResult.hasContact ) return;
let jumpImpulse = new Ammo.btVector3( 0, 15, 0 );