jax 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +53 -0
- data/lib/assets/javascripts/jax/builtin/all.js +0 -14
- data/lib/assets/javascripts/jax/geometry/line.js +52 -8
- data/lib/assets/javascripts/resources/materials/basic.resource +0 -0
- data/lib/assets/javascripts/resources/materials/default.resource +2 -0
- data/lib/assets/javascripts/resources/materials/depthmap.resource +1 -0
- data/lib/assets/javascripts/resources/materials/paraboloid-depthmap.resource +4 -0
- data/lib/assets/javascripts/resources/materials/picking.resource +1 -0
- data/lib/jax/version.rb +1 -1
- data/spec/javascripts/jax/geometry/triangle_spec.js +42 -1
- metadata +47 -44
- data/spec/javascripts/suite/controller_select_spec.js.coffee +0 -24
data/CHANGELOG
CHANGED
@@ -1,3 +1,56 @@
|
|
1
|
+
* 2.0.1 *
|
2
|
+
|
3
|
+
* Implemented missing `Jax.Geometry.Line#contains` method.
|
4
|
+
|
5
|
+
* Fixed line intersection test, when `vec3` is used as a receiver for point of intersection.
|
6
|
+
|
7
|
+
* Built-in resources have been moved to their respective `.resource` files. Same with
|
8
|
+
shaders. This should make overriding them work more reliably, and remove redundant
|
9
|
+
requests for built-in shaders and resources.
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
* 2.0.0 *
|
14
|
+
|
15
|
+
* Integrates cleanly with Ruby on Rails applications. Add `jax` to the bundle, then run:
|
16
|
+
jax g install
|
17
|
+
|
18
|
+
* Internal development server is now a Rails engine, so that it can run stand-alone (for
|
19
|
+
non-Rails apps) as well as be mounted into Rails apps directly.
|
20
|
+
|
21
|
+
* Generators now inherit from `Rails::Generators::Base`
|
22
|
+
|
23
|
+
* CoffeeScript is now supported, and CS files will be generated by default if the CS gem
|
24
|
+
is present.
|
25
|
+
|
26
|
+
* Files are now created in `app/assets/jax/` instead of just `app/` in order to gain the
|
27
|
+
benefits of the Rails asset pipeline.
|
28
|
+
|
29
|
+
* The `jax package` command has been deprecated in favor of `rake assets:precompile`.
|
30
|
+
|
31
|
+
* Packager will now minify all JavaScript code, if possible.
|
32
|
+
|
33
|
+
* The `public/javascripts/jax.js` file has been deprecated. Jax source files are now served
|
34
|
+
directly from within the rubygem.
|
35
|
+
|
36
|
+
* The `rake jax:update` task has been removed. It is no longer needed.
|
37
|
+
|
38
|
+
* Removed `config/routes.rb` from non-Rails apps. Instead, controllers map themselves
|
39
|
+
automatically on the JS side when defined, and their actions are looked up dynamically.
|
40
|
+
|
41
|
+
* Controller generator now generates an `index` action by default.
|
42
|
+
|
43
|
+
* Helper files are no longer generated by the controller generator since they usually weren't
|
44
|
+
tightly coupled to their corresponding controllers. A helper generator has been added,
|
45
|
+
instead.
|
46
|
+
|
47
|
+
* Added a material viewer to the dev suite, so that materials can be previewed in isolation
|
48
|
+
|
49
|
+
* Removed a runtime dependency on Minitar. `Gem::Package` is now used for tar and untar
|
50
|
+
operations instead.
|
51
|
+
|
52
|
+
|
53
|
+
|
1
54
|
* 1.1.1 *
|
2
55
|
|
3
56
|
* Mouse events are scaled in relation to the real canvas size, regardless of CSS styling.
|
@@ -5,17 +5,3 @@
|
|
5
5
|
//= require "jax/builtin/meshes/plane"
|
6
6
|
//= require "jax/builtin/meshes/sphere"
|
7
7
|
//= require "jax/builtin/meshes/teapot"
|
8
|
-
|
9
|
-
//= require "shaders/texture/material"
|
10
|
-
//= require "shaders/normal_map/material"
|
11
|
-
//= require "shaders/shadow_map/material"
|
12
|
-
//= require "shaders/depthmap/material"
|
13
|
-
//= require "shaders/paraboloid/material"
|
14
|
-
//= require "shaders/fog/material"
|
15
|
-
//= require "shaders/picking/material"
|
16
|
-
|
17
|
-
Jax.Material.create("basic");
|
18
|
-
Jax.Material.create("default", {default_shader:'basic'});
|
19
|
-
Jax.Material.create("depthmap", {default_shader:"depthmap"});
|
20
|
-
Jax.Material.create("paraboloid-depthmap", {type:"Paraboloid",default_shader:"paraboloid",layers:[{type:"Depthmap"}]});
|
21
|
-
Jax.Material.create("picking", {type:"Picking"});
|
@@ -3,6 +3,8 @@
|
|
3
3
|
*
|
4
4
|
**/
|
5
5
|
Jax.Geometry.Line = (function() {
|
6
|
+
var bufs = {};
|
7
|
+
|
6
8
|
var Line = Jax.Class.create({
|
7
9
|
/**
|
8
10
|
* new Jax.Geometry.Line([a[, b]])
|
@@ -65,15 +67,40 @@ Jax.Geometry.Line = (function() {
|
|
65
67
|
return this;
|
66
68
|
},
|
67
69
|
|
70
|
+
/**
|
71
|
+
* Jax.Geometry.Line#contains(point) -> Boolean
|
72
|
+
* - point (vec3): a 3D point
|
73
|
+
*
|
74
|
+
* Tests and returns whether this line contains the specified point.
|
75
|
+
**/
|
76
|
+
contains: function(point) {
|
77
|
+
// check whether the normal from A to B is the same as the normal from A to P,
|
78
|
+
// and whether the normal from B to A is the same as the normal from B to P.
|
79
|
+
// There's probably a more efficient way to do this...
|
80
|
+
|
81
|
+
var ba = vec3.subtract(this.b, this.a, bufs.ba || (bufs.ba = vec3.create()));
|
82
|
+
var pa = vec3.subtract(point, this.a, bufs.ba || (bufs.pa = vec3.create()));
|
83
|
+
var ab = vec3.subtract(this.a, this.b, bufs.ba || (bufs.ab = vec3.create()));
|
84
|
+
var pb = vec3.subtract(point, this.b, bufs.ba || (bufs.pb = vec3.create()));
|
85
|
+
|
86
|
+
vec3.normalize(ba);
|
87
|
+
vec3.normalize(pa);
|
88
|
+
vec3.normalize(ab);
|
89
|
+
vec3.normalize(pb);
|
90
|
+
|
91
|
+
return Math.equalish(ba, pa) && Math.equalish(ab, pb);
|
92
|
+
},
|
93
|
+
|
68
94
|
/**
|
69
95
|
* Jax.Geometry.Line#intersectLineSegment(line[, dest]) -> Boolean
|
70
96
|
* - line (Jax.Geometry.Line): the line to test for intersection
|
71
|
-
* - dest (Jax.Geometry.Line): an optional
|
97
|
+
* - dest (Jax.Geometry.Line | vec3): an optional receiver
|
72
98
|
*
|
73
99
|
* Tests the two lines for intersection. If +dest+ is given, the overlap is stored
|
74
100
|
* within it. (If the lines intersect at a single point, but do not overlap, then
|
75
101
|
* only the A point in +dest+ will be set.) If +dest+ is
|
76
|
-
* omitted, this information is ignored.
|
102
|
+
* omitted, this information is ignored. If +dest+ is a vec3, it will hold the center
|
103
|
+
* of the intersection line.
|
77
104
|
*
|
78
105
|
* If the lines do not interesct, Jax.Geometry.DISJOINT (which is equal to 0) is returned.
|
79
106
|
* If they intersect in a single unique point, Jax.Geometry.INTERSECT is returned.
|
@@ -84,6 +111,7 @@ Jax.Geometry.Line = (function() {
|
|
84
111
|
var v = vec3.subtract(line.b, line.a, vec3.create());
|
85
112
|
var w = vec3.subtract(this.a, line.a, vec3.create());
|
86
113
|
var D = (u[0] * v[1] - u[1] * v[0]);
|
114
|
+
var isVec3 = dest && !(dest instanceof Jax.Geometry.Line);
|
87
115
|
if (Math.abs(D) < Math.EPSILON) { // S1 and S2 are parallel
|
88
116
|
if ((u[0] * w[1] - u[1] * w[0]) != 0 || (v[0] * w[1] - v[1] * w[0]) != 0) {
|
89
117
|
return Jax.Geometry.DISJOINT; // they are NOT colinear
|
@@ -96,21 +124,27 @@ Jax.Geometry.Line = (function() {
|
|
96
124
|
if (!Math.equalish(this.a, line.a)) // they are distinct points
|
97
125
|
return Jax.Geometry.DISJOINT;
|
98
126
|
// they are the same point
|
99
|
-
if (dest)
|
127
|
+
if (dest)
|
128
|
+
if (isVec3) vec3.set(line.a, dest);
|
129
|
+
else vec3.set(line.a, dest.a);
|
100
130
|
// vec3.set(line.a, dest.b);
|
101
131
|
return Jax.Geometry.INTERSECT;
|
102
132
|
}
|
103
133
|
if (du == 0) { // +this+ is a single point
|
104
134
|
if (!line.contains(this.a)) // but is not in S2
|
105
135
|
return Jax.Geometry.DISJOINT;
|
106
|
-
if (dest)
|
136
|
+
if (dest)
|
137
|
+
if (isVec3) vec3.set(this.a, dest);
|
138
|
+
else vec3.set(this.a, dest.a);
|
107
139
|
// vec3.set(this.b, dest.b);
|
108
140
|
return Jax.Geometry.INTERSECT;
|
109
141
|
}
|
110
142
|
if (dv == 0) { // +line+ is a single point
|
111
143
|
if (!this.contains(line.a)) // but is not in this line
|
112
144
|
return Jax.Geometry.DISJOINT;
|
113
|
-
if (dest)
|
145
|
+
if (dest)
|
146
|
+
if (isVec3) vec3.set(line.a, dest);
|
147
|
+
else vec3.set(line.a, dest.a);
|
114
148
|
// vec3.set(line.b, dest.b);
|
115
149
|
return Jax.Geometry.INTERSECT;
|
116
150
|
}
|
@@ -134,15 +168,25 @@ Jax.Geometry.Line = (function() {
|
|
134
168
|
if (t0 == t1) {
|
135
169
|
// intersect is a point
|
136
170
|
if (line) {
|
137
|
-
|
171
|
+
if (dest) {
|
172
|
+
var dest_a = isVec3 ? dest : dest.a;
|
173
|
+
vec3.add(line.a, vec3.scale(v, t0, dest_a), dest_a);
|
174
|
+
}
|
138
175
|
return Jax.Geometry.INTERSECT;
|
139
176
|
}
|
140
177
|
}
|
141
178
|
|
142
179
|
// they overlap in a valid subsegment
|
143
180
|
if (dest) {
|
144
|
-
|
145
|
-
|
181
|
+
if (isVec3) {
|
182
|
+
var tmp = bufs.tmp || (bufs.tmp = vec3.create());
|
183
|
+
vec3.add(line.a, vec3.scale(v, t0, dest), dest);
|
184
|
+
vec3.add(line.b, vec3.scale(v, t1, tmp), dest);
|
185
|
+
vec3.scale(dest, 0.5, dest);
|
186
|
+
} else {
|
187
|
+
vec3.add(line.a, vec3.scale(v, t0, dest.a), dest);
|
188
|
+
vec3.add(line.b, vec3.scale(v, t1, dest.b), dest);
|
189
|
+
}
|
146
190
|
}
|
147
191
|
return Jax.Geometry.COINCIDENT;
|
148
192
|
}
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
type: Depthmap
|
@@ -0,0 +1 @@
|
|
1
|
+
type: Picking
|
data/lib/jax/version.rb
CHANGED
@@ -25,9 +25,18 @@ describe("Jax.Geometry.Triangle", function() {
|
|
25
25
|
|
26
26
|
expect(tri.intersectTriangle(tri2)).toBeFalsy();
|
27
27
|
});
|
28
|
+
|
29
|
+
it("should not raise errors", function() {
|
30
|
+
// TypeError: Object [Line a:[Float32Array: -0.44343942403793335,0.4999999701976776,-0.4434394836425781], b:[Float32Array: 0.5037173628807068,-0.5,0.28691262006759644]] has no method 'contains' with
|
31
|
+
var dist = vec3.create();
|
32
|
+
var tri1 = new Jax.Geometry.Triangle([0.5,0.5,0.5000000596046448], [-0.5,0.4999999701976776,-0.5000000596046448], [0.5,0.4999999701976776,-0.5000000596046448]);
|
33
|
+
var tri2 = new Jax.Geometry.Triangle([0.5037173628807068,0.5,0.28691262006759644], [0.5037173628807068,-0.5,0.28691262006759644], [0.8630872964859009,0.5,-0.6462825536727905]);
|
34
|
+
|
35
|
+
expect(function() { tri1.intersectTriangle(tri2, dist); }).not.toThrow();
|
36
|
+
});
|
28
37
|
});
|
29
38
|
|
30
|
-
describe("with triangle and capture
|
39
|
+
describe("with triangle and capture line", function() {
|
31
40
|
var line;
|
32
41
|
beforeEach(function() { line = new Jax.Geometry.Line(); });
|
33
42
|
|
@@ -51,6 +60,38 @@ describe("Jax.Geometry.Triangle", function() {
|
|
51
60
|
});
|
52
61
|
});
|
53
62
|
|
63
|
+
describe("with triangle and capture vec3", function() {
|
64
|
+
var point;
|
65
|
+
beforeEach(function() { point = vec3.create(); });
|
66
|
+
|
67
|
+
// more complete tritri tests found in tritri_spec.js
|
68
|
+
it("no intersect", function() {
|
69
|
+
var tri2 = new Jax.Geometry.Triangle([0,0.5,2],[-1,0.5,2],[0,1.5,2]);
|
70
|
+
expect(tri.intersectTriangle(tri2, point)).toBeFalsy();
|
71
|
+
});
|
72
|
+
|
73
|
+
it("intersect", function() {
|
74
|
+
var tri2 = new Jax.Geometry.Triangle([0,0.95,-1],[-1,0.95,2],[1,0.95,2]);
|
75
|
+
expect(tri.intersectTriangle(tri2, point)).toBeTruthy();
|
76
|
+
expect(Math.abs(point[0]) + Math.abs(point[1]) + Math.abs(point[2])).toBeGreaterThan(Math.EPSILON);
|
77
|
+
});
|
78
|
+
|
79
|
+
it("identical, positioned above", function() {
|
80
|
+
tri = new Jax.Geometry.Triangle([0,0.95,-1],[-1,0.95,2],[1,0.95,2]);
|
81
|
+
var tri2 = new Jax.Geometry.Triangle([0,3.95,-1],[-1,3.95,2],[1,3.95,2]);
|
82
|
+
|
83
|
+
expect(tri.intersectTriangle(tri2, point)).toBeFalsy();
|
84
|
+
});
|
85
|
+
|
86
|
+
it("identical, same position", function() {
|
87
|
+
tri = new Jax.Geometry.Triangle([-0.7006292939186096,0.5,0.5090369582176208], [-0.7911535501480103,0.5,0.3522442579269409], [-0.7390738129615784,0.5877852439880371,0.32905685901641846]);
|
88
|
+
tri2 = new Jax.Geometry.Triangle([-0.7006292939186096,0.5,0.5090369582176208], [-0.7911535501480103,0.5,0.3522442579269409], [-0.7390738129615784,0.5877852439880371,0.32905685901641846]);
|
89
|
+
|
90
|
+
expect(tri.intersectTriangle(tri2, point)).toBeTruthy();
|
91
|
+
expect(Math.abs(point[0])+Math.abs(point[1])+Math.abs(point[2])).toBeGreaterThan(Math.EPSILON);
|
92
|
+
});
|
93
|
+
});
|
94
|
+
|
54
95
|
describe("with ray", function() {
|
55
96
|
it("intersect", function() {
|
56
97
|
var O = [0,0,1];
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jax
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-11-
|
12
|
+
date: 2011-11-04 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &2153982300 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.1.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2153982300
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: jquery-rails
|
27
|
-
requirement: &
|
27
|
+
requirement: &2153981800 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.0.13
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2153981800
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: jasmine
|
38
|
-
requirement: &
|
38
|
+
requirement: &2153981180 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.0.2.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2153981180
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rest-client
|
49
|
-
requirement: &
|
49
|
+
requirement: &2153980680 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.6.3
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2153980680
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rspec
|
60
|
-
requirement: &
|
60
|
+
requirement: &2153980220 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 2.6.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2153980220
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: coffee-rails
|
71
|
-
requirement: &
|
71
|
+
requirement: &2153979740 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 3.1.0
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2153979740
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: coderay
|
82
|
-
requirement: &
|
82
|
+
requirement: &2153979200 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: 0.9.7
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2153979200
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: sqlite3
|
93
|
-
requirement: &
|
93
|
+
requirement: &2153978700 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ~>
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: 1.3.4
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *2153978700
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: sass-rails
|
104
|
-
requirement: &
|
104
|
+
requirement: &2153978220 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ~>
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: 3.1.0
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *2153978220
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: uglifier
|
115
|
-
requirement: &
|
115
|
+
requirement: &2153977740 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ~>
|
@@ -120,10 +120,10 @@ dependencies:
|
|
120
120
|
version: 1.0.2
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *2153977740
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: genspec
|
126
|
-
requirement: &
|
126
|
+
requirement: &2153977260 !ruby/object:Gem::Requirement
|
127
127
|
none: false
|
128
128
|
requirements:
|
129
129
|
- - ~>
|
@@ -131,10 +131,10 @@ dependencies:
|
|
131
131
|
version: 0.2.3
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
|
-
version_requirements: *
|
134
|
+
version_requirements: *2153977260
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: selenium-webdriver
|
137
|
-
requirement: &
|
137
|
+
requirement: &2153976780 !ruby/object:Gem::Requirement
|
138
138
|
none: false
|
139
139
|
requirements:
|
140
140
|
- - ~>
|
@@ -142,10 +142,10 @@ dependencies:
|
|
142
142
|
version: 2.9.1
|
143
143
|
type: :development
|
144
144
|
prerelease: false
|
145
|
-
version_requirements: *
|
145
|
+
version_requirements: *2153976780
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: fakeweb
|
148
|
-
requirement: &
|
148
|
+
requirement: &2153976320 !ruby/object:Gem::Requirement
|
149
149
|
none: false
|
150
150
|
requirements:
|
151
151
|
- - ~>
|
@@ -153,10 +153,10 @@ dependencies:
|
|
153
153
|
version: 1.3.0
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
|
-
version_requirements: *
|
156
|
+
version_requirements: *2153976320
|
157
157
|
- !ruby/object:Gem::Dependency
|
158
158
|
name: ansi
|
159
|
-
requirement: &
|
159
|
+
requirement: &2153975940 !ruby/object:Gem::Requirement
|
160
160
|
none: false
|
161
161
|
requirements:
|
162
162
|
- - ! '>='
|
@@ -164,10 +164,10 @@ dependencies:
|
|
164
164
|
version: '0'
|
165
165
|
type: :development
|
166
166
|
prerelease: false
|
167
|
-
version_requirements: *
|
167
|
+
version_requirements: *2153975940
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
169
|
name: cucumber-rails
|
170
|
-
requirement: &
|
170
|
+
requirement: &2153975400 !ruby/object:Gem::Requirement
|
171
171
|
none: false
|
172
172
|
requirements:
|
173
173
|
- - ~>
|
@@ -175,10 +175,10 @@ dependencies:
|
|
175
175
|
version: 1.0.2
|
176
176
|
type: :development
|
177
177
|
prerelease: false
|
178
|
-
version_requirements: *
|
178
|
+
version_requirements: *2153975400
|
179
179
|
- !ruby/object:Gem::Dependency
|
180
180
|
name: RedCloth
|
181
|
-
requirement: &
|
181
|
+
requirement: &2153974840 !ruby/object:Gem::Requirement
|
182
182
|
none: false
|
183
183
|
requirements:
|
184
184
|
- - ~>
|
@@ -186,10 +186,10 @@ dependencies:
|
|
186
186
|
version: '4.2'
|
187
187
|
type: :development
|
188
188
|
prerelease: false
|
189
|
-
version_requirements: *
|
189
|
+
version_requirements: *2153974840
|
190
190
|
- !ruby/object:Gem::Dependency
|
191
191
|
name: w3c_validators
|
192
|
-
requirement: &
|
192
|
+
requirement: &2153974180 !ruby/object:Gem::Requirement
|
193
193
|
none: false
|
194
194
|
requirements:
|
195
195
|
- - ~>
|
@@ -197,10 +197,10 @@ dependencies:
|
|
197
197
|
version: '1.2'
|
198
198
|
type: :development
|
199
199
|
prerelease: false
|
200
|
-
version_requirements: *
|
200
|
+
version_requirements: *2153974180
|
201
201
|
- !ruby/object:Gem::Dependency
|
202
202
|
name: treetop
|
203
|
-
requirement: &
|
203
|
+
requirement: &2153973660 !ruby/object:Gem::Requirement
|
204
204
|
none: false
|
205
205
|
requirements:
|
206
206
|
- - ~>
|
@@ -208,10 +208,10 @@ dependencies:
|
|
208
208
|
version: 1.4.9
|
209
209
|
type: :development
|
210
210
|
prerelease: false
|
211
|
-
version_requirements: *
|
211
|
+
version_requirements: *2153973660
|
212
212
|
- !ruby/object:Gem::Dependency
|
213
213
|
name: bluecloth
|
214
|
-
requirement: &
|
214
|
+
requirement: &2153973140 !ruby/object:Gem::Requirement
|
215
215
|
none: false
|
216
216
|
requirements:
|
217
217
|
- - ~>
|
@@ -219,7 +219,7 @@ dependencies:
|
|
219
219
|
version: 2.0.11
|
220
220
|
type: :development
|
221
221
|
prerelease: false
|
222
|
-
version_requirements: *
|
222
|
+
version_requirements: *2153973140
|
223
223
|
description: ! "\n Framework for creating rich WebGL-enabled applications using
|
224
224
|
JavaScript and Ruby.\n Can be used stand-alone to create static JavaScript documents,
|
225
225
|
or integrated\n seamlessly with Ruby on Rails to build dynamic WebGL applications.\n
|
@@ -344,6 +344,11 @@ files:
|
|
344
344
|
- lib/assets/javascripts/jax/webgl/shader_chain.js
|
345
345
|
- lib/assets/javascripts/jax/webgl/texture.js
|
346
346
|
- lib/assets/javascripts/jax/webgl/world.js
|
347
|
+
- lib/assets/javascripts/resources/materials/basic.resource
|
348
|
+
- lib/assets/javascripts/resources/materials/default.resource
|
349
|
+
- lib/assets/javascripts/resources/materials/depthmap.resource
|
350
|
+
- lib/assets/javascripts/resources/materials/paraboloid-depthmap.resource
|
351
|
+
- lib/assets/javascripts/resources/materials/picking.resource
|
347
352
|
- lib/assets/javascripts/shaders/basic/common.glsl
|
348
353
|
- lib/assets/javascripts/shaders/basic/fragment.glsl
|
349
354
|
- lib/assets/javascripts/shaders/basic/vertex.glsl
|
@@ -513,7 +518,6 @@ files:
|
|
513
518
|
- spec/javascripts/shaders/preprocessor_spec.js
|
514
519
|
- spec/javascripts/shaders/shadow_map_spec.js
|
515
520
|
- spec/javascripts/shaders/texture_spec.js
|
516
|
-
- spec/javascripts/suite/controller_select_spec.js.coffee
|
517
521
|
- spec/lib/jax/commands/plugin_manager/credentials_spec.rb
|
518
522
|
- spec/lib/jax/commands/plugin_manager/push_spec.rb
|
519
523
|
- spec/lib/jax/commands/plugin_manager_spec.rb
|
@@ -640,7 +644,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
640
644
|
version: '0'
|
641
645
|
segments:
|
642
646
|
- 0
|
643
|
-
hash:
|
647
|
+
hash: -3170321314478077500
|
644
648
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
645
649
|
none: false
|
646
650
|
requirements:
|
@@ -649,7 +653,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
649
653
|
version: '0'
|
650
654
|
segments:
|
651
655
|
- 0
|
652
|
-
hash:
|
656
|
+
hash: -3170321314478077500
|
653
657
|
requirements: []
|
654
658
|
rubyforge_project: jax
|
655
659
|
rubygems_version: 1.8.10
|
@@ -759,7 +763,6 @@ test_files:
|
|
759
763
|
- spec/javascripts/shaders/preprocessor_spec.js
|
760
764
|
- spec/javascripts/shaders/shadow_map_spec.js
|
761
765
|
- spec/javascripts/shaders/texture_spec.js
|
762
|
-
- spec/javascripts/suite/controller_select_spec.js.coffee
|
763
766
|
- spec/lib/jax/commands/plugin_manager/credentials_spec.rb
|
764
767
|
- spec/lib/jax/commands/plugin_manager/push_spec.rb
|
765
768
|
- spec/lib/jax/commands/plugin_manager_spec.rb
|
@@ -1,24 +0,0 @@
|
|
1
|
-
#= require "jquery"
|
2
|
-
#= require "jax/controller-select"
|
3
|
-
|
4
|
-
describe "The select box in the dev suite runtime", ->
|
5
|
-
select = null
|
6
|
-
|
7
|
-
beforeEach ->
|
8
|
-
Jax.routes.clear()
|
9
|
-
Jax.views.push 'welcome/index', -> 1
|
10
|
-
Jax.Controller.create "Welcome", index: -> 1
|
11
|
-
select = document.createElement "select"
|
12
|
-
_controller_select_fill select
|
13
|
-
|
14
|
-
it "should contain the 'Welcome' controller", ->
|
15
|
-
expect(select.options[0].value).toEqual("welcome")
|
16
|
-
|
17
|
-
describe "clicked", ->
|
18
|
-
beforeEach ->
|
19
|
-
select.webgl_context = SPEC_CONTEXT
|
20
|
-
select.selectedIndex = 0
|
21
|
-
$(select).trigger("change");
|
22
|
-
|
23
|
-
it "should redirect to the selected controller", ->
|
24
|
-
expect(SPEC_CONTEXT.current_controller.getControllerName()).toEqual("Welcome")
|