rmath3d 1.2.1 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog +4 -0
- data/LICENSE.txt +1 -1
- data/README.md +1 -1
- data/ext/rmath3d/RMath3D.h +3 -3
- data/ext/rmath3d/RMtx2.c +1 -1
- data/ext/rmath3d/RMtx2.h +1 -1
- data/ext/rmath3d/RMtx3.c +1 -1
- data/ext/rmath3d/RMtx3.h +1 -1
- data/ext/rmath3d/RMtx4.c +1 -1
- data/ext/rmath3d/RMtx4.h +1 -1
- data/ext/rmath3d/RQuat.c +1 -1
- data/ext/rmath3d/RQuat.h +1 -1
- data/ext/rmath3d/RType.h +1 -1
- data/ext/rmath3d/RVec2.c +1 -1
- data/ext/rmath3d/RVec2.h +1 -1
- data/ext/rmath3d/RVec3.c +1 -1
- data/ext/rmath3d/RVec3.h +1 -1
- data/ext/rmath3d/RVec4.c +1 -1
- data/ext/rmath3d/RVec4.h +1 -1
- data/ext/rmath3d/rmath3d.c +169 -445
- data/lib/rmath3d/rmath3d_plain.rb +36 -36
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc8123d1ad73cb760f30d7c6a3496f13ad54fcb1
|
4
|
+
data.tar.gz: 41ae8b2437dfe3fdc2b0ec6c01fc511a0e5ada20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 39615da4c1208ebfdb06644ce2a6612ed88172afc334c36eb9a08b20211c3fb89359bcdb4e348924fd09fad057745397774be8f3de00e211373a98c6cc6ab11c
|
7
|
+
data.tar.gz: 7e6b01b7f44b95ccb8f2c8a9419d74f730ef1bd6eac59afa7dc128c1e5cfa6ffb171cd151957a8d6d41a4fcbc987ebae63487bb0b30c5299513c936c7179f205
|
data/ChangeLog
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
2017-07-22 vaiorabbit <http://twitter.com/vaiorabbit>
|
2
|
+
|
3
|
+
* Added 'Integer' type for argument type branching (constant ::Fixnum is deprecated since ruby 2.4).
|
4
|
+
|
1
5
|
2015-08-23 vaiorabbit <http://twitter.com/vaiorabbit>
|
2
6
|
|
3
7
|
* rmath3d.c (def ==): Removed control path returning Qnil.
|
data/LICENSE.txt
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
rmath3d : Ruby math module for 3D Applications
|
2
|
-
Copyright (c) 2008-
|
2
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
3
3
|
|
4
4
|
This software is provided 'as-is', without any express or implied
|
5
5
|
warranty. In no event will the authors be held liable for any damages
|
data/README.md
CHANGED
data/ext/rmath3d/RMath3D.h
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
#ifndef
|
2
|
-
#define
|
1
|
+
#ifndef RMATH3D_H_INCLUDED
|
2
|
+
#define RMATH3D_H_INCLUDED
|
3
3
|
|
4
4
|
#include "RType.h"
|
5
5
|
#include "RVec2.h"
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
/*
|
16
16
|
RMath : Ruby math module for 3D Applications
|
17
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>
|
17
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
18
18
|
|
19
19
|
This software is provided 'as-is', without any express or implied
|
20
20
|
warranty. In no event will the authors be held liable for any damages
|
data/ext/rmath3d/RMtx2.c
CHANGED
@@ -232,7 +232,7 @@ RMtx2Scale( RMtx2* out, const RMtx2* m, rmReal f )
|
|
232
232
|
|
233
233
|
/*
|
234
234
|
RMath : Ruby math module for 3D Applications
|
235
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>
|
235
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
236
236
|
|
237
237
|
This software is provided 'as-is', without any express or implied
|
238
238
|
warranty. In no event will the authors be held liable for any damages
|
data/ext/rmath3d/RMtx2.h
CHANGED
@@ -65,7 +65,7 @@ void RMtx2Scale( RMtx2* out, const RMtx2* m, rmReal f );
|
|
65
65
|
|
66
66
|
/*
|
67
67
|
RMath : Ruby math module for 3D Applications
|
68
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>
|
68
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
69
69
|
|
70
70
|
This software is provided 'as-is', without any express or implied
|
71
71
|
warranty. In no event will the authors be held liable for any damages
|
data/ext/rmath3d/RMtx3.c
CHANGED
@@ -347,7 +347,7 @@ RMtx3Scale( RMtx3* out, const RMtx3* m, rmReal f )
|
|
347
347
|
|
348
348
|
/*
|
349
349
|
RMath : Ruby math module for 3D Applications
|
350
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>
|
350
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
351
351
|
|
352
352
|
This software is provided 'as-is', without any express or implied
|
353
353
|
warranty. In no event will the authors be held liable for any damages
|
data/ext/rmath3d/RMtx3.h
CHANGED
@@ -72,7 +72,7 @@ void RMtx3Scale( RMtx3* out, const RMtx3* m, rmReal f );
|
|
72
72
|
|
73
73
|
/*
|
74
74
|
RMath : Ruby math module for 3D Applications
|
75
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>
|
75
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
76
76
|
|
77
77
|
This software is provided 'as-is', without any express or implied
|
78
78
|
warranty. In no event will the authors be held liable for any damages
|
data/ext/rmath3d/RMtx4.c
CHANGED
@@ -549,7 +549,7 @@ RMtx4OrthoOffCenterRH( RMtx4* out, rmReal left, rmReal right, rmReal bottom, rmR
|
|
549
549
|
|
550
550
|
/*
|
551
551
|
RMath : Ruby math module for 3D Applications
|
552
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>
|
552
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
553
553
|
|
554
554
|
This software is provided 'as-is', without any express or implied
|
555
555
|
warranty. In no event will the authors be held liable for any damages
|
data/ext/rmath3d/RMtx4.h
CHANGED
@@ -87,7 +87,7 @@ void RMtx4OrthoOffCenterRH( RMtx4* out, rmReal left, rmReal right, rmReal bot
|
|
87
87
|
|
88
88
|
/*
|
89
89
|
RMath : Ruby math module for 3D Applications
|
90
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>
|
90
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
91
91
|
|
92
92
|
This software is provided 'as-is', without any express or implied
|
93
93
|
warranty. In no event will the authors be held liable for any damages
|
data/ext/rmath3d/RQuat.c
CHANGED
@@ -344,7 +344,7 @@ RQuatToAxisAngle( const RQuat* in, struct RVec3* axis, rmReal* radian )
|
|
344
344
|
|
345
345
|
/*
|
346
346
|
RMath : Ruby math module for 3D Applications
|
347
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>
|
347
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
348
348
|
|
349
349
|
This software is provided 'as-is', without any express or implied
|
350
350
|
warranty. In no event will the authors be held liable for any damages
|
data/ext/rmath3d/RQuat.h
CHANGED
@@ -69,7 +69,7 @@ void RQuatToAxisAngle( const RQuat* in, struct RVec3* axis, rmReal* radian );
|
|
69
69
|
|
70
70
|
/*
|
71
71
|
RMath : Ruby math module for 3D Applications
|
72
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>
|
72
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
73
73
|
|
74
74
|
This software is provided 'as-is', without any express or implied
|
75
75
|
warranty. In no event will the authors be held liable for any damages
|
data/ext/rmath3d/RType.h
CHANGED
@@ -53,7 +53,7 @@ typedef double rmReal;
|
|
53
53
|
|
54
54
|
/*
|
55
55
|
RMath : Ruby math module for 3D Applications
|
56
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>
|
56
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
57
57
|
|
58
58
|
This software is provided 'as-is', without any express or implied
|
59
59
|
warranty. In no event will the authors be held liable for any damages
|
data/ext/rmath3d/RVec2.c
CHANGED
@@ -144,7 +144,7 @@ RVec2Transform( RVec2* out, const RMtx2* m, const RVec2* in )
|
|
144
144
|
|
145
145
|
/*
|
146
146
|
RMath : Ruby math module for 3D Applications
|
147
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>.
|
147
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>.
|
148
148
|
|
149
149
|
This software is provided 'as-is', without any express or implied
|
150
150
|
warranty. In no event will the authors be held liable for any damages
|
data/ext/rmath3d/RVec2.h
CHANGED
@@ -57,7 +57,7 @@ void RVec2Transform( struct RVec2* out, const struct RMtx2* m, const RVec2* i
|
|
57
57
|
|
58
58
|
/*
|
59
59
|
RMath : Ruby math module for 3D Applications
|
60
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>
|
60
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
61
61
|
|
62
62
|
This software is provided 'as-is', without any express or implied
|
63
63
|
warranty. In no event will the authors be held liable for any damages
|
data/ext/rmath3d/RVec3.c
CHANGED
@@ -262,7 +262,7 @@ RVec3TransformByQuaternion( RVec3* out, const struct RQuat* q, const RVec3* in )
|
|
262
262
|
|
263
263
|
/*
|
264
264
|
RMath : Ruby math module for 3D Applications
|
265
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>.
|
265
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>.
|
266
266
|
|
267
267
|
This software is provided 'as-is', without any express or implied
|
268
268
|
warranty. In no event will the authors be held liable for any damages
|
data/ext/rmath3d/RVec3.h
CHANGED
@@ -66,7 +66,7 @@ void RVec3TransformByQuaternion( RVec3* out, const struct RQuat* q, const RVe
|
|
66
66
|
|
67
67
|
/*
|
68
68
|
RMath : Ruby math module for 3D Applications
|
69
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>
|
69
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
70
70
|
|
71
71
|
This software is provided 'as-is', without any express or implied
|
72
72
|
warranty. In no event will the authors be held liable for any damages
|
data/ext/rmath3d/RVec4.c
CHANGED
@@ -192,7 +192,7 @@ RVec4TransformTransposed( RVec4* out, const struct RMtx4* m, const RVec4* in )
|
|
192
192
|
|
193
193
|
/*
|
194
194
|
RMath : Ruby math module for 3D Applications
|
195
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>
|
195
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
196
196
|
|
197
197
|
This software is provided 'as-is', without any express or implied
|
198
198
|
warranty. In no event will the authors be held liable for any damages
|
data/ext/rmath3d/RVec4.h
CHANGED
@@ -63,7 +63,7 @@ void RVec4TransformTransposed( RVec4* out, const struct RMtx4* m, const RVec4
|
|
63
63
|
|
64
64
|
/*
|
65
65
|
RMath : Ruby math module for 3D Applications
|
66
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>
|
66
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
67
67
|
|
68
68
|
This software is provided 'as-is', without any express or implied
|
69
69
|
warranty. In no event will the authors be held liable for any damages
|
data/ext/rmath3d/rmath3d.c
CHANGED
@@ -200,45 +200,32 @@ RMtx2_initialize( int argc, VALUE* argv, VALUE self )
|
|
200
200
|
case 1:
|
201
201
|
{
|
202
202
|
VALUE arg = argv[0];
|
203
|
-
|
204
|
-
{
|
205
|
-
case T_FIXNUM:
|
206
|
-
case T_FLOAT:
|
207
|
-
{
|
203
|
+
if ( RB_FLOAT_TYPE_P(arg) || RB_INTEGER_TYPE_P(arg) ) {
|
208
204
|
/* convert to float */
|
209
205
|
rmReal f = NUM2DBL( arg );
|
210
206
|
RMtx2SetElements( v,
|
211
207
|
f,f,
|
212
208
|
f,f );
|
213
209
|
return self;
|
214
|
-
}
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
210
|
+
} else {
|
211
|
+
if ( TYPE( arg ) == T_DATA ) {
|
212
|
+
if ( IsRMtx2(arg) ) {
|
213
|
+
/* Copy Constructor */
|
214
|
+
RMtx2* other;
|
215
|
+
TypedData_Get_Struct( arg, RMtx2, &RMtx2_type, other );
|
216
|
+
RMtx2Copy( v, other );
|
217
|
+
return self;
|
218
|
+
} else {
|
219
|
+
return Qnil;
|
220
|
+
}
|
221
|
+
} else {
|
222
|
+
rb_raise( rb_eTypeError,
|
223
|
+
"RMtx2_new : Unknown type %s.",
|
224
|
+
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self )
|
225
|
+
);
|
228
226
|
return Qnil;
|
227
|
+
}
|
229
228
|
}
|
230
|
-
break;
|
231
|
-
|
232
|
-
default:
|
233
|
-
{
|
234
|
-
rb_raise( rb_eTypeError,
|
235
|
-
"RMtx2_new : Unknown type %s.",
|
236
|
-
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self )
|
237
|
-
);
|
238
|
-
return Qnil;
|
239
|
-
}
|
240
|
-
break;
|
241
|
-
} /* End : switch ( TYPE( arg ) ) */
|
242
229
|
} /* End : case 1 */
|
243
230
|
break;
|
244
231
|
|
@@ -251,18 +238,10 @@ RMtx2_initialize( int argc, VALUE* argv, VALUE self )
|
|
251
238
|
for ( col = 0; col < 2; ++col )
|
252
239
|
{
|
253
240
|
int i = 2*row + col;
|
254
|
-
|
255
|
-
{
|
256
|
-
case T_FIXNUM:
|
257
|
-
case T_FLOAT:
|
258
|
-
{
|
241
|
+
if ( RB_FLOAT_TYPE_P(argv[i]) || RB_INTEGER_TYPE_P(argv[i]) ) {
|
259
242
|
rmReal f = NUM2DBL( argv[i] );
|
260
243
|
RMtx2SetElement( v, row, col, f );
|
261
|
-
}
|
262
|
-
break;
|
263
|
-
|
264
|
-
default:
|
265
|
-
{
|
244
|
+
} else {
|
266
245
|
rb_raise( rb_eTypeError,
|
267
246
|
"RMtx2_new : Unknown type %s. at arg %d",
|
268
247
|
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self ),
|
@@ -270,8 +249,6 @@ RMtx2_initialize( int argc, VALUE* argv, VALUE self )
|
|
270
249
|
);
|
271
250
|
return Qnil;
|
272
251
|
}
|
273
|
-
break;
|
274
|
-
}
|
275
252
|
} /* End : for ( col = 0; col < 2; ++col ) */
|
276
253
|
} /* End : for ( row = 0; row < 2; ++row ) */
|
277
254
|
|
@@ -371,21 +348,12 @@ RMtx2_coerce( VALUE self, VALUE other )
|
|
371
348
|
RMtx2* v = NULL;
|
372
349
|
TypedData_Get_Struct( self, RMtx2, &RMtx2_type, v );
|
373
350
|
|
374
|
-
|
375
|
-
{
|
376
|
-
case T_FLOAT:
|
377
|
-
case T_FIXNUM:
|
378
|
-
case T_BIGNUM:
|
379
|
-
{
|
351
|
+
if ( RB_FLOAT_TYPE_P(other) || RB_INTEGER_TYPE_P(other) ) {
|
380
352
|
/* 'other (op) RMtx2'
|
381
353
|
* -> try again as 'RMtx2 (op) other'
|
382
354
|
*/
|
383
355
|
return rb_ary_new3( 2, self, other );
|
384
|
-
}
|
385
|
-
break;
|
386
|
-
|
387
|
-
default:
|
388
|
-
{
|
356
|
+
} else {
|
389
357
|
rb_raise( rb_eTypeError,
|
390
358
|
"%s can't be coerced into %s",
|
391
359
|
rb_special_const_p( other ) ? RSTRING_PTR( rb_inspect( other ) ) : rb_obj_classname( other ),
|
@@ -393,8 +361,6 @@ RMtx2_coerce( VALUE self, VALUE other )
|
|
393
361
|
);
|
394
362
|
return Qnil;
|
395
363
|
}
|
396
|
-
break;
|
397
|
-
}
|
398
364
|
}
|
399
365
|
|
400
366
|
/*
|
@@ -1114,11 +1080,7 @@ RMtx3_initialize( int argc, VALUE* argv, VALUE self )
|
|
1114
1080
|
case 1:
|
1115
1081
|
{
|
1116
1082
|
VALUE arg = argv[0];
|
1117
|
-
|
1118
|
-
{
|
1119
|
-
case T_FIXNUM:
|
1120
|
-
case T_FLOAT:
|
1121
|
-
{
|
1083
|
+
if ( RB_FLOAT_TYPE_P(arg) || RB_INTEGER_TYPE_P(arg) ) {
|
1122
1084
|
/* convert to float */
|
1123
1085
|
rmReal f = NUM2DBL( arg );
|
1124
1086
|
RMtx3SetElements( v,
|
@@ -1126,34 +1088,25 @@ RMtx3_initialize( int argc, VALUE* argv, VALUE self )
|
|
1126
1088
|
f,f,f,
|
1127
1089
|
f,f,f );
|
1128
1090
|
return self;
|
1129
|
-
}
|
1130
|
-
|
1131
|
-
|
1132
|
-
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1137
|
-
|
1138
|
-
|
1139
|
-
|
1140
|
-
|
1141
|
-
|
1142
|
-
|
1091
|
+
} else {
|
1092
|
+
if ( TYPE( arg ) == T_DATA ) {
|
1093
|
+
if ( IsRMtx3(arg) ) {
|
1094
|
+
/* Copy Constructor */
|
1095
|
+
RMtx3* other;
|
1096
|
+
TypedData_Get_Struct( arg , RMtx3, &RMtx3_type, other );
|
1097
|
+
RMtx3Copy( v, other );
|
1098
|
+
return self;
|
1099
|
+
} else {
|
1100
|
+
return Qnil;
|
1101
|
+
}
|
1102
|
+
} else {
|
1103
|
+
rb_raise( rb_eTypeError,
|
1104
|
+
"RMtx3_new : Unknown type %s.",
|
1105
|
+
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self )
|
1106
|
+
);
|
1143
1107
|
return Qnil;
|
1108
|
+
}
|
1144
1109
|
}
|
1145
|
-
break;
|
1146
|
-
|
1147
|
-
default:
|
1148
|
-
{
|
1149
|
-
rb_raise( rb_eTypeError,
|
1150
|
-
"RMtx3_new : Unknown type %s.",
|
1151
|
-
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self )
|
1152
|
-
);
|
1153
|
-
return Qnil;
|
1154
|
-
}
|
1155
|
-
break;
|
1156
|
-
} /* End : switch ( TYPE( arg ) ) */
|
1157
1110
|
} /* End : case 1 */
|
1158
1111
|
break;
|
1159
1112
|
|
@@ -1166,18 +1119,10 @@ RMtx3_initialize( int argc, VALUE* argv, VALUE self )
|
|
1166
1119
|
for ( col = 0; col < 3; ++col )
|
1167
1120
|
{
|
1168
1121
|
int i = 3*row + col;
|
1169
|
-
|
1170
|
-
{
|
1171
|
-
case T_FIXNUM:
|
1172
|
-
case T_FLOAT:
|
1173
|
-
{
|
1122
|
+
if ( RB_FLOAT_TYPE_P(argv[i]) || RB_INTEGER_TYPE_P(argv[i]) ) {
|
1174
1123
|
rmReal f = NUM2DBL( argv[i] );
|
1175
1124
|
RMtx3SetElement( v, row, col, f );
|
1176
|
-
}
|
1177
|
-
break;
|
1178
|
-
|
1179
|
-
default:
|
1180
|
-
{
|
1125
|
+
} else {
|
1181
1126
|
rb_raise( rb_eTypeError,
|
1182
1127
|
"RMtx3_new : Unknown type %s. at arg %d",
|
1183
1128
|
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self ),
|
@@ -1185,8 +1130,6 @@ RMtx3_initialize( int argc, VALUE* argv, VALUE self )
|
|
1185
1130
|
);
|
1186
1131
|
return Qnil;
|
1187
1132
|
}
|
1188
|
-
break;
|
1189
|
-
}
|
1190
1133
|
} /* End : for ( col = 0; col < 3; ++col ) */
|
1191
1134
|
} /* End : for ( row = 0; row < 3; ++row ) */
|
1192
1135
|
|
@@ -1286,21 +1229,12 @@ RMtx3_coerce( VALUE self, VALUE other )
|
|
1286
1229
|
RMtx3* v = NULL;
|
1287
1230
|
TypedData_Get_Struct( self, RMtx3, &RMtx3_type, v );
|
1288
1231
|
|
1289
|
-
|
1290
|
-
{
|
1291
|
-
case T_FLOAT:
|
1292
|
-
case T_FIXNUM:
|
1293
|
-
case T_BIGNUM:
|
1294
|
-
{
|
1232
|
+
if ( RB_FLOAT_TYPE_P(other) || RB_INTEGER_TYPE_P(other) ) {
|
1295
1233
|
/* 'other (op) RMtx3'
|
1296
1234
|
* -> try again as 'RMtx3 (op) other'
|
1297
1235
|
*/
|
1298
1236
|
return rb_ary_new3( 2, self, other );
|
1299
|
-
}
|
1300
|
-
break;
|
1301
|
-
|
1302
|
-
default:
|
1303
|
-
{
|
1237
|
+
} else {
|
1304
1238
|
rb_raise( rb_eTypeError,
|
1305
1239
|
"%s can't be coerced into %s",
|
1306
1240
|
rb_special_const_p( other ) ? RSTRING_PTR( rb_inspect( other ) ) : rb_obj_classname( other ),
|
@@ -1308,8 +1242,6 @@ RMtx3_coerce( VALUE self, VALUE other )
|
|
1308
1242
|
);
|
1309
1243
|
return Qnil;
|
1310
1244
|
}
|
1311
|
-
break;
|
1312
|
-
}
|
1313
1245
|
}
|
1314
1246
|
|
1315
1247
|
/*
|
@@ -2235,11 +2167,7 @@ RMtx4_initialize( int argc, VALUE* argv, VALUE self )
|
|
2235
2167
|
case 1:
|
2236
2168
|
{
|
2237
2169
|
VALUE arg = argv[0];
|
2238
|
-
|
2239
|
-
{
|
2240
|
-
case T_FIXNUM:
|
2241
|
-
case T_FLOAT:
|
2242
|
-
{
|
2170
|
+
if ( RB_FLOAT_TYPE_P(arg) || RB_INTEGER_TYPE_P(arg) ) {
|
2243
2171
|
/* convert to float */
|
2244
2172
|
rmReal f = NUM2DBL( arg );
|
2245
2173
|
RMtx4SetElements( v,
|
@@ -2248,34 +2176,25 @@ RMtx4_initialize( int argc, VALUE* argv, VALUE self )
|
|
2248
2176
|
f,f,f,f,
|
2249
2177
|
f,f,f,f );
|
2250
2178
|
return self;
|
2251
|
-
}
|
2252
|
-
|
2253
|
-
|
2254
|
-
|
2255
|
-
|
2256
|
-
|
2257
|
-
|
2258
|
-
|
2259
|
-
|
2260
|
-
|
2261
|
-
|
2262
|
-
|
2263
|
-
|
2264
|
-
|
2179
|
+
} else {
|
2180
|
+
if ( TYPE( arg ) == T_DATA ) {
|
2181
|
+
if ( IsRMtx4(arg) ) {
|
2182
|
+
/* Copy Constructor */
|
2183
|
+
RMtx4* other;
|
2184
|
+
TypedData_Get_Struct( arg , RMtx4, &RMtx4_type, other );
|
2185
|
+
RMtx4Copy( v, other );
|
2186
|
+
return self;
|
2187
|
+
} else {
|
2188
|
+
return Qnil;
|
2189
|
+
}
|
2190
|
+
} else {
|
2191
|
+
rb_raise( rb_eTypeError,
|
2192
|
+
"RMtx4_new : Unknown type %s.",
|
2193
|
+
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self )
|
2194
|
+
);
|
2265
2195
|
return Qnil;
|
2196
|
+
}
|
2266
2197
|
}
|
2267
|
-
break;
|
2268
|
-
|
2269
|
-
default:
|
2270
|
-
{
|
2271
|
-
rb_raise( rb_eTypeError,
|
2272
|
-
"RMtx4_new : Unknown type %s.",
|
2273
|
-
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self )
|
2274
|
-
);
|
2275
|
-
return Qnil;
|
2276
|
-
}
|
2277
|
-
break;
|
2278
|
-
} /* End : switch ( TYPE( arg ) ) */
|
2279
2198
|
} /* End : case 1 */
|
2280
2199
|
break;
|
2281
2200
|
|
@@ -2288,18 +2207,10 @@ RMtx4_initialize( int argc, VALUE* argv, VALUE self )
|
|
2288
2207
|
for ( col = 0; col < 4; ++col )
|
2289
2208
|
{
|
2290
2209
|
int i = 4*row + col;
|
2291
|
-
|
2292
|
-
{
|
2293
|
-
case T_FIXNUM:
|
2294
|
-
case T_FLOAT:
|
2295
|
-
{
|
2210
|
+
if ( RB_FLOAT_TYPE_P(argv[i]) || RB_INTEGER_TYPE_P(argv[i]) ) {
|
2296
2211
|
rmReal f = NUM2DBL( argv[i] );
|
2297
2212
|
RMtx4SetElement( v, row, col, f );
|
2298
|
-
}
|
2299
|
-
break;
|
2300
|
-
|
2301
|
-
default:
|
2302
|
-
{
|
2213
|
+
} else {
|
2303
2214
|
rb_raise( rb_eTypeError,
|
2304
2215
|
"RMtx4_new : Unknown type %s. at arg %d",
|
2305
2216
|
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self ),
|
@@ -2307,8 +2218,6 @@ RMtx4_initialize( int argc, VALUE* argv, VALUE self )
|
|
2307
2218
|
);
|
2308
2219
|
return Qnil;
|
2309
2220
|
}
|
2310
|
-
break;
|
2311
|
-
}
|
2312
2221
|
} /* End : for ( col = 0; col < 4; ++col ) */
|
2313
2222
|
} /* End : for ( row = 0; row < 4; ++row ) */
|
2314
2223
|
|
@@ -2410,21 +2319,12 @@ RMtx4_coerce( VALUE self, VALUE other )
|
|
2410
2319
|
RMtx4* v = NULL;
|
2411
2320
|
TypedData_Get_Struct( self, RMtx4, &RMtx4_type, v );
|
2412
2321
|
|
2413
|
-
|
2414
|
-
{
|
2415
|
-
case T_FLOAT:
|
2416
|
-
case T_FIXNUM:
|
2417
|
-
case T_BIGNUM:
|
2418
|
-
{
|
2322
|
+
if ( RB_FLOAT_TYPE_P(other) || RB_INTEGER_TYPE_P(other) ) {
|
2419
2323
|
/* 'other (op) RMtx4'
|
2420
2324
|
* -> try again as 'RMtx4 (op) other'
|
2421
2325
|
*/
|
2422
2326
|
return rb_ary_new3( 2, self, other );
|
2423
|
-
}
|
2424
|
-
break;
|
2425
|
-
|
2426
|
-
default:
|
2427
|
-
{
|
2327
|
+
} else {
|
2428
2328
|
rb_raise( rb_eTypeError,
|
2429
2329
|
"%s can't be coerced into %s",
|
2430
2330
|
rb_special_const_p( other ) ? RSTRING_PTR( rb_inspect( other ) ) : rb_obj_classname( other ),
|
@@ -2432,8 +2332,6 @@ RMtx4_coerce( VALUE self, VALUE other )
|
|
2432
2332
|
);
|
2433
2333
|
return Qnil;
|
2434
2334
|
}
|
2435
|
-
break;
|
2436
|
-
}
|
2437
2335
|
}
|
2438
2336
|
|
2439
2337
|
/*
|
@@ -3784,43 +3682,30 @@ RQuat_initialize( int argc, VALUE* argv, VALUE self )
|
|
3784
3682
|
case 1:
|
3785
3683
|
{
|
3786
3684
|
VALUE arg = argv[0];
|
3787
|
-
|
3788
|
-
{
|
3789
|
-
case T_FIXNUM:
|
3790
|
-
case T_FLOAT:
|
3791
|
-
{
|
3685
|
+
if ( RB_FLOAT_TYPE_P(arg) || RB_INTEGER_TYPE_P(arg) ) {
|
3792
3686
|
/* convert to float */
|
3793
3687
|
rmReal f = NUM2DBL( arg );
|
3794
3688
|
RQuatSetElements( v, f,f,f,f );
|
3795
3689
|
return self;
|
3796
|
-
}
|
3797
|
-
|
3798
|
-
|
3799
|
-
|
3800
|
-
|
3801
|
-
|
3802
|
-
|
3803
|
-
|
3804
|
-
|
3805
|
-
|
3806
|
-
|
3807
|
-
|
3808
|
-
|
3809
|
-
|
3690
|
+
} else {
|
3691
|
+
if ( TYPE( arg ) == T_DATA ) {
|
3692
|
+
if ( IsRQuat(arg) ) {
|
3693
|
+
/* Copy Constructor */
|
3694
|
+
RQuat* other;
|
3695
|
+
TypedData_Get_Struct( arg , RQuat, &RQuat_type, other );
|
3696
|
+
RQuatSetElements( v, other->x, other->y, other->z, other->w );
|
3697
|
+
return self;
|
3698
|
+
} else {
|
3699
|
+
return Qnil;
|
3700
|
+
}
|
3701
|
+
} else {
|
3702
|
+
rb_raise( rb_eTypeError,
|
3703
|
+
"RQuat_new : Unknown type %s.",
|
3704
|
+
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self )
|
3705
|
+
);
|
3810
3706
|
return Qnil;
|
3707
|
+
}
|
3811
3708
|
}
|
3812
|
-
break;
|
3813
|
-
|
3814
|
-
default:
|
3815
|
-
{
|
3816
|
-
rb_raise( rb_eTypeError,
|
3817
|
-
"RQuat_new : Unknown type %s.",
|
3818
|
-
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self )
|
3819
|
-
);
|
3820
|
-
return Qnil;
|
3821
|
-
}
|
3822
|
-
break;
|
3823
|
-
} /* End : switch ( TYPE( arg ) ) */
|
3824
3709
|
} /* End : case 1 */
|
3825
3710
|
break;
|
3826
3711
|
|
@@ -3830,18 +3715,10 @@ RQuat_initialize( int argc, VALUE* argv, VALUE self )
|
|
3830
3715
|
int i;
|
3831
3716
|
for ( i = 0; i < argc; ++i )
|
3832
3717
|
{
|
3833
|
-
|
3834
|
-
{
|
3835
|
-
case T_FIXNUM:
|
3836
|
-
case T_FLOAT:
|
3837
|
-
{
|
3718
|
+
if ( RB_FLOAT_TYPE_P(argv[i]) || RB_INTEGER_TYPE_P(argv[i]) ) {
|
3838
3719
|
rmReal f = NUM2DBL( argv[i] );
|
3839
3720
|
v->e[i] = f;
|
3840
|
-
}
|
3841
|
-
break;
|
3842
|
-
|
3843
|
-
default:
|
3844
|
-
{
|
3721
|
+
} else {
|
3845
3722
|
rb_raise( rb_eTypeError,
|
3846
3723
|
"RQuat_new : Unknown type %s. at arg %d",
|
3847
3724
|
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self ),
|
@@ -3849,8 +3726,6 @@ RQuat_initialize( int argc, VALUE* argv, VALUE self )
|
|
3849
3726
|
);
|
3850
3727
|
return Qnil;
|
3851
3728
|
}
|
3852
|
-
break;
|
3853
|
-
}
|
3854
3729
|
} /* End : for ( i = 0; i < argc; ++i ) */
|
3855
3730
|
|
3856
3731
|
return self;
|
@@ -3936,21 +3811,12 @@ RQuat_coerce( VALUE self, VALUE other )
|
|
3936
3811
|
RQuat* v = NULL;
|
3937
3812
|
TypedData_Get_Struct( self, RQuat, &RQuat_type, v );
|
3938
3813
|
|
3939
|
-
|
3940
|
-
{
|
3941
|
-
case T_FLOAT:
|
3942
|
-
case T_FIXNUM:
|
3943
|
-
case T_BIGNUM:
|
3944
|
-
{
|
3814
|
+
if ( RB_FLOAT_TYPE_P(other) || RB_INTEGER_TYPE_P(other) ) {
|
3945
3815
|
/* 'other (op) RQuat'
|
3946
3816
|
* -> try again as 'RQuat (op) other'
|
3947
3817
|
*/
|
3948
3818
|
return rb_ary_new3( 2, self, other );
|
3949
|
-
}
|
3950
|
-
break;
|
3951
|
-
|
3952
|
-
default:
|
3953
|
-
{
|
3819
|
+
} else {
|
3954
3820
|
rb_raise( rb_eTypeError,
|
3955
3821
|
"%s can't be coerced into %s",
|
3956
3822
|
rb_special_const_p( other ) ? RSTRING_PTR( rb_inspect( other ) ) : rb_obj_classname( other ),
|
@@ -3958,8 +3824,6 @@ RQuat_coerce( VALUE self, VALUE other )
|
|
3958
3824
|
);
|
3959
3825
|
return Qnil;
|
3960
3826
|
}
|
3961
|
-
break;
|
3962
|
-
}
|
3963
3827
|
}
|
3964
3828
|
|
3965
3829
|
/*
|
@@ -4506,27 +4370,18 @@ RQuat_op_binary_mult( VALUE self, VALUE other )
|
|
4506
4370
|
}
|
4507
4371
|
else
|
4508
4372
|
{
|
4509
|
-
|
4510
|
-
{
|
4511
|
-
case T_FIXNUM:
|
4512
|
-
case T_FLOAT:
|
4513
|
-
{
|
4373
|
+
if ( RB_FLOAT_TYPE_P(other) || RB_INTEGER_TYPE_P(other) ) {
|
4514
4374
|
f = NUM2DBL( other );
|
4515
4375
|
RQuatScale( &result, v, f );
|
4516
4376
|
|
4517
4377
|
return RQuat_from_source( &result );
|
4518
|
-
}
|
4519
|
-
break;
|
4520
|
-
|
4521
|
-
default:
|
4522
|
-
{
|
4378
|
+
} else {
|
4523
4379
|
rb_raise( rb_eTypeError,
|
4524
4380
|
"RQuat#* : Unknown type %s.",
|
4525
4381
|
rb_special_const_p( other ) ? RSTRING_PTR( rb_inspect( other ) ) : rb_obj_classname( other )
|
4526
4382
|
);
|
4527
4383
|
return Qnil;
|
4528
4384
|
}
|
4529
|
-
} /* End : switch( TYPE(other) ) */
|
4530
4385
|
}
|
4531
4386
|
}
|
4532
4387
|
|
@@ -4640,7 +4495,7 @@ RQuat_op_assign_mult( VALUE self, VALUE other )
|
|
4640
4495
|
else
|
4641
4496
|
{
|
4642
4497
|
#ifdef RMATH_ENABLE_ARGUMENT_CHECK
|
4643
|
-
if (
|
4498
|
+
if ( !RB_FLOAT_TYPE_P(other) && !RB_INTEGER_TYPE_P(other) )
|
4644
4499
|
{
|
4645
4500
|
rb_raise( rb_eTypeError,
|
4646
4501
|
"RQuat#mul! : Unknown type %s.",
|
@@ -4785,43 +4640,30 @@ RVec2_initialize( int argc, VALUE* argv, VALUE self )
|
|
4785
4640
|
case 1:
|
4786
4641
|
{
|
4787
4642
|
VALUE arg = argv[0];
|
4788
|
-
|
4789
|
-
{
|
4790
|
-
case T_FIXNUM:
|
4791
|
-
case T_FLOAT:
|
4792
|
-
{
|
4643
|
+
if ( RB_FLOAT_TYPE_P(arg) || RB_INTEGER_TYPE_P(arg) ) {
|
4793
4644
|
/* convert to float */
|
4794
4645
|
rmReal f = NUM2DBL( arg );
|
4795
4646
|
RVec2SetElements( v, f,f );
|
4796
4647
|
return self;
|
4797
|
-
}
|
4798
|
-
|
4799
|
-
|
4800
|
-
|
4801
|
-
|
4802
|
-
|
4803
|
-
|
4804
|
-
|
4805
|
-
|
4806
|
-
|
4807
|
-
|
4808
|
-
|
4809
|
-
|
4810
|
-
|
4648
|
+
} else {
|
4649
|
+
if ( TYPE( arg ) == T_DATA ) {
|
4650
|
+
if ( IsRVec2(arg) ) {
|
4651
|
+
/* Copy Constructor */
|
4652
|
+
RVec2* other;
|
4653
|
+
TypedData_Get_Struct( arg , RVec2, &RVec2_type, other );
|
4654
|
+
RVec2SetElements( v, other->x, other->y );
|
4655
|
+
return self;
|
4656
|
+
} else {
|
4657
|
+
return Qnil;
|
4658
|
+
}
|
4659
|
+
} else {
|
4660
|
+
rb_raise( rb_eTypeError,
|
4661
|
+
"RVec2_new : Unknown type %s.",
|
4662
|
+
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self )
|
4663
|
+
);
|
4811
4664
|
return Qnil;
|
4665
|
+
}
|
4812
4666
|
}
|
4813
|
-
break;
|
4814
|
-
|
4815
|
-
default:
|
4816
|
-
{
|
4817
|
-
rb_raise( rb_eTypeError,
|
4818
|
-
"RVec2_new : Unknown type %s.",
|
4819
|
-
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self )
|
4820
|
-
);
|
4821
|
-
return Qnil;
|
4822
|
-
}
|
4823
|
-
break;
|
4824
|
-
} /* End : switch ( TYPE( arg ) ) */
|
4825
4667
|
} /* End : case 1 */
|
4826
4668
|
break;
|
4827
4669
|
|
@@ -4831,18 +4673,10 @@ RVec2_initialize( int argc, VALUE* argv, VALUE self )
|
|
4831
4673
|
int i;
|
4832
4674
|
for ( i = 0; i < argc; ++i )
|
4833
4675
|
{
|
4834
|
-
|
4835
|
-
{
|
4836
|
-
case T_FIXNUM:
|
4837
|
-
case T_FLOAT:
|
4838
|
-
{
|
4676
|
+
if ( RB_FLOAT_TYPE_P(argv[i]) || RB_INTEGER_TYPE_P(argv[i]) ) {
|
4839
4677
|
rmReal f = NUM2DBL( argv[i] );
|
4840
4678
|
v->e[i] = f;
|
4841
|
-
}
|
4842
|
-
break;
|
4843
|
-
|
4844
|
-
default:
|
4845
|
-
{
|
4679
|
+
} else {
|
4846
4680
|
rb_raise( rb_eTypeError,
|
4847
4681
|
"RVec2_new : Unknown type %s. at arg %d",
|
4848
4682
|
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self ),
|
@@ -4850,8 +4684,6 @@ RVec2_initialize( int argc, VALUE* argv, VALUE self )
|
|
4850
4684
|
);
|
4851
4685
|
return Qnil;
|
4852
4686
|
}
|
4853
|
-
break;
|
4854
|
-
}
|
4855
4687
|
} /* End : for ( i = 0; i < argc; ++i ) */
|
4856
4688
|
|
4857
4689
|
return self;
|
@@ -4935,21 +4767,12 @@ RVec2_coerce( VALUE self, VALUE other )
|
|
4935
4767
|
RVec2* v = NULL;
|
4936
4768
|
TypedData_Get_Struct( self, RVec2, &RVec2_type, v );
|
4937
4769
|
|
4938
|
-
|
4939
|
-
{
|
4940
|
-
case T_FLOAT:
|
4941
|
-
case T_FIXNUM:
|
4942
|
-
case T_BIGNUM:
|
4943
|
-
{
|
4770
|
+
if ( RB_FLOAT_TYPE_P(other) || RB_INTEGER_TYPE_P(other) ) {
|
4944
4771
|
/* 'other (op) RVec2'
|
4945
4772
|
* -> try again as 'RVec2 (op) other'
|
4946
4773
|
*/
|
4947
4774
|
return rb_ary_new3( 2, self, other );
|
4948
|
-
}
|
4949
|
-
break;
|
4950
|
-
|
4951
|
-
default:
|
4952
|
-
{
|
4775
|
+
} else {
|
4953
4776
|
rb_raise( rb_eTypeError,
|
4954
4777
|
"%s can't be coerced into %s",
|
4955
4778
|
rb_special_const_p( other ) ? RSTRING_PTR( rb_inspect( other ) ) : rb_obj_classname( other ),
|
@@ -4957,8 +4780,6 @@ RVec2_coerce( VALUE self, VALUE other )
|
|
4957
4780
|
);
|
4958
4781
|
return Qnil;
|
4959
4782
|
}
|
4960
|
-
break;
|
4961
|
-
}
|
4962
4783
|
}
|
4963
4784
|
|
4964
4785
|
/*
|
@@ -5318,28 +5139,19 @@ RVec2_op_binary_mult( VALUE self, VALUE other )
|
|
5318
5139
|
RVec2 result;
|
5319
5140
|
rmReal f;
|
5320
5141
|
|
5321
|
-
|
5322
|
-
{
|
5323
|
-
case T_FIXNUM:
|
5324
|
-
case T_FLOAT:
|
5325
|
-
{
|
5142
|
+
if ( RB_FLOAT_TYPE_P(other) || RB_INTEGER_TYPE_P(other) ) {
|
5326
5143
|
TypedData_Get_Struct( self, RVec2, &RVec2_type, v );
|
5327
5144
|
f = NUM2DBL( other );
|
5328
5145
|
RVec2Scale( &result, v, f );
|
5329
5146
|
|
5330
5147
|
return RVec2_from_source( &result );
|
5331
|
-
}
|
5332
|
-
break;
|
5333
|
-
|
5334
|
-
default:
|
5335
|
-
{
|
5148
|
+
} else {
|
5336
5149
|
rb_raise( rb_eTypeError,
|
5337
5150
|
"RVec2#* : Unknown type %s.",
|
5338
5151
|
rb_special_const_p( other ) ? RSTRING_PTR( rb_inspect( other ) ) : rb_obj_classname( other )
|
5339
5152
|
);
|
5340
5153
|
return Qnil;
|
5341
5154
|
}
|
5342
|
-
} /* End : switch( TYPE(other) ) */
|
5343
5155
|
}
|
5344
5156
|
|
5345
5157
|
/*
|
@@ -5441,7 +5253,7 @@ RVec2_op_assign_mult( VALUE self, VALUE other )
|
|
5441
5253
|
rmReal f;
|
5442
5254
|
|
5443
5255
|
#ifdef RMATH_ENABLE_ARGUMENT_CHECK
|
5444
|
-
if (
|
5256
|
+
if ( !RB_FLOAT_TYPE_P(other) && !RB_INTEGER_TYPE_P(other) )
|
5445
5257
|
{
|
5446
5258
|
rb_raise( rb_eTypeError,
|
5447
5259
|
"RVec2#*= : Unknown type %s.",
|
@@ -5528,43 +5340,30 @@ RVec3_initialize( int argc, VALUE* argv, VALUE self )
|
|
5528
5340
|
case 1:
|
5529
5341
|
{
|
5530
5342
|
VALUE arg = argv[0];
|
5531
|
-
|
5532
|
-
{
|
5533
|
-
case T_FIXNUM:
|
5534
|
-
case T_FLOAT:
|
5535
|
-
{
|
5343
|
+
if ( RB_FLOAT_TYPE_P(arg) || RB_INTEGER_TYPE_P(arg) ) {
|
5536
5344
|
/* convert to float */
|
5537
5345
|
rmReal f = NUM2DBL( arg );
|
5538
5346
|
RVec3SetElements( v, f,f,f );
|
5539
5347
|
return self;
|
5540
|
-
}
|
5541
|
-
|
5542
|
-
|
5543
|
-
|
5544
|
-
|
5545
|
-
|
5546
|
-
|
5547
|
-
|
5548
|
-
|
5549
|
-
|
5550
|
-
|
5551
|
-
|
5552
|
-
}
|
5553
|
-
else
|
5554
|
-
return Qnil;
|
5555
|
-
}
|
5556
|
-
break;
|
5557
|
-
|
5558
|
-
default:
|
5559
|
-
{
|
5348
|
+
} else {
|
5349
|
+
if ( TYPE( arg ) == T_DATA ) {
|
5350
|
+
if ( IsRVec3(arg) ) {
|
5351
|
+
/* Copy Constructor */
|
5352
|
+
RVec3* other;
|
5353
|
+
TypedData_Get_Struct( arg , RVec3, &RVec3_type, other );
|
5354
|
+
RVec3SetElements( v, other->x, other->y, other->z );
|
5355
|
+
return self;
|
5356
|
+
} else {
|
5357
|
+
return Qnil;
|
5358
|
+
}
|
5359
|
+
} else {
|
5560
5360
|
rb_raise( rb_eTypeError,
|
5561
5361
|
"RVec3_new : Unknown type %s.",
|
5562
5362
|
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self )
|
5563
5363
|
);
|
5564
5364
|
return Qnil;
|
5365
|
+
}
|
5565
5366
|
}
|
5566
|
-
break;
|
5567
|
-
} /* End : switch ( TYPE( arg ) ) */
|
5568
5367
|
} /* End : case 1 */
|
5569
5368
|
break;
|
5570
5369
|
|
@@ -5574,18 +5373,10 @@ RVec3_initialize( int argc, VALUE* argv, VALUE self )
|
|
5574
5373
|
int i;
|
5575
5374
|
for ( i = 0; i < argc; ++i )
|
5576
5375
|
{
|
5577
|
-
|
5578
|
-
{
|
5579
|
-
case T_FIXNUM:
|
5580
|
-
case T_FLOAT:
|
5581
|
-
{
|
5376
|
+
if ( RB_FLOAT_TYPE_P(argv[i]) || RB_INTEGER_TYPE_P(argv[i]) ) {
|
5582
5377
|
rmReal f = NUM2DBL( argv[i] );
|
5583
5378
|
v->e[i] = f;
|
5584
|
-
}
|
5585
|
-
break;
|
5586
|
-
|
5587
|
-
default:
|
5588
|
-
{
|
5379
|
+
} else {
|
5589
5380
|
rb_raise( rb_eTypeError,
|
5590
5381
|
"RVec3_new : Unknown type %s. at arg %d",
|
5591
5382
|
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self ),
|
@@ -5593,8 +5384,6 @@ RVec3_initialize( int argc, VALUE* argv, VALUE self )
|
|
5593
5384
|
);
|
5594
5385
|
return Qnil;
|
5595
5386
|
}
|
5596
|
-
break;
|
5597
|
-
}
|
5598
5387
|
} /* End : for ( i = 0; i < argc; ++i ) */
|
5599
5388
|
|
5600
5389
|
return self;
|
@@ -5679,21 +5468,12 @@ RVec3_coerce( VALUE self, VALUE other )
|
|
5679
5468
|
RVec3* v = NULL;
|
5680
5469
|
TypedData_Get_Struct( self, RVec3, &RVec3_type, v );
|
5681
5470
|
|
5682
|
-
|
5683
|
-
{
|
5684
|
-
case T_FLOAT:
|
5685
|
-
case T_FIXNUM:
|
5686
|
-
case T_BIGNUM:
|
5687
|
-
{
|
5471
|
+
if ( RB_FLOAT_TYPE_P(other) || RB_INTEGER_TYPE_P(other) ) {
|
5688
5472
|
/* 'other (op) RVec3'
|
5689
5473
|
* -> try again as 'RVec3 (op) other'
|
5690
5474
|
*/
|
5691
5475
|
return rb_ary_new3( 2, self, other );
|
5692
|
-
}
|
5693
|
-
break;
|
5694
|
-
|
5695
|
-
default:
|
5696
|
-
{
|
5476
|
+
} else {
|
5697
5477
|
rb_raise( rb_eTypeError,
|
5698
5478
|
"%s can't be coerced into %s",
|
5699
5479
|
rb_special_const_p( other ) ? RSTRING_PTR( rb_inspect( other ) ) : rb_obj_classname( other ),
|
@@ -5701,8 +5481,6 @@ RVec3_coerce( VALUE self, VALUE other )
|
|
5701
5481
|
);
|
5702
5482
|
return Qnil;
|
5703
5483
|
}
|
5704
|
-
break;
|
5705
|
-
}
|
5706
5484
|
}
|
5707
5485
|
|
5708
5486
|
/*
|
@@ -6316,28 +6094,19 @@ RVec3_op_binary_mult( VALUE self, VALUE other )
|
|
6316
6094
|
RVec3 result;
|
6317
6095
|
rmReal f;
|
6318
6096
|
|
6319
|
-
|
6320
|
-
{
|
6321
|
-
case T_FIXNUM:
|
6322
|
-
case T_FLOAT:
|
6323
|
-
{
|
6097
|
+
if ( RB_FLOAT_TYPE_P(other) || RB_INTEGER_TYPE_P(other) ) {
|
6324
6098
|
TypedData_Get_Struct( self, RVec3, &RVec3_type, v );
|
6325
6099
|
f = NUM2DBL( other );
|
6326
6100
|
RVec3Scale( &result, v, f );
|
6327
6101
|
|
6328
6102
|
return RVec3_from_source( &result );
|
6329
|
-
}
|
6330
|
-
break;
|
6331
|
-
|
6332
|
-
default:
|
6333
|
-
{
|
6103
|
+
} else {
|
6334
6104
|
rb_raise( rb_eTypeError,
|
6335
6105
|
"RVec3#* : Unknown type %s.",
|
6336
6106
|
rb_special_const_p( other ) ? RSTRING_PTR( rb_inspect( other ) ) : rb_obj_classname( other )
|
6337
6107
|
);
|
6338
6108
|
return Qnil;
|
6339
6109
|
}
|
6340
|
-
} /* End : switch( TYPE(other) ) */
|
6341
6110
|
}
|
6342
6111
|
|
6343
6112
|
/*
|
@@ -6439,7 +6208,7 @@ RVec3_op_assign_mult( VALUE self, VALUE other )
|
|
6439
6208
|
rmReal f;
|
6440
6209
|
|
6441
6210
|
#ifdef RMATH_ENABLE_ARGUMENT_CHECK
|
6442
|
-
if (
|
6211
|
+
if ( !RB_FLOAT_TYPE_P(other) && !RB_INTEGER_TYPE_P(other) )
|
6443
6212
|
{
|
6444
6213
|
rb_raise( rb_eTypeError,
|
6445
6214
|
"RVec3#*= : Unknown type %s.",
|
@@ -6526,51 +6295,36 @@ RVec4_initialize( int argc, VALUE* argv, VALUE self )
|
|
6526
6295
|
case 1:
|
6527
6296
|
{
|
6528
6297
|
VALUE arg = argv[0];
|
6529
|
-
|
6530
|
-
{
|
6531
|
-
case T_FIXNUM:
|
6532
|
-
case T_FLOAT:
|
6533
|
-
{
|
6298
|
+
if ( RB_FLOAT_TYPE_P(arg) || RB_INTEGER_TYPE_P(arg) ) {
|
6534
6299
|
/* convert to float */
|
6535
6300
|
rmReal f = NUM2DBL( arg );
|
6536
6301
|
RVec4SetElements( v, f,f,f,f );
|
6537
6302
|
return self;
|
6538
|
-
}
|
6539
|
-
|
6540
|
-
|
6541
|
-
|
6542
|
-
|
6543
|
-
|
6544
|
-
|
6545
|
-
|
6546
|
-
|
6547
|
-
|
6548
|
-
|
6549
|
-
|
6550
|
-
|
6551
|
-
|
6552
|
-
|
6553
|
-
|
6554
|
-
|
6555
|
-
|
6556
|
-
|
6557
|
-
|
6558
|
-
|
6559
|
-
|
6303
|
+
} else {
|
6304
|
+
if ( TYPE( arg ) == T_DATA ) {
|
6305
|
+
if ( IsRVec3(arg) ) {
|
6306
|
+
/* Create from RVec3 */
|
6307
|
+
RVec3* other;
|
6308
|
+
TypedData_Get_Struct( arg , RVec3, &RVec3_type, other );
|
6309
|
+
RVec4SetElements( v, other->x, other->y, other->z, 0.0f );
|
6310
|
+
return self;
|
6311
|
+
} else if ( IsRVec4(arg) ) {
|
6312
|
+
/* Copy Constructor */
|
6313
|
+
RVec4* other;
|
6314
|
+
TypedData_Get_Struct( arg , RVec4, &RVec4_type, other );
|
6315
|
+
RVec4SetElements( v, other->x, other->y, other->z, other->w );
|
6316
|
+
return self;
|
6317
|
+
} else {
|
6318
|
+
return Qnil;
|
6319
|
+
}
|
6320
|
+
} else {
|
6321
|
+
rb_raise( rb_eTypeError,
|
6322
|
+
"RVec4_new : Unknown type %s.",
|
6323
|
+
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self )
|
6324
|
+
);
|
6560
6325
|
return Qnil;
|
6326
|
+
}
|
6561
6327
|
}
|
6562
|
-
break;
|
6563
|
-
|
6564
|
-
default:
|
6565
|
-
{
|
6566
|
-
rb_raise( rb_eTypeError,
|
6567
|
-
"RVec4_new : Unknown type %s.",
|
6568
|
-
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self )
|
6569
|
-
);
|
6570
|
-
return Qnil;
|
6571
|
-
}
|
6572
|
-
break;
|
6573
|
-
} /* End : switch ( TYPE( arg ) ) */
|
6574
6328
|
} /* End : case 1 */
|
6575
6329
|
break;
|
6576
6330
|
|
@@ -6580,18 +6334,10 @@ RVec4_initialize( int argc, VALUE* argv, VALUE self )
|
|
6580
6334
|
int i;
|
6581
6335
|
for ( i = 0; i < argc; ++i )
|
6582
6336
|
{
|
6583
|
-
|
6584
|
-
{
|
6585
|
-
case T_FIXNUM:
|
6586
|
-
case T_FLOAT:
|
6587
|
-
{
|
6337
|
+
if ( RB_FLOAT_TYPE_P(argv[i]) || RB_INTEGER_TYPE_P(argv[i]) ) {
|
6588
6338
|
rmReal f = NUM2DBL( argv[i] );
|
6589
6339
|
v->e[i] = f;
|
6590
|
-
}
|
6591
|
-
break;
|
6592
|
-
|
6593
|
-
default:
|
6594
|
-
{
|
6340
|
+
} else {
|
6595
6341
|
rb_raise( rb_eTypeError,
|
6596
6342
|
"RVec4_new : Unknown type %s. at arg %d",
|
6597
6343
|
rb_special_const_p( self ) ? RSTRING_PTR( rb_inspect( self ) ) : rb_obj_classname( self ),
|
@@ -6599,8 +6345,6 @@ RVec4_initialize( int argc, VALUE* argv, VALUE self )
|
|
6599
6345
|
);
|
6600
6346
|
return Qnil;
|
6601
6347
|
}
|
6602
|
-
break;
|
6603
|
-
}
|
6604
6348
|
} /* End : for ( i = 0; i < argc; ++i ) */
|
6605
6349
|
|
6606
6350
|
return self;
|
@@ -6686,21 +6430,12 @@ RVec4_coerce( VALUE self, VALUE other )
|
|
6686
6430
|
RVec4* v = NULL;
|
6687
6431
|
TypedData_Get_Struct( self, RVec4, &RVec4_type, v );
|
6688
6432
|
|
6689
|
-
|
6690
|
-
{
|
6691
|
-
case T_FLOAT:
|
6692
|
-
case T_FIXNUM:
|
6693
|
-
case T_BIGNUM:
|
6694
|
-
{
|
6433
|
+
if ( RB_FLOAT_TYPE_P(other) || RB_INTEGER_TYPE_P(other) ) {
|
6695
6434
|
/* 'other (op) RVec4'
|
6696
6435
|
* -> try again as 'RVec4 (op) other'
|
6697
6436
|
*/
|
6698
6437
|
return rb_ary_new3( 2, self, other );
|
6699
|
-
}
|
6700
|
-
break;
|
6701
|
-
|
6702
|
-
default:
|
6703
|
-
{
|
6438
|
+
} else {
|
6704
6439
|
rb_raise( rb_eTypeError,
|
6705
6440
|
"%s can't be coerced into %s",
|
6706
6441
|
rb_special_const_p( other ) ? RSTRING_PTR( rb_inspect( other ) ) : rb_obj_classname( other ),
|
@@ -6708,8 +6443,6 @@ RVec4_coerce( VALUE self, VALUE other )
|
|
6708
6443
|
);
|
6709
6444
|
return Qnil;
|
6710
6445
|
}
|
6711
|
-
break;
|
6712
|
-
}
|
6713
6446
|
}
|
6714
6447
|
|
6715
6448
|
/*
|
@@ -7215,28 +6948,19 @@ RVec4_op_binary_mult( VALUE self, VALUE other )
|
|
7215
6948
|
RVec4 result;
|
7216
6949
|
rmReal f;
|
7217
6950
|
|
7218
|
-
|
7219
|
-
{
|
7220
|
-
case T_FIXNUM:
|
7221
|
-
case T_FLOAT:
|
7222
|
-
{
|
6951
|
+
if ( RB_FLOAT_TYPE_P(other) || RB_INTEGER_TYPE_P(other) ) {
|
7223
6952
|
TypedData_Get_Struct( self, RVec4, &RVec4_type, v );
|
7224
6953
|
f = NUM2DBL( other );
|
7225
6954
|
RVec4Scale( &result, v, f );
|
7226
6955
|
|
7227
6956
|
return RVec4_from_source( &result );
|
7228
|
-
}
|
7229
|
-
break;
|
7230
|
-
|
7231
|
-
default:
|
7232
|
-
{
|
6957
|
+
} else {
|
7233
6958
|
rb_raise( rb_eTypeError,
|
7234
6959
|
"RVec4#* : Unknown type %s.",
|
7235
6960
|
rb_special_const_p( other ) ? RSTRING_PTR( rb_inspect( other ) ) : rb_obj_classname( other )
|
7236
6961
|
);
|
7237
6962
|
return Qnil;
|
7238
6963
|
}
|
7239
|
-
} /* End : switch( TYPE(other) ) */
|
7240
6964
|
}
|
7241
6965
|
|
7242
6966
|
/*
|
@@ -7338,7 +7062,7 @@ RVec4_op_assign_mult( VALUE self, VALUE other )
|
|
7338
7062
|
rmReal f;
|
7339
7063
|
|
7340
7064
|
#ifdef RMATH_ENABLE_ARGUMENT_CHECK
|
7341
|
-
if (
|
7065
|
+
if ( !RB_FLOAT_TYPE_P(other) && !RB_INTEGER_TYPE_P(other) )
|
7342
7066
|
{
|
7343
7067
|
rb_raise( rb_eTypeError,
|
7344
7068
|
"RVec4#*= : Unknown type %s.",
|
@@ -7820,7 +7544,7 @@ Init_rmath3d()
|
|
7820
7544
|
|
7821
7545
|
/*
|
7822
7546
|
RMath : Ruby math module for 3D Applications
|
7823
|
-
Copyright (c) 2008- vaiorabbit <http://twitter.com/vaiorabbit>
|
7547
|
+
Copyright (c) 2008-2017 vaiorabbit <http://twitter.com/vaiorabbit>
|
7824
7548
|
|
7825
7549
|
This software is provided 'as-is', without any express or implied
|
7826
7550
|
warranty. In no event will the authors be held liable for any damages
|