From 3caac3e80e3a0eef2c481698de777a308d275d54 Mon Sep 17 00:00:00 2001 From: Julie Lala Date: Thu, 8 May 2014 16:34:43 -0400 Subject: grunt stuffffff --- Gruntfile.js | 67 +++++++++ app.css | 41 ++++++ app.min.js | 5 + falling/index.html | 8 +- index.html | 184 ++---------------------- js/image.js | 49 +++++++ js/util.js | 115 +++++++++++++++ js/vendor/jquery-1.10.2.min.js | 6 + js/vendor/jquery-nodoubletapzoom.js | 19 +++ js/vendor/mx.gyroControl.js | 184 ++++++++++++++++++++++++ js/vendor/mx.min.js | 1 + js/vendor/mx.rotationControl.js | 269 ++++++++++++++++++++++++++++++++++++ js/vendor/mx.scene.js | 150 ++++++++++++++++++++ package.json | 17 +++ 14 files changed, 936 insertions(+), 179 deletions(-) create mode 100644 Gruntfile.js create mode 100644 app.css create mode 100644 app.min.js create mode 100644 js/image.js create mode 100644 js/util.js create mode 100644 js/vendor/jquery-1.10.2.min.js create mode 100644 js/vendor/jquery-nodoubletapzoom.js create mode 100644 js/vendor/mx.gyroControl.js create mode 100644 js/vendor/mx.min.js create mode 100644 js/vendor/mx.rotationControl.js create mode 100644 js/vendor/mx.scene.js create mode 100644 package.json diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 0000000..1618caa --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,67 @@ +module.exports = function(grunt) { + + // Project configuration. + grunt.initConfig({ + pkg: grunt.file.readJSON('package.json'), + dentist: { + options: { + include_js: "app.min.js", + include_css: "app.css", + clean_scripts: true, + }, + build: { + src: 'falling/index.html', + dest_js: 'app.init.js', + dest_css: 'app.css', + dest_html: 'index.html' + } + }, + concat: { + options: { + separator: ";" + }, + build: { + src: [ + "js/vendor/jquery-1.10.2.min.js", + "js/vendor/jquery-nodoubletapzoom.js", + "js/vendor/mx.min.js", + "js/vendor/mx.gyroControl.js", + "js/vendor/mx.rotationControl.js", + "js/vendor/mx.scene.js", + "js/util.js", + "js/image.js", + "app.init.js", + ], + dest: 'app.concat.js', + } + }, + uglify: { + options: { + banner: '/* asdf.us/trees */\n' + }, + build: { + src: 'app.concat.js', + dest: 'app.min.js' + } + }, + clean: { + release: ["app.concat.js","app.init.js"], + }, + watch: { + files: ['!(app.min|app.concat).js'], + tasks: ['default'] + } + }); + + // Load tasks that we'll be using + grunt.loadNpmTasks('grunt-contrib-concat'); + grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-contrib-watch'); + grunt.loadNpmTasks('grunt-contrib-clean'); + grunt.loadNpmTasks('grunt-contrib-copy'); + grunt.loadNpmTasks('grunt-dentist'); + + // Default task(s). + grunt.registerTask('build', ['dentist:build', 'concat:build', 'uglify:build']); + grunt.registerTask('default', ['build', 'clean:release']); +}; diff --git a/app.css b/app.css new file mode 100644 index 0000000..47a1390 --- /dev/null +++ b/app.css @@ -0,0 +1,41 @@ + + * { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } + .mx-object3d { -webkit-transform-style: preserve-3d; transform-style: preserve-3d; } + html,body{ margin: 0; padding: 0; width:100%;height:100%;} + body { + -webkit-perspective: 600px; + -moz-perspective: 600px; + perspective: 1000px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; + overflow:hidden; + position:fixed; + top:0; + left:0; + width:100%; + height:100%; + cursor:move; + font-family:sans-serif; + background-color: white; + } + .text { + font-size: 100px; + color: white; + } + #flip{ + display:none; + } + #bg { + pointer-events: none; + position: fixed; + width: 100%; + top: 0; + height: 100%; + z-index: 0; + cursor:move; + left:0; + } + \ No newline at end of file diff --git a/app.min.js b/app.min.js new file mode 100644 index 0000000..43b5fa2 --- /dev/null +++ b/app.min.js @@ -0,0 +1,5 @@ +/* asdf.us/trees */ +function noop(){}function trim(a){return a.replace(/^\s+/,"").replace(/\s+$/,"")}function clamp(a,b,c){return b>a?b:c>a?a:c}function norm(a,b,c){return(a-b)/(c-b)}function lerp(a,b,c){return(c-b)*a+b}function mix(a,b,c){return b*(1-a)+c*a}function ceil(a){return Math.ceil(a)}function floor(a){return Math.floor(a)}function round(a){return Math.round(a)}function max(a,b){return Math.max(a,b)}function min(a,b){return Math.min(a,b)}function abs(a){return Math.abs(a)}function sign(a){return Math.abs(a)/a}function pow(a,b){return Math.pow(a,b)}function exp(a){return Math.exp(a)}function log(a){return Math.log(a)}function ln(a){return Math.log(a)/LN10}function sqrt(a){return Math.sqrt(a)}function cos(a){return Math.cos(a)}function sin(a){return Math.sin(a)}function tan(a){return Math.tan(a)}function acos(a){return Math.cos(a)}function asin(a){return Math.sin(a)}function atan(a){return Math.atan(a)}function atan2(a){return Math.atan2(a)}function sec(a){return 1/cos(a)}function csc(a){return 1/sin(a)}function cot(a){return 1/tan(a)}function cosp(a){return(1+Math.cos(a))/2}function sinp(a){return(1+Math.sin(a))/2}function random(){return Math.random()}function rand(a){return Math.random()*a}function randint(a){return 0|rand(a)}function randrange(a,b){return a+rand(b-a)}function randsign(){return random()>=.5?-1:1}function choice(a){return a[randint(a.length)]}function deg(a){return 180*a/PI}function rad(a){return a*PI/180}function xor(a,b){return a=!!a,b=!!b,(a||b)&&!(a&&b)}function mod(a,b){return a-b*floor(a/b)}function dist(a,b,c,d){return sqrt(pow(c-a,2)+pow(d-b,2))}function angle(a,b,c,d){return atan2(d-b,c-a)}function avg(a,b,c){return(a*(c-1)+b)/c}function pixel(a,b){return 4*(mod(b,actual_h)*actual_w+mod(a,actual_w))}function rgbpixel(c,d,e){var f=pixel(~~d,~~e);r=c[f],g=c[f+1],b=c[f+2],a=c[f+3]}function fit(a,b,c){rgbpixel(a,b*actual_w/w,c*actual_h/h)}function step(a,b){return(b>=a)+0}function julestep(a,b,c){return clamp(norm(c,a,b),0,1)}function smoothstep(a,b,c){var d=clamp((c-a)/(b-a),0,1);return d*d*(3-2*d)}function shuffle(a){for(var b=a.length;b>0;b--){var c=randint(b),d=a[b-1];a[b-1]=a[c],a[c]=d}return a}function reverse(a){for(var b=[],c=0,d=a.length-1;d>=c;c++)b[c]=a[d-c];return b}function deinterlace(a){for(var b=[],c=[],d=0,e=a.length;e>d;d++)d%2?c.push(a[d]):b.push(a[d]);return[c,b]}function weave(a){var b=deinterlace(a),c=[];return b[0].forEach(function(a){c.push(a)}),reverse(b[1]).forEach(function(a){c.push(a)}),c}!function(a,b){function c(a){var b=a.length,c=kb.type(a);return kb.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||"function"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){var b=zb[a]={};return kb.each(a.match(mb)||[],function(a,c){b[c]=!0}),b}function e(a,c,d,e){if(kb.acceptData(a)){var f,g,h=kb.expando,i=a.nodeType,j=i?kb.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||d!==b||"string"!=typeof c)return k||(k=i?a[h]=bb.pop()||kb.guid++:h),j[k]||(j[k]=i?{}:{toJSON:kb.noop}),("object"==typeof c||"function"==typeof c)&&(e?j[k]=kb.extend(j[k],c):j[k].data=kb.extend(j[k].data,c)),g=j[k],e||(g.data||(g.data={}),g=g.data),d!==b&&(g[kb.camelCase(c)]=d),"string"==typeof c?(f=g[c],null==f&&(f=g[kb.camelCase(c)])):f=g,f}}function f(a,b,c){if(kb.acceptData(a)){var d,e,f=a.nodeType,g=f?kb.cache:a,i=f?a[kb.expando]:kb.expando;if(g[i]){if(b&&(d=c?g[i]:g[i].data)){kb.isArray(b)?b=b.concat(kb.map(b,kb.camelCase)):b in d?b=[b]:(b=kb.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;for(;e--;)delete d[b[e]];if(c?!h(d):!kb.isEmptyObject(d))return}(c||(delete g[i].data,h(g[i])))&&(f?kb.cleanData([a],!0):kb.support.deleteExpando||g!=g.window?delete g[i]:g[i]=null)}}}function g(a,c,d){if(d===b&&1===a.nodeType){var e="data-"+c.replace(Bb,"-$1").toLowerCase();if(d=a.getAttribute(e),"string"==typeof d){try{d="true"===d?!0:"false"===d?!1:"null"===d?null:+d+""===d?+d:Ab.test(d)?kb.parseJSON(d):d}catch(f){}kb.data(a,c,d)}else d=b}return d}function h(a){var b;for(b in a)if(("data"!==b||!kb.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function i(){return!0}function j(){return!1}function k(){try{return Y.activeElement}catch(a){}}function l(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}function m(a,b,c){if(kb.isFunction(b))return kb.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return kb.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(Qb.test(b))return kb.filter(b,a,c);b=kb.filter(b,a)}return kb.grep(a,function(a){return kb.inArray(a,b)>=0!==c})}function n(a){var b=Ub.split("|"),c=a.createDocumentFragment();if(c.createElement)for(;b.length;)c.createElement(b.pop());return c}function o(a,b){return kb.nodeName(a,"table")&&kb.nodeName(1===b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function p(a){return a.type=(null!==kb.find.attr(a,"type"))+"/"+a.type,a}function q(a){var b=ec.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function r(a,b){for(var c,d=0;null!=(c=a[d]);d++)kb._data(c,"globalEval",!b||kb._data(b[d],"globalEval"))}function s(a,b){if(1===b.nodeType&&kb.hasData(a)){var c,d,e,f=kb._data(a),g=kb._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)kb.event.add(b,c,h[c][d])}g.data&&(g.data=kb.extend({},g.data))}}function t(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!kb.support.noCloneEvent&&b[kb.expando]){e=kb._data(b);for(d in e.events)kb.removeEvent(b,d,e.handle);b.removeAttribute(kb.expando)}"script"===c&&b.text!==a.text?(p(b).text=a.text,q(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),kb.support.html5Clone&&a.innerHTML&&!kb.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&bc.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}function u(a,c){var d,e,f=0,g=typeof a.getElementsByTagName!==W?a.getElementsByTagName(c||"*"):typeof a.querySelectorAll!==W?a.querySelectorAll(c||"*"):b;if(!g)for(g=[],d=a.childNodes||a;null!=(e=d[f]);f++)!c||kb.nodeName(e,c)?g.push(e):kb.merge(g,u(e,c));return c===b||c&&kb.nodeName(a,c)?kb.merge([a],g):g}function v(a){bc.test(a.type)&&(a.defaultChecked=a.checked)}function w(a,b){if(b in a)return b;for(var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=yc.length;e--;)if(b=yc[e]+c,b in a)return b;return d}function x(a,b){return a=b||a,"none"===kb.css(a,"display")||!kb.contains(a.ownerDocument,a)}function y(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=kb._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&x(d)&&(f[g]=kb._data(d,"olddisplay",C(d.nodeName)))):f[g]||(e=x(d),(c&&"none"!==c||!e)&&kb._data(d,"olddisplay",e?c:kb.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function z(a,b,c){var d=rc.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function A(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=kb.css(a,c+xc[f],!0,e)),d?("content"===c&&(g-=kb.css(a,"padding"+xc[f],!0,e)),"margin"!==c&&(g-=kb.css(a,"border"+xc[f]+"Width",!0,e))):(g+=kb.css(a,"padding"+xc[f],!0,e),"padding"!==c&&(g+=kb.css(a,"border"+xc[f]+"Width",!0,e)));return g}function B(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=kc(a),g=kb.support.boxSizing&&"border-box"===kb.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=lc(a,b,f),(0>e||null==e)&&(e=a.style[b]),sc.test(e))return e;d=g&&(kb.support.boxSizingReliable||e===a.style[b]),e=parseFloat(e)||0}return e+A(a,b,c||(g?"border":"content"),d,f)+"px"}function C(a){var b=Y,c=uc[a];return c||(c=D(a,b),"none"!==c&&c||(jc=(jc||kb("