Skip to content

Instantly share code, notes, and snippets.

View vectorsize's full-sized avatar

Victor Saiz vectorsize

View GitHub Profile
@vectorsize
vectorsize / composer-overlap-example.js
Last active December 11, 2015 07:19
Overlap detection inside the Composer app.
// This snippet is an example on how the detecting overlaping annotations
// was implemented inside the Substance Composer app.
function annotate(type) {
// Check for existing annotation
var sel = this.surface.selection();
if (!sel) return;
if (_.include(["em", "str"], type)) {
// Returns the absolute offset from the top of the container
function getCharacterOffsetWithin(sel, node) {
var range = sel.getRangeAt(0);
var selStr = sel.toString();
// we sanitize linebreaks and white spaces
selLen = selStr.replace(/[^A-Za-z0-9.-:\/$ ]/g, "").replace(/(\r\n|\n|\r|\s+)/gm, ' ').length;
var treeWalker = document.createTreeWalker( node, NodeFilter.SHOW_TEXT, function(node) {
@vectorsize
vectorsize / lQuery.js
Created February 19, 2015 15:43
Lazy-ass jquery ~ esque utility
// adds shorcuts
var addShorcuts = function(el) {
el.on = el.addEventListener;
el.off = el.removeEventListener;
return el;
};
module.exports = function Lquery(sel) {
// get a proper array of the results
@vectorsize
vectorsize / gist:565e243bceddeceeb5f6
Created October 22, 2014 10:42
Oneliner to copy picture, trace it with potrace and open on preview app
pbpaste | convert - bmp:- | potrace - -o - -b pdf | open -a /Applications/Preview.app -f
@vectorsize
vectorsize / graph.json
Last active August 29, 2015 13:57 — forked from mbostock/.block
{"nodes":[{"x":444,"y":275},{"x":378,"y":324},{"x":478,"y":278},{"x":471,"y":256},{"x":382,"y":269},{"x":371,"y":247},{"x":359,"y":276},{"x":364,"y":302},{"x":400,"y":330},{"x":388,"y":298},{"x":524,"y":296},{"x":570,"y":243},{"x":552,"y":159},{"x":502,"y":287},{"x":511,"y":313},{"x":513,"y":265},{"x":602,"y":132},{"x":610,"y":90},{"x":592,"y":91},{"x":575,"y":89},{"x":607,"y":73},{"x":591,"y":68},{"x":574,"y":73},{"x":589,"y":149},{"x":620,"y":205},{"x":621,"y":230},{"x":589,"y":234},{"x":602,"y":223},{"x":548,"y":188},{"x":532,"y":196},{"x":548,"y":114},{"x":575,"y":174},{"x":497,"y":250},{"x":576,"y":196},{"x":504,"y":201},{"x":494,"y":186},{"x":482,"y":199},{"x":505,"y":219},{"x":486,"y":216},{"x":590,"y":306},{"x":677,"y":169},{"x":657,"y":258},{"x":667,"y":205},{"x":552,"y":227},{"x":518,"y":173},{"x":473,"y":125},{"x":796,"y":260},{"x":731,"y":272},{"x":642,"y":288},{"x":576,"y":269},{"x":605,"y":187},{"x":559,"y":289},{"x":544,"y":356},{"x":505,"y":365},{"x":579,"y":289},{"x":619,"y":282},{"x":574,"y"