cglm 0.1.0 → 0.1.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.
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: []