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 +4 -4
- data/.travis.yml +2 -1
- data/Gemfile.lock +13 -13
- data/README.md +2 -0
- data/cglm.gemspec +3 -3
- data/ext/cglm/extconf.rb +2 -3
- data/ext/cglm/rb_cglm.h +3 -1
- data/ext/cglm/rb_cglm_mat3.c +3 -3
- data/ext/cglm/rb_cglm_mat4.c +3 -3
- data/ext/cglm/rb_cglm_vec3.c +63 -61
- data/ext/cglm/rb_cglm_vec4.c +2 -0
- data/ext/cglm/ruby_pre27.h +35 -0
- data/lib/cglm/vec3.rb +2 -2
- data/lib/cglm/vec4.rb +2 -2
- data/lib/cglm/vector_type.rb +15 -0
- data/lib/cglm/version.rb +1 -1
- metadata +85 -9
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 239ddc2c75a6a3939ded1179375071ae43924887a73f8c193e256e2f6e45879f
         | 
| 4 | 
            +
              data.tar.gz: 5b3f6be03330019caa0024adb0062e5a20d9e88e5b9141debb3028c39bb4f7b3
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 76c5578265a2e6130746a46a47aa3f2749e9d7202dea356dc2f2e7708515112986d7dee9602a272f2b0d2cd32b98aceddfb4292cd3e5aaf09a7c3afade0c6c9e
         | 
| 7 | 
            +
              data.tar.gz: 730f64f9d352059b73d38d2b1da7020eae9bc3ea8b49f91514a853d7f12eb95fd00e1b5cc89320bc5a722f143930348d6c865f935e50e987cdc4b536d5d3f7fd
         | 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,39 +1,39 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: .
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                cglm (0.1. | 
| 4 | 
            +
                cglm (0.1.1)
         | 
| 5 5 |  | 
| 6 6 | 
             
            GEM
         | 
| 7 7 | 
             
              remote: https://rubygems.org/
         | 
| 8 8 | 
             
              specs:
         | 
| 9 | 
            -
                docile (1.3. | 
| 10 | 
            -
                github-markup (3.0. | 
| 11 | 
            -
                json (2. | 
| 12 | 
            -
                minitest (5. | 
| 13 | 
            -
                rake ( | 
| 14 | 
            -
                rake-compiler (1.0 | 
| 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. | 
| 17 | 
            -
                simplecov (0. | 
| 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. | 
| 22 | 
            +
                yard (0.9.24)
         | 
| 23 23 |  | 
| 24 24 | 
             
            PLATFORMS
         | 
| 25 25 | 
             
              ruby
         | 
| 26 26 |  | 
| 27 27 | 
             
            DEPENDENCIES
         | 
| 28 | 
            -
              bundler (~> 1 | 
| 28 | 
            +
              bundler (~> 2.1)
         | 
| 29 29 | 
             
              cglm!
         | 
| 30 30 | 
             
              github-markup
         | 
| 31 31 | 
             
              minitest (~> 5.0)
         | 
| 32 | 
            -
              rake (~>  | 
| 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. | 
| 39 | 
            +
               2.1.2
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,5 +1,7 @@ | |
| 1 1 | 
             
            # CGLM
         | 
| 2 2 |  | 
| 3 | 
            +
            [](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.
         | 
    
        data/cglm.gemspec
    CHANGED
    
    | @@ -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{ | 
| 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 | 
| 39 | 
            -
              spec.add_development_dependency "rake", "~>  | 
| 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"
         | 
    
        data/ext/cglm/extconf.rb
    CHANGED
    
    | @@ -3,11 +3,10 @@ require 'fileutils' | |
| 3 3 | 
             
            require 'rubygems/package'
         | 
| 4 4 | 
             
            require 'zlib'
         | 
| 5 5 |  | 
| 6 | 
            -
             | 
| 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 | 
| 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)
         | 
    
        data/ext/cglm/rb_cglm.h
    CHANGED
    
    | @@ -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 | 
            -
               | 
| 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) {
         | 
    
        data/ext/cglm/rb_cglm_mat3.c
    CHANGED
    
    | @@ -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( | 
| 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( | 
| 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,  | 
| 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);
         | 
    
        data/ext/cglm/rb_cglm_mat4.c
    CHANGED
    
    | @@ -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( | 
| 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( | 
| 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,      | 
| 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);
         | 
    
        data/ext/cglm/rb_cglm_vec3.c
    CHANGED
    
    | @@ -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 | 
            -
               | 
| 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 | 
            -
               | 
| 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( | 
| 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 | 
            -
               | 
| 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( | 
| 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( | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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( | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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( | 
| 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( | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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  | 
| 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  | 
| 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  | 
| 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( | 
| 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( | 
| 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  | 
| 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  | 
| 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  | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 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");
         | 
    
        data/ext/cglm/rb_cglm_vec4.c
    CHANGED
    
    | @@ -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
         | 
    
        data/lib/cglm/vec3.rb
    CHANGED
    
    
    
        data/lib/cglm/vec4.rb
    CHANGED
    
    
    
        data/lib/cglm/vector_type.rb
    CHANGED
    
    | @@ -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
         | 
    
        data/lib/cglm/version.rb
    CHANGED
    
    
    
        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. | 
| 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:  | 
| 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 | 
| 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 | 
| 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: ' | 
| 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: ' | 
| 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 | 
            -
             | 
| 198 | 
            -
            rubygems_version: 2.7.8
         | 
| 273 | 
            +
            rubygems_version: 3.1.2
         | 
| 199 274 | 
             
            signing_key: 
         | 
| 200 275 | 
             
            specification_version: 4
         | 
| 201 | 
            -
            summary:  | 
| 276 | 
            +
            summary: Ruby bindings for CGLM (https://github.com/recp/cglm), a high performance
         | 
| 277 | 
            +
              math library for graphics applications.
         | 
| 202 278 | 
             
            test_files: []
         |