diff options
| author | Jules Laplace <jules@okfoc.us> | 2014-08-22 19:41:37 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2014-08-22 19:41:37 -0400 |
| commit | 2235c34e498499b8141e835998b962067583a0ce (patch) | |
| tree | 22406e6484a7cccc1c72fb47cc4e5848f57ee2c4 /public/assets/javascripts/rectangles/engine/scenery/resize.js | |
| parent | ed5751766079a62ce596dcc0abc1a211b5b633dc (diff) | |
| parent | 4ef340497ef24bb2ecacb2c9c4106c24515c874f (diff) | |
merge
Diffstat (limited to 'public/assets/javascripts/rectangles/engine/scenery/resize.js')
| -rw-r--r-- | public/assets/javascripts/rectangles/engine/scenery/resize.js | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/public/assets/javascripts/rectangles/engine/scenery/resize.js b/public/assets/javascripts/rectangles/engine/scenery/resize.js index c5c754a..d9cce18 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/resize.js +++ b/public/assets/javascripts/rectangles/engine/scenery/resize.js @@ -6,7 +6,7 @@ Scenery.resize = new function(){ var obj var x, y, z, bounds var dragging = false - var dimensions, position, scale + var naturalDimension, dimension, position, scale var oldState var dots = [], dot, selected_dot @@ -148,8 +148,9 @@ Scenery.resize = new function(){ selected_dot = selection[0] dragging = true - - dimensions = obj.dimensions + + naturalDimension = obj.naturalDimensions + dimension = obj.dimensions position = new vec3(obj.mx.x, obj.mx.y, obj.mx.z) scale = obj.mx.scale oldState = obj.serialize() @@ -165,7 +166,7 @@ Scenery.resize = new function(){ var width = cursor.x.magnitude() var height = cursor.y.magnitude() var mag = cursor.magnitude() - var old_width = dimensions.a * scale + var old_width = dimension.a * scale if (abs(width) > abs(height)) { mag = x_sign * mag * sign(width) @@ -173,8 +174,10 @@ Scenery.resize = new function(){ else { mag = y_sign * mag * sign(height) } - - obj.mx.scale = scale * (old_width + mag) / old_width + + obj.mx.scale = ( dimension.a + mag ) / naturalDimension.a // dimension.a // scale * (old_width + mag) / old_width + +// console.log(scale, obj.mx.scale, dimension.a + mag, naturalDimension.a) if (selected_dot.side & LEFT_RIGHT) { obj.mx.x = position.a + cos(rotationY) * mag/2 * (x_sign) @@ -192,7 +195,7 @@ Scenery.resize = new function(){ selected_dot = null if (! editor.permissions.resize) { return } obj.scale = obj.mx.ops.scale = obj.mx.scale - obj.set_wall() + obj.dimensions.assign(obj.naturalDimensions).mul(obj.scale) UndoStack.push({ type: 'update-scenery', @@ -200,6 +203,9 @@ Scenery.resize = new function(){ redo: obj.serialize(), }) + // TODO: watch individual scenery object here + Minotaur.watch( app.router.editorView.settings ) + document.body.classList.remove("dragging") } |
