Skip to content

Instantly share code, notes, and snippets.

@DieHertz
Last active December 28, 2015 05:09
Show Gist options
  • Save DieHertz/7448048 to your computer and use it in GitHub Desktop.
Save DieHertz/7448048 to your computer and use it in GitHub Desktop.
If you like provided functionality, you should give a look to my Chrome Extension which provides same functions without the need to enter anything into the Developer Console. You can get the extension here: https://chrome.google.com/webstore/detail/battlelog-emblem-editor-e/noagedoiolkfaoaknohhepocfeooibjb
var fitAngle = function(angle) {
return angle < 0 ? angle + 360 : angle;
}
function mirrorx() {
var object = emblem.emblem.canvas.getActiveObject(),
angle = object.get('angle');
object.set('angle', fitAngle(-object.get('angle')));
object.set('flipY', !object.get('flipY'));
emblem.emblem.render();
}
function mirrory() {
var object = emblem.emblem.canvas.getActiveObject();
object.set('angle', fitAngle(180 - object.get('angle')));
object.set('flipY', !object.get('flipY'));
emblem.emblem.render();
}
function centerize() {
var object = emblem.emblem.canvas.getActiveObject(),
center = emblem.emblem.canvas.getCenter();
object.set('left', center.left);
object.set('top', center.top);
object.setCoords();
emblem.emblem.render();
}
(function() {
var layerActions = $('div.layer-actions');
// Add mirroring buttons to action bar
layerActions.append('<button class="btn" onclick="mirrorx();">MX</button>');
layerActions.append('<button class="btn" onclick="mirrory();">MY</button>');
layerActions.append('<button class="btn" onclick="centerize();">C</button>');
// Layer information (pos, angle, scale)
$('div.emblem-layer-options')
.after('<div id="layer-angle"></div>')
.after('<div id="layer-size"></div>')
.after('<div id="layer-pos"></div>');
var pos = $('div#layer-pos'),
size = $('div#layer-size'),
angle = $('div#layer-angle');
// Info updater
var intervalMs = 1000 / 10;
window.setInterval(function () {
var object = emblem.emblem.canvas.getActiveObject();
if (!object) {
pos.html('');
size.html('');
angle.html('');
return;
}
pos.html('Position: ' + object.get('left').toFixed(2) + ' : ' + object.get('top').toFixed(2));
size.html('Size: ' + object.getWidth().toFixed(2) + ' : ' + object.getHeight().toFixed(2));
angle.html('Angle: ' + object.get('angle').toFixed(2));
// decrease 'corner' size a bit
var cornerSize = Math.min(12, Math.max(4, Math.sqrt(object.getWidth() * object.getHeight()) / 10));
if (object.getCornerSize() != cornerSize) {
object.setCornerSize(cornerSize);
emblem.emblem.render();
}
}, intervalMs);
// Set background image
$('canvas#emblem-canvas')
.css('background-image', 'url(image.url)')
.css('background-size', 'contain')
.css('background-position', 'center')
.css('background-repeat', 'no-repeat');
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment