diff options
| author | Jules Laplace <jules@okfoc.us> | 2014-10-02 13:03:24 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2014-10-02 13:03:24 -0400 |
| commit | 6e5dbdeb78b72bf9775ed2ea233db0b2ad8b5e41 (patch) | |
| tree | c78bd95cb2ff464e647ca36b49cb407168bf6b7e | |
| parent | 52cabd89039fa852cbd59db9b8bfcb29e1e0a170 (diff) | |
get coordinates for point
| -rw-r--r-- | public/assets/javascripts/rectangles/models/wall.js | 8 | ||||
| -rw-r--r-- | public/assets/javascripts/rectangles/util/coords.js | 33 | ||||
| -rw-r--r-- | views/partials/scripts.ejs | 3 |
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> |
