summaryrefslogtreecommitdiff
path: root/_shared/math/collision.js
diff options
context:
space:
mode:
Diffstat (limited to '_shared/math/collision.js')
-rw-r--r--_shared/math/collision.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/_shared/math/collision.js b/_shared/math/collision.js
new file mode 100644
index 0000000..8e4be7d
--- /dev/null
+++ b/_shared/math/collision.js
@@ -0,0 +1,26 @@
+/// <reference path="vec2.js" />
+/// <reference path="line2.js" />
+/// <reference path="circle.js" />
+/// <reference path="mat4.js" />
+/// <reference path="point2.js" />
+
+/**
+ *
+ * @param {circle} pCircle
+ * @param {line2} pLine
+ */
+function lineCircleCollision2(pCircle, pLine) {
+ return distanceFromPoint2ToLine2(pCircle.position, pLine) <= pCircle.radius;
+}
+
+function getLineCircleCollison2Data(pCircle, pLine) {
+ const lCollisionNormal = pLine.normal,
+ lCollisionPoint = addVec2(pCircle.position, scaleVec2(negate2(lCollisionNormal), pCircle.radius));
+
+ return {
+ relativeVelocity: subVec2(pCircle.velocity, pLine.velocity),
+ collisionNormal: lCollisionNormal,
+ firstPointOfApplication: subVec2(lCollisionPoint, pCircle.position),
+ secondPointOfApplication: subVec2(lCollisionPoint, pLine.start)
+ }
+} \ No newline at end of file