diff --git a/.gitignore b/.gitignore index c20e1e1..08fef67 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.vscode # Created by https://www.gitignore.io/api/osx,linux,windows,visualstudiocode @@ -71,4 +72,4 @@ $RECYCLE.BIN/ # Windows shortcuts *.lnk -# End of https://www.gitignore.io/api/osx,linux,windows,visualstudiocode \ No newline at end of file +# End of https://www.gitignore.io/api/osx,linux,windows,visualstudiocode diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index cb97f57..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "haxe.displayConfigurations": [ - ["samples/build.hxml"], - ["completion.hxml"], - ["test.interp.hxml"] - ] -} diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index 2e5b610..0000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "version": "2.0.0", - "command": "haxe", - "args": ["completion.hxml"], - "problemMatcher": "$haxe" -} diff --git a/samples/bin/threed_collision.html b/samples/bin/threed_collision.html new file mode 100644 index 0000000..f4f5f52 --- /dev/null +++ b/samples/bin/threed_collision.html @@ -0,0 +1,27 @@ + + + + Headbutt 3D Collisions + + + + + + + + + + \ No newline at end of file diff --git a/samples/bin/threed_collision.js b/samples/bin/threed_collision.js new file mode 100644 index 0000000..148f617 --- /dev/null +++ b/samples/bin/threed_collision.js @@ -0,0 +1,2471 @@ +// Generated by Haxe 3.4.2 +(function ($global) { "use strict"; +function $extend(from, fields) { + function Inherit() {} Inherit.prototype = from; var proto = new Inherit(); + for (var name in fields) proto[name] = fields[name]; + if( fields.toString !== Object.prototype.toString ) proto.toString = fields.toString; + return proto; +} +var HxOverrides = function() { }; +HxOverrides.__name__ = true; +HxOverrides.remove = function(a,obj) { + var i = a.indexOf(obj); + if(i == -1) { + return false; + } + a.splice(i,1); + return true; +}; +var Main = function() { }; +Main.__name__ = true; +Main.main = function() { + var hb = new headbutt_Headbutt3D(); + var canvas = window.document.getElementById("canvas"); + var scene = new THREE.Scene(); + var cubeMat = new THREE.MeshLambertMaterial({ color : 13369344}); + var cube = new THREE.Mesh(new THREE.BoxGeometry(50,50,50,1,1,1),cubeMat); + cube.position.set(0,0,0); + scene.add(cube); + var this1 = new Float32Array(4); + this1[0] = -25; + this1[1] = -25; + this1[2] = -25; + var this2 = new Float32Array(4); + this2[0] = -25; + this2[1] = -25; + this2[2] = 25; + var this3 = new Float32Array(4); + this3[0] = -25; + this3[1] = 25; + this3[2] = -25; + var this4 = new Float32Array(4); + this4[0] = -25; + this4[1] = 25; + this4[2] = 25; + var this5 = new Float32Array(4); + this5[0] = 25; + this5[1] = -25; + this5[2] = -25; + var this6 = new Float32Array(4); + this6[0] = 25; + this6[1] = -25; + this6[2] = 25; + var this7 = new Float32Array(4); + this7[0] = 25; + this7[1] = 25; + this7[2] = -25; + var this8 = new Float32Array(4); + this8[0] = 25; + this8[1] = 25; + this8[2] = 25; + var cubeShape = new headbutt_shapes_Polygon3D([this1,this2,this3,this4,this5,this6,this7,this8]); + var sphere = new THREE.Mesh(new THREE.SphereGeometry(20),new THREE.MeshLambertMaterial({ color : 204})); + sphere.position.set(50,0,0); + scene.add(sphere); + var this9 = new Float32Array(4); + this9[0] = 50; + this9[1] = 0; + this9[2] = 0; + var sphereShape = new headbutt_shapes_Sphere(this9,20); + var pointLight = new THREE.PointLight(16777215,1,0); + pointLight.position.set(100,200,50); + scene.add(pointLight); + var ambientLight = new THREE.AmbientLight(4210752); + scene.add(ambientLight); + var grid = new THREE.GridHelper(200,25); + scene.add(grid); + var camera = new THREE.PerspectiveCamera(70,canvas.clientWidth / canvas.clientHeight,1,1000); + camera.position.set(75 * Math.cos(Math.PI / 4),75,75 * Math.sin(Math.PI / 4)); + camera.lookAt(cube.position); + scene.add(camera); + var renderer = new THREE.WebGLRenderer({ canvas : canvas}); + var tmp = window.document.body.clientWidth; + renderer.setSize(tmp,window.document.body.clientHeight); + renderer.setClearColor(16777215); + window.document.body.appendChild(renderer.domElement); + var t = 0; + var speed = 0.1; + var update = null; + update = function(f) { + window.requestAnimationFrame(update); + var update1 = window.document.body.clientWidth; + camera.aspect = update1 / window.document.body.clientHeight; + var update2 = window.document.body.clientWidth; + renderer.setSize(update2,window.document.body.clientHeight); + camera.updateProjectionMatrix(); + sphere.position.x = 50 * Math.sin(2 * Math.PI * t * speed); + sphere.position.y = 50 * Math.sin(2 * Math.PI * 2 * t * speed); + sphere.position.z = 50 * Math.sin(2 * Math.PI * 4 * t * speed); + sphereShape.get_centre()[0] = sphere.position.x; + sphereShape.get_centre()[1] = sphere.position.y; + sphereShape.get_centre()[2] = sphere.position.z; + var collision = hb.test(cubeShape,sphereShape); + cubeMat.setValues({ color : collision ? 52224 : 13369344}); + renderer.render(scene,camera); + t += 0.0166666666666666664; + return true; + }; + update(0); +}; +Math.__name__ = true; +var Std = function() { }; +Std.__name__ = true; +Std.string = function(s) { + return js_Boot.__string_rec(s,""); +}; +var glm_GLM = function() { }; +glm_GLM.__name__ = true; +glm_GLM.lerp = function(a,b,t) { + return a + t * (b - a); +}; +glm_GLM.translate = function(translation,dest) { + dest[0] = 1; + dest[1] = 0; + dest[2] = 0; + dest[3] = 0; + dest[4] = 0; + dest[5] = 1; + dest[6] = 0; + dest[7] = 0; + dest[8] = 0; + dest[9] = 0; + dest[10] = 1; + dest[11] = 0; + dest[12] = 0; + dest[13] = 0; + dest[14] = 0; + dest[15] = 1; + dest[12] = translation[0]; + dest[13] = translation[1]; + dest[14] = translation[2]; + return dest; +}; +glm_GLM.rotate = function(rotation,dest) { + var x2 = rotation[0] + rotation[0]; + var y2 = rotation[1] + rotation[1]; + var z2 = rotation[2] + rotation[2]; + var xx = rotation[0] * x2; + var xy = rotation[0] * y2; + var xz = rotation[0] * z2; + var yy = rotation[1] * y2; + var yz = rotation[1] * z2; + var zz = rotation[2] * z2; + var wx = rotation[3] * x2; + var wy = rotation[3] * y2; + var wz = rotation[3] * z2; + dest[0] = 1 - (yy + zz); + dest[4] = xy - wz; + dest[8] = xz + wy; + dest[12] = 0; + dest[1] = xy + wz; + dest[5] = 1 - (xx + zz); + dest[9] = yz - wx; + dest[13] = 0; + dest[2] = xz - wy; + dest[6] = yz + wx; + dest[10] = 1 - (xx + yy); + dest[14] = 0; + dest[3] = 0; + dest[7] = 0; + dest[11] = 0; + dest[15] = 1; + return dest; +}; +glm_GLM.scale = function(amount,dest) { + dest[0] = 1; + dest[1] = 0; + dest[2] = 0; + dest[3] = 0; + dest[4] = 0; + dest[5] = 1; + dest[6] = 0; + dest[7] = 0; + dest[8] = 0; + dest[9] = 0; + dest[10] = 1; + dest[11] = 0; + dest[12] = 0; + dest[13] = 0; + dest[14] = 0; + dest[15] = 1; + dest[0] = amount[0]; + dest[5] = amount[1]; + dest[10] = amount[2]; + return dest; +}; +glm_GLM.transform = function(translation,rotation,scale,dest) { + var x2 = rotation[0] + rotation[0]; + var y2 = rotation[1] + rotation[1]; + var z2 = rotation[2] + rotation[2]; + var xx = rotation[0] * x2; + var xy = rotation[0] * y2; + var xz = rotation[0] * z2; + var yy = rotation[1] * y2; + var yz = rotation[1] * z2; + var zz = rotation[2] * z2; + var wx = rotation[3] * x2; + var wy = rotation[3] * y2; + var wz = rotation[3] * z2; + dest[0] = (1 - (yy + zz)) * scale[0]; + dest[1] = (xy + wz) * scale[0]; + dest[2] = (xz - wy) * scale[0]; + dest[3] = 0; + dest[4] = (xy - wz) * scale[1]; + dest[5] = (1 - (xx + zz)) * scale[1]; + dest[6] = (yz + wx) * scale[1]; + dest[7] = 0; + dest[8] = (xz + wy) * scale[2]; + dest[9] = (yz - wx) * scale[2]; + dest[10] = (1 - (xx + yy)) * scale[2]; + dest[11] = 0; + dest[12] = translation[0]; + dest[13] = translation[1]; + dest[14] = translation[2]; + dest[15] = 1; + return dest; +}; +glm_GLM.lookAt = function(eye,centre,up,dest) { + var x0; + var x1; + var x2; + var y0; + var y1; + var y2; + var z0; + var z1; + var z2; + var len; + if(Math.abs(eye[0] - centre[0]) < glm_GLM.EPSILON && Math.abs(eye[1] - centre[1]) < glm_GLM.EPSILON && Math.abs(eye[2] - centre[2]) < glm_GLM.EPSILON) { + dest[0] = 1; + dest[1] = 0; + dest[2] = 0; + dest[3] = 0; + dest[4] = 0; + dest[5] = 1; + dest[6] = 0; + dest[7] = 0; + dest[8] = 0; + dest[9] = 0; + dest[10] = 1; + dest[11] = 0; + dest[12] = 0; + dest[13] = 0; + dest[14] = 0; + dest[15] = 1; + return dest; + } + z0 = eye[0] - centre[0]; + z1 = eye[1] - centre[1]; + z2 = eye[2] - centre[2]; + len = 1 / Math.sqrt(z0 * z0 + z1 * z1 + z2 * z2); + z0 *= len; + z1 *= len; + z2 *= len; + x0 = up[1] * z2 - up[2] * z1; + x1 = up[2] * z0 - up[0] * z2; + x2 = up[0] * z1 - up[1] * z0; + len = Math.sqrt(x0 * x0 + x1 * x1 + x2 * x2); + if(len <= glm_GLM.EPSILON) { + x0 = 0; + x1 = 0; + x2 = 0; + } else { + len = 1 / len; + x0 *= len; + x1 *= len; + x2 *= len; + } + y0 = z1 * x2 - z2 * x1; + y1 = z2 * x0 - z0 * x2; + y2 = z0 * x1 - z1 * x0; + len = Math.sqrt(y0 * y0 + y1 * y1 + y2 * y2); + if(len <= glm_GLM.EPSILON) { + y0 = 0; + y1 = 0; + y2 = 0; + } else { + len = 1 / len; + y0 *= len; + y1 *= len; + y2 *= len; + } + dest[0] = x0; + dest[1] = y0; + dest[2] = z0; + dest[3] = 0; + dest[4] = x1; + dest[5] = y1; + dest[6] = z1; + dest[7] = 0; + dest[8] = x2; + dest[9] = y2; + dest[10] = z2; + dest[11] = 0; + dest[12] = -(x0 * eye[0] + x1 * eye[1] + x2 * eye[2]); + dest[13] = -(y0 * eye[0] + y1 * eye[1] + y2 * eye[2]); + dest[14] = -(z0 * eye[0] + z1 * eye[1] + z2 * eye[2]); + dest[15] = 1; + return dest; +}; +glm_GLM.perspective = function(fovy,aspectRatio,near,far,dest) { + var f = 1 / Math.tan(fovy / 2); + var nf = 1 / (near - far); + dest[0] = f / aspectRatio; + dest[1] = 0; + dest[2] = 0; + dest[3] = 0; + dest[4] = 0; + dest[5] = f; + dest[6] = 0; + dest[7] = 0; + dest[8] = 0; + dest[9] = 0; + dest[10] = (far + near) * nf; + dest[11] = -1; + dest[12] = 0; + dest[13] = 0; + dest[14] = 2 * far * near * nf; + dest[15] = 0; + return dest; +}; +glm_GLM.orthographic = function(left,right,bottom,top,near,far,dest) { + if(far == null) { + far = 1; + } + if(near == null) { + near = -1; + } + var rl = 1 / (right - left); + var tb = 1 / (top - bottom); + var fn = 1 / (far - near); + dest[0] = 2 * rl; + dest[4] = 0; + dest[8] = 0; + dest[12] = -1 * (left + right) * rl; + dest[1] = 0; + dest[5] = 2 * tb; + dest[9] = 0; + dest[13] = -1 * (top + bottom) * tb; + dest[2] = 0; + dest[6] = 0; + dest[10] = -2 * fn; + dest[14] = -1 * (far + near) * fn; + dest[3] = 0; + dest[7] = 0; + dest[11] = 0; + dest[15] = 1; + return dest; +}; +glm_GLM.frustum = function(left,right,bottom,top,near,far,dest) { + if(far == null) { + far = 1; + } + if(near == null) { + near = -1; + } + var rl = 1 / (right - left); + var tb = 1 / (top - bottom); + var nf = 1 / (near - far); + dest[0] = near * 2 * rl; + dest[1] = 0; + dest[2] = 0; + dest[3] = 0; + dest[4] = 0; + dest[5] = near * 2 * tb; + dest[6] = 0; + dest[7] = 0; + dest[8] = (right + left) * tb; + dest[9] = (top + bottom) * tb; + dest[10] = (far + near) * nf; + dest[11] = -1; + dest[12] = 0; + dest[13] = 0; + dest[14] = far * near * 2 * nf; + dest[15] = 0; + return dest; +}; +var glm__$Mat4_Mat4_$Impl_$ = {}; +glm__$Mat4_Mat4_$Impl_$.__name__ = true; +glm__$Mat4_Mat4_$Impl_$._new = function(_r0c0,_r0c1,_r0c2,_r0c3,_r1c0,_r1c1,_r1c2,_r1c3,_r2c0,_r2c1,_r2c2,_r2c3,_r3c0,_r3c1,_r3c2,_r3c3) { + if(_r3c3 == null) { + _r3c3 = 0; + } + if(_r3c2 == null) { + _r3c2 = 0; + } + if(_r3c1 == null) { + _r3c1 = 0; + } + if(_r3c0 == null) { + _r3c0 = 0; + } + if(_r2c3 == null) { + _r2c3 = 0; + } + if(_r2c2 == null) { + _r2c2 = 0; + } + if(_r2c1 == null) { + _r2c1 = 0; + } + if(_r2c0 == null) { + _r2c0 = 0; + } + if(_r1c3 == null) { + _r1c3 = 0; + } + if(_r1c2 == null) { + _r1c2 = 0; + } + if(_r1c1 == null) { + _r1c1 = 0; + } + if(_r1c0 == null) { + _r1c0 = 0; + } + if(_r0c3 == null) { + _r0c3 = 0; + } + if(_r0c2 == null) { + _r0c2 = 0; + } + if(_r0c1 == null) { + _r0c1 = 0; + } + if(_r0c0 == null) { + _r0c0 = 0; + } + var this1 = new Float32Array(16); + this1[0] = _r0c0; + this1[1] = _r1c0; + this1[2] = _r2c0; + this1[3] = _r3c0; + this1[4] = _r0c1; + this1[5] = _r1c1; + this1[6] = _r2c1; + this1[7] = _r3c1; + this1[8] = _r0c2; + this1[9] = _r1c2; + this1[10] = _r2c2; + this1[11] = _r3c2; + this1[12] = _r0c3; + this1[13] = _r1c3; + this1[14] = _r2c3; + this1[15] = _r3c3; + return this1; +}; +glm__$Mat4_Mat4_$Impl_$.get_r0c0 = function(this1) { + return this1[0]; +}; +glm__$Mat4_Mat4_$Impl_$.set_r0c0 = function(this1,v) { + return this1[0] = v; +}; +glm__$Mat4_Mat4_$Impl_$.get_r1c0 = function(this1) { + return this1[1]; +}; +glm__$Mat4_Mat4_$Impl_$.set_r1c0 = function(this1,v) { + return this1[1] = v; +}; +glm__$Mat4_Mat4_$Impl_$.get_r2c0 = function(this1) { + return this1[2]; +}; +glm__$Mat4_Mat4_$Impl_$.set_r2c0 = function(this1,v) { + return this1[2] = v; +}; +glm__$Mat4_Mat4_$Impl_$.get_r3c0 = function(this1) { + return this1[3]; +}; +glm__$Mat4_Mat4_$Impl_$.set_r3c0 = function(this1,v) { + return this1[3] = v; +}; +glm__$Mat4_Mat4_$Impl_$.get_r0c1 = function(this1) { + return this1[4]; +}; +glm__$Mat4_Mat4_$Impl_$.set_r0c1 = function(this1,v) { + return this1[4] = v; +}; +glm__$Mat4_Mat4_$Impl_$.get_r1c1 = function(this1) { + return this1[5]; +}; +glm__$Mat4_Mat4_$Impl_$.set_r1c1 = function(this1,v) { + return this1[5] = v; +}; +glm__$Mat4_Mat4_$Impl_$.get_r2c1 = function(this1) { + return this1[6]; +}; +glm__$Mat4_Mat4_$Impl_$.set_r2c1 = function(this1,v) { + return this1[6] = v; +}; +glm__$Mat4_Mat4_$Impl_$.get_r3c1 = function(this1) { + return this1[7]; +}; +glm__$Mat4_Mat4_$Impl_$.set_r3c1 = function(this1,v) { + return this1[7] = v; +}; +glm__$Mat4_Mat4_$Impl_$.get_r0c2 = function(this1) { + return this1[8]; +}; +glm__$Mat4_Mat4_$Impl_$.set_r0c2 = function(this1,v) { + return this1[8] = v; +}; +glm__$Mat4_Mat4_$Impl_$.get_r1c2 = function(this1) { + return this1[9]; +}; +glm__$Mat4_Mat4_$Impl_$.set_r1c2 = function(this1,v) { + return this1[9] = v; +}; +glm__$Mat4_Mat4_$Impl_$.get_r2c2 = function(this1) { + return this1[10]; +}; +glm__$Mat4_Mat4_$Impl_$.set_r2c2 = function(this1,v) { + return this1[10] = v; +}; +glm__$Mat4_Mat4_$Impl_$.get_r3c2 = function(this1) { + return this1[11]; +}; +glm__$Mat4_Mat4_$Impl_$.set_r3c2 = function(this1,v) { + return this1[11] = v; +}; +glm__$Mat4_Mat4_$Impl_$.get_r0c3 = function(this1) { + return this1[12]; +}; +glm__$Mat4_Mat4_$Impl_$.set_r0c3 = function(this1,v) { + return this1[12] = v; +}; +glm__$Mat4_Mat4_$Impl_$.get_r1c3 = function(this1) { + return this1[13]; +}; +glm__$Mat4_Mat4_$Impl_$.set_r1c3 = function(this1,v) { + return this1[13] = v; +}; +glm__$Mat4_Mat4_$Impl_$.get_r2c3 = function(this1) { + return this1[14]; +}; +glm__$Mat4_Mat4_$Impl_$.set_r2c3 = function(this1,v) { + return this1[14] = v; +}; +glm__$Mat4_Mat4_$Impl_$.get_r3c3 = function(this1) { + return this1[15]; +}; +glm__$Mat4_Mat4_$Impl_$.set_r3c3 = function(this1,v) { + return this1[15] = v; +}; +glm__$Mat4_Mat4_$Impl_$.get = function(this1,key) { + return this1[key]; +}; +glm__$Mat4_Mat4_$Impl_$.arrayWrite = function(this1,key,value) { + return this1[key] = value; +}; +glm__$Mat4_Mat4_$Impl_$.equals = function(this1,b) { + var equal = true; + var _g = 0; + while(_g < 16) { + var i = _g++; + if(Math.abs(this1[i] - b[i]) >= glm_GLM.EPSILON) { + equal = false; + break; + } + } + return equal; +}; +glm__$Mat4_Mat4_$Impl_$.toString = function(this1) { + return "[" + this1[0] + ", " + this1[4] + ", " + this1[8] + ", " + this1[12] + "]\n" + ("[" + this1[1] + ", " + this1[5] + ", " + this1[9] + ", " + this1[13] + "]\n") + ("[" + this1[2] + ", " + this1[6] + ", " + this1[10] + ", " + this1[14] + "]\n") + ("[" + this1[3] + ", " + this1[7] + ", " + this1[11] + ", " + this1[15] + "]\n"); +}; +glm__$Mat4_Mat4_$Impl_$.identity = function(dest) { + dest[0] = 1; + dest[1] = 0; + dest[2] = 0; + dest[3] = 0; + dest[4] = 0; + dest[5] = 1; + dest[6] = 0; + dest[7] = 0; + dest[8] = 0; + dest[9] = 0; + dest[10] = 1; + dest[11] = 0; + dest[12] = 0; + dest[13] = 0; + dest[14] = 0; + dest[15] = 1; + return dest; +}; +glm__$Mat4_Mat4_$Impl_$.copy = function(src,dest) { + dest[0] = src[0]; + dest[1] = src[1]; + dest[2] = src[2]; + dest[3] = src[3]; + dest[4] = src[4]; + dest[5] = src[5]; + dest[6] = src[6]; + dest[7] = src[7]; + dest[8] = src[8]; + dest[9] = src[9]; + dest[10] = src[10]; + dest[11] = src[11]; + dest[12] = src[12]; + dest[13] = src[13]; + dest[14] = src[14]; + dest[15] = src[15]; + return dest; +}; +glm__$Mat4_Mat4_$Impl_$.transpose = function(src,dest) { + var src01 = src[1]; + var src02 = src[2]; + var src03 = src[3]; + var src12 = src[6]; + var src13 = src[7]; + var src23 = src[11]; + dest[0] = src[0]; + dest[1] = src[4]; + dest[2] = src[8]; + dest[3] = src[12]; + dest[4] = src01; + dest[5] = src[5]; + dest[6] = src[9]; + dest[7] = src[13]; + dest[8] = src02; + dest[9] = src12; + dest[10] = src[10]; + dest[11] = src[14]; + dest[12] = src03; + dest[13] = src13; + dest[14] = src23; + dest[15] = src[15]; + return dest; +}; +glm__$Mat4_Mat4_$Impl_$.determinant = function(src) { + var a00 = src[0]; + var a01 = src[1]; + var a02 = src[2]; + var a03 = src[3]; + var a10 = src[4]; + var a11 = src[5]; + var a12 = src[6]; + var a13 = src[7]; + var a20 = src[8]; + var a21 = src[9]; + var a22 = src[10]; + var a23 = src[11]; + var a30 = src[12]; + var a31 = src[13]; + var a32 = src[14]; + var a33 = src[15]; + var b00 = a00 * a11 - a01 * a10; + var b01 = a00 * a12 - a02 * a10; + var b02 = a00 * a13 - a03 * a10; + var b03 = a01 * a12 - a02 * a11; + var b04 = a01 * a13 - a03 * a11; + var b05 = a02 * a13 - a03 * a12; + var b06 = a20 * a31 - a21 * a30; + var b07 = a20 * a32 - a22 * a30; + var b08 = a20 * a33 - a23 * a30; + var b09 = a21 * a32 - a22 * a31; + var b10 = a21 * a33 - a23 * a31; + var b11 = a22 * a33 - a23 * a32; + return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06; +}; +glm__$Mat4_Mat4_$Impl_$.invert = function(src,dest) { + var a00 = src[0]; + var a01 = src[4]; + var a02 = src[8]; + var a03 = src[12]; + var a10 = src[1]; + var a11 = src[5]; + var a12 = src[9]; + var a13 = src[13]; + var a20 = src[2]; + var a21 = src[6]; + var a22 = src[10]; + var a23 = src[14]; + var a30 = src[3]; + var a31 = src[7]; + var a32 = src[11]; + var a33 = src[15]; + var t00 = a12 * a23 * a31 - a13 * a22 * a31 + a13 * a21 * a32 - a11 * a23 * a32 - a12 * a21 * a33 + a11 * a22 * a33; + var t01 = a03 * a22 * a31 - a02 * a23 * a31 - a03 * a21 * a32 + a01 * a23 * a32 + a02 * a21 * a33 - a01 * a22 * a33; + var t02 = a02 * a13 * a31 - a03 * a12 * a31 + a03 * a11 * a32 - a01 * a13 * a32 - a02 * a11 * a33 + a01 * a12 * a33; + var t03 = a03 * a12 * a21 - a02 * a13 * a21 - a03 * a11 * a22 + a01 * a13 * a22 + a02 * a11 * a23 - a01 * a12 * a23; + var det = a00 * t00 + a10 * t01 + a20 * t02 + a30 * t03; + if(Math.abs(det) <= glm_GLM.EPSILON) { + throw new js__$Boot_HaxeError("Can't invert matrix, det (" + det + ") is too small!"); + } + var idet = 1 / det; + dest[0] = t00 * idet; + dest[1] = (a13 * a22 * a30 - a12 * a23 * a30 - a13 * a20 * a32 + a10 * a23 * a32 + a12 * a20 * a33 - a10 * a22 * a33) * idet; + dest[2] = (a11 * a23 * a30 - a13 * a21 * a30 + a13 * a20 * a31 - a10 * a23 * a31 - a11 * a20 * a33 + a10 * a21 * a33) * idet; + dest[3] = (a12 * a21 * a30 - a11 * a22 * a30 - a12 * a20 * a31 + a10 * a22 * a31 + a11 * a20 * a32 - a10 * a21 * a32) * idet; + dest[4] = t01 * idet; + dest[5] = (a02 * a23 * a30 - a03 * a22 * a30 + a03 * a20 * a32 - a00 * a23 * a32 - a02 * a20 * a33 + a00 * a22 * a33) * idet; + dest[6] = (a03 * a21 * a30 - a01 * a23 * a30 - a03 * a20 * a31 + a00 * a23 * a31 + a01 * a20 * a33 - a00 * a21 * a33) * idet; + dest[7] = (a01 * a22 * a30 - a02 * a21 * a30 + a02 * a20 * a31 - a00 * a22 * a31 - a01 * a20 * a32 + a00 * a21 * a32) * idet; + dest[8] = t02 * idet; + dest[9] = (a03 * a12 * a30 - a02 * a13 * a30 - a03 * a10 * a32 + a00 * a13 * a32 + a02 * a10 * a33 - a00 * a12 * a33) * idet; + dest[10] = (a01 * a13 * a30 - a03 * a11 * a30 + a03 * a10 * a31 - a00 * a13 * a31 - a01 * a10 * a33 + a00 * a11 * a33) * idet; + dest[11] = (a02 * a11 * a30 - a01 * a12 * a30 - a02 * a10 * a31 + a00 * a12 * a31 + a01 * a10 * a32 - a00 * a11 * a32) * idet; + dest[12] = t03 * idet; + dest[13] = (a02 * a13 * a20 - a03 * a12 * a20 + a03 * a10 * a22 - a00 * a13 * a22 - a02 * a10 * a23 + a00 * a12 * a23) * idet; + dest[14] = (a03 * a11 * a20 - a01 * a13 * a20 - a03 * a10 * a21 + a00 * a13 * a21 + a01 * a10 * a23 - a00 * a11 * a23) * idet; + dest[15] = (a01 * a12 * a20 - a02 * a11 * a20 + a02 * a10 * a21 - a00 * a12 * a21 - a01 * a10 * a22 + a00 * a11 * a22) * idet; + return dest; +}; +glm__$Mat4_Mat4_$Impl_$.multMat = function(a,b,dest) { + var a00 = a[0]; + var a01 = a[1]; + var a02 = a[2]; + var a03 = a[3]; + var a10 = a[4]; + var a11 = a[5]; + var a12 = a[6]; + var a13 = a[7]; + var a20 = a[8]; + var a21 = a[9]; + var a22 = a[10]; + var a23 = a[11]; + var a30 = a[12]; + var a31 = a[13]; + var a32 = a[14]; + var a33 = a[15]; + var b00 = b[0]; + var b01 = b[1]; + var b02 = b[2]; + var b03 = b[3]; + var b10 = b[4]; + var b11 = b[5]; + var b12 = b[6]; + var b13 = b[7]; + var b20 = b[8]; + var b21 = b[9]; + var b22 = b[10]; + var b23 = b[11]; + var b30 = b[12]; + var b31 = b[13]; + var b32 = b[14]; + var b33 = b[15]; + dest[0] = b00 * a00 + b01 * a10 + b02 * a20 + b03 * a30; + dest[1] = b00 * a01 + b01 * a11 + b02 * a21 + b03 * a31; + dest[2] = b00 * a02 + b01 * a12 + b02 * a22 + b03 * a32; + dest[3] = b00 * a03 + b01 * a13 + b02 * a23 + b03 * a33; + dest[4] = b10 * a00 + b11 * a10 + b12 * a20 + b13 * a30; + dest[5] = b10 * a01 + b11 * a11 + b12 * a21 + b13 * a31; + dest[6] = b10 * a02 + b11 * a12 + b12 * a22 + b13 * a32; + dest[7] = b10 * a03 + b11 * a13 + b12 * a23 + b13 * a33; + dest[8] = b20 * a00 + b21 * a10 + b22 * a20 + b23 * a30; + dest[9] = b20 * a01 + b21 * a11 + b22 * a21 + b23 * a31; + dest[10] = b20 * a02 + b21 * a12 + b22 * a22 + b23 * a32; + dest[11] = b20 * a03 + b21 * a13 + b22 * a23 + b23 * a33; + dest[12] = b30 * a00 + b31 * a10 + b32 * a20 + b33 * a30; + dest[13] = b30 * a01 + b31 * a11 + b32 * a21 + b33 * a31; + dest[14] = b30 * a02 + b31 * a12 + b32 * a22 + b33 * a32; + dest[15] = b30 * a03 + b31 * a13 + b32 * a23 + b33 * a33; + return dest; +}; +glm__$Mat4_Mat4_$Impl_$.multMatOp = function(a,b) { + var this1 = new Float32Array(16); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + this1[3] = 0; + this1[4] = 0; + this1[5] = 0; + this1[6] = 0; + this1[7] = 0; + this1[8] = 0; + this1[9] = 0; + this1[10] = 0; + this1[11] = 0; + this1[12] = 0; + this1[13] = 0; + this1[14] = 0; + this1[15] = 0; + var dest = this1; + var a00 = a[0]; + var a01 = a[1]; + var a02 = a[2]; + var a03 = a[3]; + var a10 = a[4]; + var a11 = a[5]; + var a12 = a[6]; + var a13 = a[7]; + var a20 = a[8]; + var a21 = a[9]; + var a22 = a[10]; + var a23 = a[11]; + var a30 = a[12]; + var a31 = a[13]; + var a32 = a[14]; + var a33 = a[15]; + var b00 = b[0]; + var b01 = b[1]; + var b02 = b[2]; + var b03 = b[3]; + var b10 = b[4]; + var b11 = b[5]; + var b12 = b[6]; + var b13 = b[7]; + var b20 = b[8]; + var b21 = b[9]; + var b22 = b[10]; + var b23 = b[11]; + var b30 = b[12]; + var b31 = b[13]; + var b32 = b[14]; + var b33 = b[15]; + dest[0] = b00 * a00 + b01 * a10 + b02 * a20 + b03 * a30; + dest[1] = b00 * a01 + b01 * a11 + b02 * a21 + b03 * a31; + dest[2] = b00 * a02 + b01 * a12 + b02 * a22 + b03 * a32; + dest[3] = b00 * a03 + b01 * a13 + b02 * a23 + b03 * a33; + dest[4] = b10 * a00 + b11 * a10 + b12 * a20 + b13 * a30; + dest[5] = b10 * a01 + b11 * a11 + b12 * a21 + b13 * a31; + dest[6] = b10 * a02 + b11 * a12 + b12 * a22 + b13 * a32; + dest[7] = b10 * a03 + b11 * a13 + b12 * a23 + b13 * a33; + dest[8] = b20 * a00 + b21 * a10 + b22 * a20 + b23 * a30; + dest[9] = b20 * a01 + b21 * a11 + b22 * a21 + b23 * a31; + dest[10] = b20 * a02 + b21 * a12 + b22 * a22 + b23 * a32; + dest[11] = b20 * a03 + b21 * a13 + b22 * a23 + b23 * a33; + dest[12] = b30 * a00 + b31 * a10 + b32 * a20 + b33 * a30; + dest[13] = b30 * a01 + b31 * a11 + b32 * a21 + b33 * a31; + dest[14] = b30 * a02 + b31 * a12 + b32 * a22 + b33 * a32; + dest[15] = b30 * a03 + b31 * a13 + b32 * a23 + b33 * a33; + return dest; +}; +glm__$Mat4_Mat4_$Impl_$.multVec = function(m,v,dest) { + var x = v[0]; + var y = v[1]; + var z = v[2]; + var w = v[3]; + dest[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w; + dest[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w; + dest[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w; + dest[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w; + return dest; +}; +glm__$Mat4_Mat4_$Impl_$.multVecOp = function(m,v) { + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + this1[3] = 0; + var dest = this1; + var x = v[0]; + var y = v[1]; + var z = v[2]; + var w = v[3]; + dest[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w; + dest[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w; + dest[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w; + dest[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w; + return dest; +}; +var glm__$Quat_Quat_$Impl_$ = {}; +glm__$Quat_Quat_$Impl_$.__name__ = true; +glm__$Quat_Quat_$Impl_$.get_x = function(this1) { + return this1[0]; +}; +glm__$Quat_Quat_$Impl_$.set_x = function(this1,v) { + return this1[0] = v; +}; +glm__$Quat_Quat_$Impl_$.get_y = function(this1) { + return this1[1]; +}; +glm__$Quat_Quat_$Impl_$.set_y = function(this1,v) { + return this1[1] = v; +}; +glm__$Quat_Quat_$Impl_$.get_z = function(this1) { + return this1[2]; +}; +glm__$Quat_Quat_$Impl_$.set_z = function(this1,v) { + return this1[2] = v; +}; +glm__$Quat_Quat_$Impl_$.get_w = function(this1) { + return this1[3]; +}; +glm__$Quat_Quat_$Impl_$.set_w = function(this1,v) { + return this1[3] = v; +}; +glm__$Quat_Quat_$Impl_$.get = function(this1,key) { + return this1[key]; +}; +glm__$Quat_Quat_$Impl_$.arrayWrite = function(this1,key,value) { + return this1[key] = value; +}; +glm__$Quat_Quat_$Impl_$._new = function(x,y,z,w) { + if(w == null) { + w = 1; + } + if(z == null) { + z = 0; + } + if(y == null) { + y = 0; + } + if(x == null) { + x = 0; + } + var this1 = new Float32Array(4); + this1[0] = x; + this1[1] = y; + this1[2] = z; + this1[3] = w; + return this1; +}; +glm__$Quat_Quat_$Impl_$.equals = function(this1,b) { + var equal = true; + var _g = 0; + while(_g < 4) { + var i = _g++; + if(Math.abs(this1[i] - b[i]) >= glm_GLM.EPSILON) { + equal = false; + break; + } + } + return equal; +}; +glm__$Quat_Quat_$Impl_$.toString = function(this1) { + return "{" + this1[0] + ", " + this1[1] + ", " + this1[2] + ", " + this1[3] + "}"; +}; +glm__$Quat_Quat_$Impl_$.lengthSquared = function(this1) { + return this1[0] * this1[0] + this1[1] * this1[1] + this1[2] * this1[2] + this1[3] * this1[3]; +}; +glm__$Quat_Quat_$Impl_$.$length = function(this1) { + return Math.sqrt(this1[0] * this1[0] + this1[1] * this1[1] + this1[2] * this1[2] + this1[3] * this1[3]); +}; +glm__$Quat_Quat_$Impl_$.normalize = function(q,dest) { + var length = Math.sqrt(q[0] * q[0] + q[1] * q[1] + q[2] * q[2] + q[3] * q[3]); + var mult = 0; + if(length >= glm_GLM.EPSILON) { + mult = 1 / length; + } + dest[0] = q[0] * mult; + dest[1] = q[1] * mult; + dest[2] = q[2] * mult; + dest[3] = q[3] * mult; + return dest; +}; +glm__$Quat_Quat_$Impl_$.dot = function(a,b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; +}; +glm__$Quat_Quat_$Impl_$.identity = function(dest) { + dest[0] = 0; + dest[1] = 0; + dest[2] = 0; + dest[3] = 1; + return dest; +}; +glm__$Quat_Quat_$Impl_$.copy = function(src,dest) { + dest[0] = src[0]; + dest[1] = src[1]; + dest[2] = src[2]; + dest[3] = src[3]; + return dest; +}; +glm__$Quat_Quat_$Impl_$.axisAngle = function(axis,angle,dest) { + angle *= 0.5; + var s = Math.sin(angle); + dest[0] = s * axis[0]; + dest[1] = s * axis[1]; + dest[2] = s * axis[2]; + dest[3] = Math.cos(angle); + return dest; +}; +glm__$Quat_Quat_$Impl_$.multiplyQuats = function(a,b,dest) { + var ax = a[0]; + var ay = a[1]; + var az = a[2]; + var aw = a[3]; + var bx = b[0]; + var by = b[1]; + var bz = b[2]; + var bw = b[3]; + dest[0] = ax * bw + aw * bx + ay * bz - az * by; + dest[1] = ay * bw + aw * by + az * bx - ax * bz; + dest[2] = az * bw + aw * bz + ax * by - ay * bx; + dest[3] = aw * bw - ax * bx - ay * by - az * bz; + return dest; +}; +glm__$Quat_Quat_$Impl_$.multiplyQuatsOp = function(a,b) { + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + this1[3] = 1; + var dest = this1; + var ax = a[0]; + var ay = a[1]; + var az = a[2]; + var aw = a[3]; + var bx = b[0]; + var by = b[1]; + var bz = b[2]; + var bw = b[3]; + dest[0] = ax * bw + aw * bx + ay * bz - az * by; + dest[1] = ay * bw + aw * by + az * bx - ax * bz; + dest[2] = az * bw + aw * bz + ax * by - ay * bx; + dest[3] = aw * bw - ax * bx - ay * by - az * bz; + return dest; +}; +glm__$Quat_Quat_$Impl_$.multiplyScalar = function(a,s,dest) { + dest[0] = a[0] * s; + dest[1] = a[1] * s; + dest[2] = a[2] * s; + dest[3] = a[3] * s; + return dest; +}; +glm__$Quat_Quat_$Impl_$.multiplyScalarOp = function(a,s) { + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + this1[3] = 1; + var dest = this1; + dest[0] = a[0] * s; + dest[1] = a[1] * s; + dest[2] = a[2] * s; + dest[3] = a[3] * s; + return dest; +}; +glm__$Quat_Quat_$Impl_$.lerp = function(a,b,t,dest) { + var a1 = a[0]; + dest[0] = a1 + t * (b[0] - a1); + var a2 = a[1]; + dest[1] = a2 + t * (b[1] - a2); + var a3 = a[2]; + dest[2] = a3 + t * (b[2] - a3); + var a4 = a[3]; + dest[3] = a4 + t * (b[3] - a4); + return dest; +}; +glm__$Quat_Quat_$Impl_$.slerp = function(a,b,t,dest) { + var bx = b[0]; + var by = b[1]; + var bz = b[2]; + var bw = b[3]; + var cosTheta = a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; + if(cosTheta < 0) { + cosTheta = -cosTheta; + bx = -bx; + by = -by; + bz = -bz; + bw = -bw; + } + if(cosTheta > 1 - glm_GLM.EPSILON) { + var a1 = a[0]; + dest[0] = a1 + t * (b[0] - a1); + var a2 = a[1]; + dest[1] = a2 + t * (b[1] - a2); + var a3 = a[2]; + dest[2] = a3 + t * (b[2] - a3); + var a4 = a[3]; + dest[3] = a4 + t * (b[3] - a4); + return dest; + } else { + var angle = Math.acos(cosTheta); + var sa = 1 / Math.sin(angle); + var i = Math.sin((1 - t) * angle); + var j = Math.sin(t * angle); + dest[0] = (i * a[0] + j * bx) * sa; + dest[1] = (i * a[1] + j * by) * sa; + dest[2] = (i * a[2] + j * bz) * sa; + dest[3] = (i * a[3] + j * bw) * sa; + return dest; + } +}; +glm__$Quat_Quat_$Impl_$.invert = function(q,dest) { + var x = q[0]; + var y = q[1]; + var z = q[2]; + var w = q[3]; + var d = q[0] * q[0] + q[1] * q[1] + q[2] * q[2] + q[3] * q[3]; + var oneOverD = d < glm_GLM.EPSILON ? 0 : 1 / d; + dest[0] = -x * oneOverD; + dest[1] = -y * oneOverD; + dest[2] = -z * oneOverD; + dest[3] = w * oneOverD; + return dest; +}; +glm__$Quat_Quat_$Impl_$.conjugate = function(q,dest) { + dest[0] = -1 * q[0]; + dest[1] = -1 * q[1]; + dest[2] = -1 * q[2]; + dest[3] = q[3]; + return dest; +}; +glm__$Quat_Quat_$Impl_$.fromEuler = function(x,y,z,dest) { + var c1 = Math.cos(x / 2); + var c2 = Math.cos(y / 2); + var c3 = Math.cos(z / 2); + var s1 = Math.sin(x / 2); + var s2 = Math.sin(y / 2); + var s3 = Math.sin(z / 2); + dest[0] = s1 * c2 * c3 + c1 * s2 * s3; + dest[1] = c1 * s2 * c3 - s1 * c2 * s3; + dest[2] = c1 * c2 * s3 + s1 * s2 * c3; + dest[3] = c1 * c2 * c3 - s1 * s2 * s3; + return dest; +}; +var glm__$Vec3_Vec3_$Impl_$ = {}; +glm__$Vec3_Vec3_$Impl_$.__name__ = true; +glm__$Vec3_Vec3_$Impl_$.get_x = function(this1) { + return this1[0]; +}; +glm__$Vec3_Vec3_$Impl_$.set_x = function(this1,v) { + return this1[0] = v; +}; +glm__$Vec3_Vec3_$Impl_$.get_y = function(this1) { + return this1[1]; +}; +glm__$Vec3_Vec3_$Impl_$.set_y = function(this1,v) { + return this1[1] = v; +}; +glm__$Vec3_Vec3_$Impl_$.get_z = function(this1) { + return this1[2]; +}; +glm__$Vec3_Vec3_$Impl_$.set_z = function(this1,v) { + return this1[2] = v; +}; +glm__$Vec3_Vec3_$Impl_$.get_r = function(this1) { + return this1[0]; +}; +glm__$Vec3_Vec3_$Impl_$.set_r = function(this1,v) { + return this1[0] = v; +}; +glm__$Vec3_Vec3_$Impl_$.get_g = function(this1) { + return this1[1]; +}; +glm__$Vec3_Vec3_$Impl_$.set_g = function(this1,v) { + return this1[1] = v; +}; +glm__$Vec3_Vec3_$Impl_$.get_b = function(this1) { + return this1[2]; +}; +glm__$Vec3_Vec3_$Impl_$.set_b = function(this1,v) { + return this1[2] = v; +}; +glm__$Vec3_Vec3_$Impl_$.get = function(this1,key) { + return this1[key]; +}; +glm__$Vec3_Vec3_$Impl_$.arrayWrite = function(this1,key,value) { + return this1[key] = value; +}; +glm__$Vec3_Vec3_$Impl_$._new = function(x,y,z) { + if(z == null) { + z = 0; + } + if(y == null) { + y = 0; + } + if(x == null) { + x = 0; + } + var this1 = new Float32Array(4); + this1[0] = x; + this1[1] = y; + this1[2] = z; + return this1; +}; +glm__$Vec3_Vec3_$Impl_$.equals = function(this1,b) { + var equal = true; + var _g = 0; + while(_g < 3) { + var i = _g++; + if(Math.abs(this1[i] - b[i]) >= glm_GLM.EPSILON) { + equal = false; + break; + } + } + return equal; +}; +glm__$Vec3_Vec3_$Impl_$.toString = function(this1) { + return "<" + this1[0] + ", " + this1[1] + ", " + this1[2] + ">"; +}; +glm__$Vec3_Vec3_$Impl_$.lengthSquared = function(this1) { + return this1[0] * this1[0] + this1[1] * this1[1] + this1[2] * this1[2]; +}; +glm__$Vec3_Vec3_$Impl_$.$length = function(this1) { + return Math.sqrt(this1[0] * this1[0] + this1[1] * this1[1] + this1[2] * this1[2]); +}; +glm__$Vec3_Vec3_$Impl_$.copy = function(src,dest) { + dest[0] = src[0]; + dest[1] = src[1]; + dest[2] = src[2]; + return dest; +}; +glm__$Vec3_Vec3_$Impl_$.set = function(dest,x,y,z) { + if(z == null) { + z = 0; + } + if(y == null) { + y = 0; + } + if(x == null) { + x = 0; + } + dest[0] = x; + dest[1] = y; + dest[2] = z; + return dest; +}; +glm__$Vec3_Vec3_$Impl_$.addVec = function(a,b,dest) { + dest[0] = a[0] + b[0]; + dest[1] = a[1] + b[1]; + dest[2] = a[2] + b[2]; + return dest; +}; +glm__$Vec3_Vec3_$Impl_$.subtractVec = function(a,b,dest) { + dest[0] = a[0] - b[0]; + dest[1] = a[1] - b[1]; + dest[2] = a[2] - b[2]; + return dest; +}; +glm__$Vec3_Vec3_$Impl_$.addVecOp = function(a,b) { + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + var dest = this1; + dest[0] = a[0] + b[0]; + dest[1] = a[1] + b[1]; + dest[2] = a[2] + b[2]; + return dest; +}; +glm__$Vec3_Vec3_$Impl_$.subtractVecOp = function(a,b) { + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + var dest = this1; + dest[0] = a[0] - b[0]; + dest[1] = a[1] - b[1]; + dest[2] = a[2] - b[2]; + return dest; +}; +glm__$Vec3_Vec3_$Impl_$.addScalar = function(a,s,dest) { + dest[0] = a[0] + s; + dest[1] = a[1] + s; + dest[2] = a[2] + s; + return dest; +}; +glm__$Vec3_Vec3_$Impl_$.multiplyScalar = function(a,s,dest) { + dest[0] = a[0] * s; + dest[1] = a[1] * s; + dest[2] = a[2] * s; + return dest; +}; +glm__$Vec3_Vec3_$Impl_$.addScalarOp = function(a,s) { + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + var dest = this1; + dest[0] = a[0] + s; + dest[1] = a[1] + s; + dest[2] = a[2] + s; + return dest; +}; +glm__$Vec3_Vec3_$Impl_$.subtractScalarOp = function(a,s) { + var s1 = -s; + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + var dest = this1; + dest[0] = a[0] + s1; + dest[1] = a[1] + s1; + dest[2] = a[2] + s1; + return dest; +}; +glm__$Vec3_Vec3_$Impl_$.multiplyScalarOp = function(a,s) { + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + var dest = this1; + dest[0] = a[0] * s; + dest[1] = a[1] * s; + dest[2] = a[2] * s; + return dest; +}; +glm__$Vec3_Vec3_$Impl_$.divideScalarOp = function(a,s) { + var s1 = 1 / s; + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + var dest = this1; + dest[0] = a[0] * s1; + dest[1] = a[1] * s1; + dest[2] = a[2] * s1; + return dest; +}; +glm__$Vec3_Vec3_$Impl_$.distanceSquared = function(a,b) { + return (a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1]) + (a[2] - b[2]) * (a[2] - b[2]); +}; +glm__$Vec3_Vec3_$Impl_$.distance = function(a,b) { + return Math.sqrt((a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1]) + (a[2] - b[2]) * (a[2] - b[2])); +}; +glm__$Vec3_Vec3_$Impl_$.dot = function(a,b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; +}; +glm__$Vec3_Vec3_$Impl_$.cross = function(a,b,dest) { + var this1 = new Float32Array(4); + this1[0] = a[1] * b[2] - a[2] * b[1]; + this1[1] = a[2] * b[0] - a[0] * b[2]; + this1[2] = a[0] * b[1] - a[1] * b[0]; + dest = this1; + return dest; +}; +glm__$Vec3_Vec3_$Impl_$.normalize = function(v,dest) { + var length = Math.sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]); + var mult = 0; + if(length >= glm_GLM.EPSILON) { + mult = 1 / length; + } + dest[0] = v[0] * mult; + dest[1] = v[1] * mult; + dest[2] = v[2] * mult; + return dest; +}; +glm__$Vec3_Vec3_$Impl_$.lerp = function(a,b,t,dest) { + var a1 = a[0]; + dest[0] = a1 + t * (b[0] - a1); + var a2 = a[1]; + dest[1] = a2 + t * (b[1] - a2); + var a3 = a[2]; + dest[2] = a3 + t * (b[2] - a3); + return dest; +}; +var glm__$Vec4_Vec4_$Impl_$ = {}; +glm__$Vec4_Vec4_$Impl_$.__name__ = true; +glm__$Vec4_Vec4_$Impl_$.get_x = function(this1) { + return this1[0]; +}; +glm__$Vec4_Vec4_$Impl_$.set_x = function(this1,v) { + return this1[0] = v; +}; +glm__$Vec4_Vec4_$Impl_$.get_y = function(this1) { + return this1[1]; +}; +glm__$Vec4_Vec4_$Impl_$.set_y = function(this1,v) { + return this1[1] = v; +}; +glm__$Vec4_Vec4_$Impl_$.get_z = function(this1) { + return this1[2]; +}; +glm__$Vec4_Vec4_$Impl_$.set_z = function(this1,v) { + return this1[2] = v; +}; +glm__$Vec4_Vec4_$Impl_$.get_w = function(this1) { + return this1[3]; +}; +glm__$Vec4_Vec4_$Impl_$.set_w = function(this1,v) { + return this1[3] = v; +}; +glm__$Vec4_Vec4_$Impl_$.get_r = function(this1) { + return this1[0]; +}; +glm__$Vec4_Vec4_$Impl_$.set_r = function(this1,v) { + return this1[0] = v; +}; +glm__$Vec4_Vec4_$Impl_$.get_g = function(this1) { + return this1[1]; +}; +glm__$Vec4_Vec4_$Impl_$.set_g = function(this1,v) { + return this1[1] = v; +}; +glm__$Vec4_Vec4_$Impl_$.get_b = function(this1) { + return this1[2]; +}; +glm__$Vec4_Vec4_$Impl_$.set_b = function(this1,v) { + return this1[2] = v; +}; +glm__$Vec4_Vec4_$Impl_$.get_a = function(this1) { + return this1[3]; +}; +glm__$Vec4_Vec4_$Impl_$.set_a = function(this1,v) { + return this1[3] = v; +}; +glm__$Vec4_Vec4_$Impl_$.get = function(this1,key) { + return this1[key]; +}; +glm__$Vec4_Vec4_$Impl_$.arrayWrite = function(this1,key,value) { + return this1[key] = value; +}; +glm__$Vec4_Vec4_$Impl_$._new = function(x,y,z,w) { + if(w == null) { + w = 0; + } + if(z == null) { + z = 0; + } + if(y == null) { + y = 0; + } + if(x == null) { + x = 0; + } + var this1 = new Float32Array(4); + this1[0] = x; + this1[1] = y; + this1[2] = z; + this1[3] = w; + return this1; +}; +glm__$Vec4_Vec4_$Impl_$.equals = function(this1,b) { + var equal = true; + var _g = 0; + while(_g < 4) { + var i = _g++; + if(Math.abs(this1[i] - b[i]) >= glm_GLM.EPSILON) { + equal = false; + break; + } + } + return equal; +}; +glm__$Vec4_Vec4_$Impl_$.toString = function(this1) { + return "<" + this1[0] + ", " + this1[1] + ", " + this1[2] + ", " + this1[3] + ">"; +}; +glm__$Vec4_Vec4_$Impl_$.lengthSquared = function(this1) { + return this1[0] * this1[0] + this1[1] * this1[1] + this1[2] * this1[2] + this1[3] * this1[3]; +}; +glm__$Vec4_Vec4_$Impl_$.$length = function(this1) { + return Math.sqrt(this1[0] * this1[0] + this1[1] * this1[1] + this1[2] * this1[2] + this1[3] * this1[3]); +}; +glm__$Vec4_Vec4_$Impl_$.copy = function(src,dest) { + dest[0] = src[0]; + dest[1] = src[1]; + dest[2] = src[2]; + dest[3] = src[3]; + return dest; +}; +glm__$Vec4_Vec4_$Impl_$.set = function(dest,x,y,z,w) { + if(w == null) { + w = 0; + } + if(z == null) { + z = 0; + } + if(y == null) { + y = 0; + } + if(x == null) { + x = 0; + } + dest[0] = x; + dest[1] = y; + dest[2] = z; + dest[3] = w; + return dest; +}; +glm__$Vec4_Vec4_$Impl_$.addVec = function(a,b,dest) { + dest[0] = a[0] + b[0]; + dest[1] = a[1] + b[1]; + dest[2] = a[2] + b[2]; + dest[3] = a[3] + b[3]; + return dest; +}; +glm__$Vec4_Vec4_$Impl_$.subtractVec = function(a,b,dest) { + dest[0] = a[0] - b[0]; + dest[1] = a[1] - b[1]; + dest[2] = a[2] - b[2]; + dest[3] = a[3] - b[3]; + return dest; +}; +glm__$Vec4_Vec4_$Impl_$.addVecOp = function(a,b) { + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + this1[3] = 0; + var dest = this1; + dest[0] = a[0] + b[0]; + dest[1] = a[1] + b[1]; + dest[2] = a[2] + b[2]; + dest[3] = a[3] + b[3]; + return dest; +}; +glm__$Vec4_Vec4_$Impl_$.subtractVecOp = function(a,b) { + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + this1[3] = 0; + var dest = this1; + dest[0] = a[0] - b[0]; + dest[1] = a[1] - b[1]; + dest[2] = a[2] - b[2]; + dest[3] = a[3] - b[3]; + return dest; +}; +glm__$Vec4_Vec4_$Impl_$.addScalar = function(a,s,dest) { + dest[0] = a[0] + s; + dest[1] = a[1] + s; + dest[2] = a[2] + s; + dest[3] = a[3] + s; + return dest; +}; +glm__$Vec4_Vec4_$Impl_$.multiplyScalar = function(a,s,dest) { + dest[0] = a[0] * s; + dest[1] = a[1] * s; + dest[2] = a[2] * s; + dest[3] = a[3] * s; + return dest; +}; +glm__$Vec4_Vec4_$Impl_$.addScalarOp = function(a,s) { + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + this1[3] = 0; + var dest = this1; + dest[0] = a[0] + s; + dest[1] = a[1] + s; + dest[2] = a[2] + s; + dest[3] = a[3] + s; + return dest; +}; +glm__$Vec4_Vec4_$Impl_$.subtractScalarOp = function(a,s) { + var s1 = -s; + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + this1[3] = 0; + var dest = this1; + dest[0] = a[0] + s1; + dest[1] = a[1] + s1; + dest[2] = a[2] + s1; + dest[3] = a[3] + s1; + return dest; +}; +glm__$Vec4_Vec4_$Impl_$.multiplyScalarOp = function(a,s) { + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + this1[3] = 0; + var dest = this1; + dest[0] = a[0] * s; + dest[1] = a[1] * s; + dest[2] = a[2] * s; + dest[3] = a[3] * s; + return dest; +}; +glm__$Vec4_Vec4_$Impl_$.divideScalarOp = function(a,s) { + var s1 = 1 / s; + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + this1[3] = 0; + var dest = this1; + dest[0] = a[0] * s1; + dest[1] = a[1] * s1; + dest[2] = a[2] * s1; + dest[3] = a[3] * s1; + return dest; +}; +glm__$Vec4_Vec4_$Impl_$.distanceSquared = function(a,b) { + return (a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1]) + (a[2] - b[2]) * (a[2] - b[2]) + (a[3] - b[3]) * (a[3] - b[3]); +}; +glm__$Vec4_Vec4_$Impl_$.distance = function(a,b) { + return Math.sqrt((a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1]) + (a[2] - b[2]) * (a[2] - b[2]) + (a[3] - b[3]) * (a[3] - b[3])); +}; +glm__$Vec4_Vec4_$Impl_$.dot = function(a,b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; +}; +glm__$Vec4_Vec4_$Impl_$.normalize = function(v,dest) { + var length = Math.sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2] + v[3] * v[3]); + var mult = 0; + if(length >= glm_GLM.EPSILON) { + mult = 1 / length; + } + dest[0] = v[0] * mult; + dest[1] = v[1] * mult; + dest[2] = v[2] * mult; + dest[3] = v[3] * mult; + return dest; +}; +glm__$Vec4_Vec4_$Impl_$.lerp = function(a,b,t,dest) { + var a1 = a[0]; + dest[0] = a1 + t * (b[0] - a1); + var a2 = a[1]; + dest[1] = a2 + t * (b[1] - a2); + var a3 = a[2]; + dest[2] = a3 + t * (b[2] - a3); + var a4 = a[3]; + dest[3] = a4 + t * (b[3] - a4); + return dest; +}; +var haxe_io_FPHelper = function() { }; +haxe_io_FPHelper.__name__ = true; +haxe_io_FPHelper.i32ToFloat = function(i) { + var sign = 1 - (i >>> 31 << 1); + var exp = i >>> 23 & 255; + var sig = i & 8388607; + if(sig == 0 && exp == 0) { + return 0.0; + } + return sign * (1 + Math.pow(2,-23) * sig) * Math.pow(2,exp - 127); +}; +haxe_io_FPHelper.floatToI32 = function(f) { + if(f == 0) { + return 0; + } + var af = f < 0 ? -f : f; + var exp = Math.floor(Math.log(af) / 0.6931471805599453); + if(exp < -127) { + exp = -127; + } else if(exp > 128) { + exp = 128; + } + var sig = Math.round((af / Math.pow(2,exp) - 1) * 8388608); + if(sig == 8388608 && exp < 128) { + sig = 0; + ++exp; + } + return (f < 0 ? -2147483648 : 0) | exp + 127 << 23 | sig; +}; +var headbutt_EvolveResult = { __ename__ : true, __constructs__ : ["NoIntersection","FoundIntersection","StillEvolving"] }; +headbutt_EvolveResult.NoIntersection = ["NoIntersection",0]; +headbutt_EvolveResult.NoIntersection.__enum__ = headbutt_EvolveResult; +headbutt_EvolveResult.FoundIntersection = ["FoundIntersection",1]; +headbutt_EvolveResult.FoundIntersection.__enum__ = headbutt_EvolveResult; +headbutt_EvolveResult.StillEvolving = ["StillEvolving",2]; +headbutt_EvolveResult.StillEvolving.__enum__ = headbutt_EvolveResult; +var headbutt_Headbutt3D = function() { + this.maxIterations = 20; +}; +headbutt_Headbutt3D.__name__ = true; +headbutt_Headbutt3D.prototype = { + calculateSupport: function(direction) { + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + var dest = this1; + dest[0] = direction[0] * -1; + dest[1] = direction[1] * -1; + dest[2] = direction[2] * -1; + var oppositeDirection = dest; + var src = this.shapeA.support(direction); + var this2 = new Float32Array(4); + this2[0] = 0; + this2[1] = 0; + this2[2] = 0; + var dest1 = this2; + dest1[0] = src[0]; + dest1[1] = src[1]; + dest1[2] = src[2]; + var newVertex = dest1; + var b = this.shapeB.support(oppositeDirection); + newVertex[0] -= b[0]; + newVertex[1] -= b[1]; + newVertex[2] -= b[2]; + return newVertex; + } + ,addSupport: function(direction) { + var newVertex = this.calculateSupport(direction); + this.vertices.push(newVertex); + return direction[0] * newVertex[0] + direction[1] * newVertex[1] + direction[2] * newVertex[2] >= 0; + } + ,evolveSimplex: function() { + var _g = this.vertices.length; + switch(_g) { + case 0: + var a = this.shapeB.get_centre(); + var b = this.shapeA.get_centre(); + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + var dest = this1; + dest[0] = a[0] - b[0]; + dest[1] = a[1] - b[1]; + dest[2] = a[2] - b[2]; + this.direction = dest; + break; + case 1: + var a1 = this.direction; + var this2 = new Float32Array(4); + this2[0] = 0; + this2[1] = 0; + this2[2] = 0; + var dest1 = this2; + dest1[0] = a1[0] * -1; + dest1[1] = a1[1] * -1; + dest1[2] = a1[2] * -1; + this.direction = dest1; + break; + case 2: + var a2 = this.vertices[1]; + var b1 = this.vertices[0]; + var this3 = new Float32Array(4); + this3[0] = 0; + this3[1] = 0; + this3[2] = 0; + var dest2 = this3; + dest2[0] = a2[0] - b1[0]; + dest2[1] = a2[1] - b1[1]; + dest2[2] = a2[2] - b1[2]; + var ab = dest2; + var a3 = this.vertices[0]; + var this4 = new Float32Array(4); + this4[0] = 0; + this4[1] = 0; + this4[2] = 0; + var dest3 = this4; + dest3[0] = a3[0] * -1; + dest3[1] = a3[1] * -1; + dest3[2] = a3[2] * -1; + var a0 = dest3; + var this5 = new Float32Array(4); + this5[0] = 0; + this5[1] = 0; + this5[2] = 0; + var dest4 = this5; + var this6 = new Float32Array(4); + this6[0] = ab[1] * a0[2] - ab[2] * a0[1]; + this6[1] = ab[2] * a0[0] - ab[0] * a0[2]; + this6[2] = ab[0] * a0[1] - ab[1] * a0[0]; + dest4 = this6; + var tmp = dest4; + var dest5 = this.direction; + var this7 = new Float32Array(4); + this7[0] = tmp[1] * ab[2] - tmp[2] * ab[1]; + this7[1] = tmp[2] * ab[0] - tmp[0] * ab[2]; + this7[2] = tmp[0] * ab[1] - tmp[1] * ab[0]; + dest5 = this7; + this.direction = dest5; + break; + case 3: + var a4 = this.vertices[2]; + var b2 = this.vertices[0]; + var this8 = new Float32Array(4); + this8[0] = 0; + this8[1] = 0; + this8[2] = 0; + var dest6 = this8; + dest6[0] = a4[0] - b2[0]; + dest6[1] = a4[1] - b2[1]; + dest6[2] = a4[2] - b2[2]; + var ac = dest6; + var a5 = this.vertices[1]; + var b3 = this.vertices[0]; + var this9 = new Float32Array(4); + this9[0] = 0; + this9[1] = 0; + this9[2] = 0; + var dest7 = this9; + dest7[0] = a5[0] - b3[0]; + dest7[1] = a5[1] - b3[1]; + dest7[2] = a5[2] - b3[2]; + var ab1 = dest7; + var this10 = new Float32Array(4); + this10[0] = 0; + this10[1] = 0; + this10[2] = 0; + var dest8 = this10; + var this11 = new Float32Array(4); + this11[0] = ac[1] * ab1[2] - ac[2] * ab1[1]; + this11[1] = ac[2] * ab1[0] - ac[0] * ab1[2]; + this11[2] = ac[0] * ab1[1] - ac[1] * ab1[0]; + dest8 = this11; + this.direction = dest8; + var a6 = this.vertices[0]; + var this12 = new Float32Array(4); + this12[0] = 0; + this12[1] = 0; + this12[2] = 0; + var dest9 = this12; + dest9[0] = a6[0] * -1; + dest9[1] = a6[1] * -1; + dest9[2] = a6[2] * -1; + var a01 = dest9; + var a7 = this.direction; + if(a7[0] * a01[0] + a7[1] * a01[1] + a7[2] * a01[2] < 0) { + var a8 = this.direction; + var this13 = new Float32Array(4); + this13[0] = 0; + this13[1] = 0; + this13[2] = 0; + var dest10 = this13; + dest10[0] = a8[0] * -1; + dest10[1] = a8[1] * -1; + dest10[2] = a8[2] * -1; + this.direction = dest10; + } + break; + case 4: + var a9 = this.vertices[3]; + var b4 = this.vertices[0]; + var this14 = new Float32Array(4); + this14[0] = 0; + this14[1] = 0; + this14[2] = 0; + var dest11 = this14; + dest11[0] = a9[0] - b4[0]; + dest11[1] = a9[1] - b4[1]; + dest11[2] = a9[2] - b4[2]; + var da = dest11; + var a10 = this.vertices[3]; + var b5 = this.vertices[1]; + var this15 = new Float32Array(4); + this15[0] = 0; + this15[1] = 0; + this15[2] = 0; + var dest12 = this15; + dest12[0] = a10[0] - b5[0]; + dest12[1] = a10[1] - b5[1]; + dest12[2] = a10[2] - b5[2]; + var db = dest12; + var a11 = this.vertices[3]; + var b6 = this.vertices[2]; + var this16 = new Float32Array(4); + this16[0] = 0; + this16[1] = 0; + this16[2] = 0; + var dest13 = this16; + dest13[0] = a11[0] - b6[0]; + dest13[1] = a11[1] - b6[1]; + dest13[2] = a11[2] - b6[2]; + var dc = dest13; + var a12 = this.vertices[3]; + var this17 = new Float32Array(4); + this17[0] = 0; + this17[1] = 0; + this17[2] = 0; + var dest14 = this17; + dest14[0] = a12[0] * -1; + dest14[1] = a12[1] * -1; + dest14[2] = a12[2] * -1; + var d0 = dest14; + var this18 = new Float32Array(4); + this18[0] = 0; + this18[1] = 0; + this18[2] = 0; + var dest15 = this18; + var this19 = new Float32Array(4); + this19[0] = da[1] * db[2] - da[2] * db[1]; + this19[1] = da[2] * db[0] - da[0] * db[2]; + this19[2] = da[0] * db[1] - da[1] * db[0]; + dest15 = this19; + var abdNorm = dest15; + var this20 = new Float32Array(4); + this20[0] = 0; + this20[1] = 0; + this20[2] = 0; + var dest16 = this20; + var this21 = new Float32Array(4); + this21[0] = db[1] * dc[2] - db[2] * dc[1]; + this21[1] = db[2] * dc[0] - db[0] * dc[2]; + this21[2] = db[0] * dc[1] - db[1] * dc[0]; + dest16 = this21; + var bcdNorm = dest16; + var this22 = new Float32Array(4); + this22[0] = 0; + this22[1] = 0; + this22[2] = 0; + var dest17 = this22; + var this23 = new Float32Array(4); + this23[0] = dc[1] * da[2] - dc[2] * da[1]; + this23[1] = dc[2] * da[0] - dc[0] * da[2]; + this23[2] = dc[0] * da[1] - dc[1] * da[0]; + dest17 = this23; + var cadNorm = dest17; + if(abdNorm[0] * d0[0] + abdNorm[1] * d0[1] + abdNorm[2] * d0[2] > 0) { + HxOverrides.remove(this.vertices,this.vertices[2]); + this.direction = abdNorm; + } else if(bcdNorm[0] * d0[0] + bcdNorm[1] * d0[1] + bcdNorm[2] * d0[2] > 0) { + HxOverrides.remove(this.vertices,this.vertices[0]); + this.direction = bcdNorm; + } else if(cadNorm[0] * d0[0] + cadNorm[1] * d0[1] + cadNorm[2] * d0[2] > 0) { + HxOverrides.remove(this.vertices,this.vertices[1]); + this.direction = cadNorm; + } else { + return headbutt_EvolveResult.FoundIntersection; + } + break; + default: + throw new js__$Boot_HaxeError("Can't have simplex with " + this.vertices.length + " verts!"); + } + if(this.addSupport(this.direction)) { + return headbutt_EvolveResult.StillEvolving; + } else { + return headbutt_EvolveResult.NoIntersection; + } + } + ,test: function(shapeA,shapeB) { + this.vertices = []; + this.shapeA = shapeA; + this.shapeB = shapeB; + var result = headbutt_EvolveResult.StillEvolving; + var iterations = 0; + while(iterations < this.maxIterations && result == headbutt_EvolveResult.StillEvolving) { + result = this.evolveSimplex(); + ++iterations; + } + return result == headbutt_EvolveResult.FoundIntersection; + } + ,__class__: headbutt_Headbutt3D +}; +var headbutt_Shape3D = function() { }; +headbutt_Shape3D.__name__ = true; +headbutt_Shape3D.prototype = { + __class__: headbutt_Shape3D +}; +var headbutt_shapes_Polygon3D = function(vertices) { + this.vertices = vertices; +}; +headbutt_shapes_Polygon3D.__name__ = true; +headbutt_shapes_Polygon3D.__interfaces__ = [headbutt_Shape3D]; +headbutt_shapes_Polygon3D.prototype = { + get_centre: function() { + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + var c = this1; + var count = 0.0; + var _g = 0; + var _g1 = this.vertices; + while(_g < _g1.length) { + var v = _g1[_g]; + ++_g; + c[0] += v[0]; + c[1] += v[1]; + c[2] += v[2]; + count += 1.0; + } + var s = 1.0 / count; + c[0] *= s; + c[1] *= s; + c[2] *= s; + return c; + } + ,set_centre: function(c) { + var diff = this.get_centre(); + diff[0] = c[0] - diff[0]; + diff[1] = c[1] - diff[1]; + diff[2] = c[2] - diff[2]; + var _g = 0; + var _g1 = this.vertices; + while(_g < _g1.length) { + var vert = _g1[_g]; + ++_g; + vert[0] += diff[0]; + vert[1] += diff[1]; + vert[2] += diff[2]; + } + return c; + } + ,support: function(direction) { + var furthestDistance = -Infinity; + var furthestVertex = null; + var _g = 0; + var _g1 = this.vertices; + while(_g < _g1.length) { + var v = _g1[_g]; + ++_g; + var distance = v[0] * direction[0] + v[1] * direction[1] + v[2] * direction[2]; + if(distance > furthestDistance) { + furthestDistance = distance; + furthestVertex = v; + } + } + return furthestVertex; + } + ,__class__: headbutt_shapes_Polygon3D +}; +var headbutt_shapes_Sphere = function(centre,radius) { + this.set_centre(centre); + this.radius = radius; +}; +headbutt_shapes_Sphere.__name__ = true; +headbutt_shapes_Sphere.__interfaces__ = [headbutt_Shape3D]; +headbutt_shapes_Sphere.prototype = { + get_centre: function() { + return this._centre; + } + ,set_centre: function(c) { + return this._centre = c; + } + ,support: function(direction) { + var src = this.get_centre(); + var this1 = new Float32Array(4); + this1[0] = 0; + this1[1] = 0; + this1[2] = 0; + var dest = this1; + dest[0] = src[0]; + dest[1] = src[1]; + dest[2] = src[2]; + var c = dest; + var this2 = new Float32Array(4); + this2[0] = 0; + this2[1] = 0; + this2[2] = 0; + var dest1 = this2; + var length = Math.sqrt(direction[0] * direction[0] + direction[1] * direction[1] + direction[2] * direction[2]); + var mult = 0; + if(length >= glm_GLM.EPSILON) { + mult = 1 / length; + } + dest1[0] = direction[0] * mult; + dest1[1] = direction[1] * mult; + dest1[2] = direction[2] * mult; + var d = dest1; + var s = this.radius; + d[0] *= s; + d[1] *= s; + d[2] *= s; + c[0] += d[0]; + c[1] += d[1]; + c[2] += d[2]; + return c; + } + ,__class__: headbutt_shapes_Sphere +}; +var js__$Boot_HaxeError = function(val) { + Error.call(this); + this.val = val; + this.message = String(val); + if(Error.captureStackTrace) { + Error.captureStackTrace(this,js__$Boot_HaxeError); + } +}; +js__$Boot_HaxeError.__name__ = true; +js__$Boot_HaxeError.wrap = function(val) { + if((val instanceof Error)) { + return val; + } else { + return new js__$Boot_HaxeError(val); + } +}; +js__$Boot_HaxeError.__super__ = Error; +js__$Boot_HaxeError.prototype = $extend(Error.prototype,{ + __class__: js__$Boot_HaxeError +}); +var js_Boot = function() { }; +js_Boot.__name__ = true; +js_Boot.getClass = function(o) { + if((o instanceof Array) && o.__enum__ == null) { + return Array; + } else { + var cl = o.__class__; + if(cl != null) { + return cl; + } + var name = js_Boot.__nativeClassName(o); + if(name != null) { + return js_Boot.__resolveNativeClass(name); + } + return null; + } +}; +js_Boot.__string_rec = function(o,s) { + if(o == null) { + return "null"; + } + if(s.length >= 5) { + return "<...>"; + } + var t = typeof(o); + if(t == "function" && (o.__name__ || o.__ename__)) { + t = "object"; + } + switch(t) { + case "function": + return ""; + case "object": + if(o instanceof Array) { + if(o.__enum__) { + if(o.length == 2) { + return o[0]; + } + var str = o[0] + "("; + s += "\t"; + var _g1 = 2; + var _g = o.length; + while(_g1 < _g) { + var i = _g1++; + if(i != 2) { + str += "," + js_Boot.__string_rec(o[i],s); + } else { + str += js_Boot.__string_rec(o[i],s); + } + } + return str + ")"; + } + var l = o.length; + var i1; + var str1 = "["; + s += "\t"; + var _g11 = 0; + var _g2 = l; + while(_g11 < _g2) { + var i2 = _g11++; + str1 += (i2 > 0 ? "," : "") + js_Boot.__string_rec(o[i2],s); + } + str1 += "]"; + return str1; + } + var tostr; + try { + tostr = o.toString; + } catch( e ) { + return "???"; + } + if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") { + var s2 = o.toString(); + if(s2 != "[object Object]") { + return s2; + } + } + var k = null; + var str2 = "{\n"; + s += "\t"; + var hasp = o.hasOwnProperty != null; + for( var k in o ) { + if(hasp && !o.hasOwnProperty(k)) { + continue; + } + if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") { + continue; + } + if(str2.length != 2) { + str2 += ", \n"; + } + str2 += s + k + " : " + js_Boot.__string_rec(o[k],s); + } + s = s.substring(1); + str2 += "\n" + s + "}"; + return str2; + case "string": + return o; + default: + return String(o); + } +}; +js_Boot.__interfLoop = function(cc,cl) { + if(cc == null) { + return false; + } + if(cc == cl) { + return true; + } + var intf = cc.__interfaces__; + if(intf != null) { + var _g1 = 0; + var _g = intf.length; + while(_g1 < _g) { + var i = _g1++; + var i1 = intf[i]; + if(i1 == cl || js_Boot.__interfLoop(i1,cl)) { + return true; + } + } + } + return js_Boot.__interfLoop(cc.__super__,cl); +}; +js_Boot.__instanceof = function(o,cl) { + if(cl == null) { + return false; + } + switch(cl) { + case Array: + if((o instanceof Array)) { + return o.__enum__ == null; + } else { + return false; + } + break; + case Bool: + return typeof(o) == "boolean"; + case Dynamic: + return true; + case Float: + return typeof(o) == "number"; + case Int: + if(typeof(o) == "number") { + return (o|0) === o; + } else { + return false; + } + break; + case String: + return typeof(o) == "string"; + default: + if(o != null) { + if(typeof(cl) == "function") { + if(o instanceof cl) { + return true; + } + if(js_Boot.__interfLoop(js_Boot.getClass(o),cl)) { + return true; + } + } else if(typeof(cl) == "object" && js_Boot.__isNativeObj(cl)) { + if(o instanceof cl) { + return true; + } + } + } else { + return false; + } + if(cl == Class ? o.__name__ != null : false) { + return true; + } + if(cl == Enum ? o.__ename__ != null : false) { + return true; + } + return o.__enum__ == cl; + } +}; +js_Boot.__nativeClassName = function(o) { + var name = js_Boot.__toStr.call(o).slice(8,-1); + if(name == "Object" || name == "Function" || name == "Math" || name == "JSON") { + return null; + } + return name; +}; +js_Boot.__isNativeObj = function(o) { + return js_Boot.__nativeClassName(o) != null; +}; +js_Boot.__resolveNativeClass = function(name) { + return $global[name]; +}; +var js_html_compat_ArrayBuffer = function(a) { + if((a instanceof Array) && a.__enum__ == null) { + this.a = a; + this.byteLength = a.length; + } else { + var len = a; + this.a = []; + var _g1 = 0; + var _g = len; + while(_g1 < _g) { + var i = _g1++; + this.a[i] = 0; + } + this.byteLength = len; + } +}; +js_html_compat_ArrayBuffer.__name__ = true; +js_html_compat_ArrayBuffer.sliceImpl = function(begin,end) { + var u = new Uint8Array(this,begin,end == null ? null : end - begin); + var result = new ArrayBuffer(u.byteLength); + var resultArray = new Uint8Array(result); + resultArray.set(u); + return result; +}; +js_html_compat_ArrayBuffer.prototype = { + slice: function(begin,end) { + return new js_html_compat_ArrayBuffer(this.a.slice(begin,end)); + } + ,__class__: js_html_compat_ArrayBuffer +}; +var js_html_compat_Float32Array = function() { }; +js_html_compat_Float32Array.__name__ = true; +js_html_compat_Float32Array._new = function(arg1,offset,length) { + var arr; + if(typeof(arg1) == "number") { + arr = []; + var _g1 = 0; + var _g = arg1; + while(_g1 < _g) { + var i = _g1++; + arr[i] = 0; + } + arr.byteLength = arr.length << 2; + arr.byteOffset = 0; + var _g2 = []; + var _g21 = 0; + var _g11 = arr.length << 2; + while(_g21 < _g11) { + var i1 = _g21++; + _g2.push(0); + } + arr.buffer = new js_html_compat_ArrayBuffer(_g2); + } else if(js_Boot.__instanceof(arg1,js_html_compat_ArrayBuffer)) { + var buffer = arg1; + if(offset == null) { + offset = 0; + } + if(length == null) { + length = buffer.byteLength - offset >> 2; + } + arr = []; + var _g12 = 0; + var _g3 = length; + while(_g12 < _g3) { + var i2 = _g12++; + var val = buffer.a[offset++] | buffer.a[offset++] << 8 | buffer.a[offset++] << 16 | buffer.a[offset++] << 24; + arr.push(haxe_io_FPHelper.i32ToFloat(val)); + } + arr.byteLength = arr.length << 2; + arr.byteOffset = offset; + arr.buffer = buffer; + } else if((arg1 instanceof Array) && arg1.__enum__ == null) { + arr = arg1.slice(); + var buffer1 = []; + var _g4 = 0; + while(_g4 < arr.length) { + var f = arr[_g4]; + ++_g4; + var i3 = haxe_io_FPHelper.floatToI32(f); + buffer1.push(i3 & 255); + buffer1.push(i3 >> 8 & 255); + buffer1.push(i3 >> 16 & 255); + buffer1.push(i3 >>> 24); + } + arr.byteLength = arr.length << 2; + arr.byteOffset = 0; + arr.buffer = new js_html_compat_ArrayBuffer(buffer1); + } else { + throw new js__$Boot_HaxeError("TODO " + Std.string(arg1)); + } + arr.subarray = js_html_compat_Float32Array._subarray; + arr.set = js_html_compat_Float32Array._set; + return arr; +}; +js_html_compat_Float32Array._set = function(arg,offset) { + if(js_Boot.__instanceof(arg.buffer,js_html_compat_ArrayBuffer)) { + var a = arg; + if(arg.byteLength + offset > this.byteLength) { + throw new js__$Boot_HaxeError("set() outside of range"); + } + var _g1 = 0; + var _g = arg.byteLength; + while(_g1 < _g) { + var i = _g1++; + this[i + offset] = a[i]; + } + } else if((arg instanceof Array) && arg.__enum__ == null) { + var a1 = arg; + if(a1.length + offset > this.byteLength) { + throw new js__$Boot_HaxeError("set() outside of range"); + } + var _g11 = 0; + var _g2 = a1.length; + while(_g11 < _g2) { + var i1 = _g11++; + this[i1 + offset] = a1[i1]; + } + } else { + throw new js__$Boot_HaxeError("TODO"); + } +}; +js_html_compat_Float32Array._subarray = function(start,end) { + var a = js_html_compat_Float32Array._new(this.slice(start,end)); + a.byteOffset = start * 4; + return a; +}; +var js_html_compat_Uint8Array = function() { }; +js_html_compat_Uint8Array.__name__ = true; +js_html_compat_Uint8Array._new = function(arg1,offset,length) { + var arr; + if(typeof(arg1) == "number") { + arr = []; + var _g1 = 0; + var _g = arg1; + while(_g1 < _g) { + var i = _g1++; + arr[i] = 0; + } + arr.byteLength = arr.length; + arr.byteOffset = 0; + arr.buffer = new js_html_compat_ArrayBuffer(arr); + } else if(js_Boot.__instanceof(arg1,js_html_compat_ArrayBuffer)) { + var buffer = arg1; + if(offset == null) { + offset = 0; + } + if(length == null) { + length = buffer.byteLength - offset; + } + if(offset == 0) { + arr = buffer.a; + } else { + arr = buffer.a.slice(offset,offset + length); + } + arr.byteLength = arr.length; + arr.byteOffset = offset; + arr.buffer = buffer; + } else if((arg1 instanceof Array) && arg1.__enum__ == null) { + arr = arg1.slice(); + arr.byteLength = arr.length; + arr.byteOffset = 0; + arr.buffer = new js_html_compat_ArrayBuffer(arr); + } else { + throw new js__$Boot_HaxeError("TODO " + Std.string(arg1)); + } + arr.subarray = js_html_compat_Uint8Array._subarray; + arr.set = js_html_compat_Uint8Array._set; + return arr; +}; +js_html_compat_Uint8Array._set = function(arg,offset) { + if(js_Boot.__instanceof(arg.buffer,js_html_compat_ArrayBuffer)) { + var a = arg; + if(arg.byteLength + offset > this.byteLength) { + throw new js__$Boot_HaxeError("set() outside of range"); + } + var _g1 = 0; + var _g = arg.byteLength; + while(_g1 < _g) { + var i = _g1++; + this[i + offset] = a[i]; + } + } else if((arg instanceof Array) && arg.__enum__ == null) { + var a1 = arg; + if(a1.length + offset > this.byteLength) { + throw new js__$Boot_HaxeError("set() outside of range"); + } + var _g11 = 0; + var _g2 = a1.length; + while(_g11 < _g2) { + var i1 = _g11++; + this[i1 + offset] = a1[i1]; + } + } else { + throw new js__$Boot_HaxeError("TODO"); + } +}; +js_html_compat_Uint8Array._subarray = function(start,end) { + var a = js_html_compat_Uint8Array._new(this.slice(start,end)); + a.byteOffset = start; + return a; +}; +var js_three__$ArrayLike_ArrayLike_$Impl_$ = {}; +js_three__$ArrayLike_ArrayLike_$Impl_$.__name__ = true; +js_three__$ArrayLike_ArrayLike_$Impl_$.get = function(this1,key) { + return this1[key]; +}; +js_three__$ArrayLike_ArrayLike_$Impl_$.arrayWrite = function(this1,k,v) { + this1[k] = v; + return v; +}; +String.prototype.__class__ = String; +String.__name__ = true; +Array.__name__ = true; +var Int = { __name__ : ["Int"]}; +var Dynamic = { __name__ : ["Dynamic"]}; +var Float = Number; +Float.__name__ = ["Float"]; +var Bool = Boolean; +Bool.__ename__ = ["Bool"]; +var Class = { __name__ : ["Class"]}; +var Enum = { }; +var ArrayBuffer = $global.ArrayBuffer || js_html_compat_ArrayBuffer; +if(ArrayBuffer.prototype.slice == null) { + ArrayBuffer.prototype.slice = js_html_compat_ArrayBuffer.sliceImpl; +} +var Float32Array = $global.Float32Array || js_html_compat_Float32Array._new; +var Uint8Array = $global.Uint8Array || js_html_compat_Uint8Array._new; +glm_GLM.EPSILON = 0.0000001; +js_Boot.__toStr = ({ }).toString; +js_html_compat_Float32Array.BYTES_PER_ELEMENT = 4; +js_html_compat_Uint8Array.BYTES_PER_ELEMENT = 1; +Main.main(); +})(typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this); + +//# sourceMappingURL=threed_collision.js.map \ No newline at end of file diff --git a/samples/bin/threed_collision.js.map b/samples/bin/threed_collision.js.map new file mode 100644 index 0000000..8960992 --- /dev/null +++ b/samples/bin/threed_collision.js.map @@ -0,0 +1,8 @@ +{ +"version":3, +"file":"threed_collision.js", +"sourceRoot":"file:///", +"sources":["/usr/local/lib/haxe/std/js/_std/HxOverrides.hx","/Users/kenton/Projects/headbutt/samples/threed_collision/Main.hx","/usr/local/lib/haxe/std/js/_std/Std.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/GLM.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/Mat4.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/Quat.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/Vec3.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/Vec4.hx","/usr/local/lib/haxe/std/haxe/io/FPHelper.hx","/Users/kenton/Projects/headbutt/src/headbutt/Headbutt3D.hx","/Users/kenton/Projects/headbutt/src/headbutt/shapes/Polygon3D.hx","/Users/kenton/Projects/headbutt/src/headbutt/shapes/Sphere.hx","/usr/local/lib/haxe/std/js/Boot.hx","/usr/local/lib/haxe/std/js/html/compat/ArrayBuffer.hx","/usr/local/lib/haxe/std/js/html/compat/Float32Array.hx","/usr/local/lib/haxe/std/js/html/compat/Uint8Array.hx","/Users/kenton/.haxe/threejs/84,0,0/js/three/ArrayLike.hx"], +"names":[], +"mappings":"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" +} \ No newline at end of file diff --git a/samples/bin/threed_collision.min.js b/samples/bin/threed_collision.min.js new file mode 100644 index 0000000..f0c3f4a --- /dev/null +++ b/samples/bin/threed_collision.min.js @@ -0,0 +1,32 @@ +(function(A){var u=function(){};u.__name__=!0;u.remove=function(b,a){var c=b.indexOf(a);if(-1==c)return!1;b.splice(c,1);return!0};var F=function(){};F.__name__=!0;F.main=function(){var b=new B,a=window.document.getElementById("canvas"),c=new THREE.Scene,d=new THREE.MeshLambertMaterial({color:13369344}),e=new THREE.Mesh(new THREE.BoxGeometry(50,50,50,1,1,1),d);e.position.set(0,0,0);c.add(e);var f=new h(4);f[0]=-25;f[1]=-25;f[2]=-25;var g=new h(4);g[0]=-25;g[1]=-25;g[2]=25;var k=new h(4);k[0]=-25;k[1]= +25;k[2]=-25;var C=new h(4);C[0]=-25;C[1]=25;C[2]=25;var w=new h(4);w[0]=25;w[1]=-25;w[2]=-25;var D=new h(4);D[0]=25;D[1]=-25;D[2]=25;var n=new h(4);n[0]=25;n[1]=25;n[2]=-25;var p=new h(4);p[0]=25;p[1]=25;p[2]=25;var q=new x([f,g,k,C,w,D,n,p]),l=new THREE.Mesh(new THREE.SphereGeometry(20),new THREE.MeshLambertMaterial({color:204}));l.position.set(50,0,0);c.add(l);f=new h(4);f[0]=50;f[1]=0;f[2]=0;var m=new y(f,20),f=new THREE.PointLight(16777215,1,0);f.position.set(100,200,50);c.add(f);f=new THREE.AmbientLight(4210752); +c.add(f);f=new THREE.GridHelper(200,25);c.add(f);var r=new THREE.PerspectiveCamera(70,a.clientWidth/a.clientHeight,1,1E3);r.position.set(75*Math.cos(Math.PI/4),75,75*Math.sin(Math.PI/4));r.lookAt(e.position);c.add(r);var t=new THREE.WebGLRenderer({canvas:a});t.setSize(window.document.body.clientWidth,window.document.body.clientHeight);t.setClearColor(16777215);window.document.body.appendChild(t.domElement);var u=0,v=null,v=function(a){window.requestAnimationFrame(v);r.aspect=window.document.body.clientWidth/ +window.document.body.clientHeight;t.setSize(window.document.body.clientWidth,window.document.body.clientHeight);r.updateProjectionMatrix();l.position.x=50*Math.sin(2*Math.PI*u*.1);l.position.y=50*Math.sin(4*Math.PI*u*.1);l.position.z=50*Math.sin(8*Math.PI*u*.1);m.get_centre()[0]=l.position.x;m.get_centre()[1]=l.position.y;m.get_centre()[2]=l.position.z;a=b.test(q,m);d.setValues({color:a?52224:13369344});t.render(c,r);u+=.016666666666666666;return!0};v(0)};Math.__name__=!0;var E=function(){};E.__name__= +!0;E.string=function(b){return k.__string_rec(b,"")};var p=function(){};p.__name__=!0;p.lerp=function(b,a,c){return b+c*(a-b)};p.translate=function(b,a){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;a[12]=b[0];a[13]=b[1];a[14]=b[2];return a};p.rotate=function(b,a){var c=b[0]+b[0],d=b[1]+b[1],e=b[2]+b[2],f=b[0]*c,g=b[0]*d,h=b[0]*e,k=b[1]*d,w=b[1]*e,l=b[2]*e,c=b[3]*c,d=b[3]*d,e=b[3]*e;a[0]=1-(k+l);a[4]=g-e;a[8]=h+d;a[12]=0;a[1]= +g+e;a[5]=1-(f+l);a[9]=w-c;a[13]=0;a[2]=h-d;a[6]=w+c;a[10]=1-(f+k);a[14]=0;a[3]=0;a[7]=0;a[11]=0;a[15]=1;return a};p.scale=function(b,a){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;a[0]=b[0];a[5]=b[1];a[10]=b[2];return a};p.transform=function(b,a,c,d){var e=a[0]+a[0],f=a[1]+a[1],g=a[2]+a[2],h=a[0]*e,k=a[0]*f,l=a[0]*g,p=a[1]*f,n=a[1]*g,m=a[2]*g,e=a[3]*e,f=a[3]*f;a=a[3]*g;d[0]=(1-(p+m))*c[0];d[1]=(k+a)*c[0];d[2]=(l-f)*c[0];d[3]= +0;d[4]=(k-a)*c[1];d[5]=(1-(h+m))*c[1];d[6]=(n+e)*c[1];d[7]=0;d[8]=(l+f)*c[2];d[9]=(n-e)*c[2];d[10]=(1-(h+p))*c[2];d[11]=0;d[12]=b[0];d[13]=b[1];d[14]=b[2];d[15]=1;return d};p.lookAt=function(b,a,c,d){var e,f,g,h,k,l,m,n;if(Math.abs(b[0]-a[0])>>23&255,c=b&8388607;return 0==c&&0==a?0:(1-(b>>>31<<1))*(1+Math.pow(2,-23)*c)*Math.pow(2,a-127)};v.floatToI32=function(b){if(0==b)return 0;var a=0>b?-b:b,c=Math.floor(Math.log(a)/.6931471805599453);-127>c?c=-127:128c&&(a=0,++c);return(0>b?-2147483648:0)|c+127<<23|a};var m={__ename__:!0,__constructs__:["NoIntersection","FoundIntersection","StillEvolving"],NoIntersection:["NoIntersection",0]};m.NoIntersection.__enum__=m;m.FoundIntersection=["FoundIntersection",1];m.FoundIntersection.__enum__=m;m.StillEvolving=["StillEvolving",2];m.StillEvolving.__enum__=m;var B=function(){this.maxIterations=20};B.__name__=!0;B.prototype={calculateSupport:function(b){var a=new h(4);a[0]=0;a[1]=0;a[2]=0;a[0]=-1*b[0];a[1]= +-1*b[1];a[2]=-1*b[2];var c=this.shapeA.support(b);b=new h(4);b[0]=0;b[1]=0;b[2]=0;b[0]=c[0];b[1]=c[1];b[2]=c[2];a=this.shapeB.support(a);b[0]-=a[0];b[1]-=a[1];b[2]-=a[2];return b},addSupport:function(b){var a=this.calculateSupport(b);this.vertices.push(a);return 0<=b[0]*a[0]+b[1]*a[1]+b[2]*a[2]},evolveSimplex:function(){switch(this.vertices.length){case 0:var b=this.shapeB.get_centre(),a=this.shapeA.get_centre(),c=new h(4);c[0]=0;c[1]=0;c[2]=0;c[0]=b[0]-a[0];c[1]=b[1]-a[1];c[2]=b[2]-a[2];this.direction= +c;break;case 1:b=this.direction;a=new h(4);a[0]=0;a[1]=0;a[2]=0;a[0]=-1*b[0];a[1]=-1*b[1];a[2]=-1*b[2];this.direction=a;break;case 2:a=this.vertices[1];c=this.vertices[0];b=new h(4);b[0]=0;b[1]=0;b[2]=0;b[0]=a[0]-c[0];b[1]=a[1]-c[1];b[2]=a[2]-c[2];c=this.vertices[0];a=new h(4);a[0]=0;a[1]=0;a[2]=0;a[0]=-1*c[0];a[1]=-1*c[1];a[2]=-1*c[2];c=new h(4);c[0]=0;c[1]=0;c[2]=0;c=new h(4);c[0]=b[1]*a[2]-b[2]*a[1];c[1]=b[2]*a[0]-b[0]*a[2];c[2]=b[0]*a[1]-b[1]*a[0];a=c;c=new h(4);c[0]=a[1]*b[2]-a[2]*b[1];c[1]= +a[2]*b[0]-a[0]*b[2];c[2]=a[0]*b[1]-a[1]*b[0];this.direction=c;break;case 3:a=this.vertices[2];c=this.vertices[0];b=new h(4);b[0]=0;b[1]=0;b[2]=0;b[0]=a[0]-c[0];b[1]=a[1]-c[1];b[2]=a[2]-c[2];var c=this.vertices[1],d=this.vertices[0],a=new h(4);a[0]=0;a[1]=0;a[2]=0;a[0]=c[0]-d[0];a[1]=c[1]-d[1];a[2]=c[2]-d[2];c=new h(4);c[0]=0;c[1]=0;c[2]=0;c=new h(4);c[0]=b[1]*a[2]-b[2]*a[1];c[1]=b[2]*a[0]-b[0]*a[2];c[2]=b[0]*a[1]-b[1]*a[0];this.direction=c;a=this.vertices[0];b=new h(4);b[0]=0;b[1]=0;b[2]=0;b[0]=-1* +a[0];b[1]=-1*a[1];b[2]=-1*a[2];a=this.direction;0>a[0]*b[0]+a[1]*b[1]+a[2]*b[2]&&(b=this.direction,a=new h(4),a[0]=0,a[1]=0,a[2]=0,a[0]=-1*b[0],a[1]=-1*b[1],a[2]=-1*b[2],this.direction=a);break;case 4:a=this.vertices[3];c=this.vertices[0];b=new h(4);b[0]=0;b[1]=0;b[2]=0;b[0]=a[0]-c[0];b[1]=a[1]-c[1];b[2]=a[2]-c[2];a=this.vertices[3];d=this.vertices[1];c=new h(4);c[0]=0;c[1]=0;c[2]=0;c[0]=a[0]-d[0];c[1]=a[1]-d[1];c[2]=a[2]-d[2];var d=this.vertices[3],e=this.vertices[2],a=new h(4);a[0]=0;a[1]=0;a[2]= +0;a[0]=d[0]-e[0];a[1]=d[1]-e[1];a[2]=d[2]-e[2];e=this.vertices[3];d=new h(4);d[0]=0;d[1]=0;d[2]=0;d[0]=-1*e[0];d[1]=-1*e[1];d[2]=-1*e[2];e=new h(4);e[0]=0;e[1]=0;e[2]=0;e=new h(4);e[0]=b[1]*c[2]-b[2]*c[1];e[1]=b[2]*c[0]-b[0]*c[2];e[2]=b[0]*c[1]-b[1]*c[0];var f=new h(4);f[0]=0;f[1]=0;f[2]=0;f=new h(4);f[0]=c[1]*a[2]-c[2]*a[1];f[1]=c[2]*a[0]-c[0]*a[2];f[2]=c[0]*a[1]-c[1]*a[0];c=f;f=new h(4);f[0]=0;f[1]=0;f[2]=0;f=new h(4);f[0]=a[1]*b[2]-a[2]*b[1];f[1]=a[2]*b[0]-a[0]*b[2];f[2]=a[0]*b[1]-a[1]*b[0];b= +f;if(0a&&(a=g,c=f)}return c},__class__:x};var y=function(b,a){this.set_centre(b);this.radius=a};y.__name__=!0;y.__interfaces__=[z];y.prototype={get_centre:function(){return this._centre}, +set_centre:function(b){return this._centre=b},support:function(b){var a=this.get_centre(),c=new h(4);c[0]=0;c[1]=0;c[2]=0;c[0]=a[0];c[1]=a[1];c[2]=a[2];a=new h(4);a[0]=0;a[1]=0;a[2]=0;var d=Math.sqrt(b[0]*b[0]+b[1]*b[1]+b[2]*b[2]),e=0;d>=p.EPSILON&&(e=1/d);a[0]=b[0]*e;a[1]=b[1]*e;a[2]=b[2]*e;b=this.radius;a[0]*=b;a[1]*=b;a[2]*=b;c[0]+=a[0];c[1]+=a[1];c[2]+=a[2];return c},__class__:y};var q=function(b){Error.call(this);this.val=b;this.message=String(b);Error.captureStackTrace&&Error.captureStackTrace(this, +q)};q.__name__=!0;q.wrap=function(b){return b instanceof Error?b:new q(b)};q.__super__=Error;q.prototype=function(b,a){function c(){}c.prototype=b;var d=new c,e;for(e in a)d[e]=a[e];a.toString!==Object.prototype.toString&&(d.toString=a.toString);return d}(Error.prototype,{__class__:q});var k=function(){};k.__name__=!0;k.getClass=function(b){if(b instanceof Array&&null==b.__enum__)return Array;var a=b.__class__;if(null!=a)return a;b=k.__nativeClassName(b);return null!=b?k.__resolveNativeClass(b):null}; +k.__string_rec=function(b,a){if(null==b)return"null";if(5<=a.length)return"<...>";var c=typeof b;"function"==c&&(b.__name__||b.__ename__)&&(c="object");switch(c){case "function":return"";case "object":if(b instanceof Array){if(b.__enum__){if(2==b.length)return b[0];c=b[0]+"(";a+="\t";for(var d=2,e=b.length;d>2);d=[];for(e=0;e>8&255),b.push(e>>16&255),b.push(e>>>24);d.byteLength=d.length<<2;d.byteOffset=0;d.buffer=new l(b)}else throw new q("TODO "+ +E.string(b));d.subarray=r._subarray;d.set=r._set;return d};r._set=function(b,a){if(k.__instanceof(b.buffer,l)){if(b.byteLength+a>this.byteLength)throw new q("set() outside of range");for(var c=0,d=b.byteLength;cthis.byteLength)throw new q("set() outside of range");c=0;for(d=b.length;cthis.byteLength)throw new q("set() outside of range");for(var c=0,d=b.byteLength;cthis.byteLength)throw new q("set() outside of range");c=0;for(d=b.length;c Main.ctx.canvas.clientWidth - Main.circ.radius) { - Main.circ.centre[0] = Main.ctx.canvas.clientWidth - Main.circ.radius; + } else if(Main.circ.get_centre()[0] > Main.ctx.canvas.clientWidth - Main.circ.radius) { + Main.circ.get_centre()[0] = Main.ctx.canvas.clientWidth - Main.circ.radius; Main.circVelocity = -Main.circSpeed; } Main.intersectingPoly = Main.hb.test(Main.poly,Main.mouseCirc); @@ -92,10 +92,10 @@ Main.draw = function(ts) { Main.ctx.lineCap = "round"; Main.ctx.stroke(); Main.ctx.beginPath(); - Main.ctx.arc(Main.circ.centre[0],Main.circ.centre[1],Main.circ.radius,0,Math.PI * 2); + Main.ctx.arc(Main.circ.get_centre()[0],Main.circ.get_centre()[1],Main.circ.radius,0,Math.PI * 2); Main.ctx.stroke(); Main.ctx.beginPath(); - Main.ctx.arc(Main.mouseCirc.centre[0],Main.mouseCirc.centre[1],Main.mouseCirc.radius,0,Math.PI * 2); + Main.ctx.arc(Main.mouseCirc.get_centre()[0],Main.mouseCirc.get_centre()[1],Main.mouseCirc.radius,0,Math.PI * 2); Main.ctx.fillStyle = Main.intersectingPoly || Main.intersectingCirc ? "#46B39D" : "#DE5B49"; Main.ctx.fill(); window.requestAnimationFrame(Main.draw); @@ -1817,11 +1817,6 @@ headbutt_EvolveResult.FoundIntersection = ["FoundIntersection",1]; headbutt_EvolveResult.FoundIntersection.__enum__ = headbutt_EvolveResult; headbutt_EvolveResult.StillEvolving = ["StillEvolving",2]; headbutt_EvolveResult.StillEvolving.__enum__ = headbutt_EvolveResult; -var headbutt_PolygonWinding = { __ename__ : true, __constructs__ : ["Clockwise","CounterClockwise"] }; -headbutt_PolygonWinding.Clockwise = ["Clockwise",0]; -headbutt_PolygonWinding.Clockwise.__enum__ = headbutt_PolygonWinding; -headbutt_PolygonWinding.CounterClockwise = ["CounterClockwise",1]; -headbutt_PolygonWinding.CounterClockwise.__enum__ = headbutt_PolygonWinding; var headbutt_Edge = function(distance,normal,index) { this.distance = distance; this.normal = normal; @@ -1832,6 +1827,7 @@ headbutt_Edge.prototype = { __class__: headbutt_Edge }; var headbutt_Headbutt2D = function() { + this.maxIterations = 20; }; headbutt_Headbutt2D.__name__ = true; headbutt_Headbutt2D.prototype = { @@ -1908,8 +1904,8 @@ headbutt_Headbutt2D.prototype = { var _g = this.vertices.length; switch(_g) { case 0: - var a = this.shapeB.center(); - var b = this.shapeA.center(); + var a = this.shapeB.get_centre(); + var b = this.shapeA.get_centre(); var this1 = new Float32Array(4); this1[0] = 0; this1[1] = 0; @@ -1929,57 +1925,60 @@ headbutt_Headbutt2D.prototype = { this.direction = dest1; break; case 2: - var b1 = this.vertices[1]; - var c = this.vertices[0]; + var a2 = this.vertices[1]; + var b1 = this.vertices[0]; var this3 = new Float32Array(4); this3[0] = 0; this3[1] = 0; var dest2 = this3; - dest2[0] = b1[0] - c[0]; - dest2[1] = b1[1] - c[1]; - var cb = dest2; + dest2[0] = a2[0] - b1[0]; + dest2[1] = a2[1] - b1[1]; + var ab = dest2; + var a3 = this.vertices[0]; var this4 = new Float32Array(4); this4[0] = 0; this4[1] = 0; var dest3 = this4; - dest3[0] = c[0] * -1; - dest3[1] = c[1] * -1; - var c0 = dest3; - this.direction = this.tripleProduct(cb,c0,cb); + dest3[0] = a3[0] * -1; + dest3[1] = a3[1] * -1; + var a0 = dest3; + this.direction = this.tripleProduct(ab,a0,ab); break; case 3: - var a2 = this.vertices[2]; - var b2 = this.vertices[1]; - var c1 = this.vertices[0]; + var a4 = this.vertices[2]; var this5 = new Float32Array(4); this5[0] = 0; this5[1] = 0; var dest4 = this5; - dest4[0] = a2[0] * -1; - dest4[1] = a2[1] * -1; - var a0 = dest4; + dest4[0] = a4[0] * -1; + dest4[1] = a4[1] * -1; + var c0 = dest4; + var a5 = this.vertices[1]; + var b2 = this.vertices[2]; var this6 = new Float32Array(4); this6[0] = 0; this6[1] = 0; var dest5 = this6; - dest5[0] = b2[0] - a2[0]; - dest5[1] = b2[1] - a2[1]; - var ab = dest5; + dest5[0] = a5[0] - b2[0]; + dest5[1] = a5[1] - b2[1]; + var bc = dest5; + var a6 = this.vertices[0]; + var b3 = this.vertices[2]; var this7 = new Float32Array(4); this7[0] = 0; this7[1] = 0; var dest6 = this7; - dest6[0] = c1[0] - a2[0]; - dest6[1] = c1[1] - a2[1]; - var ac = dest6; - var abPerp = this.tripleProduct(ac,ab,ab); - var acPerp = this.tripleProduct(ab,ac,ac); - if(abPerp[0] * a0[0] + abPerp[1] * a0[1] > 0) { - HxOverrides.remove(this.vertices,c1); - this.direction = abPerp; - } else if(acPerp[0] * a0[0] + acPerp[1] * a0[1] > 0) { - HxOverrides.remove(this.vertices,b2); - this.direction = acPerp; + dest6[0] = a6[0] - b3[0]; + dest6[1] = a6[1] - b3[1]; + var ca = dest6; + var bcNorm = this.tripleProduct(ca,bc,bc); + var caNorm = this.tripleProduct(bc,ca,ca); + if(bcNorm[0] * c0[0] + bcNorm[1] * c0[1] > 0) { + HxOverrides.remove(this.vertices,this.vertices[0]); + this.direction = bcNorm; + } else if(caNorm[0] * c0[0] + caNorm[1] * c0[1] > 0) { + HxOverrides.remove(this.vertices,this.vertices[1]); + this.direction = caNorm; } else { return headbutt_EvolveResult.FoundIntersection; } @@ -1998,7 +1997,11 @@ headbutt_Headbutt2D.prototype = { this.shapeA = shapeA; this.shapeB = shapeB; var result = headbutt_EvolveResult.StillEvolving; - while(result == headbutt_EvolveResult.StillEvolving) result = this.evolveSimplex(); + var iterations = 0; + while(iterations < this.maxIterations && result == headbutt_EvolveResult.StillEvolving) { + result = this.evolveSimplex(); + ++iterations; + } return result == headbutt_EvolveResult.FoundIntersection; } ,findClosestEdge: function(winding) { @@ -2093,23 +2096,31 @@ headbutt_Headbutt2D.prototype = { } ,__class__: headbutt_Headbutt2D }; +var headbutt_PolygonWinding = { __ename__ : true, __constructs__ : ["Clockwise","CounterClockwise"] }; +headbutt_PolygonWinding.Clockwise = ["Clockwise",0]; +headbutt_PolygonWinding.Clockwise.__enum__ = headbutt_PolygonWinding; +headbutt_PolygonWinding.CounterClockwise = ["CounterClockwise",1]; +headbutt_PolygonWinding.CounterClockwise.__enum__ = headbutt_PolygonWinding; var headbutt_Shape2D = function() { }; headbutt_Shape2D.__name__ = true; headbutt_Shape2D.prototype = { __class__: headbutt_Shape2D }; var headbutt_shapes_Circle = function(centre,radius) { - this.centre = centre; + this.set_centre(centre); this.radius = radius; }; headbutt_shapes_Circle.__name__ = true; headbutt_shapes_Circle.__interfaces__ = [headbutt_Shape2D]; headbutt_shapes_Circle.prototype = { - center: function() { - return this.centre; + get_centre: function() { + return this._centre; + } + ,set_centre: function(c) { + return this._centre = c; } ,support: function(direction) { - var src = this.centre; + var src = this.get_centre(); var this1 = new Float32Array(4); this1[0] = 0; this1[1] = 0; @@ -2144,7 +2155,7 @@ var headbutt_shapes_Polygon2D = function(vertices) { headbutt_shapes_Polygon2D.__name__ = true; headbutt_shapes_Polygon2D.__interfaces__ = [headbutt_Shape2D]; headbutt_shapes_Polygon2D.prototype = { - center: function() { + get_centre: function() { var this1 = new Float32Array(4); this1[0] = 0; this1[1] = 0; @@ -2164,6 +2175,20 @@ headbutt_shapes_Polygon2D.prototype = { c[1] *= s; return c; } + ,set_centre: function(c) { + var diff = this.get_centre(); + diff[0] = c[0] - diff[0]; + diff[1] = c[1] - diff[1]; + var _g = 0; + var _g1 = this.vertices; + while(_g < _g1.length) { + var vert = _g1[_g]; + ++_g; + vert[0] += diff[0]; + vert[1] += diff[1]; + } + return c; + } ,support: function(direction) { var furthestDistance = -Infinity; var furthestVertex = null; @@ -2618,3 +2643,5 @@ js_html_compat_Float32Array.BYTES_PER_ELEMENT = 4; js_html_compat_Uint8Array.BYTES_PER_ELEMENT = 1; Main.main(); })(typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this); + +//# sourceMappingURL=twod_collision.js.map \ No newline at end of file diff --git a/samples/bin/twod_collision.js.map b/samples/bin/twod_collision.js.map new file mode 100644 index 0000000..81ccf70 --- /dev/null +++ b/samples/bin/twod_collision.js.map @@ -0,0 +1,8 @@ +{ +"version":3, +"file":"twod_collision.js", +"sourceRoot":"file:///", +"sources":["/usr/local/lib/haxe/std/js/_std/HxOverrides.hx","/Users/kenton/Projects/headbutt/samples/twod_collision/Main.hx","/usr/local/lib/haxe/std/js/_std/Std.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/GLM.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/Mat4.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/Quat.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/Vec2.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/Vec3.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/Vec4.hx","/usr/local/lib/haxe/std/haxe/io/FPHelper.hx","/Users/kenton/Projects/headbutt/src/headbutt/Headbutt2D.hx","/Users/kenton/Projects/headbutt/src/headbutt/shapes/Circle.hx","/Users/kenton/Projects/headbutt/src/headbutt/shapes/Polygon2D.hx","/usr/local/lib/haxe/std/js/Boot.hx","/usr/local/lib/haxe/std/js/html/compat/ArrayBuffer.hx","/usr/local/lib/haxe/std/js/html/compat/Float32Array.hx","/usr/local/lib/haxe/std/js/html/compat/Uint8Array.hx"], +"names":[], +"mappings":"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" +} \ No newline at end of file diff --git a/samples/bin/twod_collision.min.js b/samples/bin/twod_collision.min.js new file mode 100644 index 0000000..3f3693a --- /dev/null +++ b/samples/bin/twod_collision.min.js @@ -0,0 +1,33 @@ +(function(B){var C=function(){};C.__name__=!0;C.remove=function(a,b){var c=a.indexOf(b);if(-1==c)return!1;a.splice(c,1);return!0};var e=function(){};e.__name__=!0;e.main=function(){e.circVelocity=e.circSpeed;var a=window.document.getElementById("canvas");a.width=a.clientWidth;a.height=a.clientHeight;e.ctx=a.getContext("2d",null);window.requestAnimationFrame(e.draw);var b=new g(4);b[0]=100;b[1]=100;e.mouseCirc=new x(b,16);b=new g(4);b[0]=10;b[1]=10;var c=new g(4);c[0]=100;c[1]=25;var d=new g(4);d[0]= +50;d[1]=75;e.poly=new y([b,c,d]);b=new g(4);b[0]=100;b[1]=150;e.circ=new x(b,32);e.hb=new D;a.addEventListener("mousemove",e.onMouseMove);a.addEventListener("touchstart",e.onTouch);a.addEventListener("touchmove",e.onTouch)};e.onMouseMove=function(a){e.moveCircle(a.clientX,a.clientY)};e.onTouch=function(a){e.moveCircle(a.touches[0].clientX,a.touches[0].clientY);a.stopPropagation()};e.moveCircle=function(a,b){var c=e.ctx.canvas.getBoundingClientRect();e.mouseCirc.get_centre()[0]=a-c.left;e.mouseCirc.get_centre()[1]= +b-c.top};e.draw=function(a){var b=(a-e.lastTime)/1E3;e.lastTime=a;e.circ.get_centre()[0]+=e.circVelocity*b;e.circ.get_centre()[0]e.ctx.canvas.clientWidth-e.circ.radius&&(e.circ.get_centre()[0]=e.ctx.canvas.clientWidth-e.circ.radius,e.circVelocity=-e.circSpeed);e.intersectingPoly=e.hb.test(e.poly,e.mouseCirc);e.intersectingCirc=e.hb.test(e.circ,e.mouseCirc);e.ctx.canvas.width=e.ctx.canvas.clientWidth; +e.ctx.canvas.height=e.ctx.canvas.clientHeight;e.ctx.clearRect(0,0,e.ctx.canvas.clientWidth,e.ctx.canvas.clientHeight);e.ctx.beginPath();e.ctx.moveTo(e.poly.vertices[0][0],e.poly.vertices[0][1]);a=1;for(b=e.poly.vertices.length;a>>23&255,c=a&8388607;return 0==c&&0==b?0:(1-(a>>>31<<1))*(1+Math.pow(2,-23)*c)*Math.pow(2,b-127)};z.floatToI32=function(a){if(0==a)return 0;var b=0>a?-a:a,c=Math.floor(Math.log(b)/.6931471805599453);-127>c?c=-127:128c&&(b=0,++c);return(0>a?-2147483648:0)|c+127<<23|b};var t={__ename__:!0,__constructs__:["NoIntersection","FoundIntersection","StillEvolving"],NoIntersection:["NoIntersection", +0]};t.NoIntersection.__enum__=t;t.FoundIntersection=["FoundIntersection",1];t.FoundIntersection.__enum__=t;t.StillEvolving=["StillEvolving",2];t.StillEvolving.__enum__=t;var F=function(a,b,c){this.distance=a;this.normal=b;this.index=c};F.__name__=!0;F.prototype={__class__:F};var D=function(){this.maxIterations=20};D.__name__=!0;D.prototype={calculateSupport:function(a){var b=new g(4);b[0]=0;b[1]=0;b[0]=-1*a[0];b[1]=-1*a[1];var c=this.shapeA.support(a);a=new g(4);a[0]=0;a[1]=0;a[0]=c[0];a[1]=c[1]; +b=this.shapeB.support(b);a[0]-=b[0];a[1]-=b[1];return a},addSupport:function(a){var b=this.calculateSupport(a);this.vertices.push(b);return 0<=a[0]*b[0]+a[1]*b[1]},tripleProduct:function(a,b,c){var d=new g(4);d[0]=a[0];d[1]=a[1];d[2]=0;a=new g(4);a[0]=b[0];a[1]=b[1];a[2]=0;b=new g(4);b[0]=c[0];b[1]=c[1];b[2]=0;c=new g(4);c[0]=0;c[1]=0;c[2]=0;c=new g(4);c[0]=d[1]*a[2]-d[2]*a[1];c[1]=d[2]*a[0]-d[0]*a[2];c[2]=d[0]*a[1]-d[1]*a[0];d=c;a=new g(4);a[0]=0;a[1]=0;a[2]=0;a=new g(4);a[0]=d[1]*b[2]-d[2]*b[1]; +a[1]=d[2]*b[0]-d[0]*b[2];a[2]=d[0]*b[1]-d[1]*b[0];b=a;d=new g(4);d[0]=b[0];d[1]=b[1];return d},evolveSimplex:function(){switch(this.vertices.length){case 0:var a=this.shapeB.get_centre(),b=this.shapeA.get_centre(),c=new g(4);c[0]=0;c[1]=0;c[0]=a[0]-b[0];c[1]=a[1]-b[1];this.direction=c;break;case 1:a=this.direction;b=new g(4);b[0]=0;b[1]=0;b[0]=-1*a[0];b[1]=-1*a[1];this.direction=b;break;case 2:b=this.vertices[1];c=this.vertices[0];a=new g(4);a[0]=0;a[1]=0;a[0]=b[0]-c[0];a[1]=b[1]-c[1];b=this.vertices[0]; +c=new g(4);c[0]=0;c[1]=0;c[0]=-1*b[0];c[1]=-1*b[1];this.direction=this.tripleProduct(a,c,a);break;case 3:b=this.vertices[2];a=new g(4);a[0]=0;a[1]=0;a[0]=-1*b[0];a[1]=-1*b[1];var c=this.vertices[1],d=this.vertices[2],b=new g(4);b[0]=0;b[1]=0;b[0]=c[0]-d[0];b[1]=c[1]-d[1];var d=this.vertices[0],f=this.vertices[2],c=new g(4);c[0]=0;c[1]=0;c[0]=d[0]-f[0];c[1]=d[1]-f[1];d=this.tripleProduct(c,b,b);b=this.tripleProduct(b,c,c);if(0=this.vertices.length&&(q=0);var n=this.vertices[q];f[0]=n[0];f[1]=n[1];n=this.vertices[h];f[0]-=n[0];f[1]-=n[1];var l;switch(a[1]){case 0:l=new g(4);l[0]=f[1];l[1]=-f[0];break;case 1:l=new g(4),l[0]=-f[1],l[1]=f[0]}var n=Math.sqrt(l[0]*l[0]+l[1]*l[1]),p=0;n>=m.EPSILON&&(p=1/n);l[0]*=p;l[1]*=p;h=this.vertices[h];h=l[0]*h[0]+l[1]*h[1];he;){e++;var h=this.findClosestEdge(c),k=this.calculateSupport(h.normal),m=h.normal,m=k[0]*m[0]+k[1]*m[1],n=h.normal;d[0]=n[0];d[1]=n[1];d[0]*= +m;d[1]*=m;if(1E-6>=Math.abs(m-h.distance))break;else this.vertices.splice(h.index,0,k)}return d},__class__:D};var w={__ename__:!0,__constructs__:["Clockwise","CounterClockwise"],Clockwise:["Clockwise",0]};w.Clockwise.__enum__=w;w.CounterClockwise=["CounterClockwise",1];w.CounterClockwise.__enum__=w;var A=function(){};A.__name__=!0;A.prototype={__class__:A};var x=function(a,b){this.set_centre(a);this.radius=b};x.__name__=!0;x.__interfaces__=[A];x.prototype={get_centre:function(){return this._centre}, +set_centre:function(a){return this._centre=a},support:function(a){var b=this.get_centre(),c=new g(4);c[0]=0;c[1]=0;c[0]=b[0];c[1]=b[1];b=new g(4);b[0]=0;b[1]=0;var d=Math.sqrt(a[0]*a[0]+a[1]*a[1]),e=0;d>=m.EPSILON&&(e=1/d);b[0]=a[0]*e;b[1]=a[1]*e;a=this.radius;b[0]*=a;b[1]*=a;c[0]+=b[0];c[1]+=b[1];return c},__class__:x};var y=function(a){this.vertices=a};y.__name__=!0;y.__interfaces__=[A];y.prototype={get_centre:function(){var a=new g(4);a[0]=0;for(var b=a[1]=0,c=0,d=this.vertices;cb&&(b=k,c=h)}return c},__class__:y};var q=function(a){Error.call(this);this.val=a;this.message=String(a);Error.captureStackTrace&&Error.captureStackTrace(this, +q)};q.__name__=!0;q.wrap=function(a){return a instanceof Error?a:new q(a)};q.__super__=Error;q.prototype=function(a,b){function c(){}c.prototype=a;var d=new c,e;for(e in b)d[e]=b[e];b.toString!==Object.prototype.toString&&(d.toString=b.toString);return d}(Error.prototype,{__class__:q});var h=function(){};h.__name__=!0;h.getClass=function(a){if(a instanceof Array&&null==a.__enum__)return Array;var b=a.__class__;if(null!=b)return b;a=h.__nativeClassName(a);return null!=a?h.__resolveNativeClass(a):null}; +h.__string_rec=function(a,b){if(null==a)return"null";if(5<=b.length)return"<...>";var c=typeof a;"function"==c&&(a.__name__||a.__ename__)&&(c="object");switch(c){case "function":return"";case "object":if(a instanceof Array){if(a.__enum__){if(2==a.length)return a[0];c=a[0]+"(";b+="\t";for(var d=2,e=a.length;d>2);d=[];for(e=0;e>8&255),a.push(e>>16&255),a.push(e>>>24);d.byteLength=d.length<<2;d.byteOffset=0;d.buffer=new n(a)}else throw new q("TODO "+ +E.string(a));d.subarray=u._subarray;d.set=u._set;return d};u._set=function(a,b){if(h.__instanceof(a.buffer,n)){if(a.byteLength+b>this.byteLength)throw new q("set() outside of range");for(var c=0,d=a.byteLength;cthis.byteLength)throw new q("set() outside of range");c=0;for(d=a.length;cthis.byteLength)throw new q("set() outside of range");for(var c=0,d=a.byteLength;cthis.byteLength)throw new q("set() outside of range");c=0;for(d=a.length;c 0) { - HxOverrides.remove(this.vertices,c1); - this.direction = abPerp; - } else if(acPerp[0] * a0[0] + acPerp[1] * a0[1] > 0) { - HxOverrides.remove(this.vertices,b2); - this.direction = acPerp; + dest6[0] = a6[0] - b3[0]; + dest6[1] = a6[1] - b3[1]; + var ca = dest6; + var bcNorm = this.tripleProduct(ca,bc,bc); + var caNorm = this.tripleProduct(bc,ca,ca); + if(bcNorm[0] * c0[0] + bcNorm[1] * c0[1] > 0) { + HxOverrides.remove(this.vertices,this.vertices[0]); + this.direction = bcNorm; + } else if(caNorm[0] * c0[0] + caNorm[1] * c0[1] > 0) { + HxOverrides.remove(this.vertices,this.vertices[1]); + this.direction = caNorm; } else { return headbutt_EvolveResult.FoundIntersection; } @@ -1986,7 +1985,11 @@ headbutt_Headbutt2D.prototype = { this.shapeA = shapeA; this.shapeB = shapeB; var result = headbutt_EvolveResult.StillEvolving; - while(result == headbutt_EvolveResult.StillEvolving) result = this.evolveSimplex(); + var iterations = 0; + while(iterations < this.maxIterations && result == headbutt_EvolveResult.StillEvolving) { + result = this.evolveSimplex(); + ++iterations; + } return result == headbutt_EvolveResult.FoundIntersection; } ,findClosestEdge: function(winding) { @@ -2081,23 +2084,31 @@ headbutt_Headbutt2D.prototype = { } ,__class__: headbutt_Headbutt2D }; +var headbutt_PolygonWinding = { __ename__ : true, __constructs__ : ["Clockwise","CounterClockwise"] }; +headbutt_PolygonWinding.Clockwise = ["Clockwise",0]; +headbutt_PolygonWinding.Clockwise.__enum__ = headbutt_PolygonWinding; +headbutt_PolygonWinding.CounterClockwise = ["CounterClockwise",1]; +headbutt_PolygonWinding.CounterClockwise.__enum__ = headbutt_PolygonWinding; var headbutt_Shape2D = function() { }; headbutt_Shape2D.__name__ = true; headbutt_Shape2D.prototype = { __class__: headbutt_Shape2D }; var headbutt_shapes_Circle = function(centre,radius) { - this.centre = centre; + this.set_centre(centre); this.radius = radius; }; headbutt_shapes_Circle.__name__ = true; headbutt_shapes_Circle.__interfaces__ = [headbutt_Shape2D]; headbutt_shapes_Circle.prototype = { - center: function() { - return this.centre; + get_centre: function() { + return this._centre; + } + ,set_centre: function(c) { + return this._centre = c; } ,support: function(direction) { - var src = this.centre; + var src = this.get_centre(); var this1 = new Float32Array(4); this1[0] = 0; this1[1] = 0; @@ -2132,7 +2143,7 @@ var headbutt_shapes_Polygon2D = function(vertices) { headbutt_shapes_Polygon2D.__name__ = true; headbutt_shapes_Polygon2D.__interfaces__ = [headbutt_Shape2D]; headbutt_shapes_Polygon2D.prototype = { - center: function() { + get_centre: function() { var this1 = new Float32Array(4); this1[0] = 0; this1[1] = 0; @@ -2152,6 +2163,20 @@ headbutt_shapes_Polygon2D.prototype = { c[1] *= s; return c; } + ,set_centre: function(c) { + var diff = this.get_centre(); + diff[0] = c[0] - diff[0]; + diff[1] = c[1] - diff[1]; + var _g = 0; + var _g1 = this.vertices; + while(_g < _g1.length) { + var vert = _g1[_g]; + ++_g; + vert[0] += diff[0]; + vert[1] += diff[1]; + } + return c; + } ,support: function(direction) { var furthestDistance = -Infinity; var furthestVertex = null; diff --git a/samples/bin/twod_intersection.js.map b/samples/bin/twod_intersection.js.map index 682e587..be71c64 100644 --- a/samples/bin/twod_intersection.js.map +++ b/samples/bin/twod_intersection.js.map @@ -4,5 +4,5 @@ "sourceRoot":"file:///", "sources":["/usr/local/lib/haxe/std/js/_std/HxOverrides.hx","/Users/kenton/Projects/headbutt/samples/twod_intersection/Main.hx","/usr/local/lib/haxe/std/js/_std/Std.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/GLM.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/Mat4.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/Quat.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/Vec2.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/Vec3.hx","/Users/kenton/Projects/libs/haxe-glm/src/glm/Vec4.hx","/usr/local/lib/haxe/std/haxe/io/FPHelper.hx","/Users/kenton/Projects/headbutt/src/headbutt/Headbutt2D.hx","/Users/kenton/Projects/headbutt/src/headbutt/shapes/Circle.hx","/Users/kenton/Projects/headbutt/src/headbutt/shapes/Polygon2D.hx","/usr/local/lib/haxe/std/js/Boot.hx","/usr/local/lib/haxe/std/js/html/compat/ArrayBuffer.hx","/usr/local/lib/haxe/std/js/html/compat/Float32Array.hx","/usr/local/lib/haxe/std/js/html/compat/Uint8Array.hx"], "names":[], -"mappings":"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" +"mappings":"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" } \ No newline at end of file diff --git a/samples/bin/twod_intersection.min.js b/samples/bin/twod_intersection.min.js new file mode 100644 index 0000000..0e9b0b6 --- /dev/null +++ b/samples/bin/twod_intersection.min.js @@ -0,0 +1,32 @@ +(function(B){var C=function(){};C.__name__=!0;C.remove=function(a,b){var c=a.indexOf(b);if(-1==c)return!1;a.splice(c,1);return!0};var f=function(){};f.__name__=!0;f.main=function(){var a=window.document.getElementById("canvas");a.width=a.clientWidth;a.height=a.clientHeight;f.ctx=a.getContext("2d",null);window.requestAnimationFrame(f.draw);var b=new k(4);b[0]=100;b[1]=100;f.mouseCirc=new x(b,16);b=new k(4);b[0]=110;b[1]=55;var c=new k(4);c[0]=200;c[1]=62;var d=new k(4);d[0]=150;d[1]=120;f.poly=new y([b, +c,d]);f.hb=new D;a.addEventListener("mousemove",f.onMouseMove);a.addEventListener("touchstart",f.onTouch);a.addEventListener("touchmove",f.onTouch)};f.onMouseMove=function(a){f.moveCircle(a.clientX,a.clientY)};f.onTouch=function(a){f.moveCircle(a.touches[0].clientX,a.touches[0].clientY);a.stopPropagation()};f.moveCircle=function(a,b){var c=f.ctx.canvas.getBoundingClientRect();f.mouseCirc.get_centre()[0]=a-c.left;f.mouseCirc.get_centre()[1]=b-c.top};f.draw=function(a){f.lastTime=a;a=f.hb.intersect(f.poly, +f.mouseCirc);if(null!=a){var b=f.mouseCirc.get_centre(),c=f.mouseCirc.get_centre();c[0]=b[0]+a[0];c[1]=b[1]+a[1]}f.ctx.canvas.width=f.ctx.canvas.clientWidth;f.ctx.canvas.height=f.ctx.canvas.clientHeight;f.ctx.clearRect(0,0,f.ctx.canvas.clientWidth,f.ctx.canvas.clientHeight);f.ctx.beginPath();f.ctx.moveTo(f.poly.vertices[0][0],f.poly.vertices[0][1]);a=1;for(b=f.poly.vertices.length;a>>23&255,c=a&8388607;return 0==c&&0==b?0:(1-(a>>>31<<1))*(1+Math.pow(2,-23)*c)*Math.pow(2,b-127)};z.floatToI32=function(a){if(0==a)return 0;var b=0>a?-a:a,c=Math.floor(Math.log(b)/.6931471805599453);-127>c?c=-127:128c&&(b=0,++c);return(0>a?-2147483648:0)|c+127<<23|b};var t={__ename__:!0,__constructs__:["NoIntersection","FoundIntersection","StillEvolving"],NoIntersection:["NoIntersection", +0]};t.NoIntersection.__enum__=t;t.FoundIntersection=["FoundIntersection",1];t.FoundIntersection.__enum__=t;t.StillEvolving=["StillEvolving",2];t.StillEvolving.__enum__=t;var F=function(a,b,c){this.distance=a;this.normal=b;this.index=c};F.__name__=!0;F.prototype={__class__:F};var D=function(){this.maxIterations=20};D.__name__=!0;D.prototype={calculateSupport:function(a){var b=new k(4);b[0]=0;b[1]=0;b[0]=-1*a[0];b[1]=-1*a[1];var c=this.shapeA.support(a);a=new k(4);a[0]=0;a[1]=0;a[0]=c[0];a[1]=c[1]; +b=this.shapeB.support(b);a[0]-=b[0];a[1]-=b[1];return a},addSupport:function(a){var b=this.calculateSupport(a);this.vertices.push(b);return 0<=a[0]*b[0]+a[1]*b[1]},tripleProduct:function(a,b,c){var d=new k(4);d[0]=a[0];d[1]=a[1];d[2]=0;a=new k(4);a[0]=b[0];a[1]=b[1];a[2]=0;b=new k(4);b[0]=c[0];b[1]=c[1];b[2]=0;c=new k(4);c[0]=0;c[1]=0;c[2]=0;c=new k(4);c[0]=d[1]*a[2]-d[2]*a[1];c[1]=d[2]*a[0]-d[0]*a[2];c[2]=d[0]*a[1]-d[1]*a[0];d=c;a=new k(4);a[0]=0;a[1]=0;a[2]=0;a=new k(4);a[0]=d[1]*b[2]-d[2]*b[1]; +a[1]=d[2]*b[0]-d[0]*b[2];a[2]=d[0]*b[1]-d[1]*b[0];b=a;d=new k(4);d[0]=b[0];d[1]=b[1];return d},evolveSimplex:function(){switch(this.vertices.length){case 0:var a=this.shapeB.get_centre(),b=this.shapeA.get_centre(),c=new k(4);c[0]=0;c[1]=0;c[0]=a[0]-b[0];c[1]=a[1]-b[1];this.direction=c;break;case 1:a=this.direction;b=new k(4);b[0]=0;b[1]=0;b[0]=-1*a[0];b[1]=-1*a[1];this.direction=b;break;case 2:b=this.vertices[1];c=this.vertices[0];a=new k(4);a[0]=0;a[1]=0;a[0]=b[0]-c[0];a[1]=b[1]-c[1];b=this.vertices[0]; +c=new k(4);c[0]=0;c[1]=0;c[0]=-1*b[0];c[1]=-1*b[1];this.direction=this.tripleProduct(a,c,a);break;case 3:b=this.vertices[2];a=new k(4);a[0]=0;a[1]=0;a[0]=-1*b[0];a[1]=-1*b[1];var c=this.vertices[1],d=this.vertices[2],b=new k(4);b[0]=0;b[1]=0;b[0]=c[0]-d[0];b[1]=c[1]-d[1];var d=this.vertices[0],e=this.vertices[2],c=new k(4);c[0]=0;c[1]=0;c[0]=d[0]-e[0];c[1]=d[1]-e[1];d=this.tripleProduct(c,b,b);b=this.tripleProduct(b,c,c);if(0=this.vertices.length&&(q=0);var p=this.vertices[q];e[0]=p[0];e[1]=p[1];p=this.vertices[g];e[0]-=p[0];e[1]-=p[1];var l;switch(a[1]){case 0:l=new k(4);l[0]=e[1];l[1]=-e[0];break;case 1:l=new k(4),l[0]=-e[1],l[1]=e[0]}var p=Math.sqrt(l[0]*l[0]+l[1]*l[1]),m=0;p>=n.EPSILON&&(m=1/p);l[0]*=m;l[1]*=m;g=this.vertices[g];g=l[0]*g[0]+l[1]*g[1];ge;){e++;var f=this.findClosestEdge(c),h=this.calculateSupport(f.normal),g=f.normal,g=h[0]*g[0]+h[1]*g[1],n=f.normal;d[0]=n[0];d[1]=n[1];d[0]*= +g;d[1]*=g;if(1E-6>=Math.abs(g-f.distance))break;else this.vertices.splice(f.index,0,h)}return d},__class__:D};var w={__ename__:!0,__constructs__:["Clockwise","CounterClockwise"],Clockwise:["Clockwise",0]};w.Clockwise.__enum__=w;w.CounterClockwise=["CounterClockwise",1];w.CounterClockwise.__enum__=w;var A=function(){};A.__name__=!0;A.prototype={__class__:A};var x=function(a,b){this.set_centre(a);this.radius=b};x.__name__=!0;x.__interfaces__=[A];x.prototype={get_centre:function(){return this._centre}, +set_centre:function(a){return this._centre=a},support:function(a){var b=this.get_centre(),c=new k(4);c[0]=0;c[1]=0;c[0]=b[0];c[1]=b[1];b=new k(4);b[0]=0;b[1]=0;var d=Math.sqrt(a[0]*a[0]+a[1]*a[1]),e=0;d>=n.EPSILON&&(e=1/d);b[0]=a[0]*e;b[1]=a[1]*e;a=this.radius;b[0]*=a;b[1]*=a;c[0]+=b[0];c[1]+=b[1];return c},__class__:x};var y=function(a){this.vertices=a};y.__name__=!0;y.__interfaces__=[A];y.prototype={get_centre:function(){var a=new k(4);a[0]=0;for(var b=a[1]=0,c=0,d=this.vertices;cb&&(b=g,c=f)}return c},__class__:y};var q=function(a){Error.call(this);this.val=a;this.message=String(a);Error.captureStackTrace&&Error.captureStackTrace(this, +q)};q.__name__=!0;q.wrap=function(a){return a instanceof Error?a:new q(a)};q.__super__=Error;q.prototype=function(a,b){function c(){}c.prototype=a;var d=new c,e;for(e in b)d[e]=b[e];b.toString!==Object.prototype.toString&&(d.toString=b.toString);return d}(Error.prototype,{__class__:q});var g=function(){};g.__name__=!0;g.getClass=function(a){if(a instanceof Array&&null==a.__enum__)return Array;var b=a.__class__;if(null!=b)return b;a=g.__nativeClassName(a);return null!=a?g.__resolveNativeClass(a):null}; +g.__string_rec=function(a,b){if(null==a)return"null";if(5<=b.length)return"<...>";var c=typeof a;"function"==c&&(a.__name__||a.__ename__)&&(c="object");switch(c){case "function":return"";case "object":if(a instanceof Array){if(a.__enum__){if(2==a.length)return a[0];c=a[0]+"(";b+="\t";for(var d=2,e=a.length;d>2);d=[];for(e=0;e>8&255),a.push(e>>16&255),a.push(e>>>24);d.byteLength=d.length<<2;d.byteOffset=0;d.buffer=new r(a)}else throw new q("TODO "+ +E.string(a));d.subarray=u._subarray;d.set=u._set;return d};u._set=function(a,b){if(g.__instanceof(a.buffer,r)){if(a.byteLength+b>this.byteLength)throw new q("set() outside of range");for(var c=0,d=a.byteLength;cthis.byteLength)throw new q("set() outside of range");c=0;for(d=a.length;cthis.byteLength)throw new q("set() outside of range");for(var c=0,d=a.byteLength;cthis.byteLength)throw new q("set() outside of range");c=0;for(d=a.length;c 0) { - // the origin is outside line ab - // get rid of c and add a new support in the direction of abPerp - vertices.remove(c); - direction = abPerp; + if(bcNorm.dot(c0) > 0) { + // the origin is outside line bc + // get rid of a and add a new support in the direction of bcNorm + vertices.remove(vertices[0]); + direction = bcNorm; } - else if(acPerp.dot(a0) > 0) { - // the origin is outside line ac - // get rid of b and add a new support in the direction of acPerp - vertices.remove(b); - direction = acPerp; + else if(caNorm.dot(c0) > 0) { + // the origin is outside line ca + // get rid of b and add a new support in the direction of caNorm + vertices.remove(vertices[1]); + direction = caNorm; } else { // the origin is inside both ab and ac, @@ -128,8 +116,10 @@ class Headbutt2D { // do the actual test var result:EvolveResult = EvolveResult.StillEvolving; - while(result == EvolveResult.StillEvolving) { + var iterations:Int = 0; + while(iterations < maxIterations && result == EvolveResult.StillEvolving) { result = evolveSimplex(); + iterations++; } return result == EvolveResult.FoundIntersection; } diff --git a/src/headbutt/Headbutt3D.hx b/src/headbutt/Headbutt3D.hx new file mode 100644 index 0000000..cec4420 --- /dev/null +++ b/src/headbutt/Headbutt3D.hx @@ -0,0 +1,143 @@ +package headbutt; + +using glm.Vec3; + +class Headbutt3D { + private var vertices:Array; + private var direction:Vec3; + private var shapeA:Shape3D; + private var shapeB:Shape3D; + + public var maxIterations:Int = 20; + + public function new() {} + + private function calculateSupport(direction:Vec3):Vec3 { + var oppositeDirection:Vec3 = direction.multiplyScalar(-1, new Vec3()); + var newVertex:Vec3 = shapeA.support(direction).copy(new Vec3()); + newVertex.subtractVec(shapeB.support(oppositeDirection), newVertex); + return newVertex; + } + + private function addSupport(direction:Vec3):Bool { + var newVertex:Vec3 = calculateSupport(direction); + vertices.push(newVertex); + return Vec3.dot(direction, newVertex) >= 0; + } + + private function evolveSimplex():EvolveResult { + switch(vertices.length) { + case 0: { + direction = shapeB.centre - shapeA.centre; + } + case 1: { + // flip the direction + direction *= -1; + } + case 2: { + // line ab is the line formed by the first two vertices + var ab:Vec3 = vertices[1] - vertices[0]; + // line a0 is the line from the first vertex to the origin + var a0:Vec3 = vertices[0] * -1; + + // use the triple-cross-product to calculate a direction perpendicular + // to line ab in the direction of the origin + var tmp:Vec3 = ab.cross(a0, new Vec3()); + direction = tmp.cross(ab, direction); + } + case 3: { + var ac:Vec3 = vertices[2] - vertices[0]; + var ab:Vec3 = vertices[1] - vertices[0]; + direction = ac.cross(ab, new Vec3()); + + // ensure it points toward the origin + var a0:Vec3 = vertices[0] * -1; + if(direction.dot(a0) < 0) direction *= -1; + } + case 4: { + // ascii representation of our simplex at this point + /* + [D] + ,|, + ,7``\'VA, + ,7` |, `'VA, + ,7` `\ `'VA, + ,7` |, `'VA, + ,7` `\ `'VA, + ,7` |, `'VA, + ,7` `\ ,..ooOOTK` [C] + ,7` |,.ooOOT''` AV + ,7` ,..ooOOT`\` /7 + ,7` ,..ooOOT''` |, AV + ,T,..ooOOT''` `\ /7 + [A] `'TTs., |, AV + `'TTs., `\ /7 + `'TTs., |, AV + `'TTs., `\ /7 + `'TTs., |, AV + `'TTs.,\/7 + `'T` + [B] + */ + + // calculate the three edges of interest + var da = vertices[3] - vertices[0]; + var db = vertices[3] - vertices[1]; + var dc = vertices[3] - vertices[2]; + + // and the direction to the origin + var d0 = vertices[3] * -1; + + // check triangles a-b-d, b-c-d, and c-a-d + var abdNorm:Vec3 = da.cross(db, new Vec3()); + var bcdNorm:Vec3 = db.cross(dc, new Vec3()); + var cadNorm:Vec3 = dc.cross(da, new Vec3()); + + if(abdNorm.dot(d0) > 0) { + // the origin is on the outside of triangle a-b-d + // eliminate c! + vertices.remove(vertices[2]); + direction = abdNorm; + } + else if(bcdNorm.dot(d0) > 0) { + // the origin is on the outside of triangle bcd + // eliminate a! + vertices.remove(vertices[0]); + direction = bcdNorm; + } + else if(cadNorm.dot(d0) > 0) { + // the origin is on the outside of triangle cad + // eliminate b! + vertices.remove(vertices[1]); + direction = cadNorm; + } + else { + // the origin is inside all of the triangles! + return EvolveResult.FoundIntersection; + } + } + case _: throw 'Can\'t have simplex with ${vertices.length} verts!'; + } + + return addSupport(direction) + ? EvolveResult.StillEvolving + : EvolveResult.NoIntersection; + } + + public function test(shapeA:Shape3D, shapeB:Shape3D):Bool { + // reset everything + this.vertices = new Array(); + this.shapeA = shapeA; + this.shapeB = shapeB; + + // do the actual test + var result:EvolveResult = EvolveResult.StillEvolving; + var iterations:Int = 0; + while(iterations < maxIterations && result == EvolveResult.StillEvolving) { + result = evolveSimplex(); + iterations++; + } + + return result == EvolveResult.FoundIntersection; + } +} \ No newline at end of file diff --git a/src/headbutt/PolygonWinding.hx b/src/headbutt/PolygonWinding.hx new file mode 100644 index 0000000..9096ee5 --- /dev/null +++ b/src/headbutt/PolygonWinding.hx @@ -0,0 +1,6 @@ +package headbutt; + +enum PolygonWinding { + Clockwise; + CounterClockwise; +} \ No newline at end of file diff --git a/src/headbutt/Shape2D.hx b/src/headbutt/Shape2D.hx index 80b9a64..a94fbb4 100644 --- a/src/headbutt/Shape2D.hx +++ b/src/headbutt/Shape2D.hx @@ -3,6 +3,6 @@ package headbutt; import glm.Vec2; interface Shape2D { - public function center():Vec2; + public var centre(get, set):Vec2; public function support(direction:Vec2):Vec2; } \ No newline at end of file diff --git a/src/headbutt/Shape3D.hx b/src/headbutt/Shape3D.hx new file mode 100644 index 0000000..efc33e5 --- /dev/null +++ b/src/headbutt/Shape3D.hx @@ -0,0 +1,8 @@ +package headbutt; + +import glm.Vec3; + +interface Shape3D { + public var centre(get, set):Vec3; + public function support(direction:Vec3):Vec3; +} \ No newline at end of file diff --git a/src/headbutt/shapes/Circle.hx b/src/headbutt/shapes/Circle.hx index 4c66635..7828a91 100644 --- a/src/headbutt/shapes/Circle.hx +++ b/src/headbutt/shapes/Circle.hx @@ -4,7 +4,8 @@ using glm.Vec2; import headbutt.Shape2D; class Circle implements Shape2D { - public var centre:Vec2; + public var centre(get, set):Vec2; + private var _centre:Vec2; public var radius:Float; public function new(centre:Vec2, radius:Float) { @@ -12,8 +13,12 @@ class Circle implements Shape2D { this.radius = radius; } - public function center():Vec2 { - return centre; + private function get_centre():Vec2 { + return _centre; + } + + private function set_centre(c:Vec2):Vec2 { + return _centre = c; } public function support(direction:Vec2):Vec2 { diff --git a/src/headbutt/shapes/Polygon2D.hx b/src/headbutt/shapes/Polygon2D.hx index 7f89309..d4e5ac1 100644 --- a/src/headbutt/shapes/Polygon2D.hx +++ b/src/headbutt/shapes/Polygon2D.hx @@ -4,13 +4,14 @@ using glm.Vec2; import headbutt.Shape2D; class Polygon2D implements Shape2D { + public var centre(get, set):Vec2; public var vertices:Array; public function new(?vertices:Array) { this.vertices = vertices; } - public function center():Vec2 { + private function get_centre():Vec2 { var c:Vec2 = new Vec2(); var count:Float = 0.0; for(v in vertices) { @@ -22,6 +23,15 @@ class Polygon2D implements Shape2D { return c; } + private function set_centre(c:Vec2):Vec2 { + var diff:Vec2 = centre; + c.subtractVec(diff, diff); + for(vert in vertices) { + vert.addVec(diff, vert); + } + return c; + } + public function support(direction:Vec2):Vec2 { var furthestDistance:Float = Math.NEGATIVE_INFINITY; var furthestVertex:Vec2 = null; diff --git a/src/headbutt/shapes/Polygon3D.hx b/src/headbutt/shapes/Polygon3D.hx new file mode 100644 index 0000000..a24ceba --- /dev/null +++ b/src/headbutt/shapes/Polygon3D.hx @@ -0,0 +1,49 @@ +package headbutt.shapes; + +using glm.Vec3; +import headbutt.Shape3D; + +class Polygon3D implements Shape3D { + public var centre(get, set):Vec3; + public var vertices:Array; + + public function new(?vertices:Array) { + this.vertices = vertices; + } + + private function get_centre():Vec3 { + var c:Vec3 = new Vec3(); + var count:Float = 0.0; + for(v in vertices) { + c.addVec(v, c); + count += 1.0; + } + c.multiplyScalar(1.0 / count, c); + + return c; + } + + private function set_centre(c:Vec3):Vec3 { + var diff:Vec3 = centre; + c.subtractVec(diff, diff); + for(vert in vertices) { + vert.addVec(diff, vert); + } + return c; + } + + public function support(direction:Vec3):Vec3 { + var furthestDistance:Float = Math.NEGATIVE_INFINITY; + var furthestVertex:Vec3 = null; + + for(v in vertices) { + var distance:Float = Vec3.dot(v, direction); + if(distance > furthestDistance) { + furthestDistance = distance; + furthestVertex = v; + } + } + + return furthestVertex; + } +} \ No newline at end of file diff --git a/src/headbutt/shapes/Sphere.hx b/src/headbutt/shapes/Sphere.hx new file mode 100644 index 0000000..ae47e36 --- /dev/null +++ b/src/headbutt/shapes/Sphere.hx @@ -0,0 +1,31 @@ +package headbutt.shapes; + +using glm.Vec3; +import headbutt.Shape3D; + +class Sphere implements Shape3D { + public var centre(get, set):Vec3; + private var _centre:Vec3; + public var radius:Float; + + public function new(centre:Vec3, radius:Float) { + this.centre = centre; + this.radius = radius; + } + + private function get_centre():Vec3 { + return _centre; + } + + private function set_centre(c:Vec3):Vec3 { + return _centre = c; + } + + public function support(direction:Vec3):Vec3 { + var c:Vec3 = centre.copy(new Vec3()); + var d:Vec3 = direction.normalize(new Vec3()); + d.multiplyScalar(radius, d); + c.addVec(d, c); + return c; + } +} \ No newline at end of file diff --git a/test/TestHeadbutt3D.hx b/test/TestHeadbutt3D.hx new file mode 100644 index 0000000..ef79e26 --- /dev/null +++ b/test/TestHeadbutt3D.hx @@ -0,0 +1,92 @@ +import headbutt.Headbutt3D; +import headbutt.shapes.Sphere; +import headbutt.shapes.Polygon3D; +import buddy.*; +using buddy.Should; +import glm.Vec3; + +@:access(headbutt.Headbutt3D) +class TestHeadbutt3D extends BuddySuite { + public function new() { + describe('Using Headbutt3D', { + var hb:Headbutt3D; + beforeEach({ + hb = new Headbutt3D(); + }); + + it('should detect collisions for two polygons which overlap', { + var a:Polygon3D = new Polygon3D([ + new Vec3(-1, -1, -1), new Vec3(-1, -1, 1), + new Vec3(-1, 1, -1), new Vec3(-1, 1, 1), + new Vec3( 1, -1, -1), new Vec3( 1, -1, 1), + new Vec3( 1, 1, -1), new Vec3( 1, 1, 1) + ]); + var b:Polygon3D = new Polygon3D([ + new Vec3(-0.5, -1, -1), new Vec3(-0.5, -1, 1), + new Vec3(-0.5, 1, -1), new Vec3(-0.5, 1, 1), + new Vec3( 0.5, -1, -1), new Vec3( 0.5, -1, 1), + new Vec3( 0.5, 1, -1), new Vec3( 0.5, 1, 1) + ]); + + var result:Bool = hb.test(a, b); + result.should.be(true); + }); + + it('should detect collisions for two spheres which overlap', { + var sa:Sphere = new Sphere(new Vec3(0, 0, 0), 1); + var sb:Sphere = new Sphere(new Vec3(0.5, 0.5, 0.5), 1); + + var result:Bool = hb.test(sa, sb); + result.should.be(true); + }); + + it('shouldn\'t detect collisions for two polygons which don\'t overlap', { + var a:Polygon3D = new Polygon3D([ + new Vec3(-1, -1, -1), new Vec3(-1, -1, 1), + new Vec3(-1, 1, -1), new Vec3(-1, 1, 1), + new Vec3( 1, -1, -1), new Vec3( 1, -1, 1), + new Vec3( 1, 1, -1), new Vec3( 1, 1, 1) + ]); + var b:Polygon3D = new Polygon3D([ + new Vec3(-5, -1, -1), new Vec3(-5, -1, 1), + new Vec3(-5, 1, -1), new Vec3(-5, 1, 1), + new Vec3(-4, -1, -1), new Vec3(-4, -1, 1), + new Vec3(-4, 1, -1), new Vec3(-4, 1, 1) + ]); + + var result:Bool = hb.test(a, b); + result.should.be(false); + }); + + it('shouldn\'t detect collisions for two spheres which don\'t overlap', { + var sa:Sphere = new Sphere(new Vec3(0, 0, 0), 1); + var sb:Sphere = new Sphere(new Vec3(2, 2, 2), 1); + + var result:Bool = hb.test(sa, sb); + result.should.be(false); + }); + + it('should detect collisions between a shape and itself', { + var s:Sphere = new Sphere(new Vec3(0, 0, 0), 1); + var result:Bool = hb.test(s, s); + result.should.be(true); + }); + + it('should detect collisions between a sphere and a polygon', { + var s:Sphere = new Sphere(new Vec3(0.5, 0.5, 0.5), 1); + var p:Polygon3D = new Polygon3D([ + new Vec3(-1, -1, -1), new Vec3(-1, -1, 1), + new Vec3(-1, 1, -1), new Vec3(-1, 1, 1), + new Vec3( 1, -1, -1), new Vec3( 1, -1, 1), + new Vec3( 1, 1, -1), new Vec3( 1, 1, 1) + ]); + var result:Bool = hb.test(s, p); + result.should.be(true); + }); + + it('should calculate the intersection of two spheres'); + it('should calculate the intersection of two polygons'); + it('should calculate the intersection of a polygon and a sphere'); + }); + } +} \ No newline at end of file diff --git a/test/TestMain.hx b/test/TestMain.hx index 30828ca..04e4d7d 100644 --- a/test/TestMain.hx +++ b/test/TestMain.hx @@ -6,7 +6,8 @@ class TestMain { var reporter = new buddy.reporting.ConsoleFileReporter(true); var runner = new buddy.SuitesRunner([ new shapes.TestCircle(), - new TestHeadbutt2D() + new TestHeadbutt2D(), + new TestHeadbutt3D() ], reporter); runner.run(); diff --git a/test/shapes/TestCircle.hx b/test/shapes/TestCircle.hx index 99e9327..a3bdd36 100644 --- a/test/shapes/TestCircle.hx +++ b/test/shapes/TestCircle.hx @@ -10,7 +10,7 @@ class TestCircle extends BuddySuite { describe('Using circles', { it('should calculate the center', { var circ:Circle = new Circle(new Vec2(0, 0.5), 0.75); - var c:Vec2 = circ.center(); + var c:Vec2 = circ.centre; c.x.should.be(0); c.y.should.be(0.5);