summaryrefslogtreecommitdiff
path: root/public
diff options
context:
space:
mode:
Diffstat (limited to 'public')
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/resize.js17
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/types/image.js3
-rw-r--r--public/assets/javascripts/rectangles/models/rect.js1
-rw-r--r--public/assets/javascripts/rectangles/models/vec2.js1
4 files changed, 14 insertions, 8 deletions
diff --git a/public/assets/javascripts/rectangles/engine/scenery/resize.js b/public/assets/javascripts/rectangles/engine/scenery/resize.js
index 6b2e52c..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',
diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/image.js b/public/assets/javascripts/rectangles/engine/scenery/types/image.js
index 2b50cbf..d2fa3ab 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/types/image.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/types/image.js
@@ -4,7 +4,8 @@ Scenery.types.image = Scenery.types.base.extend(function(base){
var exports = {
init: function(opt){
- opt.scale = opt.scale || 300 / max(300, opt.media.width)
+
+ opt.scale = opt.scale || (opt.data && opt.data.scale) || 300 / max(300, opt.media.width)
base.init.call(this, opt)
diff --git a/public/assets/javascripts/rectangles/models/rect.js b/public/assets/javascripts/rectangles/models/rect.js
index 67852b4..a08176a 100644
--- a/public/assets/javascripts/rectangles/models/rect.js
+++ b/public/assets/javascripts/rectangles/models/rect.js
@@ -42,6 +42,7 @@
Rect.prototype.assign = function(r) {
this.x.assign(r.x)
this.y.assign(r.y)
+ return this
}
Rect.prototype.center = function(){
return new vec2(this.x.midpoint(), this.y.midpoint())
diff --git a/public/assets/javascripts/rectangles/models/vec2.js b/public/assets/javascripts/rectangles/models/vec2.js
index a36c614..0040435 100644
--- a/public/assets/javascripts/rectangles/models/vec2.js
+++ b/public/assets/javascripts/rectangles/models/vec2.js
@@ -20,6 +20,7 @@
vec2.prototype.assign = function(v){
this.a = v.a
this.b = v.b
+ return this
}
vec2.prototype.abs = function(){
if (this.b < this.a) {