cglm 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: da66e89ef19c691d7411dfb2ced1dd6d840767d85b0d886f21e291c9082f454a
4
- data.tar.gz: 621578f7a74416574e6b39265780eeefe4913bb1e396e8382646cf1f1fc99cf6
3
+ metadata.gz: 239ddc2c75a6a3939ded1179375071ae43924887a73f8c193e256e2f6e45879f
4
+ data.tar.gz: 5b3f6be03330019caa0024adb0062e5a20d9e88e5b9141debb3028c39bb4f7b3
5
5
  SHA512:
6
- metadata.gz: 7a9ef4ac1b5d70e37009cc916fe0e29d63d6a41fc7cb62d60786f54996202a5449f46dfb4604b737f6ff5676ba12ec4ea734a15de0f0134eeccfe6512aacaeaf
7
- data.tar.gz: cd4dc6182bdb554f06a44d4a4448a06e56945c31b81f79a4219c8fcb4a08d7eb59a00b6f6760501736ebf1f480d55f4b9fbe8a31ab032aa8e259490fd62bd483
6
+ metadata.gz: 76c5578265a2e6130746a46a47aa3f2749e9d7202dea356dc2f2e7708515112986d7dee9602a272f2b0d2cd32b98aceddfb4292cd3e5aaf09a7c3afade0c6c9e
7
+ data.tar.gz: 730f64f9d352059b73d38d2b1da7020eae9bc3ea8b49f91514a853d7f12eb95fd00e1b5cc89320bc5a722f143930348d6c865f935e50e987cdc4b536d5d3f7fd
@@ -4,4 +4,5 @@ language: ruby
4
4
  cache: bundler
5
5
  rvm:
6
6
  - 2.6.0
7
- before_install: gem install bundler -v 1.17.1
7
+ - 2.7.0
8
+ before_install: gem install bundler -v 2.1.2
@@ -1,39 +1,39 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cglm (0.1.0)
4
+ cglm (0.1.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- docile (1.3.1)
10
- github-markup (3.0.1)
11
- json (2.1.0)
12
- minitest (5.11.3)
13
- rake (10.5.0)
14
- rake-compiler (1.0.5)
9
+ docile (1.3.2)
10
+ github-markup (3.0.4)
11
+ json (2.3.0)
12
+ minitest (5.14.0)
13
+ rake (13.0.1)
14
+ rake-compiler (1.1.0)
15
15
  rake
16
- redcarpet (3.4.0)
17
- simplecov (0.16.1)
16
+ redcarpet (3.5.0)
17
+ simplecov (0.17.1)
18
18
  docile (~> 1.1)
19
19
  json (>= 1.8, < 3)
20
20
  simplecov-html (~> 0.10.0)
21
21
  simplecov-html (0.10.2)
22
- yard (0.9.16)
22
+ yard (0.9.24)
23
23
 
24
24
  PLATFORMS
25
25
  ruby
26
26
 
27
27
  DEPENDENCIES
28
- bundler (~> 1.17)
28
+ bundler (~> 2.1)
29
29
  cglm!
30
30
  github-markup
31
31
  minitest (~> 5.0)
32
- rake (~> 10.0)
32
+ rake (~> 13.0)
33
33
  rake-compiler
34
34
  redcarpet
35
35
  simplecov
36
36
  yard (~> 0.9)
37
37
 
38
38
  BUNDLED WITH
39
- 1.17.1
39
+ 2.1.2
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # CGLM
2
2
 
3
+ [![Build Status](https://travis-ci.org/sinisterchipmunk/cglm-ruby.svg?branch=master)](https://travis-ci.org/sinisterchipmunk/cglm-ruby)
4
+
3
5
  Ruby bindings for [CGLM](https://github.com/recp/cglm), a high performance math library for OpenGL.
4
6
 
5
7
  [CGLM](https://github.com/recp/cglm) provides support for SIMD on CPUs that support it in order to deliver better performance. This requires the variables to be aligned to 8-, 16- and 32-byte boundaries, but this gem automatically handles this requirement so you don't have to think about that.
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Colin MacKenzie IV"]
10
10
  spec.email = ["sinisterchipmunk@gmail.com"]
11
11
 
12
- spec.summary = %q{CGLM bindings for Ruby}
12
+ spec.summary = %q{Ruby bindings for CGLM (https://github.com/recp/cglm), a high performance math library for graphics applications.}
13
13
  spec.homepage = "https://github.com/sinisterchipmunk/cglm-ruby"
14
14
  spec.license = "MIT"
15
15
 
@@ -35,8 +35,8 @@ Gem::Specification.new do |spec|
35
35
  spec.require_paths = ["lib"]
36
36
  spec.extensions = ["ext/cglm/extconf.rb"]
37
37
 
38
- spec.add_development_dependency "bundler", "~> 1.17"
39
- spec.add_development_dependency "rake", "~> 10.0"
38
+ spec.add_development_dependency "bundler", "~> 2.1"
39
+ spec.add_development_dependency "rake", "~> 13.0"
40
40
  spec.add_development_dependency "rake-compiler"
41
41
  spec.add_development_dependency "minitest", "~> 5.0"
42
42
  spec.add_development_dependency "yard", "~> 0.9"
@@ -3,11 +3,10 @@ require 'fileutils'
3
3
  require 'rubygems/package'
4
4
  require 'zlib'
5
5
 
6
- #CGLM_VERSION = '0.5.0'
7
- CGLM_VERSION = '89f64f079477b1af15f47e6b96db52c767acb057'
6
+ CGLM_VERSION = 'v0.6.2'
8
7
  cglm_source_url = "https://github.com/recp/cglm/archive/#{CGLM_VERSION}.tar.gz"
9
8
  cglm_tar_gz = File.expand_path("cglm-#{CGLM_VERSION}.tar.gz", __dir__)
10
- cglm_dir = File.expand_path("cglm-#{CGLM_VERSION}", __dir__)
9
+ cglm_dir = File.expand_path("cglm-0.6.2", __dir__)
11
10
 
12
11
  # fetch cglm unless it's already on the file system
13
12
  unless File.exist?(cglm_dir)
@@ -2,6 +2,7 @@
2
2
  #define RB_CGLM_H 1
3
3
 
4
4
  #include "ruby.h"
5
+ #include "ruby_pre27.h"
5
6
  #include <errno.h>
6
7
 
7
8
  // Based on unit test results I think the FLT_EPSILON that is used for fuzzy
@@ -106,7 +107,8 @@ static inline VALUE CGLM_NEW(VALUE klass, size_t size, void *addr) {
106
107
  VALUE kw = rb_hash_new();
107
108
  VALUE ptr = PTR2FIDDLE(addr, size);
108
109
  rb_hash_aset(kw, ID2SYM(rb_intern("addr")), ptr);
109
- return rb_funcall(klass, rb_intern("new"), 1, kw);
110
+ VALUE kwarg[] = { kw };
111
+ return rb_funcallv_kw(klass, rb_intern("new"), 1, kwarg, 1);
110
112
  }
111
113
 
112
114
  static inline void *__aligned_alloc(size_t align, size_t size) {
@@ -54,7 +54,7 @@ VALUE rb_cglm_mat3_transpose(int argc, VALUE *argv, VALUE self) {
54
54
  *
55
55
  * Transposes this matrix in-place and returns `self`.
56
56
  */
57
- VALUE rb_cglm_mat3_transpose_self(int argc, VALUE *argv, VALUE self) {
57
+ VALUE rb_cglm_mat3_transpose_self(VALUE self) {
58
58
  glm_mat3_transpose(VAL2MAT3(self));
59
59
  return self;
60
60
  }
@@ -117,7 +117,7 @@ VALUE rb_cglm_mat3_inverse(int argc, VALUE *argv, VALUE self) {
117
117
  * Calcaultes the inverse of `self`, modifies `self` in-place, and returns
118
118
  * `self`.
119
119
  */
120
- VALUE rb_cglm_mat3_inverse_self(int argc, VALUE *argv, VALUE self) {
120
+ VALUE rb_cglm_mat3_inverse_self(VALUE self) {
121
121
  glm_mat3_inv(VAL2MAT3(self), VAL2MAT3(self));
122
122
  return self;
123
123
  }
@@ -230,7 +230,7 @@ void Init_cglm_mat3() {
230
230
  rb_define_method(rb_cMat3, "mul_mat3", rb_cglm_mat3_mul_mat3, -1);
231
231
  rb_define_method(rb_cMat3, "mul_vec3", rb_cglm_mat3_mul_vec3, -1);
232
232
  rb_define_method(rb_cMat3, "mul_scalar", rb_cglm_mat3_mul_scalar, -1);
233
- rb_define_method(rb_cMat3, "mul_scalar!", rb_cglm_mat3_mul_scalar_self, 0);
233
+ rb_define_method(rb_cMat3, "mul_scalar!", rb_cglm_mat3_mul_scalar_self, 1);
234
234
  rb_define_method(rb_cMat3, "transpose", rb_cglm_mat3_transpose, -1);
235
235
  rb_define_method(rb_cMat3, "transpose!", rb_cglm_mat3_transpose_self, 0);
236
236
  rb_define_method(rb_cMat3, "to_quat", rb_cglm_mat3_to_quat, -1);
@@ -161,7 +161,7 @@ VALUE rb_cglm_mat4_invert(int argc, VALUE *argv, VALUE self) {
161
161
  *
162
162
  * Computes the inverse of this matrix in-place and returns `self`.
163
163
  */
164
- VALUE rb_cglm_mat4_invert_self(int argc, VALUE *argv, VALUE self) {
164
+ VALUE rb_cglm_mat4_invert_self(VALUE self) {
165
165
  glm_mat4_inv(VAL2MAT4(self), VAL2MAT4(self));
166
166
  return self;
167
167
  }
@@ -191,7 +191,7 @@ VALUE rb_cglm_mat4_invert_fast(int argc, VALUE *argv, VALUE self) {
191
191
  * e.g Newton-Raphson. This should work faster than normal, but will be less
192
192
  * precise.
193
193
  */
194
- VALUE rb_cglm_mat4_invert_fast_self(int argc, VALUE *argv, VALUE self) {
194
+ VALUE rb_cglm_mat4_invert_fast_self(VALUE self) {
195
195
  glm_mat4_inv_fast(VAL2MAT4(self), VAL2MAT4(self));
196
196
  return self;
197
197
  }
@@ -285,7 +285,7 @@ void Init_cglm_mat4() {
285
285
  rb_define_method(rb_cMat4, "mul_vec4", rb_cglm_mat4_mul_vec4, -1);
286
286
  rb_define_method(rb_cMat4, "mul_vec3", rb_cglm_mat4_mul_vec3, -1);
287
287
  rb_define_method(rb_cMat4, "mul_scalar", rb_cglm_mat4_mul_scalar, -1);
288
- rb_define_method(rb_cMat4, "mul_scalar!", rb_cglm_mat4_mul_scalar_self, 0);
288
+ rb_define_method(rb_cMat4, "mul_scalar!", rb_cglm_mat4_mul_scalar_self, 1);
289
289
  rb_define_method(rb_cMat4, "transpose", rb_cglm_mat4_transpose, -1);
290
290
  rb_define_method(rb_cMat4, "transpose!", rb_cglm_mat4_transpose_self, 0);
291
291
  rb_define_method(rb_cMat4, "determinant", rb_cglm_mat4_determinant, 0);
@@ -55,17 +55,17 @@ VALUE rb_cglm_vec3_zero(VALUE self) {
55
55
  }
56
56
 
57
57
  VALUE rb_cglm_vec3_zero_self(VALUE self) {
58
- glm_vec_zero(VAL2VEC3(self));
58
+ glm_vec3_zero(VAL2VEC3(self));
59
59
  return self;
60
60
  }
61
61
 
62
62
  VALUE rb_cglm_vec3_one_self(VALUE self) {
63
- glm_vec_one(VAL2VEC3(self));
63
+ glm_vec3_one(VAL2VEC3(self));
64
64
  return self;
65
65
  }
66
66
 
67
67
  VALUE rb_cglm_vec3_dot(VALUE self, VALUE other) {
68
- return DBL2NUM(glm_vec_dot(VAL2VEC3(self), VAL2VEC3(self)));
68
+ return DBL2NUM(glm_vec3_dot(VAL2VEC3(self), VAL2VEC3(self)));
69
69
  }
70
70
 
71
71
  /* call-seq: cross(b[, dest]) => dest | new Vec3 */
@@ -73,7 +73,7 @@ VALUE rb_cglm_vec3_cross(int argc, VALUE *argv, VALUE self) {
73
73
  VALUE b, dest;
74
74
  rb_scan_args(argc, argv, "11", &b, &dest);
75
75
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
76
- glm_vec_cross(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
76
+ glm_vec3_cross(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
77
77
  return dest;
78
78
  }
79
79
 
@@ -83,7 +83,7 @@ VALUE rb_cglm_vec3_cross(int argc, VALUE *argv, VALUE self) {
83
83
  * `norm ** 2` to avoid an unnecessary square root.
84
84
  */
85
85
  VALUE rb_cglm_vec3_norm2(VALUE self) {
86
- return DBL2NUM(glm_vec_norm2(VAL2VEC3(self)));
86
+ return DBL2NUM(glm_vec3_norm2(VAL2VEC3(self)));
87
87
  }
88
88
 
89
89
  /* call-seq: norm => Numeric
@@ -91,7 +91,7 @@ VALUE rb_cglm_vec3_norm2(VALUE self) {
91
91
  * Returns the norm (magnitude) of this vector.
92
92
  */
93
93
  VALUE rb_cglm_vec3_norm(VALUE self) {
94
- return DBL2NUM(glm_vec_norm(VAL2VEC3(self)));
94
+ return DBL2NUM(glm_vec3_norm(VAL2VEC3(self)));
95
95
  }
96
96
 
97
97
  /* call-seq: add_vec3(b[, dest]) => dest | new Vec3
@@ -103,7 +103,7 @@ VALUE rb_cglm_vec3_add_vec3(int argc, VALUE *argv, VALUE self) {
103
103
  VALUE b, dest;
104
104
  rb_scan_args(argc, argv, "11", &b, &dest);
105
105
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
106
- glm_vec_add(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
106
+ glm_vec3_add(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
107
107
  return dest;
108
108
  }
109
109
 
@@ -116,7 +116,7 @@ VALUE rb_cglm_vec3_add_scalar(int argc, VALUE *argv, VALUE self) {
116
116
  VALUE b, dest;
117
117
  rb_scan_args(argc, argv, "11", &b, &dest);
118
118
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
119
- glm_vec_adds(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(dest));
119
+ glm_vec3_adds(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(dest));
120
120
  return dest;
121
121
  }
122
122
 
@@ -129,7 +129,7 @@ VALUE rb_cglm_vec3_sub_vec3(int argc, VALUE *argv, VALUE self) {
129
129
  VALUE b, dest;
130
130
  rb_scan_args(argc, argv, "11", &b, &dest);
131
131
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
132
- glm_vec_sub(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
132
+ glm_vec3_sub(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
133
133
  return dest;
134
134
  }
135
135
 
@@ -142,7 +142,7 @@ VALUE rb_cglm_vec3_sub_scalar(int argc, VALUE *argv, VALUE self) {
142
142
  VALUE b, dest;
143
143
  rb_scan_args(argc, argv, "11", &b, &dest);
144
144
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
145
- glm_vec_subs(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(dest));
145
+ glm_vec3_subs(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(dest));
146
146
  return dest;
147
147
  }
148
148
 
@@ -151,7 +151,7 @@ VALUE rb_cglm_vec3_sub_scalar(int argc, VALUE *argv, VALUE self) {
151
151
  * Adds `self` and `b` together, modifying `self` in-place and returning it.
152
152
  */
153
153
  VALUE rb_cglm_vec3_add_vec3_self(VALUE self, VALUE b) {
154
- glm_vec_add(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(self));
154
+ glm_vec3_add(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(self));
155
155
  return self;
156
156
  }
157
157
 
@@ -161,7 +161,7 @@ VALUE rb_cglm_vec3_add_vec3_self(VALUE self, VALUE b) {
161
161
  * and returning it.
162
162
  */
163
163
  VALUE rb_cglm_vec3_add_scalar_self(VALUE self, VALUE b) {
164
- glm_vec_adds(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(self));
164
+ glm_vec3_adds(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(self));
165
165
  return self;
166
166
  }
167
167
 
@@ -170,7 +170,7 @@ VALUE rb_cglm_vec3_add_scalar_self(VALUE self, VALUE b) {
170
170
  * Subtracts `b` from `self`, modifying `self` in-place and returning it.
171
171
  */
172
172
  VALUE rb_cglm_vec3_sub_vec3_self(VALUE self, VALUE b) {
173
- glm_vec_sub(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(self));
173
+ glm_vec3_sub(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(self));
174
174
  return self;
175
175
  }
176
176
 
@@ -180,7 +180,7 @@ VALUE rb_cglm_vec3_sub_vec3_self(VALUE self, VALUE b) {
180
180
  * in-place and returning it.
181
181
  */
182
182
  VALUE rb_cglm_vec3_sub_scalar_self(VALUE self, VALUE b) {
183
- glm_vec_subs(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(self));
183
+ glm_vec3_subs(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(self));
184
184
  return self;
185
185
  }
186
186
 
@@ -194,7 +194,7 @@ VALUE rb_cglm_vec3_mul_vec3(int argc, VALUE *argv, VALUE self) {
194
194
  VALUE b, dest;
195
195
  rb_scan_args(argc, argv, "11", &b, &dest);
196
196
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
197
- glm_vec_mul(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
197
+ glm_vec3_mul(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
198
198
  return dest;
199
199
  }
200
200
 
@@ -204,7 +204,7 @@ VALUE rb_cglm_vec3_mul_vec3(int argc, VALUE *argv, VALUE self) {
204
204
  * in-place and returns `self`.
205
205
  */
206
206
  VALUE rb_cglm_vec3_mul_vec3_self(VALUE self, VALUE b) {
207
- glm_vec_mul(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(self));
207
+ glm_vec3_mul(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(self));
208
208
  return self;
209
209
  }
210
210
 
@@ -218,7 +218,7 @@ VALUE rb_cglm_vec3_mul_scalar(int argc, VALUE *argv, VALUE self) {
218
218
  VALUE b, dest;
219
219
  rb_scan_args(argc, argv, "11", &b, &dest);
220
220
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
221
- glm_vec_scale(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(dest));
221
+ glm_vec3_scale(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(dest));
222
222
  return dest;
223
223
  }
224
224
 
@@ -228,7 +228,7 @@ VALUE rb_cglm_vec3_mul_scalar(int argc, VALUE *argv, VALUE self) {
228
228
  * in-place and returns `self`.
229
229
  */
230
230
  VALUE rb_cglm_vec3_mul_scalar_self(VALUE self, VALUE b) {
231
- glm_vec_scale(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(self));
231
+ glm_vec3_scale(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(self));
232
232
  return self;
233
233
  }
234
234
 
@@ -241,7 +241,7 @@ VALUE rb_cglm_vec3_resize(int argc, VALUE *argv, VALUE self) {
241
241
  VALUE b, dest;
242
242
  rb_scan_args(argc, argv, "11", &b, &dest);
243
243
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
244
- glm_vec_scale_as(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(dest));
244
+ glm_vec3_scale_as(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(dest));
245
245
  return dest;
246
246
  }
247
247
 
@@ -250,7 +250,7 @@ VALUE rb_cglm_vec3_resize(int argc, VALUE *argv, VALUE self) {
250
250
  * Same as `normalize(self) * b`. Modifies `self` in-place and returns `self`.
251
251
  */
252
252
  VALUE rb_cglm_vec3_resize_self(VALUE self, VALUE b) {
253
- glm_vec_scale_as(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(self));
253
+ glm_vec3_scale_as(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(self));
254
254
  return self;
255
255
  }
256
256
 
@@ -264,7 +264,7 @@ VALUE rb_cglm_vec3_div_vec3(int argc, VALUE *argv, VALUE self) {
264
264
  VALUE b, dest;
265
265
  rb_scan_args(argc, argv, "11", &b, &dest);
266
266
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
267
- glm_vec_div(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
267
+ glm_vec3_div(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
268
268
  return dest;
269
269
  }
270
270
 
@@ -274,7 +274,7 @@ VALUE rb_cglm_vec3_div_vec3(int argc, VALUE *argv, VALUE self) {
274
274
  * in-place and returns `self`.
275
275
  */
276
276
  VALUE rb_cglm_vec3_div_vec3_self(VALUE self, VALUE b) {
277
- glm_vec_div(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(self));
277
+ glm_vec3_div(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(self));
278
278
  return self;
279
279
  }
280
280
 
@@ -288,7 +288,7 @@ VALUE rb_cglm_vec3_div_scalar(int argc, VALUE *argv, VALUE self) {
288
288
  VALUE b, dest;
289
289
  rb_scan_args(argc, argv, "11", &b, &dest);
290
290
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
291
- glm_vec_divs(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(dest));
291
+ glm_vec3_divs(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(dest));
292
292
  return dest;
293
293
  }
294
294
 
@@ -298,7 +298,7 @@ VALUE rb_cglm_vec3_div_scalar(int argc, VALUE *argv, VALUE self) {
298
298
  * in-place and returns `self`.
299
299
  */
300
300
  VALUE rb_cglm_vec3_div_scalar_self(VALUE self, VALUE b) {
301
- glm_vec_divs(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(self));
301
+ glm_vec3_divs(VAL2VEC3(self), NUM2FLT(b), VAL2VEC3(self));
302
302
  return self;
303
303
  }
304
304
 
@@ -310,7 +310,7 @@ VALUE rb_cglm_vec3_div_scalar_self(VALUE self, VALUE b) {
310
310
  * * `dest` is not optional for this method, as it is for most others.
311
311
  */
312
312
  VALUE rb_cglm_vec3_addadd_vec3(VALUE self, VALUE other, VALUE dest) {
313
- glm_vec_addadd(VAL2VEC3(self), VAL2VEC3(other), VAL2VEC3(dest));
313
+ glm_vec3_addadd(VAL2VEC3(self), VAL2VEC3(other), VAL2VEC3(dest));
314
314
  return dest;
315
315
  }
316
316
 
@@ -322,7 +322,7 @@ VALUE rb_cglm_vec3_addadd_vec3(VALUE self, VALUE other, VALUE dest) {
322
322
  * * `dest` is not optional for this method, as it is for most others.
323
323
  */
324
324
  VALUE rb_cglm_vec3_subadd_vec3(VALUE self, VALUE other, VALUE dest) {
325
- glm_vec_subadd(VAL2VEC3(self), VAL2VEC3(other), VAL2VEC3(dest));
325
+ glm_vec3_subadd(VAL2VEC3(self), VAL2VEC3(other), VAL2VEC3(dest));
326
326
  return dest;
327
327
  }
328
328
 
@@ -334,7 +334,7 @@ VALUE rb_cglm_vec3_subadd_vec3(VALUE self, VALUE other, VALUE dest) {
334
334
  * * `dest` is not optional for this method, as it is for most others.
335
335
  */
336
336
  VALUE rb_cglm_vec3_muladd_vec3(VALUE self, VALUE other, VALUE dest) {
337
- glm_vec_muladd(VAL2VEC3(self), VAL2VEC3(other), VAL2VEC3(dest));
337
+ glm_vec3_muladd(VAL2VEC3(self), VAL2VEC3(other), VAL2VEC3(dest));
338
338
  return dest;
339
339
  }
340
340
 
@@ -348,7 +348,7 @@ VALUE rb_cglm_vec3_muladd_vec3(VALUE self, VALUE other, VALUE dest) {
348
348
  * * `dest` is not optional for this method, as it is for most others.
349
349
  */
350
350
  VALUE rb_cglm_vec3_muladd_scalar(VALUE self, VALUE other, VALUE dest) {
351
- glm_vec_muladds(VAL2VEC3(self), NUM2FLT(other), VAL2VEC3(dest));
351
+ glm_vec3_muladds(VAL2VEC3(self), NUM2FLT(other), VAL2VEC3(dest));
352
352
  return dest;
353
353
  }
354
354
 
@@ -361,7 +361,7 @@ VALUE rb_cglm_vec3_flip_signs(int argc, VALUE *argv, VALUE self) {
361
361
  VALUE dest;
362
362
  rb_scan_args(argc, argv, "01", &dest);
363
363
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
364
- glm_vec_flipsign_to(VAL2VEC3(self), VAL2VEC3(dest));
364
+ glm_vec3_flipsign_to(VAL2VEC3(self), VAL2VEC3(dest));
365
365
  return dest;
366
366
  }
367
367
 
@@ -370,7 +370,7 @@ VALUE rb_cglm_vec3_flip_signs(int argc, VALUE *argv, VALUE self) {
370
370
  * Flips the sign of each component, modifying `self` in-place. Returns `self`.
371
371
  */
372
372
  VALUE rb_cglm_vec3_flip_signs_self(VALUE self) {
373
- glm_vec_flipsign(VAL2VEC3(self));
373
+ glm_vec3_flipsign(VAL2VEC3(self));
374
374
  return self;
375
375
  }
376
376
 
@@ -383,7 +383,7 @@ VALUE rb_cglm_vec3_normalize(int argc, VALUE *argv, VALUE self) {
383
383
  VALUE dest;
384
384
  rb_scan_args(argc, argv, "01", &dest);
385
385
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
386
- glm_vec_normalize_to(VAL2VEC3(self), VAL2VEC3(dest));
386
+ glm_vec3_normalize_to(VAL2VEC3(self), VAL2VEC3(dest));
387
387
  return dest;
388
388
  }
389
389
 
@@ -392,7 +392,7 @@ VALUE rb_cglm_vec3_normalize(int argc, VALUE *argv, VALUE self) {
392
392
  * Normalizes `self` in-place, and returns `self`.
393
393
  */
394
394
  VALUE rb_cglm_vec3_normalize_self(VALUE self) {
395
- glm_vec_normalize(VAL2VEC3(self));
395
+ glm_vec3_normalize(VAL2VEC3(self));
396
396
  return self;
397
397
  }
398
398
 
@@ -401,7 +401,7 @@ VALUE rb_cglm_vec3_normalize_self(VALUE self) {
401
401
  * Returns the angle between `self` and `other`, in radians.
402
402
  */
403
403
  VALUE rb_cglm_vec3_angle(VALUE self, VALUE other) {
404
- return DBL2NUM(glm_vec_angle(VAL2VEC3(self), VAL2VEC3(other)));
404
+ return DBL2NUM(glm_vec3_angle(VAL2VEC3(self), VAL2VEC3(other)));
405
405
  }
406
406
 
407
407
  /* call-seq: rotate_axis_angle(axis, angle[, dest]) => dest | new Vec3
@@ -415,7 +415,7 @@ VALUE rb_cglm_vec3_rotate_axis_angle(int argc, VALUE *argv, VALUE self) {
415
415
  rb_scan_args(argc, argv, "21", &axis, &angle, &dest);
416
416
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
417
417
  memcpy(&VAL2VEC3(dest), &VAL2VEC3(self), sizeof(vec3));
418
- glm_vec_rotate(VAL2VEC3(dest), NUM2FLT(angle), VAL2VEC3(axis));
418
+ glm_vec3_rotate(VAL2VEC3(dest), NUM2FLT(angle), VAL2VEC3(axis));
419
419
  return dest;
420
420
  }
421
421
 
@@ -426,7 +426,7 @@ VALUE rb_cglm_vec3_rotate_axis_angle(int argc, VALUE *argv, VALUE self) {
426
426
  * returns `self`.
427
427
  */
428
428
  VALUE rb_cglm_vec3_rotate_axis_angle_self(VALUE self, VALUE axis, VALUE angle) {
429
- glm_vec_rotate(VAL2VEC3(self), NUM2FLT(angle), VAL2VEC3(axis));
429
+ glm_vec3_rotate(VAL2VEC3(self), NUM2FLT(angle), VAL2VEC3(axis));
430
430
  return self;
431
431
  }
432
432
 
@@ -447,7 +447,7 @@ VALUE rb_cglm_vec3_rotate_mat4(int argc, VALUE *argv, VALUE self) {
447
447
  VALUE matrix, dest;
448
448
  rb_scan_args(argc, argv, "11", &matrix, &dest);
449
449
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
450
- glm_vec_rotate_m4(VAL2MAT4(matrix), VAL2VEC3(self), VAL2VEC3(dest));
450
+ glm_vec3_rotate_m4(VAL2MAT4(matrix), VAL2VEC3(self), VAL2VEC3(dest));
451
451
  return dest;
452
452
  }
453
453
 
@@ -464,7 +464,7 @@ VALUE rb_cglm_vec3_rotate_mat4(int argc, VALUE *argv, VALUE self) {
464
464
  * 0 0 0 w
465
465
  */
466
466
  VALUE rb_cglm_vec3_rotate_mat4_self(VALUE self, VALUE matrix) {
467
- glm_vec_rotate_m4(VAL2MAT4(matrix), VAL2VEC3(self), VAL2VEC3(self));
467
+ glm_vec3_rotate_m4(VAL2MAT4(matrix), VAL2VEC3(self), VAL2VEC3(self));
468
468
  return self;
469
469
  }
470
470
 
@@ -478,7 +478,7 @@ VALUE rb_cglm_vec3_rotate_mat3(int argc, VALUE *argv, VALUE self) {
478
478
  VALUE matrix, dest;
479
479
  rb_scan_args(argc, argv, "11", &matrix, &dest);
480
480
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
481
- glm_vec_rotate_m3(VAL2MAT3(matrix), VAL2VEC3(self), VAL2VEC3(dest));
481
+ glm_vec3_rotate_m3(VAL2MAT3(matrix), VAL2VEC3(self), VAL2VEC3(dest));
482
482
  return dest;
483
483
  }
484
484
 
@@ -488,7 +488,7 @@ VALUE rb_cglm_vec3_rotate_mat3(int argc, VALUE *argv, VALUE self) {
488
488
  * `self` and returns `self`.
489
489
  */
490
490
  VALUE rb_cglm_vec3_rotate_mat3_self(VALUE self, VALUE matrix) {
491
- glm_vec_rotate_m3(VAL2MAT3(matrix), VAL2VEC3(self), VAL2VEC3(self));
491
+ glm_vec3_rotate_m3(VAL2MAT3(matrix), VAL2VEC3(self), VAL2VEC3(self));
492
492
  return self;
493
493
  }
494
494
 
@@ -501,7 +501,7 @@ VALUE rb_cglm_vec3_project(int argc, VALUE *argv, VALUE self) {
501
501
  VALUE b, dest;
502
502
  rb_scan_args(argc, argv, "11", &b, &dest);
503
503
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
504
- glm_vec_proj(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
504
+ glm_vec3_proj(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
505
505
  return dest;
506
506
  }
507
507
 
@@ -511,7 +511,7 @@ VALUE rb_cglm_vec3_project(int argc, VALUE *argv, VALUE self) {
511
511
  * returns `self`.
512
512
  */
513
513
  VALUE rb_cglm_vec3_project_self(VALUE self, VALUE b) {
514
- glm_vec_proj(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(self));
514
+ glm_vec3_proj(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(self));
515
515
  return self;
516
516
  }
517
517
 
@@ -525,7 +525,7 @@ VALUE rb_cglm_vec3_center(int argc, VALUE *argv, VALUE self) {
525
525
  VALUE b, dest;
526
526
  rb_scan_args(argc, argv, "11", &b, &dest);
527
527
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
528
- glm_vec_center(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
528
+ glm_vec3_center(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
529
529
  return dest;
530
530
  }
531
531
 
@@ -534,7 +534,7 @@ VALUE rb_cglm_vec3_center(int argc, VALUE *argv, VALUE self) {
534
534
  * Returns the squared distance between this vector and the specified one.
535
535
  */
536
536
  VALUE rb_cglm_vec3_distance2(VALUE self, VALUE b) {
537
- return DBL2NUM(glm_vec_distance2(VAL2VEC3(self), VAL2VEC3(b)));
537
+ return DBL2NUM(glm_vec3_distance2(VAL2VEC3(self), VAL2VEC3(b)));
538
538
  }
539
539
 
540
540
  /* call-seq: distance(vec) => Numeric
@@ -542,7 +542,7 @@ VALUE rb_cglm_vec3_distance2(VALUE self, VALUE b) {
542
542
  * Returns the distance between this vector and the specified one.
543
543
  */
544
544
  VALUE rb_cglm_vec3_distance(VALUE self, VALUE b) {
545
- return DBL2NUM(glm_vec_distance(VAL2VEC3(self), VAL2VEC3(b)));
545
+ return DBL2NUM(glm_vec3_distance(VAL2VEC3(self), VAL2VEC3(b)));
546
546
  }
547
547
 
548
548
  /* call-seq: max(vec[, dest]) => dest | new Vec3
@@ -555,7 +555,7 @@ VALUE rb_cglm_vec3_max(int argc, VALUE *argv, VALUE self) {
555
555
  VALUE b, dest;
556
556
  rb_scan_args(argc, argv, "11", &b, &dest);
557
557
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
558
- glm_vec_maxv(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
558
+ glm_vec3_maxv(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
559
559
  return dest;
560
560
  }
561
561
 
@@ -569,7 +569,7 @@ VALUE rb_cglm_vec3_min(int argc, VALUE *argv, VALUE self) {
569
569
  VALUE b, dest;
570
570
  rb_scan_args(argc, argv, "11", &b, &dest);
571
571
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
572
- glm_vec_minv(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
572
+ glm_vec3_minv(VAL2VEC3(self), VAL2VEC3(b), VAL2VEC3(dest));
573
573
  return dest;
574
574
  }
575
575
 
@@ -583,7 +583,7 @@ VALUE rb_cglm_vec3_ortho(int argc, VALUE *argv, VALUE self) {
583
583
  VALUE dest;
584
584
  rb_scan_args(argc, argv, "01", &dest);
585
585
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
586
- glm_vec_ortho(VAL2VEC3(self), VAL2VEC3(dest));
586
+ glm_vec3_ortho(VAL2VEC3(self), VAL2VEC3(dest));
587
587
  return dest;
588
588
  }
589
589
 
@@ -598,7 +598,7 @@ VALUE rb_cglm_vec3_clamp_scalar(int argc, VALUE *argv, VALUE self) {
598
598
  rb_scan_args(argc, argv, "21", &a, &b, &dest);
599
599
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
600
600
  memcpy(&VAL2VEC3(dest), &VAL2VEC3(self), sizeof(vec3));
601
- glm_vec_clamp(VAL2VEC3(dest), NUM2FLT(a), NUM2FLT(b));
601
+ glm_vec3_clamp(VAL2VEC3(dest), NUM2FLT(a), NUM2FLT(b));
602
602
  return dest;
603
603
  }
604
604
 
@@ -608,7 +608,7 @@ VALUE rb_cglm_vec3_clamp_scalar(int argc, VALUE *argv, VALUE self) {
608
608
  * Places the result into `self` and returns `self`.
609
609
  */
610
610
  VALUE rb_cglm_vec3_clamp_scalar_self(VALUE self, VALUE a, VALUE b) {
611
- glm_vec_clamp(VAL2VEC3(self), NUM2FLT(a), NUM2FLT(b));
611
+ glm_vec3_clamp(VAL2VEC3(self), NUM2FLT(a), NUM2FLT(b));
612
612
  return self;
613
613
  }
614
614
 
@@ -619,7 +619,7 @@ VALUE rb_cglm_vec3_clamp_scalar_self(VALUE self, VALUE a, VALUE b) {
619
619
  * `self` in-place and returns `self`.
620
620
  */
621
621
  VALUE rb_cglm_vec3_lerp_self(VALUE self, VALUE from, VALUE to, VALUE amount) {
622
- glm_vec_lerp(VAL2VEC3(from), VAL2VEC3(to), NUM2FLT(amount), VAL2VEC3(self));
622
+ glm_vec3_lerp(VAL2VEC3(from), VAL2VEC3(to), NUM2FLT(amount), VAL2VEC3(self));
623
623
  return self;
624
624
  }
625
625
 
@@ -629,7 +629,7 @@ VALUE rb_cglm_vec3_lerp_self(VALUE self, VALUE from, VALUE to, VALUE amount) {
629
629
  * `self`.
630
630
  */
631
631
  VALUE rb_cglm_vec3_broadcast_self(VALUE self, VALUE val) {
632
- glm_vec_broadcast(NUM2FLT(val), VAL2VEC3(self));
632
+ glm_vec3_broadcast(NUM2FLT(val), VAL2VEC3(self));
633
633
  return self;
634
634
  }
635
635
 
@@ -639,7 +639,7 @@ VALUE rb_cglm_vec3_broadcast_self(VALUE self, VALUE val) {
639
639
  * this Vec3, false otherwise.
640
640
  */
641
641
  VALUE rb_cglm_vec3_equals_scalar(VALUE self, VALUE val) {
642
- return glm_vec_eq(VAL2VEC3(self), NUM2FLT(val)) ? Qtrue : Qfalse;
642
+ return glm_vec3_eq(VAL2VEC3(self), NUM2FLT(val)) ? Qtrue : Qfalse;
643
643
  }
644
644
 
645
645
  /* call-seq: equalish_scalar(val[, epsilon]) => true|false
@@ -665,7 +665,7 @@ VALUE rb_cglm_vec3_equalish_scalar(int argc, VALUE *argv, VALUE self) {
665
665
  * Returns true if each component in this Vec3 has the same exact value.
666
666
  */
667
667
  VALUE rb_cglm_vec3_equals_all(VALUE self) {
668
- return glm_vec_eq_all(VAL2VEC3(self)) ? Qtrue : Qfalse;
668
+ return glm_vec3_eq_all(VAL2VEC3(self)) ? Qtrue : Qfalse;
669
669
  }
670
670
 
671
671
  /* call-seq: equals_vec3(other) => true|false
@@ -673,7 +673,7 @@ VALUE rb_cglm_vec3_equals_all(VALUE self) {
673
673
  * Returns true if this vector exactly matches the given one.
674
674
  */
675
675
  VALUE rb_cglm_vec3_equals_vec3(VALUE self, VALUE other) {
676
- return glm_vec_eqv(VAL2VEC3(self), VAL2VEC3(other)) ? Qtrue : Qfalse;
676
+ return glm_vec3_eqv(VAL2VEC3(self), VAL2VEC3(other)) ? Qtrue : Qfalse;
677
677
  }
678
678
 
679
679
  /* call-seq: equalish_vec3(other[, epsilon]) => true|false
@@ -698,7 +698,7 @@ VALUE rb_cglm_vec3_equalish_vec3(int argc, VALUE *argv, VALUE self) {
698
698
  * Returns the value of the highest component in this Vec3.
699
699
  */
700
700
  VALUE rb_cglm_vec3_highest(VALUE self) {
701
- return DBL2NUM(glm_vec_max(VAL2VEC3(self)));
701
+ return DBL2NUM(glm_vec3_max(VAL2VEC3(self)));
702
702
  }
703
703
 
704
704
  /* call-seq: lowest => Numeric
@@ -706,7 +706,7 @@ VALUE rb_cglm_vec3_highest(VALUE self) {
706
706
  * Returns the value of the lowest component in this Vec3.
707
707
  */
708
708
  VALUE rb_cglm_vec3_lowest(VALUE self) {
709
- return DBL2NUM(glm_vec_min(VAL2VEC3(self)));
709
+ return DBL2NUM(glm_vec3_min(VAL2VEC3(self)));
710
710
  }
711
711
 
712
712
  /* call-seq: nan? => true|false
@@ -715,7 +715,7 @@ VALUE rb_cglm_vec3_lowest(VALUE self) {
715
715
  * You should only use this in DEBUG mode or very critical asserts.
716
716
  */
717
717
  VALUE rb_cglm_vec3_is_nan(VALUE self) {
718
- return glm_vec_isnan(VAL2VEC3(self)) ? Qtrue : Qfalse;
718
+ return glm_vec3_isnan(VAL2VEC3(self)) ? Qtrue : Qfalse;
719
719
  }
720
720
 
721
721
  /* call-seq: inf? => true|false
@@ -724,7 +724,7 @@ VALUE rb_cglm_vec3_is_nan(VALUE self) {
724
724
  * You should only use this in DEBUG mode or very critical asserts.
725
725
  */
726
726
  VALUE rb_cglm_vec3_is_inf(VALUE self) {
727
- return glm_vec_isinf(VAL2VEC3(self)) ? Qtrue : Qfalse;
727
+ return glm_vec3_isinf(VAL2VEC3(self)) ? Qtrue : Qfalse;
728
728
  }
729
729
 
730
730
  /* call-seq: valid? => true|false
@@ -733,7 +733,7 @@ VALUE rb_cglm_vec3_is_inf(VALUE self) {
733
733
  * otherwise. You should only use this in DEBUG mode or very critical asserts.
734
734
  */
735
735
  VALUE rb_cglm_vec3_is_valid(VALUE self) {
736
- return glm_vec_isvalid(VAL2VEC3(self)) ? Qtrue : Qfalse;
736
+ return glm_vec3_isvalid(VAL2VEC3(self)) ? Qtrue : Qfalse;
737
737
  }
738
738
 
739
739
  /* call-seq: signs([dest]) => dest | new Vec3
@@ -746,7 +746,7 @@ VALUE rb_cglm_vec3_signs(int argc, VALUE *argv, VALUE self) {
746
746
  VALUE dest;
747
747
  rb_scan_args(argc, argv, "01", &dest);
748
748
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
749
- glm_vec_sign(VAL2VEC3(self), VAL2VEC3(dest));
749
+ glm_vec3_sign(VAL2VEC3(self), VAL2VEC3(dest));
750
750
  return dest;
751
751
  }
752
752
 
@@ -759,7 +759,7 @@ VALUE rb_cglm_vec3_sqrt(int argc, VALUE *argv, VALUE self) {
759
759
  VALUE dest;
760
760
  rb_scan_args(argc, argv, "01", &dest);
761
761
  if (NIL_P(dest)) dest = VEC3_NEW(ALLOC_VEC3);
762
- glm_vec_sqrt(VAL2VEC3(self), VAL2VEC3(dest));
762
+ glm_vec3_sqrt(VAL2VEC3(self), VAL2VEC3(dest));
763
763
  return dest;
764
764
  }
765
765
 
@@ -865,6 +865,8 @@ void Init_cglm_vec3() {
865
865
 
866
866
  rb_define_alias(rb_cVec3, "invert", "flip_signs");
867
867
  rb_define_alias(rb_cVec3, "invert!", "flip_signs!");
868
+ rb_define_alias(rb_cVec3, "negate", "flip_signs");
869
+ rb_define_alias(rb_cVec3, "negate!", "flip_signs!");
868
870
  rb_define_alias(rb_cVec3, "magnitude", "norm");
869
871
  rb_define_alias(rb_cVec3, "mag", "norm");
870
872
  rb_define_alias(rb_cVec3, "magnitude2", "norm2");
@@ -711,6 +711,8 @@ void Init_cglm_vec4() {
711
711
 
712
712
  rb_define_alias(rb_cVec4, "invert", "flip_signs");
713
713
  rb_define_alias(rb_cVec4, "invert!", "flip_signs!");
714
+ rb_define_alias(rb_cVec4, "negate", "flip_signs");
715
+ rb_define_alias(rb_cVec4, "negate!", "flip_signs!");
714
716
  rb_define_alias(rb_cVec4, "magnitude", "norm");
715
717
  rb_define_alias(rb_cVec4, "mag", "norm");
716
718
 
@@ -0,0 +1,35 @@
1
+ #ifndef RUBY_PRE27_H
2
+ #define RUBY_PRE27_H
3
+
4
+ #ifndef RB_PASS_KEYWORDS
5
+ /* Only define macros on Ruby <2.7 */
6
+ #define rb_funcallv_kw(o, m, c, v, kw) rb_funcallv(o, m, c, v)
7
+ #define rb_funcallv_public_kw(o, m, c, v, kw) rb_funcallv_public(o, m, c, v)
8
+ #define rb_funcall_passing_block_kw(o, m, c, v, kw) rb_funcall_passing_block(o, m, c, v)
9
+ #define rb_funcall_with_block_kw(o, m, c, v, b, kw) rb_funcall_with_block(o, m, c, v, b)
10
+ #define rb_scan_args_kw(kw, c, v, s, ...) rb_scan_args(c, v, s, __VA_ARGS__)
11
+ #define rb_call_super_kw(c, v, kw) rb_call_super(c, v)
12
+ #define rb_yield_values_kw(c, v, kw) rb_yield_values2(c, v)
13
+ #define rb_yield_splat_kw(a, kw) rb_yield_splat(a)
14
+ #define rb_block_call_kw(o, m, c, v, f, p, kw) rb_block_call(o, m, c, v, f, p)
15
+ #define rb_fiber_resume_kw(o, c, v, kw) rb_fiber_resume(o, c, v)
16
+ #define rb_fiber_yield_kw(c, v, kw) rb_fiber_yield(c, v)
17
+ #define rb_enumeratorize_with_size_kw(o, m, c, v, f, kw) rb_enumeratorize_with_size(o, m, c, v, f)
18
+ #define SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat) \
19
+ rb_enumeratorize_with_size((obj), ID2SYM(rb_frame_this_func()), \
20
+ (argc), (argv), (size_fn))
21
+ #define RETURN_SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat) do { \
22
+ if (!rb_block_given_p()) \
23
+ return SIZED_ENUMERATOR(obj, argc, argv, size_fn); \
24
+ } while (0)
25
+ #define RETURN_ENUMERATOR_KW(obj, argc, argv, kw_splat) RETURN_SIZED_ENUMERATOR(obj, argc, argv, 0)
26
+ #define rb_check_funcall_kw(o, m, c, v, kw) rb_check_funcall(o, m, c, v)
27
+ #define rb_obj_call_init_kw(o, c, v, kw) rb_obj_call_init(o, c, v)
28
+ #define rb_class_new_instance_kw(c, v, k, kw) rb_class_new_instance(c, v, k)
29
+ #define rb_proc_call_kw(p, a, kw) rb_proc_call(p, a)
30
+ #define rb_proc_call_with_block_kw(p, c, v, b, kw) rb_proc_call_with_block(p, c, v, b)
31
+ #define rb_method_call_kw(c, v, m, kw) rb_method_call(c, v, m)
32
+ #define rb_method_call_with_block_kw(c, v, m, b, kw) rb_method_call_with_block(c, v, m, b)
33
+ #endif
34
+
35
+ #endif // RUBY_PRE27_H
@@ -1,7 +1,7 @@
1
1
  module CGLM
2
2
  class Vec3 < VectorType
3
- def to_a
4
- [self[0], self[1], self[2]]
3
+ def size
4
+ 3
5
5
  end
6
6
 
7
7
  def inspect
@@ -1,7 +1,7 @@
1
1
  module CGLM
2
2
  class Vec4 < VectorType
3
- def to_a
4
- [self[0], self[1], self[2], self[3]]
3
+ def size
4
+ 4
5
5
  end
6
6
 
7
7
  def inspect
@@ -13,5 +13,20 @@ module CGLM
13
13
  raise ArgumentError, 'initial values must be an Array, Quat, Vec3 or Vec4'
14
14
  end
15
15
  end
16
+
17
+ def to_enum
18
+ size = self.size
19
+ Enumerator.new(size) do |y|
20
+ size.times { |i| y << self[i] }
21
+ end
22
+ end
23
+
24
+ def each(&block)
25
+ to_enum.each(&block)
26
+ end
27
+
28
+ def to_a
29
+ to_enum.to_a
30
+ end
16
31
  end
17
32
  end
@@ -1,3 +1,3 @@
1
1
  module CGLM
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cglm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Colin MacKenzie IV
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-11-18 00:00:00.000000000 Z
11
+ date: 2020-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.17'
19
+ version: '2.1'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.17'
26
+ version: '2.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake-compiler
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -141,6 +141,81 @@ files:
141
141
  - bin/console
142
142
  - bin/setup
143
143
  - cglm.gemspec
144
+ - ext/cglm/cglm-0.6.2/include/cglm/affine-mat.h
145
+ - ext/cglm/cglm-0.6.2/include/cglm/affine.h
146
+ - ext/cglm/cglm-0.6.2/include/cglm/applesimd.h
147
+ - ext/cglm/cglm-0.6.2/include/cglm/bezier.h
148
+ - ext/cglm/cglm-0.6.2/include/cglm/box.h
149
+ - ext/cglm/cglm-0.6.2/include/cglm/call.h
150
+ - ext/cglm/cglm-0.6.2/include/cglm/call/affine.h
151
+ - ext/cglm/cglm-0.6.2/include/cglm/call/bezier.h
152
+ - ext/cglm/cglm-0.6.2/include/cglm/call/box.h
153
+ - ext/cglm/cglm-0.6.2/include/cglm/call/cam.h
154
+ - ext/cglm/cglm-0.6.2/include/cglm/call/curve.h
155
+ - ext/cglm/cglm-0.6.2/include/cglm/call/ease.h
156
+ - ext/cglm/cglm-0.6.2/include/cglm/call/euler.h
157
+ - ext/cglm/cglm-0.6.2/include/cglm/call/frustum.h
158
+ - ext/cglm/cglm-0.6.2/include/cglm/call/io.h
159
+ - ext/cglm/cglm-0.6.2/include/cglm/call/mat3.h
160
+ - ext/cglm/cglm-0.6.2/include/cglm/call/mat4.h
161
+ - ext/cglm/cglm-0.6.2/include/cglm/call/plane.h
162
+ - ext/cglm/cglm-0.6.2/include/cglm/call/project.h
163
+ - ext/cglm/cglm-0.6.2/include/cglm/call/quat.h
164
+ - ext/cglm/cglm-0.6.2/include/cglm/call/sphere.h
165
+ - ext/cglm/cglm-0.6.2/include/cglm/call/vec3.h
166
+ - ext/cglm/cglm-0.6.2/include/cglm/call/vec4.h
167
+ - ext/cglm/cglm-0.6.2/include/cglm/cam.h
168
+ - ext/cglm/cglm-0.6.2/include/cglm/cglm.h
169
+ - ext/cglm/cglm-0.6.2/include/cglm/color.h
170
+ - ext/cglm/cglm-0.6.2/include/cglm/common.h
171
+ - ext/cglm/cglm-0.6.2/include/cglm/curve.h
172
+ - ext/cglm/cglm-0.6.2/include/cglm/ease.h
173
+ - ext/cglm/cglm-0.6.2/include/cglm/euler.h
174
+ - ext/cglm/cglm-0.6.2/include/cglm/frustum.h
175
+ - ext/cglm/cglm-0.6.2/include/cglm/io.h
176
+ - ext/cglm/cglm-0.6.2/include/cglm/mat3.h
177
+ - ext/cglm/cglm-0.6.2/include/cglm/mat4.h
178
+ - ext/cglm/cglm-0.6.2/include/cglm/plane.h
179
+ - ext/cglm/cglm-0.6.2/include/cglm/project.h
180
+ - ext/cglm/cglm-0.6.2/include/cglm/quat.h
181
+ - ext/cglm/cglm-0.6.2/include/cglm/simd/arm.h
182
+ - ext/cglm/cglm-0.6.2/include/cglm/simd/avx/affine.h
183
+ - ext/cglm/cglm-0.6.2/include/cglm/simd/avx/mat4.h
184
+ - ext/cglm/cglm-0.6.2/include/cglm/simd/intrin.h
185
+ - ext/cglm/cglm-0.6.2/include/cglm/simd/neon/mat4.h
186
+ - ext/cglm/cglm-0.6.2/include/cglm/simd/sse2/affine.h
187
+ - ext/cglm/cglm-0.6.2/include/cglm/simd/sse2/mat3.h
188
+ - ext/cglm/cglm-0.6.2/include/cglm/simd/sse2/mat4.h
189
+ - ext/cglm/cglm-0.6.2/include/cglm/simd/sse2/quat.h
190
+ - ext/cglm/cglm-0.6.2/include/cglm/simd/x86.h
191
+ - ext/cglm/cglm-0.6.2/include/cglm/sphere.h
192
+ - ext/cglm/cglm-0.6.2/include/cglm/struct.h
193
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/affine.h
194
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/box.h
195
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/cam.h
196
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/color.h
197
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/curve.h
198
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/euler.h
199
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/frustum.h
200
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/io.h
201
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/mat3.h
202
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/mat4.h
203
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/plane.h
204
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/project.h
205
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/quat.h
206
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/sphere.h
207
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/vec3-ext.h
208
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/vec3.h
209
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/vec4-ext.h
210
+ - ext/cglm/cglm-0.6.2/include/cglm/struct/vec4.h
211
+ - ext/cglm/cglm-0.6.2/include/cglm/types-struct.h
212
+ - ext/cglm/cglm-0.6.2/include/cglm/types.h
213
+ - ext/cglm/cglm-0.6.2/include/cglm/util.h
214
+ - ext/cglm/cglm-0.6.2/include/cglm/vec3-ext.h
215
+ - ext/cglm/cglm-0.6.2/include/cglm/vec3.h
216
+ - ext/cglm/cglm-0.6.2/include/cglm/vec4-ext.h
217
+ - ext/cglm/cglm-0.6.2/include/cglm/vec4.h
218
+ - ext/cglm/cglm-0.6.2/include/cglm/version.h
144
219
  - ext/cglm/extconf.rb
145
220
  - ext/cglm/rb_cglm.c
146
221
  - ext/cglm/rb_cglm.h
@@ -159,6 +234,7 @@ files:
159
234
  - ext/cglm/rb_cglm_sphere.c
160
235
  - ext/cglm/rb_cglm_vec3.c
161
236
  - ext/cglm/rb_cglm_vec4.c
237
+ - ext/cglm/ruby_pre27.h
162
238
  - lib/cglm.rb
163
239
  - lib/cglm/aabb.rb
164
240
  - lib/cglm/base.rb
@@ -194,9 +270,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
194
270
  - !ruby/object:Gem::Version
195
271
  version: '0'
196
272
  requirements: []
197
- rubyforge_project:
198
- rubygems_version: 2.7.8
273
+ rubygems_version: 3.1.2
199
274
  signing_key:
200
275
  specification_version: 4
201
- summary: CGLM bindings for Ruby
276
+ summary: Ruby bindings for CGLM (https://github.com/recp/cglm), a high performance
277
+ math library for graphics applications.
202
278
  test_files: []