chipmunk 5.3.4.0-x86-mingw32 → 5.3.4.2-x86-mingw32

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.
Files changed (71) hide show
  1. data/README +33 -13
  2. data/Rakefile +20 -7
  3. data/ext/chipmunk/extconf.rb +55 -12
  4. data/ext/chipmunk/rb_chipmunk.c +92 -98
  5. data/ext/chipmunk/rb_chipmunk.h +44 -34
  6. data/ext/chipmunk/rb_cpArbiter.c +135 -98
  7. data/ext/chipmunk/rb_cpBB.c +84 -101
  8. data/ext/chipmunk/rb_cpBody.c +219 -241
  9. data/ext/chipmunk/rb_cpConstraint.c +173 -185
  10. data/ext/chipmunk/rb_cpShape.c +347 -251
  11. data/ext/chipmunk/rb_cpSpace.c +376 -408
  12. data/ext/chipmunk/rb_cpVect.c +132 -170
  13. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/chipmunk.h +163 -0
  14. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/chipmunk_ffi.h +59 -0
  15. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/chipmunk_private.h +49 -0
  16. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/chipmunk_types.h +151 -0
  17. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/chipmunk_unsafe.h +54 -0
  18. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/constraints/cpConstraint.h +105 -0
  19. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/constraints/cpDampedRotarySpring.h +46 -0
  20. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/constraints/cpDampedSpring.h +53 -0
  21. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/constraints/cpGearJoint.h +41 -0
  22. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/constraints/cpGrooveJoint.h +48 -0
  23. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/constraints/cpPinJoint.h +43 -0
  24. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/constraints/cpPivotJoint.h +42 -0
  25. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/constraints/cpRatchetJoint.h +40 -0
  26. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/constraints/cpRotaryLimitJoint.h +39 -0
  27. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/constraints/cpSimpleMotor.h +37 -0
  28. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/constraints/cpSlideJoint.h +44 -0
  29. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/constraints/util.h +134 -0
  30. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/cpArbiter.h +188 -0
  31. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/cpArray.h +49 -0
  32. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/cpBB.h +74 -0
  33. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/cpBody.h +219 -0
  34. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/cpCollision.h +28 -0
  35. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/cpHashSet.h +82 -0
  36. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/cpPolyShape.h +103 -0
  37. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/cpShape.h +177 -0
  38. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/cpSpace.h +206 -0
  39. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/cpSpaceHash.h +110 -0
  40. data/ext/chipmunk/vendor/chipmunk-5.3.4/include/chipmunk/cpVect.h +207 -0
  41. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/chipmunk.c +151 -0
  42. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/constraints/cpConstraint.c +54 -0
  43. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/constraints/cpDampedRotarySpring.c +105 -0
  44. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/constraints/cpDampedSpring.c +115 -0
  45. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/constraints/cpGearJoint.c +113 -0
  46. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/constraints/cpGrooveJoint.c +161 -0
  47. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/constraints/cpPinJoint.c +116 -0
  48. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/constraints/cpPivotJoint.c +114 -0
  49. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/constraints/cpRatchetJoint.c +126 -0
  50. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/constraints/cpRotaryLimitJoint.c +120 -0
  51. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/constraints/cpSimpleMotor.c +97 -0
  52. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/constraints/cpSlideJoint.c +129 -0
  53. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/cpArbiter.c +280 -0
  54. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/cpArray.c +143 -0
  55. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/cpBB.c +47 -0
  56. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/cpBody.c +192 -0
  57. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/cpCollision.c +411 -0
  58. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/cpHashSet.c +253 -0
  59. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/cpPolyShape.c +240 -0
  60. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/cpShape.c +405 -0
  61. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/cpSpace.c +499 -0
  62. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/cpSpaceComponent.c +279 -0
  63. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/cpSpaceHash.c +534 -0
  64. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/cpSpaceQuery.c +246 -0
  65. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/cpSpaceStep.c +398 -0
  66. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/cpVect.c +71 -0
  67. data/ext/chipmunk/vendor/chipmunk-5.3.4/src/prime.h +68 -0
  68. data/lib/1.9/chipmunk.so +0 -0
  69. data/lib/chipmunk.rb +19 -8
  70. metadata +84 -42
  71. data/lib/1.8/chipmunk.so +0 -0
@@ -1,15 +1,15 @@
1
1
  /* Copyright (c) 2007 Scott Lembcke
2
- *
2
+ *
3
3
  * Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  * of this software and associated documentation files (the "Software"), to deal
5
5
  * in the Software without restriction, including without limitation the rights
6
6
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
7
  * copies of the Software, and to permit persons to whom the Software is
8
8
  * furnished to do so, subject to the following conditions:
9
- *
9
+ *
10
10
  * The above copyright notice and this permission notice shall be included in
11
11
  * all copies or substantial portions of the Software.
12
- *
12
+ *
13
13
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
14
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
15
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -18,7 +18,7 @@
18
18
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
19
  * SOFTWARE.
20
20
  */
21
-
21
+
22
22
  #include <stdlib.h>
23
23
  #include "chipmunk.h"
24
24
 
@@ -28,319 +28,281 @@
28
28
  VALUE c_cpVect;
29
29
 
30
30
  static VALUE
31
- rb_cpVectForAngle(VALUE self, VALUE angle)
32
- {
33
- return VNEW(cpvforangle(NUM2DBL(angle)));
31
+ rb_cpVectForAngle(VALUE self, VALUE angle) {
32
+ return VNEW(cpvforangle(NUM2DBL(angle)));
34
33
  }
35
34
 
36
35
  static VALUE
37
- rb_cpVectAlloc(VALUE klass)
38
- {
39
- cpVect *v = malloc(sizeof(cpVect));
40
- return Data_Wrap_Struct(klass, NULL, free, v);
36
+ rb_cpVectAlloc(VALUE klass) {
37
+ cpVect *v = malloc(sizeof(cpVect));
38
+ return Data_Wrap_Struct(klass, NULL, free, v);
41
39
  }
42
40
 
43
41
  static VALUE
44
- rb_cpVectInitialize(VALUE self, VALUE x, VALUE y)
45
- {
46
- cpVect *v = VGET(self);
47
- v->x = NUM2DBL(x);
48
- v->y = NUM2DBL(y);
49
-
50
- return self;
42
+ rb_cpVectInitialize(VALUE self, VALUE x, VALUE y) {
43
+ cpVect *v = VGET(self);
44
+ v->x = NUM2DBL(x);
45
+ v->y = NUM2DBL(y);
46
+
47
+ return self;
51
48
  }
52
49
 
53
50
  static VALUE
54
- rb_cpVectGetX(VALUE self)
55
- {
56
- return rb_float_new(VGET(self)->x);
51
+ rb_cpVectGetX(VALUE self) {
52
+ return rb_float_new(VGET(self)->x);
57
53
  }
58
54
 
59
55
  static VALUE
60
- rb_cpVectGetY(VALUE self)
61
- {
62
- return rb_float_new(VGET(self)->y);
56
+ rb_cpVectGetY(VALUE self) {
57
+ return rb_float_new(VGET(self)->y);
63
58
  }
64
59
 
65
60
  static VALUE
66
- rb_cpVectSetX(VALUE self, VALUE x)
67
- {
68
- VGET(self)->x = NUM2DBL(x);
69
- return self;
61
+ rb_cpVectSetX(VALUE self, VALUE x) {
62
+ VGET(self)->x = NUM2DBL(x);
63
+ return self;
70
64
  }
71
65
 
72
66
  static VALUE
73
- rb_cpVectSetY(VALUE self, VALUE y)
74
- {
75
- VGET(self)->y = NUM2DBL(y);
76
- return self;
67
+ rb_cpVectSetY(VALUE self, VALUE y) {
68
+ VGET(self)->y = NUM2DBL(y);
69
+ return self;
77
70
  }
78
71
 
79
72
  static VALUE
80
- rb_cpVectToString(VALUE self)
81
- {
82
- char str[256];
83
- cpVect *v = VGET(self);
84
-
85
- sprintf(str, "(% .3f, % .3f)", v->x, v->y);
86
-
87
- return rb_str_new2(str);
73
+ rb_cpVectToString(VALUE self) {
74
+ char str[256];
75
+ cpVect *v = VGET(self);
76
+
77
+ sprintf(str, "(% .3f, % .3f)", v->x, v->y);
78
+
79
+ return rb_str_new2(str);
88
80
  }
89
81
 
90
82
  static VALUE
91
- rb_cpVectToArray(VALUE self)
92
- {
93
- cpVect *v = VGET(self);
94
- return rb_ary_new3(2, rb_float_new(v->x), rb_float_new(v->y));
83
+ rb_cpVectToArray(VALUE self) {
84
+ cpVect *v = VGET(self);
85
+ return rb_ary_new3(2, rb_float_new(v->x), rb_float_new(v->y));
95
86
  }
96
87
 
97
88
  static VALUE
98
- rb_cpVectToAngle(VALUE self)
99
- {
100
- return rb_float_new(cpvtoangle(*VGET(self)));
89
+ rb_cpVectToAngle(VALUE self) {
90
+ return rb_float_new(cpvtoangle(*VGET(self)));
101
91
  }
102
-
92
+
103
93
 
104
94
  static VALUE
105
- rb_cpVectNegate(VALUE self)
106
- {
107
- return VNEW(cpvneg(*VGET(self)));
95
+ rb_cpVectNegate(VALUE self) {
96
+ return VNEW(cpvneg(*VGET(self)));
108
97
  }
109
98
 
110
99
  static VALUE
111
- rb_cpVectAdd(VALUE self, VALUE v)
112
- {
113
- return VNEW(cpvadd(*VGET(self), *VGET(v)));
100
+ rb_cpVectAdd(VALUE self, VALUE v) {
101
+ return VNEW(cpvadd(*VGET(self), *VGET(v)));
114
102
  }
115
103
 
116
104
  static VALUE
117
- rb_cpVectSub(VALUE self, VALUE v)
118
- {
119
- return VNEW(cpvsub(*VGET(self), *VGET(v)));
105
+ rb_cpVectSub(VALUE self, VALUE v) {
106
+ return VNEW(cpvsub(*VGET(self), *VGET(v)));
120
107
  }
121
108
 
122
109
  static VALUE
123
- rb_cpVectSMult(VALUE self, VALUE s)
124
- {
125
- return VNEW(cpvmult(*VGET(self), NUM2DBL(s)));
110
+ rb_cpVectSMult(VALUE self, VALUE s) {
111
+ return VNEW(cpvmult(*VGET(self), NUM2DBL(s)));
126
112
  }
127
113
 
128
114
  static VALUE
129
- rb_cpVectSDiv(VALUE self, VALUE s)
130
- {
131
- cpFloat factor = 1.0f/(float)NUM2DBL(s);
132
- return VNEW(cpvmult(*VGET(self), factor));
115
+ rb_cpVectSDiv(VALUE self, VALUE s) {
116
+ cpFloat factor = 1.0f / (float)NUM2DBL(s);
117
+ return VNEW(cpvmult(*VGET(self), factor));
133
118
  }
134
119
 
135
120
  static VALUE
136
- rb_cpVectDot(VALUE self, VALUE v)
137
- {
138
- return rb_float_new(cpvdot(*VGET(self), *VGET(v)));
121
+ rb_cpVectDot(VALUE self, VALUE v) {
122
+ return rb_float_new(cpvdot(*VGET(self), *VGET(v)));
139
123
  }
140
124
 
141
125
  static VALUE
142
- rb_cpVectCross(VALUE self, VALUE v)
143
- {
144
- return rb_float_new(cpvcross(*VGET(self), *VGET(v)));
126
+ rb_cpVectCross(VALUE self, VALUE v) {
127
+ return rb_float_new(cpvcross(*VGET(self), *VGET(v)));
145
128
  }
146
129
 
147
130
  static VALUE
148
- rb_cpVectLength(VALUE self)
149
- {
150
- cpVect *v;
151
- Data_Get_Struct(self, cpVect, v);
152
- return rb_float_new(cpvlength(*v));
131
+ rb_cpVectLength(VALUE self) {
132
+ cpVect *v;
133
+ Data_Get_Struct(self, cpVect, v);
134
+ return rb_float_new(cpvlength(*v));
153
135
  }
154
136
 
155
137
  static VALUE
156
- rb_cpVectLengthsq(VALUE self)
157
- {
158
- cpVect *v;
159
- Data_Get_Struct(self, cpVect, v);
160
- return rb_float_new(cpvlengthsq(*v));
138
+ rb_cpVectLengthsq(VALUE self) {
139
+ cpVect *v;
140
+ Data_Get_Struct(self, cpVect, v);
141
+ return rb_float_new(cpvlengthsq(*v));
161
142
  }
162
143
 
163
144
  static VALUE
164
- rb_cpVectNorm(VALUE self)
165
- {
166
- return VNEW(cpvnormalize(*VGET(self)));
145
+ rb_cpVectNorm(VALUE self) {
146
+ return VNEW(cpvnormalize(*VGET(self)));
167
147
  }
168
148
 
169
149
  static VALUE
170
- rb_cpVectNormBang(VALUE self)
171
- {
172
- cpVect *v = VGET(self);
173
- *v = cpvnormalize(*v);
174
- return self;
150
+ rb_cpVectNormBang(VALUE self) {
151
+ cpVect *v = VGET(self);
152
+ *v = cpvnormalize(*v);
153
+ return self;
175
154
  }
176
155
 
177
156
  static VALUE
178
- rb_cpVectNormSafe(VALUE self)
179
- {
157
+ rb_cpVectNormSafe(VALUE self) {
180
158
  return VNEW(cpvnormalize_safe(*VGET(self)));
181
159
  }
182
160
 
183
161
  static VALUE
184
- rb_cpVectNormSafeBang(VALUE self)
185
- {
162
+ rb_cpVectNormSafeBang(VALUE self) {
186
163
  cpVect *v = VGET(self);
187
164
  *v = cpvnormalize_safe(*v);
188
165
  return self;
189
166
  }
190
167
 
191
168
  static VALUE
192
- rb_cpVectPerp(VALUE self)
193
- {
194
- return VNEW(cpvperp(*VGET(self)));
169
+ rb_cpVectPerp(VALUE self) {
170
+ return VNEW(cpvperp(*VGET(self)));
195
171
  }
196
172
 
197
173
  static VALUE
198
- rb_cpVectRperp(VALUE self)
199
- {
174
+ rb_cpVectRperp(VALUE self) {
200
175
  return VNEW(cpvrperp(*VGET(self)));
201
176
  }
202
177
 
203
178
  static VALUE
204
- rb_cpVectLerp(VALUE self, VALUE v, VALUE d)
205
- {
179
+ rb_cpVectLerp(VALUE self, VALUE v, VALUE d) {
206
180
  cpFloat df = NUM2DBL(d);
207
181
  return VNEW(cpvlerp(*VGET(self), *VGET(v), df));
208
182
  }
209
183
 
210
184
  static VALUE
211
- rb_cpVectLerpconst(VALUE self, VALUE v, VALUE d)
212
- {
185
+ rb_cpVectLerpconst(VALUE self, VALUE v, VALUE d) {
213
186
  cpFloat df = (cpFloat) NUM2DBL(d);
214
187
  return VNEW(cpvlerpconst(*VGET(self), *VGET(v), df));
215
188
  }
216
189
 
217
190
  static VALUE
218
- rb_cpVectSlerp(VALUE self, VALUE v, VALUE d)
219
- {
191
+ rb_cpVectSlerp(VALUE self, VALUE v, VALUE d) {
220
192
  cpFloat df = (cpFloat) NUM2DBL(d);
221
193
  return VNEW(cpvslerp(*VGET(self), *VGET(v), df));
222
194
  }
223
195
 
224
196
  static VALUE
225
- rb_cpVectSlerpconst(VALUE self, VALUE v, VALUE d)
226
- {
197
+ rb_cpVectSlerpconst(VALUE self, VALUE v, VALUE d) {
227
198
  cpFloat df = (cpFloat) NUM2DBL(d);
228
199
  return VNEW(cpvslerpconst(*VGET(self), *VGET(v), df));
229
200
  }
230
201
 
231
202
  static VALUE
232
- rb_cpVectProject(VALUE self, VALUE v)
233
- {
234
- return VNEW(cpvproject(*VGET(self), *VGET(v)));
203
+ rb_cpVectProject(VALUE self, VALUE v) {
204
+ return VNEW(cpvproject(*VGET(self), *VGET(v)));
235
205
  }
236
206
 
237
207
  static VALUE
238
- rb_cpVectRotate(VALUE self, VALUE v)
239
- {
240
- return VNEW(cpvrotate(*VGET(self), *VGET(v)));
208
+ rb_cpVectRotate(VALUE self, VALUE v) {
209
+ return VNEW(cpvrotate(*VGET(self), *VGET(v)));
241
210
  }
242
211
 
243
212
  static VALUE
244
- rb_cpVectUnRotate(VALUE self, VALUE v)
245
- {
246
- return VNEW(cpvunrotate(*VGET(self), *VGET(v)));
213
+ rb_cpVectUnRotate(VALUE self, VALUE v) {
214
+ return VNEW(cpvunrotate(*VGET(self), *VGET(v)));
247
215
  }
248
216
 
249
217
  static VALUE
250
- rb_cpVectDist(VALUE self, VALUE v)
251
- {
218
+ rb_cpVectDist(VALUE self, VALUE v) {
252
219
  return rb_float_new(cpvdist(*VGET(self), *VGET(v)));
253
220
  }
254
221
 
255
222
  static VALUE
256
- rb_cpVectDistsq(VALUE self, VALUE v)
257
- {
223
+ rb_cpVectDistsq(VALUE self, VALUE v) {
258
224
  return rb_float_new(cpvdistsq(*VGET(self), *VGET(v)));
259
225
  }
260
226
 
261
227
  static VALUE
262
- rb_cpVectClamp(VALUE self, VALUE len)
263
- {
228
+ rb_cpVectClamp(VALUE self, VALUE len) {
264
229
  return VNEW(cpvclamp(*VGET(self), NUM2DBL(len)));
265
230
  }
266
231
 
267
232
 
268
233
  static VALUE
269
- rb_cpVectNear(VALUE self, VALUE v, VALUE d)
270
- {
271
- cpFloat dist = NUM2DBL(d);
272
- cpVect delta = cpvsub(*VGET(self), *VGET(v));
273
- return (cpvdot(delta, delta) <= dist*dist) ? Qtrue : Qfalse;
234
+ rb_cpVectNear(VALUE self, VALUE v, VALUE d) {
235
+ cpFloat dist = NUM2DBL(d);
236
+ cpVect delta = cpvsub(*VGET(self), *VGET(v));
237
+ return (cpvdot(delta, delta) <= dist * dist) ? Qtrue : Qfalse;
274
238
  }
275
239
 
276
240
  static VALUE
277
- rb_cpVectEql(VALUE self, VALUE other)
278
- {
241
+ rb_cpVectEql(VALUE self, VALUE other) {
279
242
  return cpveql(*VGET(self), *VGET(other)) ? Qtrue : Qfalse;
280
243
  }
281
244
 
282
245
  // the usefulness of unary plus is debatable, but I'll include it for consistency.
283
- static VALUE rb_cpVectUnaryplus(VALUE self) {
246
+ static VALUE
247
+ rb_cpVectUnaryplus(VALUE self) {
284
248
  return self;
285
249
  }
286
250
 
287
251
 
288
252
  static VALUE
289
- rb_vec2(VALUE self, VALUE x, VALUE y)
290
- {
291
- return VNEW(cpv(NUM2DBL(x), NUM2DBL(y)));
253
+ rb_vec2(VALUE self, VALUE x, VALUE y) {
254
+ return VNEW(cpv(NUM2DBL(x), NUM2DBL(y)));
292
255
  }
293
256
 
294
257
  void
295
- Init_cpVect(void)
296
- {
297
- c_cpVect = rb_define_class_under(m_Chipmunk, "Vec2", rb_cObject);
298
- rb_define_singleton_method(c_cpVect, "for_angle", rb_cpVectForAngle, 1);
299
-
300
- rb_define_alloc_func(c_cpVect, rb_cpVectAlloc);
301
- rb_define_method(c_cpVect, "initialize", rb_cpVectInitialize, 2);
302
-
303
- rb_define_method(c_cpVect, "x", rb_cpVectGetX, 0);
304
- rb_define_method(c_cpVect, "y", rb_cpVectGetY, 0);
305
- rb_define_method(c_cpVect, "x=", rb_cpVectSetX, 1);
306
- rb_define_method(c_cpVect, "y=", rb_cpVectSetY, 1);
307
-
308
- rb_define_method(c_cpVect, "to_s", rb_cpVectToString, 0);
309
- rb_define_method(c_cpVect, "to_a", rb_cpVectToArray, 0);
310
- rb_define_method(c_cpVect, "to_angle", rb_cpVectToAngle, 0);
311
-
312
- rb_define_method(c_cpVect, "-@", rb_cpVectNegate, 0);
258
+ Init_cpVect(void) {
259
+ c_cpVect = rb_define_class_under(m_Chipmunk, "Vec2", rb_cObject);
260
+ rb_define_singleton_method(c_cpVect, "for_angle", rb_cpVectForAngle, 1);
261
+
262
+ rb_define_alloc_func(c_cpVect, rb_cpVectAlloc);
263
+ rb_define_method(c_cpVect, "initialize", rb_cpVectInitialize, 2);
264
+
265
+ rb_define_method(c_cpVect, "x", rb_cpVectGetX, 0);
266
+ rb_define_method(c_cpVect, "y", rb_cpVectGetY, 0);
267
+ rb_define_method(c_cpVect, "x=", rb_cpVectSetX, 1);
268
+ rb_define_method(c_cpVect, "y=", rb_cpVectSetY, 1);
269
+
270
+ rb_define_method(c_cpVect, "to_s", rb_cpVectToString, 0);
271
+ rb_define_method(c_cpVect, "to_a", rb_cpVectToArray, 0);
272
+ rb_define_method(c_cpVect, "to_angle", rb_cpVectToAngle, 0);
273
+
274
+ rb_define_method(c_cpVect, "-@", rb_cpVectNegate, 0);
313
275
  rb_define_method(c_cpVect, "+@", rb_cpVectUnaryplus, 0);
314
- rb_define_method(c_cpVect, "+", rb_cpVectAdd, 1);
315
- rb_define_method(c_cpVect, "-", rb_cpVectSub, 1);
316
- rb_define_method(c_cpVect, "*", rb_cpVectSMult, 1);
317
- rb_define_method(c_cpVect, "/", rb_cpVectSDiv, 1);
318
- rb_define_method(c_cpVect, "dot", rb_cpVectDot, 1);
319
- rb_define_method(c_cpVect, "cross", rb_cpVectCross, 1);
320
- rb_define_method(c_cpVect, "length", rb_cpVectLength, 0);
321
- rb_define_method(c_cpVect, "lengthsq", rb_cpVectLengthsq, 0);
322
- rb_define_method(c_cpVect, "normalize", rb_cpVectNorm, 0);
323
- rb_define_method(c_cpVect, "normalize!", rb_cpVectNormBang, 0);
276
+ rb_define_method(c_cpVect, "+", rb_cpVectAdd, 1);
277
+ rb_define_method(c_cpVect, "-", rb_cpVectSub, 1);
278
+ rb_define_method(c_cpVect, "*", rb_cpVectSMult, 1);
279
+ rb_define_method(c_cpVect, "/", rb_cpVectSDiv, 1);
280
+ rb_define_method(c_cpVect, "dot", rb_cpVectDot, 1);
281
+ rb_define_method(c_cpVect, "cross", rb_cpVectCross, 1);
282
+ rb_define_method(c_cpVect, "length", rb_cpVectLength, 0);
283
+ rb_define_method(c_cpVect, "lengthsq", rb_cpVectLengthsq, 0);
284
+ rb_define_method(c_cpVect, "normalize", rb_cpVectNorm, 0);
285
+ rb_define_method(c_cpVect, "normalize!", rb_cpVectNormBang, 0);
324
286
  rb_define_method(c_cpVect, "normalize_safe", rb_cpVectNormSafe, 0);
325
- rb_define_method(c_cpVect, "normalize_safe!", rb_cpVectNormSafeBang, 0);
326
- rb_define_method(c_cpVect, "perp", rb_cpVectPerp, 0);
287
+ rb_define_method(c_cpVect, "normalize_safe!", rb_cpVectNormSafeBang, 0);
288
+ rb_define_method(c_cpVect, "perp", rb_cpVectPerp, 0);
327
289
  rb_define_method(c_cpVect, "rperp", rb_cpVectRperp, 0);
328
290
  rb_define_method(c_cpVect, "lerp", rb_cpVectLerp, 2);
329
291
  rb_define_method(c_cpVect, "lerpconst", rb_cpVectLerpconst, 2);
330
292
  rb_define_method(c_cpVect, "slerp", rb_cpVectSlerp, 2);
331
293
  rb_define_method(c_cpVect, "slerpconst", rb_cpVectSlerpconst, 2);
332
294
 
333
- rb_define_method(c_cpVect, "project", rb_cpVectProject, 1);
334
- rb_define_method(c_cpVect, "rotate", rb_cpVectRotate, 1);
335
- rb_define_method(c_cpVect, "unrotate", rb_cpVectUnRotate, 1);
336
- rb_define_method(c_cpVect, "near?", rb_cpVectNear, 2);
337
-
295
+ rb_define_method(c_cpVect, "project", rb_cpVectProject, 1);
296
+ rb_define_method(c_cpVect, "rotate", rb_cpVectRotate, 1);
297
+ rb_define_method(c_cpVect, "unrotate", rb_cpVectUnRotate, 1);
298
+ rb_define_method(c_cpVect, "near?", rb_cpVectNear, 2);
299
+
338
300
  rb_define_method(c_cpVect, "dist", rb_cpVectDist, 1);
339
301
  rb_define_method(c_cpVect, "distsq", rb_cpVectDistsq, 1);
340
-
302
+
341
303
  rb_define_method(c_cpVect, "==", rb_cpVectEql, 1);
342
304
  rb_define_method(c_cpVect, "clamp", rb_cpVectClamp, 1);
343
-
344
-
345
- rb_define_global_function("vec2", rb_vec2, 2);
305
+
306
+
307
+ rb_define_global_function("vec2", rb_vec2, 2);
346
308
  }