numerix 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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 */
|