mittsu 0.2.3 → 0.3.3
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.
- checksums.yaml +4 -4
- data/.github/workflows/build-workflow.yml +95 -0
- data/.gitignore +1 -0
- data/Gemfile +3 -2
- data/README.md +3 -7
- data/Rakefile +1 -0
- data/install-glfw.ps1 +13 -0
- data/lib/mittsu.rb +1 -16
- data/lib/mittsu/cameras/camera.rb +0 -2
- data/lib/mittsu/cameras/cube_camera.rb +0 -2
- data/lib/mittsu/cameras/orthographic_camera.rb +2 -4
- data/lib/mittsu/cameras/perspective_camera.rb +4 -5
- data/lib/mittsu/core/buffer_geometry.rb +3 -3
- data/lib/mittsu/core/geometry.rb +10 -9
- data/lib/mittsu/core/object_3d.rb +9 -7
- data/lib/mittsu/core/raycaster.rb +0 -2
- data/lib/mittsu/extras/geometries.rb +13 -0
- data/lib/mittsu/extras/geometries/circle_geometry.rb +48 -0
- data/lib/mittsu/extras/geometries/cylinder_geometry.rb +145 -0
- data/lib/mittsu/extras/geometries/dodecahedron_geometry.rb +56 -0
- data/lib/mittsu/extras/geometries/icosahedron_geometry.rb +33 -0
- data/lib/mittsu/extras/geometries/lathe_geometry.rb +78 -0
- data/lib/mittsu/extras/geometries/octahedron_geometry.rb +26 -0
- data/lib/mittsu/extras/geometries/parametric_buffer_geometry.rb +92 -0
- data/lib/mittsu/extras/geometries/parametric_geometry.rb +93 -0
- data/lib/mittsu/extras/geometries/plane_buffer_geometry.rb +81 -0
- data/lib/mittsu/extras/geometries/plane_geometry.rb +22 -0
- data/lib/mittsu/extras/geometries/polyhedron_geometry.rb +168 -0
- data/lib/mittsu/extras/geometries/ring_geometry.rb +80 -0
- data/lib/mittsu/extras/geometries/sphere_geometry.rb +4 -4
- data/lib/mittsu/extras/geometries/tetrahedron_geometry.rb +26 -0
- data/lib/mittsu/extras/geometries/torus_geometry.rb +63 -0
- data/lib/mittsu/extras/geometries/torus_knot_buffer_geometry.rb +120 -0
- data/lib/mittsu/extras/geometries/torus_knot_geometry.rb +25 -0
- data/lib/mittsu/extras/helpers/camera_helper.rb +38 -38
- data/lib/mittsu/extras/image_utils.rb +1 -1
- data/lib/mittsu/lights/directional_light.rb +9 -5
- data/lib/mittsu/lights/spot_light.rb +1 -1
- data/lib/mittsu/loaders/loader.rb +2 -2
- data/lib/mittsu/loaders/obj_loader.rb +4 -0
- data/lib/mittsu/materials/material.rb +6 -3
- data/lib/mittsu/math.rb +0 -5
- data/lib/mittsu/math/box2.rb +0 -2
- data/lib/mittsu/math/box3.rb +0 -2
- data/lib/mittsu/math/color.rb +3 -4
- data/lib/mittsu/math/euler.rb +25 -26
- data/lib/mittsu/math/frustum.rb +0 -2
- data/lib/mittsu/math/line3.rb +0 -2
- data/lib/mittsu/math/matrix3.rb +0 -2
- data/lib/mittsu/math/matrix4.rb +10 -12
- data/lib/mittsu/math/plane.rb +0 -2
- data/lib/mittsu/math/quaternion.rb +18 -20
- data/lib/mittsu/math/ray.rb +1 -3
- data/lib/mittsu/math/sphere.rb +1 -3
- data/lib/mittsu/math/spline.rb +0 -2
- data/lib/mittsu/math/triangle.rb +1 -3
- data/lib/mittsu/math/vector.rb +4 -4
- data/lib/mittsu/math/vector2.rb +0 -1
- data/lib/mittsu/math/vector3.rb +0 -1
- data/lib/mittsu/math/vector4.rb +8 -9
- data/lib/mittsu/objects/line.rb +0 -1
- data/lib/mittsu/renderers/glfw_lib.rb +1 -1
- data/lib/mittsu/renderers/glfw_window.rb +1 -1
- data/lib/mittsu/renderers/opengl/core/object_3d.rb +1 -1
- data/lib/mittsu/renderers/opengl/lights/spot_light.rb +1 -1
- data/lib/mittsu/renderers/opengl/opengl_geometry_group.rb +1 -0
- data/lib/mittsu/renderers/opengl/opengl_program.rb +1 -2
- data/lib/mittsu/renderers/opengl/textures/texture.rb +1 -1
- data/lib/mittsu/renderers/opengl_renderer.rb +5 -10
- data/lib/mittsu/scenes/scene.rb +0 -2
- data/lib/mittsu/textures/texture.rb +4 -2
- data/lib/mittsu/utils.rb +15 -0
- data/lib/mittsu/version.rb +1 -1
- data/mittsu.gemspec +10 -9
- metadata +75 -47
- data/.circleci/config.yml +0 -44
- data/.travis.yml +0 -20
- data/appveyor.yml +0 -23
- data/install_glfw.ps1 +0 -11
data/lib/mittsu/math/frustum.rb
CHANGED
data/lib/mittsu/math/line3.rb
CHANGED
data/lib/mittsu/math/matrix3.rb
CHANGED
data/lib/mittsu/math/matrix4.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'mittsu/math'
|
2
|
-
|
3
1
|
module Mittsu
|
4
2
|
class Matrix4
|
5
3
|
attr_accessor :elements
|
@@ -88,9 +86,9 @@ module Mittsu
|
|
88
86
|
def make_rotation_from_euler(euler)
|
89
87
|
te = self.elements
|
90
88
|
x, y, z = euler.x, euler.y, euler.z
|
91
|
-
a, b = Math.cos(x), Math.sin(x)
|
92
|
-
c, d = Math.cos(y), Math.sin(y)
|
93
|
-
e, f = Math.cos(z), Math.sin(z)
|
89
|
+
a, b = ::Math.cos(x), ::Math.sin(x)
|
90
|
+
c, d = ::Math.cos(y), ::Math.sin(y)
|
91
|
+
e, f = ::Math.cos(z), ::Math.sin(z)
|
94
92
|
if euler.order == 'XYZ'
|
95
93
|
ae = a * e; af = a * f; be = b * e; bf = b * f
|
96
94
|
te[0] = c * e
|
@@ -401,7 +399,7 @@ module Mittsu
|
|
401
399
|
scale_x_sq = te[0] * te[0] + te[1] * te[1] + te[2] * te[2]
|
402
400
|
scale_y_sq = te[4] * te[4] + te[5] * te[5] + te[6] * te[6]
|
403
401
|
scale_z_sq = te[8] * te[8] + te[9] * te[9] + te[10] * te[10]
|
404
|
-
Math.sqrt([scale_x_sq, scale_y_sq, scale_z_sq].max)
|
402
|
+
::Math.sqrt([scale_x_sq, scale_y_sq, scale_z_sq].max)
|
405
403
|
end
|
406
404
|
|
407
405
|
def make_translation(x, y, z)
|
@@ -415,7 +413,7 @@ module Mittsu
|
|
415
413
|
end
|
416
414
|
|
417
415
|
def make_rotation_x(theta)
|
418
|
-
c, s = Math.cos(theta), Math.sin(theta)
|
416
|
+
c, s = ::Math.cos(theta), ::Math.sin(theta)
|
419
417
|
self.set(
|
420
418
|
1.0, 0.0, 0.0, 0.0,
|
421
419
|
0.0, c, -s, 0.0,
|
@@ -426,7 +424,7 @@ module Mittsu
|
|
426
424
|
end
|
427
425
|
|
428
426
|
def make_rotation_y(theta)
|
429
|
-
c, s = Math.cos(theta), Math.sin(theta)
|
427
|
+
c, s = ::Math.cos(theta), ::Math.sin(theta)
|
430
428
|
self.set(
|
431
429
|
c, 0.0, s, 0.0,
|
432
430
|
0.0, 1.0, 0.0, 0.0,
|
@@ -437,7 +435,7 @@ module Mittsu
|
|
437
435
|
end
|
438
436
|
|
439
437
|
def make_rotation_z(theta)
|
440
|
-
c, s = Math.cos(theta), Math.sin(theta)
|
438
|
+
c, s = ::Math.cos(theta), ::Math.sin(theta)
|
441
439
|
self.set(
|
442
440
|
c, -s, 0.0, 0.0,
|
443
441
|
s, c, 0.0, 0.0,
|
@@ -449,8 +447,8 @@ module Mittsu
|
|
449
447
|
|
450
448
|
def make_rotation_axis(axis, angle)
|
451
449
|
# Based on http:#www.gamedev.net/reference/articles/article1199.asp
|
452
|
-
c = Math.cos(angle)
|
453
|
-
s = Math.sin(angle)
|
450
|
+
c = ::Math.cos(angle)
|
451
|
+
s = ::Math.sin(angle)
|
454
452
|
t = 1.0 - c
|
455
453
|
x, y, z = axis.x, axis.y, axis.z
|
456
454
|
tx, ty = t * x, t * y
|
@@ -536,7 +534,7 @@ module Mittsu
|
|
536
534
|
def make_perspective(fov, aspect, near, far)
|
537
535
|
fov, aspect, near, far =
|
538
536
|
fov.to_f, aspect.to_f, near.to_f, far.to_f
|
539
|
-
ymax = near * Math.tan(Math.deg_to_rad(fov * 0.5))
|
537
|
+
ymax = near * ::Math.tan(Math.deg_to_rad(fov * 0.5))
|
540
538
|
ymin = -ymax
|
541
539
|
xmin = ymin * aspect
|
542
540
|
xmax = ymax * aspect
|
data/lib/mittsu/math/plane.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'mittsu/math'
|
2
|
-
|
3
1
|
module Mittsu
|
4
2
|
class Quaternion
|
5
3
|
EPS = 0.000001
|
@@ -8,6 +6,7 @@ module Mittsu
|
|
8
6
|
|
9
7
|
def initialize(x = 0.0, y = 0.0, z = 0.0, w = 1.0)
|
10
8
|
@x, @y, @z, @w = x, y, z, w
|
9
|
+
@on_change_callback = nil
|
11
10
|
end
|
12
11
|
|
13
12
|
def set(x, y, z, w)
|
@@ -52,12 +51,12 @@ module Mittsu
|
|
52
51
|
# http:#www.mathworks.com/matlabcentral/fileexchange/
|
53
52
|
# 20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/
|
54
53
|
# content/SpinCalc.m
|
55
|
-
c1 = Math.cos(euler.x / 2.0)
|
56
|
-
c2 = Math.cos(euler.y / 2.0)
|
57
|
-
c3 = Math.cos(euler.z / 2.0)
|
58
|
-
s1 = Math.sin(euler.x / 2.0)
|
59
|
-
s2 = Math.sin(euler.y / 2.0)
|
60
|
-
s3 = Math.sin(euler.z / 2.0)
|
54
|
+
c1 = ::Math.cos(euler.x / 2.0)
|
55
|
+
c2 = ::Math.cos(euler.y / 2.0)
|
56
|
+
c3 = ::Math.cos(euler.z / 2.0)
|
57
|
+
s1 = ::Math.sin(euler.x / 2.0)
|
58
|
+
s2 = ::Math.sin(euler.y / 2.0)
|
59
|
+
s3 = ::Math.sin(euler.z / 2.0)
|
61
60
|
if euler.order == 'XYZ'
|
62
61
|
@x = s1 * c2 * c3 + c1 * s2 * s3
|
63
62
|
@y = c1 * s2 * c3 - s1 * c2 * s3
|
@@ -97,11 +96,11 @@ module Mittsu
|
|
97
96
|
# http:#www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm
|
98
97
|
# assumes axis is normalized
|
99
98
|
half_angle = angle / 2.0
|
100
|
-
s = Math.sin(half_angle)
|
99
|
+
s = ::Math.sin(half_angle)
|
101
100
|
@x = axis.x * s
|
102
101
|
@y = axis.y * s
|
103
102
|
@z = axis.z * s
|
104
|
-
@w = Math.cos(half_angle)
|
103
|
+
@w = ::Math.cos(half_angle)
|
105
104
|
self.on_change_callback
|
106
105
|
self
|
107
106
|
end
|
@@ -115,25 +114,25 @@ module Mittsu
|
|
115
114
|
m31 = te[2]; m32 = te[6]; m33 = te[10]
|
116
115
|
trace = m11 + m22 + m33
|
117
116
|
if trace > 0
|
118
|
-
s = 0.5 / Math.sqrt(trace + 1.0)
|
117
|
+
s = 0.5 / ::Math.sqrt(trace + 1.0)
|
119
118
|
@w = 0.25 / s
|
120
119
|
@x = (m32 - m23) * s
|
121
120
|
@y = (m13 - m31) * s
|
122
121
|
@z = (m21 - m12) * s
|
123
122
|
elsif m11 > m22 && m11 > m33
|
124
|
-
s = 2.0 * Math.sqrt(1.0 + m11 - m22 - m33)
|
123
|
+
s = 2.0 * ::Math.sqrt(1.0 + m11 - m22 - m33)
|
125
124
|
@w = (m32 - m23) / s
|
126
125
|
@x = 0.25 * s
|
127
126
|
@y = (m12 + m21) / s
|
128
127
|
@z = (m13 + m31) / s
|
129
128
|
elsif m22 > m33
|
130
|
-
s = 2.0 * Math.sqrt(1.0 + m22 - m11 - m33)
|
129
|
+
s = 2.0 * ::Math.sqrt(1.0 + m22 - m11 - m33)
|
131
130
|
@w = (m13 - m31) / s
|
132
131
|
@x = (m12 + m21) / s
|
133
132
|
@y = 0.25 * s
|
134
133
|
@z = (m23 + m32) / s
|
135
134
|
else
|
136
|
-
s = 2.0 * Math.sqrt(1.0 + m33 - m11 - m22)
|
135
|
+
s = 2.0 * ::Math.sqrt(1.0 + m33 - m11 - m22)
|
137
136
|
@w = (m21 - m12) / s
|
138
137
|
@x = (m13 + m31) / s
|
139
138
|
@y = (m23 + m32) / s
|
@@ -188,7 +187,7 @@ module Mittsu
|
|
188
187
|
end
|
189
188
|
|
190
189
|
def length
|
191
|
-
Math.sqrt(@x * @x + @y * @y + @z * @z + @w * @w)
|
190
|
+
::Math.sqrt(@x * @x + @y * @y + @z * @z + @w * @w)
|
192
191
|
end
|
193
192
|
|
194
193
|
def normalize
|
@@ -247,8 +246,8 @@ module Mittsu
|
|
247
246
|
@z = _z
|
248
247
|
return self
|
249
248
|
end
|
250
|
-
half_theta = Math.acos(cos_half_theta)
|
251
|
-
sin_half_theta = Math.sqrt(1.0 - cos_half_theta * cos_half_theta)
|
249
|
+
half_theta = ::Math.acos(cos_half_theta)
|
250
|
+
sin_half_theta = ::Math.sqrt(1.0 - cos_half_theta * cos_half_theta)
|
252
251
|
if sin_half_theta.abs < 0.001
|
253
252
|
@w = 0.5 * (_w + @w)
|
254
253
|
@x = 0.5 * (_x + @x)
|
@@ -256,8 +255,8 @@ module Mittsu
|
|
256
255
|
@z = 0.5 * (_z + @z)
|
257
256
|
return self
|
258
257
|
end
|
259
|
-
ratio_a = Math.sin((1.0. - t) * half_theta) / sin_half_theta,
|
260
|
-
ratio_b = Math.sin(t * half_theta) / sin_half_theta
|
258
|
+
ratio_a = ::Math.sin((1.0. - t) * half_theta) / sin_half_theta,
|
259
|
+
ratio_b = ::Math.sin(t * half_theta) / sin_half_theta
|
261
260
|
@w = (_w * ratio_a + @w * ratio_b)
|
262
261
|
@x = (_x * ratio_a + @x * ratio_b)
|
263
262
|
@y = (_y * ratio_a + @y * ratio_b)
|
@@ -304,6 +303,5 @@ module Mittsu
|
|
304
303
|
def self.slerp(qa, qb, qm, t)
|
305
304
|
qm.copy(qa).slerp(qb, t)
|
306
305
|
end
|
307
|
-
|
308
306
|
end
|
309
307
|
end
|
data/lib/mittsu/math/ray.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'mittsu/math'
|
2
|
-
|
3
1
|
module Mittsu
|
4
2
|
class Ray
|
5
3
|
attr_accessor :origin, :direction
|
@@ -140,7 +138,7 @@ module Mittsu
|
|
140
138
|
d2 = v1.dot(v1) - tca * tca
|
141
139
|
radius2 = sphere.radius * sphere.radius
|
142
140
|
return nil if d2 > radius2
|
143
|
-
thc = Math.sqrt(radius2 - d2)
|
141
|
+
thc = ::Math.sqrt(radius2 - d2)
|
144
142
|
# t0 = first intersect point - entrance on front of sphere
|
145
143
|
t0 = tca - thc
|
146
144
|
# t1 = second intersect point - exit point on back of sphere
|
data/lib/mittsu/math/sphere.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'mittsu/math'
|
2
|
-
|
3
1
|
module Mittsu
|
4
2
|
class Sphere
|
5
3
|
attr_accessor :center, :radius
|
@@ -26,7 +24,7 @@ module Mittsu
|
|
26
24
|
points.each do |point|
|
27
25
|
max_radius_sq = [max_radius_sq, c.distance_to_squared(point)].max
|
28
26
|
end
|
29
|
-
@radius = Math.sqrt(max_radius_sq)
|
27
|
+
@radius = ::Math.sqrt(max_radius_sq)
|
30
28
|
self
|
31
29
|
end
|
32
30
|
|
data/lib/mittsu/math/spline.rb
CHANGED
data/lib/mittsu/math/triangle.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'mittsu/math'
|
2
|
-
|
3
1
|
module Mittsu
|
4
2
|
class Triangle
|
5
3
|
attr_accessor :a, :b, :c
|
@@ -73,7 +71,7 @@ module Mittsu
|
|
73
71
|
|
74
72
|
result_length_sq = target.length_sq
|
75
73
|
if (result_length_sq > 0)
|
76
|
-
target.multiply_scalar(1.0 / Math.sqrt(result_length_sq))
|
74
|
+
target.multiply_scalar(1.0 / ::Math.sqrt(result_length_sq))
|
77
75
|
else
|
78
76
|
target.set(0.0, 0.0, 0.0)
|
79
77
|
end
|
data/lib/mittsu/math/vector.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Mittsu
|
2
2
|
class Vector
|
3
|
-
attr_accessor :elements
|
3
|
+
attr_accessor :elements, :uv, :index
|
4
4
|
|
5
5
|
def initialize(elements)
|
6
6
|
@elements = elements
|
@@ -160,7 +160,7 @@ module Mittsu
|
|
160
160
|
end
|
161
161
|
|
162
162
|
def length
|
163
|
-
Math.sqrt(length_sq)
|
163
|
+
::Math.sqrt(length_sq)
|
164
164
|
end
|
165
165
|
|
166
166
|
def normalize
|
@@ -211,11 +211,11 @@ module Mittsu
|
|
211
211
|
theta = self.dot(v) / (self.length * v.length)
|
212
212
|
|
213
213
|
# clamp, to handle numerical problems
|
214
|
-
Math.acos(Math.clamp(theta, -1.0, 1.0))
|
214
|
+
::Math.acos(Math.clamp(theta, -1.0, 1.0))
|
215
215
|
end
|
216
216
|
|
217
217
|
def distance_to(v)
|
218
|
-
Math.sqrt(self.distance_to_squared(v))
|
218
|
+
::Math.sqrt(self.distance_to_squared(v))
|
219
219
|
end
|
220
220
|
|
221
221
|
def ==(v)
|
data/lib/mittsu/math/vector2.rb
CHANGED
data/lib/mittsu/math/vector3.rb
CHANGED
data/lib/mittsu/math/vector4.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'mittsu/math'
|
2
1
|
require 'mittsu/math/vector'
|
3
2
|
|
4
3
|
module Mittsu
|
@@ -50,8 +49,8 @@ module Mittsu
|
|
50
49
|
def set_axis_angle_from_quaternion(q)
|
51
50
|
# http:#www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm
|
52
51
|
# q is assumed to be normalized
|
53
|
-
@elements[3] = 2.0 * Math.acos(q.w)
|
54
|
-
s = Math.sqrt(1.0 - q.w * q.w)
|
52
|
+
@elements[3] = 2.0 * ::Math.acos(q.w)
|
53
|
+
s = ::Math.sqrt(1.0 - q.w * q.w)
|
55
54
|
if s < 0.0001
|
56
55
|
@elements[0] = 1.0
|
57
56
|
@elements[1] = 0.0
|
@@ -89,7 +88,7 @@ module Mittsu
|
|
89
88
|
return self # zero angle, arbitrary axis
|
90
89
|
end
|
91
90
|
# otherwise self singularity is angle = 180
|
92
|
-
angle = Math::PI
|
91
|
+
angle = ::Math::PI
|
93
92
|
xx = (m11 + 1.0) / 2.0
|
94
93
|
yy = (m22 + 1.0) / 2.0
|
95
94
|
zz = (m33 + 1.0) / 2.0
|
@@ -102,7 +101,7 @@ module Mittsu
|
|
102
101
|
y1 = 0.707106781
|
103
102
|
z1 = 0.707106781
|
104
103
|
else
|
105
|
-
x1 = Math.sqrt(xx)
|
104
|
+
x1 = ::Math.sqrt(xx)
|
106
105
|
y1 = xy / x1
|
107
106
|
z1 = xz / x1
|
108
107
|
end
|
@@ -112,7 +111,7 @@ module Mittsu
|
|
112
111
|
y1 = 0.0
|
113
112
|
z1 = 0.707106781
|
114
113
|
else
|
115
|
-
y1 = Math.sqrt(yy)
|
114
|
+
y1 = ::Math.sqrt(yy)
|
116
115
|
x1 = xy / y1
|
117
116
|
z1 = yz / y1
|
118
117
|
end
|
@@ -122,7 +121,7 @@ module Mittsu
|
|
122
121
|
y1 = 0.707106781
|
123
122
|
z1 = 0.0
|
124
123
|
else
|
125
|
-
z1 = Math.sqrt(zz)
|
124
|
+
z1 = ::Math.sqrt(zz)
|
126
125
|
x1 = xz / z1
|
127
126
|
y1 = yz / z1
|
128
127
|
end
|
@@ -131,7 +130,7 @@ module Mittsu
|
|
131
130
|
return self # return 180 deg rotation
|
132
131
|
end
|
133
132
|
# as we have reached here there are no singularities so we can handle normally
|
134
|
-
s = Math.sqrt((m32 - m23) * (m32 - m23) +
|
133
|
+
s = ::Math.sqrt((m32 - m23) * (m32 - m23) +
|
135
134
|
(m13 - m31) * (m13 - m31) +
|
136
135
|
(m21 - m12) * (m21 - m12)) # used to normalize
|
137
136
|
s = 1.0 if (s.abs < 0.001)
|
@@ -140,7 +139,7 @@ module Mittsu
|
|
140
139
|
@elements[0] = (m32 - m23) / s
|
141
140
|
@elements[1] = (m13 - m31) / s
|
142
141
|
@elements[2] = (m21 - m12) / s
|
143
|
-
@elements[3] = Math.acos((m11 + m22 + m33 - 1.0) / 2.0)
|
142
|
+
@elements[3] = ::Math.acos((m11 + m22 + m33 - 1.0) / 2.0)
|
144
143
|
self
|
145
144
|
end
|
146
145
|
|
data/lib/mittsu/objects/line.rb
CHANGED
@@ -34,7 +34,7 @@ module Mittsu
|
|
34
34
|
|
35
35
|
def file
|
36
36
|
matches = Dir.glob('/usr/local/lib/libglfw*.dylib').map { |path| File.basename(path) }
|
37
|
-
return matches.find
|
37
|
+
return matches.find { |m| m == 'libglfw3.dylib' || m == 'libglfw.3.dylib' } || matches.first
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'opengl'
|
2
2
|
require 'glfw'
|
3
3
|
|
4
|
-
require 'mittsu'
|
4
|
+
require 'mittsu/utils'
|
5
5
|
require 'mittsu/renderers/glfw_lib'
|
6
6
|
glfw_lib = Mittsu::GLFWLib.discover
|
7
7
|
GLFW.load_lib(ENV["MITTSU_LIBGLFW_FILE"] || glfw_lib.file, ENV["MITTSU_LIBGLFW_PATH"] || glfw_lib.path) unless Mittsu.test?
|
@@ -35,7 +35,7 @@ module Mittsu
|
|
35
35
|
directions[offset + 1] = @_direction.y
|
36
36
|
directions[offset + 2] = @_direction.z
|
37
37
|
|
38
|
-
@cache.angles_cos[index] = Math.cos(angle)
|
38
|
+
@cache.angles_cos[index] = ::Math.cos(angle)
|
39
39
|
@cache.exponents[index] = exponent;
|
40
40
|
@cache.decays[index] = distance.zero? ? 0.0 : decay
|
41
41
|
end
|
@@ -1,10 +1,9 @@
|
|
1
1
|
require 'erb'
|
2
|
-
|
3
2
|
require 'mittsu/renderers/opengl/opengl_shader'
|
4
3
|
|
5
4
|
module Mittsu
|
6
5
|
class OpenGLProgram
|
7
|
-
attr_reader :id, :program, :uniforms
|
6
|
+
attr_reader :id, :program, :uniforms
|
8
7
|
attr_accessor :code, :used_times, :attributes, :vertex_shader, :fragment_shader
|
9
8
|
|
10
9
|
def initialize(renderer, code, material, parameters)
|