Skip to content
Permalink
Browse files

add uniform scaling

  • Loading branch information...
lautr3k committed Mar 25, 2016
1 parent f4640b5 commit f672ab9d315ebd9f9dc9bc912e615702f9ba14b6
Showing with 34 additions and 0 deletions.
  1. +5 −0 index.html
  2. +29 −0 js/main.js
@@ -64,6 +64,11 @@ <h3 class="panel-title">Transformations</h3>
<option>rotate</option>
</select>
</div>
<div class="form-group" id="transform-uniform">
<label for="transform-uniform">Uniform</label>
<input type="radio" name="transform-uniform" id="transform-uniform-yes" value="yes" checked="checked" /> yes
<input type="radio" name="transform-uniform" id="transform-uniform-no" value="no" /> no
</div>
<div class="form-group">
<label for="transform-x">X</label>
<input type="number" id="transform-x" class="form-control input-sm" placeholder="0" />
@@ -658,6 +658,7 @@ var $alertMessage = $alertPanel.find('.message');
// Transform
var $transformBody = initPanel('transform');
var $transformAction = $transformBody.find('#transform-action');
var $transformUniform = $transformBody.find('#transform-uniform');
var $transformX = $transformBody.find('#transform-x');
var $transformY = $transformBody.find('#transform-y');
var $transformZ = $transformBody.find('#transform-z');
@@ -678,6 +679,7 @@ function updateTransformAction() {
transformAction = $transformAction.val();

var axis = transformations[transformAction];

var min, max, step;

if (transformAction == 'scale') {
@@ -691,6 +693,8 @@ function updateTransformAction() {
step = 1;
}

$transformUniform.toggleClass('hidden', transformAction == 'rotate');

$transformX.prop('min', min);
$transformY.prop('min', min);
$transformZ.prop('min', min);
@@ -713,6 +717,31 @@ function updateTransformValues() {
};

var current = transformations[transformAction];
var uniform = $('#transform input[type=radio]:checked').val() == 'yes';

if (uniform) {
if (input.x != current.x) {
var ratio = current.x / input.x;
input.y = (current.y / ratio).toFixed(2);
input.z = (current.z / ratio).toFixed(2);
$transformY.val(input.y);
$transformZ.val(input.z);
}
else if (input.y != current.y) {
var ratio = current.y / input.y;
input.x = (current.x / ratio).toFixed(2);
input.z = (current.z / ratio).toFixed(2);
$transformX.val(input.x);
$transformZ.val(input.z);
}
else if (input.z != current.z) {
var ratio = current.z / input.z;
input.x = (current.x / ratio).toFixed(2);
input.y = (current.y / ratio).toFixed(2);
$transformX.val(input.x);
$transformY.val(input.y);
}
}

if (transformAction == 'scale') {
input.x <= 0 && (input.x = 1);

0 comments on commit f672ab9

Please sign in to comment.
You can’t perform that action at this time.