jax 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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")
|