Skip to content

Instantly share code, notes, and snippets.

@mpaccione
Created July 31, 2019 18:16
Show Gist options
  • Save mpaccione/4a37558b0a89595897a82d794498fe51 to your computer and use it in GitHub Desktop.
Save mpaccione/4a37558b0a89595897a82d794498fe51 to your computer and use it in GitHub Desktop.
Three.js Helicopter Collision Raycaster Issue
MAIN HELICOPTER CLASS
//////////////////////////////
/////////////////////////////
collisionDetection(){
console.log("collisionDetection()");
const obj = {
rayCasters: this.rayCasters,
collidableMeshList: window.collidableMeshList
}
// console.log(obj);
this.colWorker.postMessage(JSON.stringify(obj));
// if (this.rayCasters !== undefined) {
// for (let i = 0; i < window.collidableMeshList.length; i++) {
// for (let n = 0; n < this.rayCasters.length; n++) {
// const collisionResults = this.rayCasters[n].intersectObject( window.collidableMeshList[i], true )
// // if ( collisionResults.length > 0 && collisionResults[0].distance < directionVector.length() ) {
// if ( collisionResults.length > 0 ) {
// this.landed = true;
// console.log("Collision with vectorLength")
// }
// }
// }
// }
}
(Excerpt from other file below)
///////////////////////////////////////////////
// Helicopter Collision Detection Web Worker //
//////////////////////////////////////////////
self.addEventListener("message", function(e){
const data = JSON.parse(e.data);
if (data.rayCasters !== undefined) {
for (let i = 0; i < data.collidableMeshList.length; i++) {
for (let n = 0; n < data.rayCasters.length; n++) {
console.log(data.rayCasters[n]);
// data.collidableMeshList[i].updateMatrixWorld()
const collisionResults = data.rayCasters[n].intersectObjects( data.collidableMeshList[i], true )
// if ( collisionResults.length > 0 && collisionResults[0].distance < directionVector.length() ) {
if ( collisionResults.length > 0 ) {
console.log("Collision");
self.postMessage(true);
} else {
self.postMessage(false);
}
self.postMessage(false);
}
}
}
}, false);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment