├── robots.txt
├── bower_components
├── es5-shim
│ ├── .gitignore
│ ├── tests
│ │ ├── helpers
│ │ │ ├── h.js
│ │ │ ├── h-matchers.js
│ │ │ └── h-kill.js
│ │ ├── lib
│ │ │ ├── jasmine_favicon.png
│ │ │ ├── jasmine.css
│ │ │ ├── jasmine-html.js
│ │ │ └── json2.js
│ │ ├── spec
│ │ │ ├── s-number.js
│ │ │ ├── s-string.js
│ │ │ ├── s-function.js
│ │ │ ├── s-object.js
│ │ │ └── s-date.js
│ │ ├── index.min.html
│ │ └── index.html
│ ├── .bower.json
│ ├── LICENSE
│ ├── package.json
│ ├── CONTRIBUTORS.md
│ ├── CHANGES
│ ├── es5-sham.map
│ ├── README.md
│ ├── es5-sham.min.js
│ ├── es5-shim.min.js
│ ├── es5-shim.map
│ └── es5-sham.js
├── angular-mocks
│ ├── README.md
│ ├── bower.json
│ └── .bower.json
├── angular-cookies
│ ├── README.md
│ ├── bower.json
│ ├── .bower.json
│ ├── angular-cookies.min.js
│ └── angular-cookies.js
├── angular-resource
│ ├── README.md
│ ├── bower.json
│ ├── .bower.json
│ ├── angular-resource.min.js
│ └── angular-resource.js
├── angular-sanitize
│ ├── README.md
│ ├── bower.json
│ ├── .bower.json
│ └── angular-sanitize.min.js
├── angular-scenario
│ ├── README.md
│ ├── jstd-scenario-adapter-config.js
│ ├── bower.json
│ ├── .bower.json
│ └── jstd-scenario-adapter.js
├── angular
│ ├── bower.json
│ └── .bower.json
├── json3
│ ├── bower.json
│ ├── .bower.json
│ ├── LICENSE
│ ├── lib
│ │ └── json3.min.js
│ └── README.md
└── threejs
│ └── .bower.json
├── favicon.ico
├── models
├── wall.jpg
├── image1.jpg
├── image2.jpg
└── jeep1.jpg
├── README.md
├── views
└── main.html
├── scripts
├── app.js
├── controllers
│ └── main.js
├── directives
│ └── tjsModelViewer.js
└── libraries
│ └── threejs
│ └── AssimpJSONLoader.js
├── styles
└── main.css
├── LICENSE
├── index.html
└── 404.html
/robots.txt:
--------------------------------------------------------------------------------
1 | # robotstxt.org
2 |
3 | User-agent: *
4 |
--------------------------------------------------------------------------------
/bower_components/es5-shim/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 |
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/2fdevs/angular-threejs/HEAD/favicon.ico
--------------------------------------------------------------------------------
/models/wall.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/2fdevs/angular-threejs/HEAD/models/wall.jpg
--------------------------------------------------------------------------------
/models/image1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/2fdevs/angular-threejs/HEAD/models/image1.jpg
--------------------------------------------------------------------------------
/models/image2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/2fdevs/angular-threejs/HEAD/models/image2.jpg
--------------------------------------------------------------------------------
/models/jeep1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/2fdevs/angular-threejs/HEAD/models/jeep1.jpg
--------------------------------------------------------------------------------
/bower_components/es5-shim/tests/helpers/h.js:
--------------------------------------------------------------------------------
1 | function implement() {
2 | throw 'Not implemented';
3 | }
--------------------------------------------------------------------------------
/bower_components/angular-mocks/README.md:
--------------------------------------------------------------------------------
1 | bower-angular-mocks
2 | ===================
3 |
4 | angular-mocks.js bower repo
--------------------------------------------------------------------------------
/bower_components/angular-cookies/README.md:
--------------------------------------------------------------------------------
1 | bower-angular-cookies
2 | =====================
3 |
4 | angular-cookies bower repo
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # angular-threejs
2 | An AngularJS + ThreeJS example: http://twofuckingdevelopers.com/2014/02/mixing-angularjs-threejs/
3 |
--------------------------------------------------------------------------------
/bower_components/angular-resource/README.md:
--------------------------------------------------------------------------------
1 | bower-angular-resource
2 | ======================
3 |
4 | angular-resource bower repo
--------------------------------------------------------------------------------
/bower_components/angular-sanitize/README.md:
--------------------------------------------------------------------------------
1 | bower-angular-sanitize
2 | ======================
3 |
4 | angular-sanitize bower repo
--------------------------------------------------------------------------------
/bower_components/angular-scenario/README.md:
--------------------------------------------------------------------------------
1 | bower-angular-scenario
2 | ======================
3 |
4 | bower repo for angular-scenario.js
--------------------------------------------------------------------------------
/bower_components/angular/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular",
3 | "version": "1.0.8",
4 | "main": "./angular.js",
5 | "dependencies": {
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/bower_components/es5-shim/tests/lib/jasmine_favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/2fdevs/angular-threejs/HEAD/bower_components/es5-shim/tests/lib/jasmine_favicon.png
--------------------------------------------------------------------------------
/bower_components/angular-mocks/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-mocks",
3 | "version": "1.0.8",
4 | "main": "./angular-mocks.js",
5 | "dependencies": {
6 | "angular": "1.0.8"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/bower_components/angular-scenario/jstd-scenario-adapter-config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Configuration for jstd scenario adapter
3 | */
4 | var jstdScenarioAdapter = {
5 | relativeUrlPrefix: '/build/docs/'
6 | };
7 |
--------------------------------------------------------------------------------
/bower_components/angular-cookies/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-cookies",
3 | "version": "1.0.8",
4 | "main": "./angular-cookies.js",
5 | "dependencies": {
6 | "angular": "1.0.8"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/bower_components/angular-resource/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-resource",
3 | "version": "1.0.8",
4 | "main": "./angular-resource.js",
5 | "dependencies": {
6 | "angular": "1.0.8"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/bower_components/angular-sanitize/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-sanitize",
3 | "version": "1.0.8",
4 | "main": "./angular-sanitize.js",
5 | "dependencies": {
6 | "angular": "1.0.8"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/bower_components/angular-scenario/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-scenario",
3 | "version": "1.0.8",
4 | "main": "./angular-scenario.js",
5 | "dependencies": {
6 | "angular": "1.0.8"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/views/main.html:
--------------------------------------------------------------------------------
1 |
2 |
AngularJS + ThreeJS
3 |
4 |
Loading WebGL content with AngularJS
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/scripts/app.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | angular.module('angularjsThreejsApp', ["tjsModelViewer"])
4 | .config(function ($routeProvider) {
5 | $routeProvider
6 | .when('/', {
7 | templateUrl: 'views/main.html',
8 | controller: 'MainCtrl'
9 | })
10 | .otherwise({
11 | redirectTo: '/'
12 | });
13 | });
14 |
--------------------------------------------------------------------------------
/bower_components/es5-shim/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "es5-shim",
3 | "homepage": "https://github.com/es-shims/es5-shim",
4 | "version": "2.0.12",
5 | "_release": "2.0.12",
6 | "_resolution": {
7 | "type": "version",
8 | "tag": "v2.0.12",
9 | "commit": "892efc8ed2184d8bf1432d175ba36ec863fb0edc"
10 | },
11 | "_source": "git://github.com/es-shims/es5-shim.git",
12 | "_target": "~2.0.8",
13 | "_originalSource": "es5-shim"
14 | }
--------------------------------------------------------------------------------
/bower_components/json3/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "json3",
3 | "version": "3.2.6",
4 | "main": "lib/json3.min.js",
5 | "repository": {
6 | "type": "git",
7 | "url": "git://github.com/bestiejs/json3.git"
8 | },
9 | "ignore": [
10 | ".*",
11 | "build.js",
12 | "index.html",
13 | "index.js",
14 | "component.json",
15 | "package.json",
16 | "benchmark",
17 | "page",
18 | "test",
19 | "vendor"
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/scripts/controllers/main.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | angular.module('angularjsThreejsApp')
4 | .controller('MainCtrl', function ($scope) {
5 | $scope.assimpModelUrl = "models/jeep1.ms3d.json";
6 |
7 | $scope.changeModel = function() {
8 | if ($scope.assimpModelUrl == "models/interior.3ds.json") {
9 | $scope.assimpModelUrl = "models/jeep1.ms3d.json";
10 | }
11 | else {
12 | $scope.assimpModelUrl = "models/interior.3ds.json";
13 | }
14 | };
15 | });
16 |
--------------------------------------------------------------------------------
/bower_components/angular/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular",
3 | "version": "1.0.8",
4 | "main": "./angular.js",
5 | "dependencies": {},
6 | "homepage": "https://github.com/angular/bower-angular",
7 | "_release": "1.0.8",
8 | "_resolution": {
9 | "type": "version",
10 | "tag": "v1.0.8",
11 | "commit": "b2006330eef656b8e89a883feff7d7d2f3e5afed"
12 | },
13 | "_source": "git://github.com/angular/bower-angular.git",
14 | "_target": "~1.0.7",
15 | "_originalSource": "angular"
16 | }
--------------------------------------------------------------------------------
/bower_components/angular-mocks/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-mocks",
3 | "version": "1.0.8",
4 | "main": "./angular-mocks.js",
5 | "dependencies": {
6 | "angular": "1.0.8"
7 | },
8 | "homepage": "https://github.com/angular/bower-angular-mocks",
9 | "_release": "1.0.8",
10 | "_resolution": {
11 | "type": "version",
12 | "tag": "v1.0.8",
13 | "commit": "559ca65ea28cd1a34dd47b7cec3a2e5842153d37"
14 | },
15 | "_source": "git://github.com/angular/bower-angular-mocks.git",
16 | "_target": "~1.0.7",
17 | "_originalSource": "angular-mocks"
18 | }
--------------------------------------------------------------------------------
/styles/main.css:
--------------------------------------------------------------------------------
1 | body {
2 | background: #fafafa;
3 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
4 | color: #333;
5 | }
6 |
7 | .hero-unit {
8 | margin: 50px auto 0 auto;
9 | width: 600px;
10 | font-size: 18px;
11 | font-weight: 200;
12 | line-height: 30px;
13 | background-color: #eee;
14 | border-radius: 6px;
15 | padding: 60px;
16 | }
17 |
18 | .hero-unit h1 {
19 | font-size: 60px;
20 | line-height: 1;
21 | letter-spacing: -1px;
22 | }
23 |
24 | canvas {
25 | width: 100%;
26 | height: 100%
27 | }
28 |
--------------------------------------------------------------------------------
/bower_components/angular-cookies/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-cookies",
3 | "version": "1.0.8",
4 | "main": "./angular-cookies.js",
5 | "dependencies": {
6 | "angular": "1.0.8"
7 | },
8 | "homepage": "https://github.com/angular/bower-angular-cookies",
9 | "_release": "1.0.8",
10 | "_resolution": {
11 | "type": "version",
12 | "tag": "v1.0.8",
13 | "commit": "656426cc1d2bff688ae8d2dd0761dc165be84014"
14 | },
15 | "_source": "git://github.com/angular/bower-angular-cookies.git",
16 | "_target": "~1.0.7",
17 | "_originalSource": "angular-cookies"
18 | }
--------------------------------------------------------------------------------
/bower_components/angular-resource/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-resource",
3 | "version": "1.0.8",
4 | "main": "./angular-resource.js",
5 | "dependencies": {
6 | "angular": "1.0.8"
7 | },
8 | "homepage": "https://github.com/angular/bower-angular-resource",
9 | "_release": "1.0.8",
10 | "_resolution": {
11 | "type": "version",
12 | "tag": "v1.0.8",
13 | "commit": "57119c33a79e9343daf0f50e58f8b73cf234bffb"
14 | },
15 | "_source": "git://github.com/angular/bower-angular-resource.git",
16 | "_target": "~1.0.7",
17 | "_originalSource": "angular-resource"
18 | }
--------------------------------------------------------------------------------
/bower_components/angular-sanitize/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-sanitize",
3 | "version": "1.0.8",
4 | "main": "./angular-sanitize.js",
5 | "dependencies": {
6 | "angular": "1.0.8"
7 | },
8 | "homepage": "https://github.com/angular/bower-angular-sanitize",
9 | "_release": "1.0.8",
10 | "_resolution": {
11 | "type": "version",
12 | "tag": "v1.0.8",
13 | "commit": "99e5d0b21030ab92a1a9bda044a883d23d764b1b"
14 | },
15 | "_source": "git://github.com/angular/bower-angular-sanitize.git",
16 | "_target": "~1.0.7",
17 | "_originalSource": "angular-sanitize"
18 | }
--------------------------------------------------------------------------------
/bower_components/angular-scenario/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-scenario",
3 | "version": "1.0.8",
4 | "main": "./angular-scenario.js",
5 | "dependencies": {
6 | "angular": "1.0.8"
7 | },
8 | "homepage": "https://github.com/angular/bower-angular-scenario",
9 | "_release": "1.0.8",
10 | "_resolution": {
11 | "type": "version",
12 | "tag": "v1.0.8",
13 | "commit": "ee9a627b4030cb976b22e107abfa55ac6bd8ba55"
14 | },
15 | "_source": "git://github.com/angular/bower-angular-scenario.git",
16 | "_target": "~1.0.7",
17 | "_originalSource": "angular-scenario"
18 | }
--------------------------------------------------------------------------------
/bower_components/es5-shim/tests/spec/s-number.js:
--------------------------------------------------------------------------------
1 | describe('Number', function () {
2 | 'use strict';
3 |
4 | describe('toFixed', function () {
5 | it('should convert numbers correctly', function () {
6 | expect((0.00008).toFixed(3)).toBe('0.000');
7 | expect((0.9).toFixed(0)).toBe('1');
8 | expect((1.255).toFixed(2)).toBe('1.25');
9 | expect((1843654265.0774949).toFixed(5)).toBe('1843654265.07749');
10 | expect((1000000000000000128).toFixed(0)).toBe('1000000000000000128');
11 | });
12 | });
13 |
14 | });
15 |
--------------------------------------------------------------------------------
/bower_components/json3/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "json3",
3 | "version": "3.2.6",
4 | "main": "lib/json3.min.js",
5 | "repository": {
6 | "type": "git",
7 | "url": "git://github.com/bestiejs/json3.git"
8 | },
9 | "ignore": [
10 | ".*",
11 | "build.js",
12 | "index.html",
13 | "index.js",
14 | "component.json",
15 | "package.json",
16 | "benchmark",
17 | "page",
18 | "test",
19 | "vendor"
20 | ],
21 | "homepage": "https://github.com/bestiejs/json3",
22 | "_release": "3.2.6",
23 | "_resolution": {
24 | "type": "version",
25 | "tag": "v3.2.6",
26 | "commit": "7b89fd94939f970f316420e157a836cc68aa2207"
27 | },
28 | "_source": "git://github.com/bestiejs/json3.git",
29 | "_target": "~3.2.4",
30 | "_originalSource": "json3"
31 | }
--------------------------------------------------------------------------------
/bower_components/angular-cookies/angular-cookies.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | AngularJS v1.0.8
3 | (c) 2010-2012 Google, Inc. http://angularjs.org
4 | License: MIT
5 | */
6 | (function(m,f,l){'use strict';f.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(d,b){var c={},g={},h,i=!1,j=f.copy,k=f.isUndefined;b.addPollFn(function(){var a=b.cookies();h!=a&&(h=a,j(a,g),j(a,c),i&&d.$apply())})();i=!0;d.$watch(function(){var a,e,d;for(a in g)k(c[a])&&b.cookies(a,l);for(a in c)e=c[a],f.isString(e)?e!==g[a]&&(b.cookies(a,e),d=!0):f.isDefined(g[a])?c[a]=g[a]:delete c[a];if(d)for(a in e=b.cookies(),c)c[a]!==e[a]&&(k(e[a])?delete c[a]:c[a]=e[a])});return c}]).factory("$cookieStore",
7 | ["$cookies",function(d){return{get:function(b){return(b=d[b])?f.fromJson(b):b},put:function(b,c){d[b]=f.toJson(c)},remove:function(b){delete d[b]}}}])})(window,window.angular);
8 |
--------------------------------------------------------------------------------
/bower_components/threejs/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "three.js",
3 | "homepage": "http://threejs.org/",
4 | "description": "JavaScript 3D library",
5 | "main": "build/three.js",
6 | "keywords": [
7 | "three",
8 | "threejs",
9 | "three.js",
10 | "3D",
11 | "webgl"
12 | ],
13 | "license": "MIT",
14 | "ignore": [
15 | "**/.*",
16 | "*.md",
17 | "bower.json",
18 | "docs",
19 | "editor",
20 | "examples",
21 | "src",
22 | "test",
23 | "utils",
24 | "LICENSE"
25 | ],
26 | "_release": "4862f5f111",
27 | "_resolution": {
28 | "type": "branch",
29 | "branch": "master",
30 | "commit": "4862f5f1111346a957ac3e0cb0858be1568d0e03"
31 | },
32 | "_source": "git://github.com/mrdoob/three.js.git",
33 | "_target": "*",
34 | "_originalSource": "threejs",
35 | "_direct": true
36 | }
--------------------------------------------------------------------------------
/bower_components/es5-shim/tests/helpers/h-matchers.js:
--------------------------------------------------------------------------------
1 | beforeEach(function() {
2 | this.addMatchers({
3 | toExactlyMatch: function(expected) {
4 | var a1, a2,
5 | l, i,
6 | key,
7 | actual = this.actual;
8 |
9 | var getKeys = function(o) {
10 | var a = [];
11 | for(key in o) {
12 | if(o.hasOwnProperty(key)) {
13 | a.push(key);
14 | }
15 | }
16 | return a;
17 | }
18 | a1 = getKeys(actual);
19 | a2 = getKeys(expected);
20 |
21 | l = a1.length;
22 | if(l !== a2.length) {
23 | return false;
24 | }
25 | for(i = 0; i < l; i++) {
26 | key = a1[i];
27 | expect(key).toEqual(a2[i]);
28 | expect(actual[key]).toEqual(expected[key]);
29 | }
30 |
31 | return true;
32 | }
33 | })
34 | });
35 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Two Fucking Developers
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/bower_components/json3/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2012-2013 Kit Cambridge.
2 | http://kitcambridge.be/
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy of
5 | this software and associated documentation files (the "Software"), to deal in
6 | the Software without restriction, including without limitation the rights to
7 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
8 | of the Software, and to permit persons to whom the Software is furnished to do
9 | so, subject to the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be included in all
12 | copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 | SOFTWARE.
--------------------------------------------------------------------------------
/bower_components/es5-shim/tests/spec/s-string.js:
--------------------------------------------------------------------------------
1 | describe('String', function() {
2 | "use strict";
3 | describe("trim", function() {
4 | var test = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFFHello, World!\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF";
5 |
6 | it('trims all ES5 whitespace', function() {
7 | expect(test.trim()).toEqual("Hello, World!");
8 | expect(test.trim().length).toEqual(13);
9 | });
10 | });
11 |
12 | describe("split", function() {
13 | var test = "ab";
14 |
15 | it('If "separator" is undefined must return Array with one String - "this" string', function() {
16 | expect(test.split()).toEqual([test]);
17 | expect(test.split(void 0)).toEqual([test]);
18 | });
19 |
20 | it('If "separator" is undefined and "limit" set to 0 must return Array[]', function() {
21 | expect(test.split(void 0, 0)).toEqual([]);
22 | });
23 | });
24 | });
25 |
--------------------------------------------------------------------------------
/bower_components/es5-shim/LICENSE:
--------------------------------------------------------------------------------
1 |
2 | Copyright 2009, 2010 Kristopher Michael Kowal. All rights reserved.
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to
5 | deal in the Software without restriction, including without limitation the
6 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7 | sell copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19 | IN THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/bower_components/es5-shim/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "es5-shim",
3 | "version": "2.0.12",
4 | "description": "ES5 as implementable on previous engines",
5 | "homepage": "http://github.com/kriskowal/es5-shim/",
6 | "contributors": [
7 | "Kris Kowal (http://github.com/kriskowal/)",
8 | "Sami Samhuri (http://samhuri.net/)",
9 | "Florian Schäfer (http://github.com/fschaefer)",
10 | "Irakli Gozalishvili (http://jeditoolkit.com)",
11 | "Kit Cambridge (http://kitcambridge.github.com)"
12 | ],
13 | "bugs": {
14 | "mail": "kris@cixar.com",
15 | "url": "http://github.com/kriskowal/es5-shim/issues"
16 | },
17 | "licenses": [
18 | {
19 | "type": "MIT",
20 | "url": "http://github.com/kriskowal/es5-shim/raw/master/LICENSE"
21 | }
22 | ],
23 | "main": "es5-shim.js",
24 | "repository": {
25 | "type": "git",
26 | "url": "http://github.com/kriskowal/es5-shim.git"
27 | },
28 | "scripts": {
29 | "minify": "uglifyjs es5-shim.js --source-map=es5-shim.map -b ascii_only=true,beautify=false > es5-shim.min.js; uglifyjs es5-sham.js --source-map=es5-sham.map -b ascii_only=true,beautify=false > es5-sham.min.js"
30 | },
31 | "engines": {
32 | "node": ">=0.2.0"
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/bower_components/es5-shim/CONTRIBUTORS.md:
--------------------------------------------------------------------------------
1 |
2 | - kriskowal Kris Kowal Copyright (C) 2009-2011 MIT License
3 | - tlrobinson Tom Robinson Copyright (C) 2009-2010 MIT License (Narwhal
4 | Project)
5 | - dantman Daniel Friesen Copyright (C) 2010 XXX TODO License or CLA
6 | - fschaefer Florian Schäfer Copyright (C) 2010 MIT License
7 | - Gozala Irakli Gozalishvili Copyright (C) 2010 MIT License
8 | - kitcambridge Kit Cambridge Copyright (C) 2011 MIT License
9 | - kossnocorp Sasha Koss XXX TODO License or CLA
10 | - bryanforbes Bryan Forbes XXX TODO License or CLA
11 | - killdream Quildreen Motta Copyright (C) 2011 MIT Licence
12 | - michaelficarra Michael Ficarra Copyright (C) 2011 3-clause BSD
13 | License
14 | - sharkbrainguy Gerard Paapu Copyright (C) 2011 MIT License
15 | - bbqsrc Brendan Molloy (C) 2011 Creative Commons Zero (public domain)
16 | - iwyg XXX TODO License or CLA
17 | - DomenicDenicola Domenic Denicola Copyright (C) 2011 MIT License
18 | - xavierm02 Montillet Xavier Copyright (C) 2011 MIT License
19 | - Raynos Jake Verbaten Copyright (C) 2011 MIT Licence
20 | - samsonjs Sami Samhuri Copyright (C) 2010 MIT License
21 | - rwldrn Rick Waldron Copyright (C) 2011 MIT License
22 | - lexer Alexey Zakharov XXX TODO License or CLA
23 | - 280 North Inc. (Now Motorola LLC, a subsidiary of Google Inc.)
24 | Copyright (C) 2009 MIT License
25 |
26 |
--------------------------------------------------------------------------------
/bower_components/es5-shim/tests/helpers/h-kill.js:
--------------------------------------------------------------------------------
1 | // This methods allows the killing of built-in functions,
2 | // so the shim can take over with that implementation
3 | var HLP = (function() {
4 | "use strict";
5 | var kill;
6 |
7 | kill = function(_class, methods) {
8 | /*if(!Array.isArray(methods))
9 | return;*/
10 | if(!_class.originals)
11 | _class.originals = {};
12 |
13 | for (var i = 0, len = methods.length; i < len; i++) {
14 | var obj = methods[i];
15 | _class.originals[obj] = _class[obj];
16 | delete _class[obj];
17 | if (obj in _class) {
18 | // try something more aggressive since V8 at least
19 | // appears to ignore the delete.
20 | _class[obj] = null;
21 | if (_class[obj]) {
22 | console.log("Couln't overwrite", obj, "of", _class);
23 | }
24 | }
25 | }
26 | };
27 | return { kill: kill };
28 | }());
29 |
30 | HLP.kill(Function.prototype, [
31 | 'bind'
32 | ]);
33 |
34 | HLP.kill(Array, [
35 | 'isArray'
36 | ]);
37 |
38 | HLP.kill(String.prototype, [
39 | "trim"
40 | ]);
41 |
42 | HLP.kill(Object, [
43 | 'keys'
44 | ]);
45 |
46 | HLP.kill(Number.prototype, [
47 | 'toFixed'
48 | ]);
49 |
50 | HLP.kill(Date, [
51 | 'now', 'parse'
52 | ]);
53 |
54 | HLP.kill(Date.prototype, [
55 | "toJSON", "toISOString"
56 | ]);
57 |
58 | HLP.kill(Array.prototype, [
59 | 'forEach', 'some', 'every',
60 | 'indexOf', 'lastIndexOf',
61 | 'map', 'filter',
62 | 'reduce', 'reduceRight'
63 | ]);
64 |
--------------------------------------------------------------------------------
/bower_components/es5-shim/tests/index.min.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Jasmine Spec Runner
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/bower_components/es5-shim/tests/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Jasmine Spec Runner
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/bower_components/angular-resource/angular-resource.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | AngularJS v1.0.8
3 | (c) 2010-2012 Google, Inc. http://angularjs.org
4 | License: MIT
5 | */
6 | (function(C,d,w){'use strict';d.module("ngResource",["ng"]).factory("$resource",["$http","$parse",function(x,y){function s(b,e){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,e?"%20":"+")}function t(b,e){this.template=b+="#";this.defaults=e||{};var a=this.urlParams={};h(b.split(/\W/),function(f){f&&RegExp("(^|[^\\\\]):"+f+"\\W").test(b)&&(a[f]=!0)});this.template=b.replace(/\\:/g,":")}function u(b,e,a){function f(m,a){var b=
7 | {},a=o({},e,a);h(a,function(a,z){var c;a.charAt&&a.charAt(0)=="@"?(c=a.substr(1),c=y(c)(m)):c=a;b[z]=c});return b}function g(a){v(a||{},this)}var k=new t(b),a=o({},A,a);h(a,function(a,b){a.method=d.uppercase(a.method);var e=a.method=="POST"||a.method=="PUT"||a.method=="PATCH";g[b]=function(b,c,d,B){var j={},i,l=p,q=null;switch(arguments.length){case 4:q=B,l=d;case 3:case 2:if(r(c)){if(r(b)){l=b;q=c;break}l=c;q=d}else{j=b;i=c;l=d;break}case 1:r(b)?l=b:e?i=b:j=b;break;case 0:break;default:throw"Expected between 0-4 arguments [params, data, success, error], got "+
8 | arguments.length+" arguments.";}var n=this instanceof g?this:a.isArray?[]:new g(i);x({method:a.method,url:k.url(o({},f(i,a.params||{}),j)),data:i}).then(function(b){var c=b.data;if(c)a.isArray?(n.length=0,h(c,function(a){n.push(new g(a))})):v(c,n);(l||p)(n,b.headers)},q);return n};g.prototype["$"+b]=function(a,d,h){var m=f(this),j=p,i;switch(arguments.length){case 3:m=a;j=d;i=h;break;case 2:case 1:r(a)?(j=a,i=d):(m=a,j=d||p);case 0:break;default:throw"Expected between 1-3 arguments [params, success, error], got "+
9 | arguments.length+" arguments.";}g[b].call(this,m,e?this:w,j,i)}});g.bind=function(d){return u(b,o({},e,d),a)};return g}var A={get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}},p=d.noop,h=d.forEach,o=d.extend,v=d.copy,r=d.isFunction;t.prototype={url:function(b){var e=this,a=this.template,f,g,b=b||{};h(this.urlParams,function(h,c){f=b.hasOwnProperty(c)?b[c]:e.defaults[c];d.isDefined(f)&&f!==null?(g=s(f,!0).replace(/%26/gi,"&").replace(/%3D/gi,
10 | "=").replace(/%2B/gi,"+"),a=a.replace(RegExp(":"+c+"(\\W)","g"),g+"$1")):a=a.replace(RegExp("(/?):"+c+"(\\W)","g"),function(a,b,c){return c.charAt(0)=="/"?c:b+c})});var a=a.replace(/\/?#$/,""),k=[];h(b,function(a,b){e.urlParams[b]||k.push(s(b)+"="+s(a))});k.sort();a=a.replace(/\/*$/,"");return a+(k.length?"?"+k.join("&"):"")}};return u}])})(window,window.angular);
11 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
23 |
24 |
28 |
29 |
30 |
31 |
32 |
33 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/scripts/directives/tjsModelViewer.js:
--------------------------------------------------------------------------------
1 | angular.module("tjsModelViewer", [])
2 | .directive(
3 | "tjsModelViewer",
4 | [function () {
5 | return {
6 | restrict: "E",
7 | scope: {
8 | assimpUrl: "=assimpUrl"
9 | },
10 | link: function (scope, elem, attr) {
11 | var camera;
12 | var scene;
13 | var renderer;
14 | var previous;
15 |
16 | // init scene
17 | init();
18 |
19 | // Load jeep model using the AssimpJSONLoader
20 | var loader1 = new THREE.AssimpJSONLoader();
21 |
22 | scope.$watch("assimpUrl", function(newValue, oldValue) {
23 | if (newValue != oldValue) loadModel(newValue);
24 | });
25 |
26 | function loadModel(modelUrl) {
27 | loader1.load(modelUrl, function (assimpjson) {
28 | assimpjson.scale.x = assimpjson.scale.y = assimpjson.scale.z = 0.2;
29 | assimpjson.updateMatrix();
30 | if (previous) scene.remove(previous);
31 | scene.add(assimpjson);
32 |
33 | previous = assimpjson;
34 | });
35 | }
36 |
37 | loadModel(scope.assimpUrl);
38 | animate();
39 |
40 | function init() {
41 | camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 2000);
42 | camera.position.set(2, 4, 5);
43 | scene = new THREE.Scene();
44 | scene.fog = new THREE.FogExp2(0x000000, 0.035);
45 | // Lights
46 | scene.add(new THREE.AmbientLight(0xcccccc));
47 | var directionalLight = new THREE.DirectionalLight(/*Math.random() * 0xffffff*/0xeeeeee);
48 | directionalLight.position.x = Math.random() - 0.5;
49 | directionalLight.position.y = Math.random() - 0.5;
50 | directionalLight.position.z = Math.random() - 0.5;
51 | directionalLight.position.normalize();
52 | scene.add(directionalLight);
53 |
54 | // Renderer
55 | renderer = new THREE.WebGLRenderer();
56 | renderer.setSize(window.innerWidth, window.innerHeight);
57 | elem[0].appendChild(renderer.domElement);
58 |
59 | // Events
60 | window.addEventListener('resize', onWindowResize, false);
61 | }
62 |
63 | //
64 | function onWindowResize(event) {
65 | renderer.setSize(window.innerWidth, window.innerHeight);
66 | camera.aspect = window.innerWidth / window.innerHeight;
67 | camera.updateProjectionMatrix();
68 | }
69 |
70 | //
71 | var t = 0;
72 |
73 | function animate() {
74 | requestAnimationFrame(animate);
75 | render();
76 | }
77 |
78 | //
79 | function render() {
80 | var timer = Date.now() * 0.0005;
81 | camera.position.x = Math.cos(timer) * 10;
82 | camera.position.y = 4;
83 | camera.position.z = Math.sin(timer) * 10;
84 | camera.lookAt(scene.position);
85 | renderer.render(scene, camera);
86 | }
87 | }
88 | }
89 | }
90 | ]);
91 |
--------------------------------------------------------------------------------
/bower_components/es5-shim/tests/lib/jasmine.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: "Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif;
3 | }
4 |
5 |
6 | .jasmine_reporter a:visited, .jasmine_reporter a {
7 | color: #303;
8 | }
9 |
10 | .jasmine_reporter a:hover, .jasmine_reporter a:active {
11 | color: blue;
12 | }
13 |
14 | .run_spec {
15 | float:right;
16 | padding-right: 5px;
17 | font-size: .8em;
18 | text-decoration: none;
19 | }
20 |
21 | .jasmine_reporter {
22 | margin: 0 5px;
23 | }
24 |
25 | .banner {
26 | color: #303;
27 | background-color: #fef;
28 | padding: 5px;
29 | }
30 |
31 | .logo {
32 | float: left;
33 | font-size: 1.1em;
34 | padding-left: 5px;
35 | }
36 |
37 | .logo .version {
38 | font-size: .6em;
39 | padding-left: 1em;
40 | }
41 |
42 | .runner.running {
43 | background-color: yellow;
44 | }
45 |
46 |
47 | .options {
48 | text-align: right;
49 | font-size: .8em;
50 | }
51 |
52 |
53 |
54 |
55 | .suite {
56 | border: 1px outset gray;
57 | margin: 5px 0;
58 | padding-left: 1em;
59 | }
60 |
61 | .suite .suite {
62 | margin: 5px;
63 | }
64 |
65 | .suite.passed {
66 | background-color: #dfd;
67 | }
68 |
69 | .suite.failed {
70 | background-color: #fdd;
71 | }
72 |
73 | .spec {
74 | margin: 5px;
75 | padding-left: 1em;
76 | clear: both;
77 | }
78 |
79 | .spec.failed, .spec.passed, .spec.skipped {
80 | padding-bottom: 5px;
81 | border: 1px solid gray;
82 | }
83 |
84 | .spec.failed {
85 | background-color: #fbb;
86 | border-color: red;
87 | }
88 |
89 | .spec.passed {
90 | background-color: #bfb;
91 | border-color: green;
92 | }
93 |
94 | .spec.skipped {
95 | background-color: #bbb;
96 | }
97 |
98 | .messages {
99 | border-left: 1px dashed gray;
100 | padding-left: 1em;
101 | padding-right: 1em;
102 | }
103 |
104 | .passed {
105 | background-color: #cfc;
106 | display: none;
107 | }
108 |
109 | .failed {
110 | background-color: #fbb;
111 | }
112 |
113 | .skipped {
114 | color: #777;
115 | background-color: #eee;
116 | display: none;
117 | }
118 |
119 |
120 | /*.resultMessage {*/
121 | /*white-space: pre;*/
122 | /*}*/
123 |
124 | .resultMessage span.result {
125 | display: block;
126 | line-height: 2em;
127 | color: black;
128 | }
129 |
130 | .resultMessage .mismatch {
131 | color: black;
132 | }
133 |
134 | .stackTrace {
135 | white-space: pre;
136 | font-size: .8em;
137 | margin-left: 10px;
138 | max-height: 5em;
139 | overflow: auto;
140 | border: 1px inset red;
141 | padding: 1em;
142 | background: #eef;
143 | }
144 |
145 | .finished-at {
146 | padding-left: 1em;
147 | font-size: .6em;
148 | }
149 |
150 | .show-passed .passed,
151 | .show-skipped .skipped {
152 | display: block;
153 | }
154 |
155 |
156 | #jasmine_content {
157 | position:fixed;
158 | right: 100%;
159 | }
160 |
161 | .runner {
162 | border: 1px solid gray;
163 | display: block;
164 | margin: 5px 0;
165 | padding: 2px 0 2px 10px;
166 | }
167 |
--------------------------------------------------------------------------------
/bower_components/es5-shim/CHANGES:
--------------------------------------------------------------------------------
1 |
2 | 2.0.0
3 | - Separate reliable shims from dubious shims (shams).
4 |
5 | 1.2.10
6 | - Group-effort Style Cleanup
7 | - Took a stab at fixing Object.defineProperty on IE8 without
8 | bad side-effects. (@hax)
9 | - Object.isExtensible no longer fakes it. (@xavierm)
10 | - Date.prototype.toISOString no longer deals with partial
11 | ISO dates, per spec (@kitcambridge)
12 | - More (mostly from @bryanforbes)
13 |
14 | 1.2.9
15 | - Corrections to toISOString by @kitcambridge
16 | - Fixed three bugs in array methods revealed by Jasmine tests.
17 | - Cleaned up Function.prototype.bind with more fixes and tests from
18 | @bryanforbes.
19 |
20 | 1.2.8
21 | - Actually fixed problems with Function.prototype.bind, and regressions
22 | from 1.2.7 (@bryanforbes, @jdalton #36)
23 |
24 | 1.2.7 - REGRESSED
25 | - Fixed problems with Function.prototype.bind when called as a constructor.
26 | (@jdalton #36)
27 |
28 | 1.2.6
29 | - Revised Date.parse to match ES 5.1 (kitcambridge)
30 |
31 | 1.2.5
32 | - Fixed a bug for padding it Date..toISOString (tadfisher issue #33)
33 |
34 | 1.2.4
35 | - Fixed a descriptor bug in Object.defineProperty (raynos)
36 |
37 | 1.2.3
38 | - Cleaned up RequireJS and
154 |
155 |
156 |