summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2017-03-25 19:42:58 +0100
committerJules Laplace <jules@okfoc.us>2017-03-25 19:42:58 +0100
commit8f42f75b29ce3508a2e6e747da95b206c2cf8901 (patch)
tree13be9d1bb294086851fc35b4ff55ac4c1b158a28 /js
parent53f13c0c522176e535a8bf1bdc618195034ff78b (diff)
slice workin.. except reverse mode
Diffstat (limited to 'js')
-rw-r--r--js/ui/transform.js24
1 files changed, 16 insertions, 8 deletions
diff --git a/js/ui/transform.js b/js/ui/transform.js
index b155af5..d6253bc 100644
--- a/js/ui/transform.js
+++ b/js/ui/transform.js
@@ -21,7 +21,7 @@ var transform = (function(){
var dy = e.pageY - q[1]
var w = canvas.w
var h = canvas.h
- mode.before(dx, dy, pdx, pdy)
+ mode.before(dx, dy, pdx, pdy, point)
for (var x = 0; x < w; x++) {
for (var y = 0; y < h; y++) {
lex = canvas.get(x, y)
@@ -104,27 +104,35 @@ var transform = (function(){
slice: {
init: function(e){
+ mode.is_y = ! (e.altKey || e.metaKey)
+ mode.reverse = !! (e.shiftKey)
mode.position = 0
- mode.is_y = e.shiftKey || e.altKey || e.metaKey
+ mode.direction = 0
+ mode.last_dd = -1
},
- before: function(dx, dy, pdx, pdy){
- var pd = mode.is_y ? pdy : pdx
+ before: function(dx, dy, pdx, pdy, point){
+ var new_position = mode.is_y ? point[1] : point[0]
var dd = mode.is_y ? pdx : pdy
- var new_position = mod(mode.position + pd, mode.limit)
+
if (mode.position !== new_position) {
mode.position = new_position
+ mode.direction = 0
+ }
+ if (mode.last_dd !== -1) {
+ mode.direction = mode.last_dd - dd
}
- mode.direction = dd
+ console.log(mode.position)
+ mode.last_dd = dd
copy.assign(canvas)
},
shade: function(src, dest, lex, x, y, w, h){
if (mode.is_y) {
- if (y >= mode.position) {
+ if (y >= mode.position || (mode.reverse && mode.position >= y)) {
var copy = src.get(x + mode.direction, y)
lex.assign(copy)
}
}
- else if (x >= mode.position) {
+ else if (x >= mode.position || (mode.reverse && mode.position >= x)) {
var copy = src.get(x, y + mode.direction)
lex.assign(copy)
}