melonjs 10.2.2 → 10.4.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.
- package/README.md +6 -6
- package/dist/melonjs.js +2907 -3383
- package/dist/melonjs.min.js +4 -4
- package/dist/melonjs.module.d.ts +3620 -4528
- package/dist/melonjs.module.js +3210 -3331
- package/package.json +19 -19
- package/src/audio/audio.js +30 -31
- package/src/camera/camera2d.js +47 -58
- package/src/entity/draggable.js +11 -21
- package/src/entity/droptarget.js +12 -22
- package/src/entity/entity.js +32 -38
- package/src/game.js +21 -22
- package/src/{shapes → geometries}/ellipse.js +40 -47
- package/src/{shapes → geometries}/line.js +9 -12
- package/src/{shapes → geometries}/poly.js +100 -53
- package/src/{shapes → geometries}/rectangle.js +42 -45
- package/src/index.js +9 -20
- package/src/input/gamepad.js +11 -10
- package/src/input/input.js +2 -3
- package/src/input/keyboard.js +113 -113
- package/src/input/pointer.js +61 -29
- package/src/input/pointerevent.js +92 -29
- package/src/lang/deprecated.js +44 -14
- package/src/level/level.js +23 -24
- package/src/level/tiled/TMXGroup.js +7 -9
- package/src/level/tiled/TMXLayer.js +30 -33
- package/src/level/tiled/TMXObject.js +59 -53
- package/src/level/tiled/TMXTile.js +18 -19
- package/src/level/tiled/TMXTileMap.js +38 -46
- package/src/level/tiled/TMXTileset.js +12 -16
- package/src/level/tiled/TMXTilesetGroup.js +9 -10
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +7 -9
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +7 -9
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +4 -6
- package/src/level/tiled/renderer/TMXRenderer.js +24 -26
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +1 -5
- package/src/loader/loader.js +17 -16
- package/src/loader/loadingscreen.js +8 -10
- package/src/math/color.js +47 -67
- package/src/math/math.js +15 -16
- package/src/math/matrix2.js +53 -59
- package/src/math/matrix3.js +56 -63
- package/src/math/observable_vector2.js +87 -77
- package/src/math/observable_vector3.js +97 -80
- package/src/math/vector2.js +107 -97
- package/src/math/vector3.js +116 -100
- package/src/particles/emitter.js +66 -76
- package/src/particles/particle.js +4 -6
- package/src/particles/particlecontainer.js +2 -4
- package/src/physics/body.js +47 -146
- package/src/physics/bounds.js +48 -50
- package/src/physics/collision.js +13 -14
- package/src/physics/detector.js +14 -14
- package/src/physics/quadtree.js +18 -21
- package/src/physics/sat.js +30 -30
- package/src/physics/world.js +24 -29
- package/src/plugin/plugin.js +11 -15
- package/src/renderable/GUI.js +41 -47
- package/src/renderable/collectable.js +5 -10
- package/src/renderable/colorlayer.js +10 -15
- package/src/renderable/container.js +87 -73
- package/src/renderable/imagelayer.js +25 -32
- package/src/renderable/nineslicesprite.js +41 -42
- package/src/renderable/renderable.js +113 -124
- package/src/renderable/sprite.js +62 -69
- package/src/renderable/trigger.js +26 -32
- package/src/state/stage.js +13 -18
- package/src/state/state.js +26 -27
- package/src/system/device.js +76 -133
- package/src/system/event.js +81 -70
- package/src/system/pooling.js +11 -12
- package/src/system/save.js +3 -4
- package/src/system/timer.js +19 -20
- package/src/text/bitmaptext.js +57 -55
- package/src/text/bitmaptextdata.js +10 -11
- package/src/text/glyph.js +3 -0
- package/src/text/text.js +49 -55
- package/src/tweens/easing.js +1 -1
- package/src/tweens/interpolation.js +1 -1
- package/src/tweens/tween.js +44 -46
- package/src/utils/agent.js +3 -4
- package/src/utils/array.js +4 -5
- package/src/utils/file.js +3 -4
- package/src/utils/function.js +4 -5
- package/src/utils/string.js +7 -9
- package/src/utils/utils.js +4 -5
- package/src/video/canvas/canvas_renderer.js +60 -62
- package/src/video/renderer.js +53 -58
- package/src/video/texture.js +98 -112
- package/src/video/texture_cache.js +4 -6
- package/src/video/video.js +16 -17
- package/src/video/webgl/buffer/vertex.js +2 -2
- package/src/video/webgl/glshader.js +37 -39
- package/src/video/webgl/webgl_compositor.js +128 -110
- package/src/video/webgl/webgl_renderer.js +126 -106
|
@@ -3,21 +3,19 @@ import {clamp} from "./math.js";
|
|
|
3
3
|
import pool from "./../system/pooling.js";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* A Vector3d object that provide notification by executing the given callback when the vector is changed.
|
|
7
6
|
* @classdesc
|
|
8
|
-
*
|
|
9
|
-
* @
|
|
10
|
-
* @memberOf me
|
|
11
|
-
* @constructor
|
|
12
|
-
* @param {number} [x=0] x value of the vector
|
|
13
|
-
* @param {number} [y=0] y value of the vector
|
|
14
|
-
* @param {number} [z=0] z value of the vector
|
|
15
|
-
* @param {object} settings additional required parameters
|
|
16
|
-
* @param {Function} settings.onUpdate the callback to be executed when the vector is changed
|
|
17
|
-
* @param {object} [settings.scope] the value to use as this when calling onUpdate
|
|
7
|
+
* A Vector3d object that provide notification by executing the given callback when the vector is changed.
|
|
8
|
+
* @augments Vector3d
|
|
18
9
|
*/
|
|
19
10
|
class ObservableVector3d extends Vector3d {
|
|
20
|
-
|
|
11
|
+
/**
|
|
12
|
+
* @param {number} x x value of the vector
|
|
13
|
+
* @param {number} y y value of the vector
|
|
14
|
+
* @param {number} z z value of the vector
|
|
15
|
+
* @param {object} settings additional required parameters
|
|
16
|
+
* @param {Function} settings.onUpdate the callback to be executed when the vector is changed
|
|
17
|
+
* @param {object} [settings.scope] the value to use as this when calling onUpdate
|
|
18
|
+
*/
|
|
21
19
|
constructor(x = 0, y = 0, z = 0, settings) {
|
|
22
20
|
super(x, y, z);
|
|
23
21
|
if (typeof(settings) === "undefined") {
|
|
@@ -45,7 +43,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
45
43
|
* @public
|
|
46
44
|
* @type {number}
|
|
47
45
|
* @name x
|
|
48
|
-
* @
|
|
46
|
+
* @memberof ObservableVector3d
|
|
49
47
|
*/
|
|
50
48
|
|
|
51
49
|
get x() {
|
|
@@ -66,7 +64,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
66
64
|
* @public
|
|
67
65
|
* @type {number}
|
|
68
66
|
* @name y
|
|
69
|
-
* @
|
|
67
|
+
* @memberof ObservableVector3d
|
|
70
68
|
*/
|
|
71
69
|
|
|
72
70
|
get y() {
|
|
@@ -88,7 +86,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
88
86
|
* @public
|
|
89
87
|
* @type {number}
|
|
90
88
|
* @name z
|
|
91
|
-
* @
|
|
89
|
+
* @memberof ObservableVector3d
|
|
92
90
|
*/
|
|
93
91
|
|
|
94
92
|
|
|
@@ -125,12 +123,12 @@ class ObservableVector3d extends Vector3d {
|
|
|
125
123
|
/**
|
|
126
124
|
* set the vector value without triggering the callback
|
|
127
125
|
* @name setMuted
|
|
128
|
-
* @
|
|
126
|
+
* @memberof ObservableVector3d
|
|
129
127
|
* @function
|
|
130
128
|
* @param {number} x x value of the vector
|
|
131
129
|
* @param {number} y y value of the vector
|
|
132
130
|
* @param {number} [z=0] z value of the vector
|
|
133
|
-
* @returns {
|
|
131
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
134
132
|
*/
|
|
135
133
|
setMuted(x, y, z) {
|
|
136
134
|
this._x = x;
|
|
@@ -142,11 +140,11 @@ class ObservableVector3d extends Vector3d {
|
|
|
142
140
|
/**
|
|
143
141
|
* set the callback to be executed when the vector is changed
|
|
144
142
|
* @name setCallback
|
|
145
|
-
* @
|
|
143
|
+
* @memberof ObservableVector3d
|
|
146
144
|
* @function
|
|
147
145
|
* @param {Function} fn callback
|
|
148
146
|
* @param {Function} [scope=null] scope
|
|
149
|
-
* @returns {
|
|
147
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
150
148
|
*/
|
|
151
149
|
setCallback(fn, scope = null) {
|
|
152
150
|
if (typeof(fn) !== "function") {
|
|
@@ -162,10 +160,10 @@ class ObservableVector3d extends Vector3d {
|
|
|
162
160
|
/**
|
|
163
161
|
* Add the passed vector to this vector
|
|
164
162
|
* @name add
|
|
165
|
-
* @
|
|
163
|
+
* @memberof ObservableVector3d
|
|
166
164
|
* @function
|
|
167
|
-
* @param {
|
|
168
|
-
* @returns {
|
|
165
|
+
* @param {Vector2d|Vector3d|ObservableVector2d|ObservableVector3d} v
|
|
166
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
169
167
|
*/
|
|
170
168
|
add(v) {
|
|
171
169
|
return this._set(this._x + v.x, this._y + v.y, this._z + (v.z || 0));
|
|
@@ -174,10 +172,10 @@ class ObservableVector3d extends Vector3d {
|
|
|
174
172
|
/**
|
|
175
173
|
* Substract the passed vector to this vector
|
|
176
174
|
* @name sub
|
|
177
|
-
* @
|
|
175
|
+
* @memberof ObservableVector3d
|
|
178
176
|
* @function
|
|
179
|
-
* @param {
|
|
180
|
-
* @returns {
|
|
177
|
+
* @param {Vector2d|Vector3d|ObservableVector2d|ObservableVector3d} v
|
|
178
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
181
179
|
*/
|
|
182
180
|
sub(v) {
|
|
183
181
|
return this._set(this._x - v.x, this._y - v.y, this._z - (v.z || 0));
|
|
@@ -186,12 +184,12 @@ class ObservableVector3d extends Vector3d {
|
|
|
186
184
|
/**
|
|
187
185
|
* Multiply this vector values by the given scalar
|
|
188
186
|
* @name scale
|
|
189
|
-
* @
|
|
187
|
+
* @memberof ObservableVector3d
|
|
190
188
|
* @function
|
|
191
189
|
* @param {number} x
|
|
192
190
|
* @param {number} [y=x]
|
|
193
191
|
* @param {number} [z=1]
|
|
194
|
-
* @returns {
|
|
192
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
195
193
|
*/
|
|
196
194
|
scale(x, y, z) {
|
|
197
195
|
y = (typeof (y) !== "undefined" ? y : x);
|
|
@@ -201,10 +199,10 @@ class ObservableVector3d extends Vector3d {
|
|
|
201
199
|
/**
|
|
202
200
|
* Multiply this vector values by the passed vector
|
|
203
201
|
* @name scaleV
|
|
204
|
-
* @
|
|
202
|
+
* @memberof ObservableVector3d
|
|
205
203
|
* @function
|
|
206
|
-
* @param {
|
|
207
|
-
* @returns {
|
|
204
|
+
* @param {Vector2d|Vector3d|ObservableVector2d|ObservableVector3d} v
|
|
205
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
208
206
|
*/
|
|
209
207
|
scaleV(v) {
|
|
210
208
|
return this._set(this._x * v.x, this._y * v.y, this._z * (v.z || 1));
|
|
@@ -213,10 +211,10 @@ class ObservableVector3d extends Vector3d {
|
|
|
213
211
|
/**
|
|
214
212
|
* Divide this vector values by the passed value
|
|
215
213
|
* @name div
|
|
216
|
-
* @
|
|
214
|
+
* @memberof ObservableVector3d
|
|
217
215
|
* @function
|
|
218
216
|
* @param {number} n the value to divide the vector by
|
|
219
|
-
* @returns {
|
|
217
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
220
218
|
*/
|
|
221
219
|
div(n) {
|
|
222
220
|
return this._set(this._x / n, this._y / n, this._z / n);
|
|
@@ -225,9 +223,9 @@ class ObservableVector3d extends Vector3d {
|
|
|
225
223
|
/**
|
|
226
224
|
* Update this vector values to absolute values
|
|
227
225
|
* @name abs
|
|
228
|
-
* @
|
|
226
|
+
* @memberof ObservableVector3d
|
|
229
227
|
* @function
|
|
230
|
-
* @returns {
|
|
228
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
231
229
|
*/
|
|
232
230
|
abs() {
|
|
233
231
|
return this._set(
|
|
@@ -240,11 +238,11 @@ class ObservableVector3d extends Vector3d {
|
|
|
240
238
|
/**
|
|
241
239
|
* Clamp the vector value within the specified value range
|
|
242
240
|
* @name clamp
|
|
243
|
-
* @
|
|
241
|
+
* @memberof ObservableVector3d
|
|
244
242
|
* @function
|
|
245
243
|
* @param {number} low
|
|
246
244
|
* @param {number} high
|
|
247
|
-
* @returns {
|
|
245
|
+
* @returns {ObservableVector3d} new me.ObservableVector3d
|
|
248
246
|
*/
|
|
249
247
|
clamp(low, high) {
|
|
250
248
|
return new ObservableVector3d(
|
|
@@ -258,11 +256,11 @@ class ObservableVector3d extends Vector3d {
|
|
|
258
256
|
/**
|
|
259
257
|
* Clamp this vector value within the specified value range
|
|
260
258
|
* @name clampSelf
|
|
261
|
-
* @
|
|
259
|
+
* @memberof ObservableVector3d
|
|
262
260
|
* @function
|
|
263
261
|
* @param {number} low
|
|
264
262
|
* @param {number} high
|
|
265
|
-
* @returns {
|
|
263
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
266
264
|
*/
|
|
267
265
|
clampSelf(low, high) {
|
|
268
266
|
return this._set(
|
|
@@ -275,10 +273,10 @@ class ObservableVector3d extends Vector3d {
|
|
|
275
273
|
/**
|
|
276
274
|
* Update this vector with the minimum value between this and the passed vector
|
|
277
275
|
* @name minV
|
|
278
|
-
* @
|
|
276
|
+
* @memberof ObservableVector3d
|
|
279
277
|
* @function
|
|
280
|
-
* @param {
|
|
281
|
-
* @returns {
|
|
278
|
+
* @param {Vector2d|Vector3d|ObservableVector2d|ObservableVector3d} v
|
|
279
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
282
280
|
*/
|
|
283
281
|
minV(v) {
|
|
284
282
|
var _vz = v.z || 0;
|
|
@@ -292,10 +290,10 @@ class ObservableVector3d extends Vector3d {
|
|
|
292
290
|
/**
|
|
293
291
|
* Update this vector with the maximum value between this and the passed vector
|
|
294
292
|
* @name maxV
|
|
295
|
-
* @
|
|
293
|
+
* @memberof ObservableVector3d
|
|
296
294
|
* @function
|
|
297
|
-
* @param {
|
|
298
|
-
* @returns {
|
|
295
|
+
* @param {Vector2d|Vector3d|ObservableVector2d|ObservableVector3d} v
|
|
296
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
299
297
|
*/
|
|
300
298
|
maxV(v) {
|
|
301
299
|
var _vz = v.z || 0;
|
|
@@ -309,9 +307,9 @@ class ObservableVector3d extends Vector3d {
|
|
|
309
307
|
/**
|
|
310
308
|
* Floor the vector values
|
|
311
309
|
* @name floor
|
|
312
|
-
* @
|
|
310
|
+
* @memberof ObservableVector3d
|
|
313
311
|
* @function
|
|
314
|
-
* @returns {
|
|
312
|
+
* @returns {ObservableVector3d} new me.ObservableVector3d
|
|
315
313
|
*/
|
|
316
314
|
floor() {
|
|
317
315
|
return new ObservableVector3d(
|
|
@@ -325,9 +323,9 @@ class ObservableVector3d extends Vector3d {
|
|
|
325
323
|
/**
|
|
326
324
|
* Floor this vector values
|
|
327
325
|
* @name floorSelf
|
|
328
|
-
* @
|
|
326
|
+
* @memberof ObservableVector3d
|
|
329
327
|
* @function
|
|
330
|
-
* @returns {
|
|
328
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
331
329
|
*/
|
|
332
330
|
floorSelf() {
|
|
333
331
|
return this._set(Math.floor(this._x), Math.floor(this._y), Math.floor(this._z));
|
|
@@ -336,9 +334,9 @@ class ObservableVector3d extends Vector3d {
|
|
|
336
334
|
/**
|
|
337
335
|
* Ceil the vector values
|
|
338
336
|
* @name ceil
|
|
339
|
-
* @
|
|
337
|
+
* @memberof ObservableVector3d
|
|
340
338
|
* @function
|
|
341
|
-
* @returns {
|
|
339
|
+
* @returns {ObservableVector3d} new me.ObservableVector3d
|
|
342
340
|
*/
|
|
343
341
|
ceil() {
|
|
344
342
|
return new ObservableVector3d(
|
|
@@ -352,9 +350,9 @@ class ObservableVector3d extends Vector3d {
|
|
|
352
350
|
/**
|
|
353
351
|
* Ceil this vector values
|
|
354
352
|
* @name ceilSelf
|
|
355
|
-
* @
|
|
353
|
+
* @memberof ObservableVector3d
|
|
356
354
|
* @function
|
|
357
|
-
* @returns {
|
|
355
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
358
356
|
*/
|
|
359
357
|
ceilSelf() {
|
|
360
358
|
return this._set(Math.ceil(this._x), Math.ceil(this._y), Math.ceil(this._z));
|
|
@@ -363,9 +361,9 @@ class ObservableVector3d extends Vector3d {
|
|
|
363
361
|
/**
|
|
364
362
|
* Negate the vector values
|
|
365
363
|
* @name negate
|
|
366
|
-
* @
|
|
364
|
+
* @memberof ObservableVector3d
|
|
367
365
|
* @function
|
|
368
|
-
* @returns {
|
|
366
|
+
* @returns {ObservableVector3d} new me.ObservableVector3d
|
|
369
367
|
*/
|
|
370
368
|
negate() {
|
|
371
369
|
return new ObservableVector3d(
|
|
@@ -379,9 +377,9 @@ class ObservableVector3d extends Vector3d {
|
|
|
379
377
|
/**
|
|
380
378
|
* Negate this vector values
|
|
381
379
|
* @name negateSelf
|
|
382
|
-
* @
|
|
380
|
+
* @memberof ObservableVector3d
|
|
383
381
|
* @function
|
|
384
|
-
* @returns {
|
|
382
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
385
383
|
*/
|
|
386
384
|
negateSelf() {
|
|
387
385
|
return this._set(-this._x, -this._y, -this._z);
|
|
@@ -390,10 +388,10 @@ class ObservableVector3d extends Vector3d {
|
|
|
390
388
|
/**
|
|
391
389
|
* Copy the components of the given vector into this one
|
|
392
390
|
* @name copy
|
|
393
|
-
* @
|
|
391
|
+
* @memberof ObservableVector3d
|
|
394
392
|
* @function
|
|
395
|
-
* @param {
|
|
396
|
-
* @returns {
|
|
393
|
+
* @param {Vector2d|Vector3d|ObservableVector2d|ObservableVector3d} v
|
|
394
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
397
395
|
*/
|
|
398
396
|
copy(v) {
|
|
399
397
|
return this._set(v.x, v.y, v.z || 0);
|
|
@@ -402,9 +400,9 @@ class ObservableVector3d extends Vector3d {
|
|
|
402
400
|
/**
|
|
403
401
|
* return true if the two vectors are the same
|
|
404
402
|
* @name equals
|
|
405
|
-
* @
|
|
403
|
+
* @memberof ObservableVector3d
|
|
406
404
|
* @function
|
|
407
|
-
* @param {
|
|
405
|
+
* @param {Vector2d|Vector3d|ObservableVector2d|ObservableVector3d} v
|
|
408
406
|
* @returns {boolean}
|
|
409
407
|
*/
|
|
410
408
|
equals(v) {
|
|
@@ -415,9 +413,9 @@ class ObservableVector3d extends Vector3d {
|
|
|
415
413
|
* change this vector to be perpendicular to what it was before.<br>
|
|
416
414
|
* (Effectively rotates it 90 degrees in a clockwise direction)
|
|
417
415
|
* @name perp
|
|
418
|
-
* @
|
|
416
|
+
* @memberof ObservableVector3d
|
|
419
417
|
* @function
|
|
420
|
-
* @returns {
|
|
418
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
421
419
|
*/
|
|
422
420
|
perp() {
|
|
423
421
|
return this._set(this._y, -this._x, this._z);
|
|
@@ -426,11 +424,11 @@ class ObservableVector3d extends Vector3d {
|
|
|
426
424
|
/**
|
|
427
425
|
* Rotate this vector (counter-clockwise) by the specified angle (in radians).
|
|
428
426
|
* @name rotate
|
|
429
|
-
* @
|
|
427
|
+
* @memberof ObservableVector3d
|
|
430
428
|
* @function
|
|
431
429
|
* @param {number} angle The angle to rotate (in radians)
|
|
432
|
-
* @param {
|
|
433
|
-
* @returns {
|
|
430
|
+
* @param {Vector2d|ObservableVector2d} [v] an optional point to rotate around (on the same z axis)
|
|
431
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
434
432
|
*/
|
|
435
433
|
rotate(angle, v) {
|
|
436
434
|
var cx = 0;
|
|
@@ -453,24 +451,43 @@ class ObservableVector3d extends Vector3d {
|
|
|
453
451
|
|
|
454
452
|
/**
|
|
455
453
|
* return the dot product of this vector and the passed one
|
|
456
|
-
* @name
|
|
457
|
-
* @
|
|
454
|
+
* @name dot
|
|
455
|
+
* @memberof ObservableVector3d
|
|
458
456
|
* @function
|
|
459
|
-
* @param {
|
|
457
|
+
* @param {Vector2d|Vector3d|ObservableVector2d|ObservableVector3d} v
|
|
460
458
|
* @returns {number} The dot product.
|
|
461
459
|
*/
|
|
462
|
-
|
|
460
|
+
dot(v) {
|
|
463
461
|
return this._x * v.x + this._y * v.y + this._z * (v.z || 1);
|
|
464
462
|
}
|
|
465
463
|
|
|
464
|
+
/**
|
|
465
|
+
* calculate the cross product of this vector and the passed one
|
|
466
|
+
* @name cross
|
|
467
|
+
* @memberof ObservableVector3d
|
|
468
|
+
* @function
|
|
469
|
+
* @param {Vector3d|ObservableVector3d} v
|
|
470
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
471
|
+
*/
|
|
472
|
+
cross(v) {
|
|
473
|
+
var ax = this._x, ay = this._y, az = this._z;
|
|
474
|
+
var bx = v.x, by = v.y, bz = v.z;
|
|
475
|
+
|
|
476
|
+
return this._set(
|
|
477
|
+
ay * bz - az * by,
|
|
478
|
+
az * bx - ax * bz,
|
|
479
|
+
ax * by - ay * bx
|
|
480
|
+
);
|
|
481
|
+
}
|
|
482
|
+
|
|
466
483
|
/**
|
|
467
484
|
* Linearly interpolate between this vector and the given one.
|
|
468
485
|
* @name lerp
|
|
469
|
-
* @
|
|
486
|
+
* @memberof ObservableVector3d
|
|
470
487
|
* @function
|
|
471
|
-
* @param {
|
|
488
|
+
* @param {Vector3d|ObservableVector3d} v
|
|
472
489
|
* @param {number} alpha distance along the line (alpha = 0 will be this vector, and alpha = 1 will be the given one).
|
|
473
|
-
* @returns {
|
|
490
|
+
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
474
491
|
*/
|
|
475
492
|
lerp(v, alpha) {
|
|
476
493
|
this._x += ( v.x - this._x ) * alpha;
|
|
@@ -482,9 +499,9 @@ class ObservableVector3d extends Vector3d {
|
|
|
482
499
|
/**
|
|
483
500
|
* return the distance between this vector and the passed one
|
|
484
501
|
* @name distance
|
|
485
|
-
* @
|
|
502
|
+
* @memberof ObservableVector3d
|
|
486
503
|
* @function
|
|
487
|
-
* @param {
|
|
504
|
+
* @param {Vector2d|Vector3d|ObservableVector2d|ObservableVector3d} v
|
|
488
505
|
* @returns {number}
|
|
489
506
|
*/
|
|
490
507
|
distance(v) {
|
|
@@ -497,9 +514,9 @@ class ObservableVector3d extends Vector3d {
|
|
|
497
514
|
/**
|
|
498
515
|
* return a clone copy of this vector
|
|
499
516
|
* @name clone
|
|
500
|
-
* @
|
|
517
|
+
* @memberof ObservableVector3d
|
|
501
518
|
* @function
|
|
502
|
-
* @returns {
|
|
519
|
+
* @returns {ObservableVector3d} new me.ObservableVector3d
|
|
503
520
|
*/
|
|
504
521
|
clone() {
|
|
505
522
|
return pool.pull("ObservableVector3d",
|
|
@@ -513,9 +530,9 @@ class ObservableVector3d extends Vector3d {
|
|
|
513
530
|
/**
|
|
514
531
|
* return a `me.Vector3d` copy of this `me.ObservableVector3d` object
|
|
515
532
|
* @name toVector3d
|
|
516
|
-
* @
|
|
533
|
+
* @memberof ObservableVector3d
|
|
517
534
|
* @function
|
|
518
|
-
* @returns {
|
|
535
|
+
* @returns {Vector3d} new me.Vector3d
|
|
519
536
|
*/
|
|
520
537
|
toVector3d() {
|
|
521
538
|
return pool.pull("Vector3d", this._x, this._y, this._z);
|
|
@@ -524,7 +541,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
524
541
|
/**
|
|
525
542
|
* convert the object to a string representation
|
|
526
543
|
* @name toString
|
|
527
|
-
* @
|
|
544
|
+
* @memberof ObservableVector3d
|
|
528
545
|
* @function
|
|
529
546
|
* @returns {string}
|
|
530
547
|
*/
|