summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-10-02 13:03:24 -0400
committerJules Laplace <jules@okfoc.us>2014-10-02 13:03:24 -0400
commit6e5dbdeb78b72bf9775ed2ea233db0b2ad8b5e41 (patch)
treec78bd95cb2ff464e647ca36b49cb407168bf6b7e
parent52cabd89039fa852cbd59db9b8bfcb29e1e0a170 (diff)
get coordinates for point
-rw-r--r--public/assets/javascripts/rectangles/models/wall.js8
-rw-r--r--public/assets/javascripts/rectangles/util/coords.js33
-rw-r--r--views/partials/scripts.ejs3
3 files changed, 44 insertions, 0 deletions
diff --git a/public/assets/javascripts/rectangles/models/wall.js b/public/assets/javascripts/rectangles/models/wall.js
index 1b37aa0..07c3971 100644
--- a/public/assets/javascripts/rectangles/models/wall.js
+++ b/public/assets/javascripts/rectangles/models/wall.js
@@ -51,6 +51,14 @@
})
},
mousemove: function(e){
+ var offset = offsetFromPoint(e, mx.el)
+ if (offset) {
+ console.log([offset.left * mx.width + mx.face.x.a, (1-offset.top) * mx.height + mx.face.y.a].map(Math.round))
+// console.log(mx)
+ }
+ else {
+ console.log("NONE")
+ }
},
mousedown: function(e){
if (Scenery.nextMedia) {
diff --git a/public/assets/javascripts/rectangles/util/coords.js b/public/assets/javascripts/rectangles/util/coords.js
new file mode 100644
index 0000000..74b7fda
--- /dev/null
+++ b/public/assets/javascripts/rectangles/util/coords.js
@@ -0,0 +1,33 @@
+function offsetFromPoint(event, element) {
+ function a(width) {
+ var l = 0, r = 200;
+ while (r - l > 0.0001) {
+ var mid = (r + l) / 2;
+ var a = document.createElement('div');
+ a.style.cssText = 'position: absolute;left:0;top:0;background: red;z-index: 1000;';
+ a.style[width ? 'width' : 'height'] = mid.toFixed(3) + '%';
+ a.style[width ? 'height' : 'width'] = '100%';
+ element.appendChild(a);
+ var x = document.elementFromPoint(event.clientX, event.clientY);
+ element.removeChild(a);
+ if (x === a) {
+ r = mid;
+ } else {
+ if (r === 200) {
+ return null;
+ }
+ l = mid;
+ }
+ }
+ return mid;
+ }
+ var l = a(1),
+ t = a(0);
+ return l && t ? {
+ left: l / 100,
+ top: t / 100,
+ toString: function () {
+ return 'left: ' + l + '%, top: ' + t + '%';
+ }
+ } : null;
+}
diff --git a/views/partials/scripts.ejs b/views/partials/scripts.ejs
index 1ce180a..5ddab2a 100644
--- a/views/partials/scripts.ejs
+++ b/views/partials/scripts.ejs
@@ -21,8 +21,10 @@
<script type="text/javascript" src="/assets/javascripts/mx/primitives/mx.vimeo.js"></script>
<script type="text/javascript" src="/assets/javascripts/rectangles/_env.js"></script>
+
<script type="text/javascript" src="/assets/javascripts/rectangles/util/constants.js"></script>
<script type="text/javascript" src="/assets/javascripts/rectangles/util/colors.js"></script>
+<script type="text/javascript" src="/assets/javascripts/rectangles/util/coords.js"></script>
<script type="text/javascript" src="/assets/javascripts/rectangles/util/debug.js"></script>
<script type="text/javascript" src="/assets/javascripts/rectangles/util/permissions.js"></script>
<script type="text/javascript" src="/assets/javascripts/rectangles/util/measurement.js"></script>
@@ -33,6 +35,7 @@
<script type="text/javascript" src="/assets/javascripts/rectangles/util/keys.js"></script>
<script type="text/javascript" src="/assets/javascripts/rectangles/util/undostack.js"></script>
<script type="text/javascript" src="/assets/javascripts/rectangles/util/minotaur.js"></script>
+
<script type="text/javascript" src="/assets/javascripts/rectangles/models/vec2.js"></script>
<script type="text/javascript" src="/assets/javascripts/rectangles/models/vec3.js"></script>
<script type="text/javascript" src="/assets/javascripts/rectangles/models/mat4.js"></script>