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);