numerix 1.0.0
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 +7 -0
- data/.gitignore +18 -0
- data/.travis.yml +5 -0
- data/.yardopts +5 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +21 -0
- data/README.md +66 -0
- data/Rakefile +18 -0
- data/TODO.txt +25 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/ext/numerix/common.h +107 -0
- data/ext/numerix/extconf.rb +3 -0
- data/ext/numerix/matrix3x2.c +638 -0
- data/ext/numerix/matrix3x2.h +52 -0
- data/ext/numerix/matrix4x4.c +1807 -0
- data/ext/numerix/matrix4x4.h +90 -0
- data/ext/numerix/matrix_base.c +307 -0
- data/ext/numerix/matrix_base.h +70 -0
- data/ext/numerix/numerix.c +33 -0
- data/ext/numerix/numerix.h +19 -0
- data/ext/numerix/plane.c +311 -0
- data/ext/numerix/plane.h +34 -0
- data/ext/numerix/quaternion.c +712 -0
- data/ext/numerix/quaternion.h +53 -0
- data/ext/numerix/structure.c +154 -0
- data/ext/numerix/structure.h +24 -0
- data/ext/numerix/vector.c +326 -0
- data/ext/numerix/vector.h +57 -0
- data/ext/numerix/vector2.c +641 -0
- data/ext/numerix/vector2.h +64 -0
- data/ext/numerix/vector3.c +805 -0
- data/ext/numerix/vector3.h +68 -0
- data/ext/numerix/vector4.c +727 -0
- data/ext/numerix/vector4.h +63 -0
- data/ext/numerix/vector_base.c +94 -0
- data/ext/numerix/vector_base.h +30 -0
- data/extra/numerix128.png +0 -0
- data/extra/numerix24.png +0 -0
- data/extra/numerix32.png +0 -0
- data/extra/numerix320.png +0 -0
- data/extra/numerix48.png +0 -0
- data/extra/numerix96.png +0 -0
- data/lib/numerix/error.rb +36 -0
- data/lib/numerix/matrix3x2.rb +420 -0
- data/lib/numerix/matrix4x4.rb +676 -0
- data/lib/numerix/matrix_base.rb +14 -0
- data/lib/numerix/plane.rb +154 -0
- data/lib/numerix/quaternion.rb +355 -0
- data/lib/numerix/structure.rb +124 -0
- data/lib/numerix/vector.rb +13 -0
- data/lib/numerix/vector2.rb +534 -0
- data/lib/numerix/vector3.rb +572 -0
- data/lib/numerix/vector4.rb +551 -0
- data/lib/numerix/vector_base.rb +14 -0
- data/lib/numerix/version.rb +6 -0
- data/lib/numerix.rb +10 -0
- data/numerix.gemspec +30 -0
- metadata +167 -0
@@ -0,0 +1,68 @@
|
|
1
|
+
#ifndef NUMERIX_VECTOR3_H
|
2
|
+
#define NUMERIX_VECTOR3_H 1
|
3
|
+
|
4
|
+
#include "common.h"
|
5
|
+
#include "vector_base.h"
|
6
|
+
|
7
|
+
void Init_vector3(VALUE outer);
|
8
|
+
static VALUE rb_vector3_alloc(VALUE klass);
|
9
|
+
VALUE rb_vector3_initialize(int argc, VALUE *argv, VALUE self);
|
10
|
+
|
11
|
+
// Instance
|
12
|
+
VALUE rb_vector3_length(VALUE self);
|
13
|
+
VALUE rb_vector3_length_squared(VALUE self);
|
14
|
+
VALUE rb_vector3_add(VALUE self, VALUE other);
|
15
|
+
VALUE rb_vector3_subtract(VALUE self, VALUE other);
|
16
|
+
VALUE rb_vector3_multiply(VALUE self, VALUE other);
|
17
|
+
VALUE rb_vector3_divide(VALUE self, VALUE other);
|
18
|
+
VALUE rb_vector3_equal(VALUE self, VALUE other);
|
19
|
+
VALUE rb_vector3_negate(VALUE self);
|
20
|
+
VALUE rb_vector3_one_p(VALUE self);
|
21
|
+
VALUE rb_vector3_zero_p(VALUE self);
|
22
|
+
VALUE rb_vector3_min_value(VALUE self);
|
23
|
+
VALUE rb_vector3_max_value(VALUE self);
|
24
|
+
VALUE rb_vector3_distance(VALUE self, VALUE other);
|
25
|
+
VALUE rb_vector3_distance_squared(VALUE self, VALUE other);
|
26
|
+
VALUE rb_vector3_normalize(VALUE self);
|
27
|
+
VALUE rb_vector3_lerp(VALUE self, VALUE other, VALUE amount);
|
28
|
+
VALUE rb_vector3_lerp_bang(VALUE self, VALUE other, VALUE amount);
|
29
|
+
VALUE rb_vector3_normalize_bang(VALUE self);
|
30
|
+
VALUE rb_vector3_transform(VALUE self, VALUE other);
|
31
|
+
VALUE rb_vector3_transform_bang(VALUE self, VALUE other);
|
32
|
+
VALUE rb_vector3_abs(VALUE self);
|
33
|
+
VALUE rb_vector3_sqrt(VALUE self);
|
34
|
+
VALUE rb_vector3_pow(VALUE self, VALUE exponent);
|
35
|
+
VALUE rb_vector3_dot(VALUE self, VALUE other);
|
36
|
+
VALUE rb_vector3_clamp(VALUE self, VALUE min, VALUE max);
|
37
|
+
VALUE rb_vector3_clamp_bang(VALUE self, VALUE min, VALUE max);
|
38
|
+
VALUE rb_vector3_cross(VALUE self, VALUE other);
|
39
|
+
VALUE rb_vector3_cross_bang(VALUE self, VALUE other);
|
40
|
+
VALUE rb_vector3_reflect(VALUE self, VALUE other);
|
41
|
+
VALUE rb_vector3_reflect_bang(VALUE self, VALUE other);
|
42
|
+
VALUE rb_vector3_angle(VALUE self, VALUE other);
|
43
|
+
VALUE rb_vector3_transform_normal(VALUE self, VALUE matrix);
|
44
|
+
VALUE rb_vector3_transform_normal_bang(VALUE self, VALUE matrix);
|
45
|
+
VALUE rb_vector3_map(VALUE self);
|
46
|
+
VALUE rb_vector3_map_bang(VALUE self);
|
47
|
+
|
48
|
+
// Conversion
|
49
|
+
VALUE rb_vector3_to_s(VALUE self);
|
50
|
+
VALUE rb_vector3_to_a(VALUE self);
|
51
|
+
VALUE rb_vector3_to_h(VALUE self);
|
52
|
+
VALUE rb_vector3_to_vec2(VALUE self);
|
53
|
+
VALUE rb_vector3_to_vec4(VALUE self);
|
54
|
+
VALUE rb_vector3_to_quaternion(VALUE self);
|
55
|
+
VALUE rb_vector3_to_plane(VALUE self);
|
56
|
+
|
57
|
+
// Class
|
58
|
+
VALUE rb_vector3_one(VALUE klass);
|
59
|
+
VALUE rb_vector3_unit_x(VALUE klass);
|
60
|
+
VALUE rb_vector3_unit_y(VALUE klass);
|
61
|
+
VALUE rb_vector3_unit_z(VALUE klass);
|
62
|
+
VALUE rb_vector3_create_norm(VALUE klass, VALUE x, VALUE y, VALUE z);
|
63
|
+
static inline VALUE rb_vector3_clamp_s(VALUE klass, VALUE vector, VALUE minimum, VALUE maximum);
|
64
|
+
static inline VALUE rb_vector3_lerp_s(VALUE klass, VALUE vec1, VALUE vec2, VALUE amount);
|
65
|
+
static inline VALUE rb_vector3_min_s(VALUE klass, VALUE vec1, VALUE vec2);
|
66
|
+
static inline VALUE rb_vector3_max_s(VALUE klass, VALUE vec1, VALUE vec2);
|
67
|
+
|
68
|
+
#endif /* NUMERIX_VECTOR3_H */
|