three-nebula 11.0.0 → 11.1.1
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/CHANGELOG.md +16 -0
- package/dist/three-nebula.cjs +109 -0
- package/dist/three-nebula.cjs.map +1 -0
- package/dist/three-nebula.mjs +2969 -0
- package/dist/three-nebula.mjs.map +1 -0
- package/dist/three-nebula.umd.js +109 -0
- package/dist/three-nebula.umd.js.map +1 -0
- package/package.json +23 -47
- package/specs/01-emitter-hierarchy.md +200 -0
- package/specs/02-determinism-scrubbing.md +188 -0
- package/specs/03-sound-renderer.md +183 -0
- package/specs/04-schema-versioning.md +140 -0
- package/specs/05-content-addressed-assets.md +288 -0
- package/specs/README.md +80 -0
- package/build/cjs/behaviour/Alpha.js +0 -189
- package/build/cjs/behaviour/Attraction.js +0 -189
- package/build/cjs/behaviour/Behaviour.js +0 -253
- package/build/cjs/behaviour/Collision.js +0 -146
- package/build/cjs/behaviour/Color.js +0 -148
- package/build/cjs/behaviour/CrossZone.js +0 -141
- package/build/cjs/behaviour/Force.js +0 -126
- package/build/cjs/behaviour/Gravity.js +0 -78
- package/build/cjs/behaviour/RandomDrift.js +0 -153
- package/build/cjs/behaviour/Repulsion.js +0 -123
- package/build/cjs/behaviour/Rotate.js +0 -265
- package/build/cjs/behaviour/Scale.js +0 -177
- package/build/cjs/behaviour/Spring.js +0 -133
- package/build/cjs/behaviour/constants.js +0 -28
- package/build/cjs/behaviour/index.js +0 -112
- package/build/cjs/behaviour/types.js +0 -33
- package/build/cjs/constants/index.js +0 -61
- package/build/cjs/core/Particle.js +0 -390
- package/build/cjs/core/Pool.js +0 -203
- package/build/cjs/core/System.js +0 -366
- package/build/cjs/core/constants.js +0 -163
- package/build/cjs/core/fromJSON.js +0 -128
- package/build/cjs/core/fromJSONAsync.js +0 -239
- package/build/cjs/core/index.js +0 -32
- package/build/cjs/core/three/Euler.js +0 -233
- package/build/cjs/core/three/Math.js +0 -91
- package/build/cjs/core/three/Matrix4.js +0 -745
- package/build/cjs/core/three/Quaternion.js +0 -451
- package/build/cjs/core/three/Vector3.js +0 -464
- package/build/cjs/core/three/constants.js +0 -298
- package/build/cjs/core/three/index.js +0 -48
- package/build/cjs/core/types.js +0 -13
- package/build/cjs/debug/Debug.js +0 -209
- package/build/cjs/debug/constants.js +0 -19
- package/build/cjs/debug/index.js +0 -24
- package/build/cjs/debug/log.js +0 -38
- package/build/cjs/ease/index.js +0 -149
- package/build/cjs/emitter/Emitter.js +0 -798
- package/build/cjs/emitter/FollowEmitter.js +0 -146
- package/build/cjs/emitter/constants.js +0 -20
- package/build/cjs/emitter/index.js +0 -24
- package/build/cjs/emitter/types.js +0 -11
- package/build/cjs/events/EventDispatcher.js +0 -105
- package/build/cjs/events/constants.js +0 -23
- package/build/cjs/events/index.js +0 -27
- package/build/cjs/index.js +0 -151
- package/build/cjs/initializer/Body.js +0 -122
- package/build/cjs/initializer/BodySprite.js +0 -146
- package/build/cjs/initializer/Initializer.js +0 -109
- package/build/cjs/initializer/InitializerUtil.js +0 -54
- package/build/cjs/initializer/Life.js +0 -106
- package/build/cjs/initializer/Mass.js +0 -101
- package/build/cjs/initializer/Position.js +0 -152
- package/build/cjs/initializer/Radius.js +0 -118
- package/build/cjs/initializer/Rate.js +0 -150
- package/build/cjs/initializer/Rotation.js +0 -95
- package/build/cjs/initializer/Texture.js +0 -139
- package/build/cjs/initializer/Velocity/PolarVelocity.js +0 -102
- package/build/cjs/initializer/Velocity/RadialVelocity.js +0 -111
- package/build/cjs/initializer/Velocity/VectorVelocity.js +0 -108
- package/build/cjs/initializer/Velocity/Velocity.js +0 -94
- package/build/cjs/initializer/Velocity/index.js +0 -32
- package/build/cjs/initializer/constants.js +0 -43
- package/build/cjs/initializer/index.js +0 -108
- package/build/cjs/initializer/types.js +0 -37
- package/build/cjs/math/ArraySpan.js +0 -103
- package/build/cjs/math/Box.js +0 -46
- package/build/cjs/math/ColorSpan.js +0 -113
- package/build/cjs/math/MathUtils.js +0 -57
- package/build/cjs/math/Polar3D.js +0 -115
- package/build/cjs/math/Span.js +0 -88
- package/build/cjs/math/Vector3D.js +0 -76
- package/build/cjs/math/constants.js +0 -35
- package/build/cjs/math/index.js +0 -122
- package/build/cjs/math/integration.js +0 -59
- package/build/cjs/math/types.js +0 -19
- package/build/cjs/renderer/BaseRenderer.js +0 -108
- package/build/cjs/renderer/CustomRenderer.js +0 -65
- package/build/cjs/renderer/GPURenderer/Desktop/index.js +0 -371
- package/build/cjs/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +0 -13
- package/build/cjs/renderer/GPURenderer/Desktop/shaders/index.js +0 -22
- package/build/cjs/renderer/GPURenderer/Desktop/shaders/vertexShader.js +0 -17
- package/build/cjs/renderer/GPURenderer/Mobile/index.js +0 -385
- package/build/cjs/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +0 -13
- package/build/cjs/renderer/GPURenderer/Mobile/shaders/index.js +0 -22
- package/build/cjs/renderer/GPURenderer/Mobile/shaders/vertexShader.js +0 -15
- package/build/cjs/renderer/GPURenderer/common/ParticleBuffer/constants.js +0 -58
- package/build/cjs/renderer/GPURenderer/common/ParticleBuffer/index.js +0 -93
- package/build/cjs/renderer/GPURenderer/common/TextureAtlas/constants.js +0 -9
- package/build/cjs/renderer/GPURenderer/common/TextureAtlas/index.js +0 -221
- package/build/cjs/renderer/GPURenderer/common/constants.js +0 -22
- package/build/cjs/renderer/GPURenderer/common/index.js +0 -38
- package/build/cjs/renderer/GPURenderer/common/shaders/constants.js +0 -9
- package/build/cjs/renderer/GPURenderer/common/stores/Target.js +0 -45
- package/build/cjs/renderer/GPURenderer/common/stores/UniqueList.js +0 -51
- package/build/cjs/renderer/GPURenderer/common/stores/index.js +0 -22
- package/build/cjs/renderer/GPURenderer/index.js +0 -97
- package/build/cjs/renderer/MeshRenderer.js +0 -136
- package/build/cjs/renderer/SpriteRenderer.js +0 -68
- package/build/cjs/renderer/index.js +0 -40
- package/build/cjs/renderer/types.js +0 -21
- package/build/cjs/utils/ColorUtil.js +0 -39
- package/build/cjs/utils/PUID.js +0 -26
- package/build/cjs/utils/THREEUtil.js +0 -40
- package/build/cjs/utils/Util.js +0 -69
- package/build/cjs/utils/index.js +0 -61
- package/build/cjs/utils/uid.js +0 -12
- package/build/cjs/zone/BoxZone.js +0 -178
- package/build/cjs/zone/LineZone.js +0 -101
- package/build/cjs/zone/MeshZone.js +0 -101
- package/build/cjs/zone/PointZone.js +0 -99
- package/build/cjs/zone/ScreenZone.js +0 -164
- package/build/cjs/zone/SphereZone.js +0 -155
- package/build/cjs/zone/Zone.js +0 -172
- package/build/cjs/zone/index.js +0 -56
- package/build/cjs/zone/types.js +0 -21
- package/build/esm/behaviour/Alpha.js +0 -134
- package/build/esm/behaviour/Attraction.js +0 -135
- package/build/esm/behaviour/Behaviour.js +0 -215
- package/build/esm/behaviour/Collision.js +0 -100
- package/build/esm/behaviour/Color.js +0 -101
- package/build/esm/behaviour/CrossZone.js +0 -82
- package/build/esm/behaviour/Force.js +0 -83
- package/build/esm/behaviour/Gravity.js +0 -40
- package/build/esm/behaviour/RandomDrift.js +0 -97
- package/build/esm/behaviour/Repulsion.js +0 -81
- package/build/esm/behaviour/Rotate.js +0 -214
- package/build/esm/behaviour/Scale.js +0 -131
- package/build/esm/behaviour/Spring.js +0 -90
- package/build/esm/behaviour/constants.js +0 -11
- package/build/esm/behaviour/index.js +0 -14
- package/build/esm/behaviour/types.js +0 -14
- package/build/esm/constants/index.js +0 -42
- package/build/esm/core/Particle.js +0 -357
- package/build/esm/core/Pool.js +0 -161
- package/build/esm/core/System.js +0 -320
- package/build/esm/core/constants.js +0 -127
- package/build/esm/core/fromJSON.js +0 -107
- package/build/esm/core/fromJSONAsync.js +0 -210
- package/build/esm/core/index.js +0 -4
- package/build/esm/core/three/Euler.js +0 -224
- package/build/esm/core/three/Math.js +0 -84
- package/build/esm/core/three/Matrix4.js +0 -739
- package/build/esm/core/three/Quaternion.js +0 -445
- package/build/esm/core/three/Vector3.js +0 -457
- package/build/esm/core/three/constants.js +0 -148
- package/build/esm/core/three/index.js +0 -5
- package/build/esm/core/types.js +0 -4
- package/build/esm/debug/Debug.js +0 -195
- package/build/esm/debug/constants.js +0 -7
- package/build/esm/debug/index.js +0 -3
- package/build/esm/debug/log.js +0 -31
- package/build/esm/ease/index.js +0 -113
- package/build/esm/emitter/Emitter.js +0 -708
- package/build/esm/emitter/FollowEmitter.js +0 -97
- package/build/esm/emitter/constants.js +0 -7
- package/build/esm/emitter/index.js +0 -3
- package/build/esm/emitter/types.js +0 -3
- package/build/esm/events/EventDispatcher.js +0 -82
- package/build/esm/events/constants.js +0 -9
- package/build/esm/events/index.js +0 -4
- package/build/esm/index.js +0 -13
- package/build/esm/initializer/Body.js +0 -83
- package/build/esm/initializer/BodySprite.js +0 -108
- package/build/esm/initializer/Initializer.js +0 -84
- package/build/esm/initializer/InitializerUtil.js +0 -48
- package/build/esm/initializer/Life.js +0 -66
- package/build/esm/initializer/Mass.js +0 -60
- package/build/esm/initializer/Position.js +0 -98
- package/build/esm/initializer/Radius.js +0 -75
- package/build/esm/initializer/Rate.js +0 -107
- package/build/esm/initializer/Rotation.js +0 -54
- package/build/esm/initializer/Texture.js +0 -101
- package/build/esm/initializer/Velocity/PolarVelocity.js +0 -63
- package/build/esm/initializer/Velocity/RadialVelocity.js +0 -72
- package/build/esm/initializer/Velocity/VectorVelocity.js +0 -69
- package/build/esm/initializer/Velocity/Velocity.js +0 -52
- package/build/esm/initializer/Velocity/index.js +0 -4
- package/build/esm/initializer/constants.js +0 -26
- package/build/esm/initializer/index.js +0 -12
- package/build/esm/initializer/types.js +0 -16
- package/build/esm/math/ArraySpan.js +0 -62
- package/build/esm/math/Box.js +0 -25
- package/build/esm/math/ColorSpan.js +0 -71
- package/build/esm/math/MathUtils.js +0 -48
- package/build/esm/math/Polar3D.js +0 -81
- package/build/esm/math/Span.js +0 -63
- package/build/esm/math/Vector3D.js +0 -34
- package/build/esm/math/constants.js +0 -24
- package/build/esm/math/index.js +0 -10
- package/build/esm/math/integration.js +0 -47
- package/build/esm/math/types.js +0 -7
- package/build/esm/renderer/BaseRenderer.js +0 -78
- package/build/esm/renderer/CustomRenderer.js +0 -23
- package/build/esm/renderer/GPURenderer/Desktop/index.js +0 -357
- package/build/esm/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +0 -30
- package/build/esm/renderer/GPURenderer/Desktop/shaders/index.js +0 -3
- package/build/esm/renderer/GPURenderer/Desktop/shaders/vertexShader.js +0 -36
- package/build/esm/renderer/GPURenderer/Mobile/index.js +0 -375
- package/build/esm/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +0 -27
- package/build/esm/renderer/GPURenderer/Mobile/shaders/index.js +0 -3
- package/build/esm/renderer/GPURenderer/Mobile/shaders/vertexShader.js +0 -33
- package/build/esm/renderer/GPURenderer/common/ParticleBuffer/constants.js +0 -30
- package/build/esm/renderer/GPURenderer/common/ParticleBuffer/index.js +0 -70
- package/build/esm/renderer/GPURenderer/common/TextureAtlas/constants.js +0 -2
- package/build/esm/renderer/GPURenderer/common/TextureAtlas/index.js +0 -206
- package/build/esm/renderer/GPURenderer/common/constants.js +0 -13
- package/build/esm/renderer/GPURenderer/common/index.js +0 -4
- package/build/esm/renderer/GPURenderer/common/shaders/constants.js +0 -2
- package/build/esm/renderer/GPURenderer/common/stores/Target.js +0 -26
- package/build/esm/renderer/GPURenderer/common/stores/UniqueList.js +0 -29
- package/build/esm/renderer/GPURenderer/common/stores/index.js +0 -3
- package/build/esm/renderer/GPURenderer/index.js +0 -57
- package/build/esm/renderer/MeshRenderer.js +0 -93
- package/build/esm/renderer/SpriteRenderer.js +0 -30
- package/build/esm/renderer/index.js +0 -5
- package/build/esm/renderer/types.js +0 -8
- package/build/esm/utils/ColorUtil.js +0 -32
- package/build/esm/utils/PUID.js +0 -19
- package/build/esm/utils/THREEUtil.js +0 -31
- package/build/esm/utils/Util.js +0 -60
- package/build/esm/utils/index.js +0 -13
- package/build/esm/utils/uid.js +0 -3
- package/build/esm/zone/BoxZone.js +0 -133
- package/build/esm/zone/LineZone.js +0 -61
- package/build/esm/zone/MeshZone.js +0 -60
- package/build/esm/zone/PointZone.js +0 -59
- package/build/esm/zone/ScreenZone.js +0 -116
- package/build/esm/zone/SphereZone.js +0 -113
- package/build/esm/zone/Zone.js +0 -141
- package/build/esm/zone/index.js +0 -7
- package/build/esm/zone/types.js +0 -8
- package/build/three-nebula.js +0 -2
- package/build/three-nebula.js.map +0 -1
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { DR } from '../../constants';
|
|
2
|
-
import { Polar3D } from '../../math';
|
|
3
|
-
import Velocity from './Velocity';
|
|
4
|
-
import { INITIALIZER_TYPE_POLAR_VELOCITY as type } from '../types';
|
|
5
|
-
/**
|
|
6
|
-
* Sets the velocity property on initialized particles.
|
|
7
|
-
*
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
export default class PolarVelocity extends Velocity {
|
|
11
|
-
/**
|
|
12
|
-
* Constructs a PolarVelocity initializer.
|
|
13
|
-
*
|
|
14
|
-
* @param {Polar3D} polar3d - The polar vector for the velocity
|
|
15
|
-
* @param {number} theta - The theta angle to use
|
|
16
|
-
* @return void
|
|
17
|
-
*/
|
|
18
|
-
constructor(polar3d, theta, isEnabled = true) {
|
|
19
|
-
super(type, isEnabled);
|
|
20
|
-
/**
|
|
21
|
-
* @desc Theta.
|
|
22
|
-
* @type {number}
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
this.tha = theta * DR;
|
|
26
|
-
/**
|
|
27
|
-
* @desc Directional vector
|
|
28
|
-
* @type {Vector3D}
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
this.dirVec = polar3d.toVector3D();
|
|
32
|
-
/**
|
|
33
|
-
* @desc Determines whether to use the directional vector or not.
|
|
34
|
-
* @type {boolean}
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
this._useV = false;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Creates a PolarVelocity initializer from JSON.
|
|
41
|
-
*
|
|
42
|
-
* @param {object} json - The JSON to construct the instance from.
|
|
43
|
-
* @param {number} json.polarRadius - The Polar3D radius
|
|
44
|
-
* @param {number} json.polarTheta - The Polar3D theta
|
|
45
|
-
* @param {number} json.polarPhi - The Polar3D phi
|
|
46
|
-
* @param {number} json.velocityTheta - The velocity theta
|
|
47
|
-
* @return {PolarVelocity}
|
|
48
|
-
*/
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
static fromJSON(json) {
|
|
52
|
-
const {
|
|
53
|
-
polarRadius,
|
|
54
|
-
polarTheta,
|
|
55
|
-
polarPhi,
|
|
56
|
-
velocityTheta,
|
|
57
|
-
isEnabled = true
|
|
58
|
-
} = json;
|
|
59
|
-
return new PolarVelocity(new Polar3D(polarRadius, polarTheta, polarPhi), velocityTheta, isEnabled);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9WZWxvY2l0eS9Qb2xhclZlbG9jaXR5LmpzIl0sIm5hbWVzIjpbIkRSIiwiUG9sYXIzRCIsIlZlbG9jaXR5IiwiSU5JVElBTElaRVJfVFlQRV9QT0xBUl9WRUxPQ0lUWSIsInR5cGUiLCJQb2xhclZlbG9jaXR5IiwiY29uc3RydWN0b3IiLCJwb2xhcjNkIiwidGhldGEiLCJpc0VuYWJsZWQiLCJ0aGEiLCJkaXJWZWMiLCJ0b1ZlY3RvcjNEIiwiX3VzZVYiLCJmcm9tSlNPTiIsImpzb24iLCJwb2xhclJhZGl1cyIsInBvbGFyVGhldGEiLCJwb2xhclBoaSIsInZlbG9jaXR5VGhldGEiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEVBQVQsUUFBbUIsaUJBQW5CO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixZQUF4QjtBQUNBLE9BQU9DLFFBQVAsTUFBcUIsWUFBckI7QUFDQSxTQUFTQywrQkFBK0IsSUFBSUMsSUFBNUMsUUFBd0QsVUFBeEQ7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLGFBQU4sU0FBNEJILFFBQTVCLENBQXFDO0FBQ2xEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VJLEVBQUFBLFdBQVcsQ0FBQ0MsT0FBRCxFQUFVQyxLQUFWLEVBQWlCQyxTQUFTLEdBQUcsSUFBN0IsRUFBbUM7QUFDNUMsVUFBTUwsSUFBTixFQUFZSyxTQUFaO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsR0FBTCxHQUFXRixLQUFLLEdBQUdSLEVBQW5CO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS1csTUFBTCxHQUFjSixPQUFPLENBQUNLLFVBQVIsRUFBZDtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtDLEtBQUwsR0FBYSxLQUFiO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJDLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFDSkMsTUFBQUEsV0FESTtBQUVKQyxNQUFBQSxVQUZJO0FBR0pDLE1BQUFBLFFBSEk7QUFJSkMsTUFBQUEsYUFKSTtBQUtKVixNQUFBQSxTQUFTLEdBQUc7QUFMUixRQU1GTSxJQU5KO0FBUUEsV0FBTyxJQUFJVixhQUFKLENBQ0wsSUFBSUosT0FBSixDQUFZZSxXQUFaLEVBQXlCQyxVQUF6QixFQUFxQ0MsUUFBckMsQ0FESyxFQUVMQyxhQUZLLEVBR0xWLFNBSEssQ0FBUDtBQUtEOztBQXREaUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQb2xhcjNEIH0gZnJvbSAnLi4vLi4vbWF0aCc7XG5pbXBvcnQgVmVsb2NpdHkgZnJvbSAnLi9WZWxvY2l0eSc7XG5pbXBvcnQgeyBJTklUSUFMSVpFUl9UWVBFX1BPTEFSX1ZFTE9DSVRZIGFzIHR5cGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgdmVsb2NpdHkgcHJvcGVydHkgb24gaW5pdGlhbGl6ZWQgcGFydGljbGVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9sYXJWZWxvY2l0eSBleHRlbmRzIFZlbG9jaXR5IHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBQb2xhclZlbG9jaXR5IGluaXRpYWxpemVyLlxuICAgKlxuICAgKiBAcGFyYW0ge1BvbGFyM0R9IHBvbGFyM2QgLSBUaGUgcG9sYXIgdmVjdG9yIGZvciB0aGUgdmVsb2NpdHlcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRoZXRhIC0gVGhlIHRoZXRhIGFuZ2xlIHRvIHVzZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHBvbGFyM2QsIHRoZXRhLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodHlwZSwgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZXRhLlxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy50aGEgPSB0aGV0YSAqIERSO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgRGlyZWN0aW9uYWwgdmVjdG9yXG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMuZGlyVmVjID0gcG9sYXIzZC50b1ZlY3RvcjNEKCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gdXNlIHRoZSBkaXJlY3Rpb25hbCB2ZWN0b3Igb3Igbm90LlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMuX3VzZVYgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgUG9sYXJWZWxvY2l0eSBpbml0aWFsaXplciBmcm9tIEpTT04uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gdG8gY29uc3RydWN0IHRoZSBpbnN0YW5jZSBmcm9tLlxuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi5wb2xhclJhZGl1cyAtIFRoZSBQb2xhcjNEIHJhZGl1c1xuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi5wb2xhclRoZXRhIC0gVGhlIFBvbGFyM0QgdGhldGFcbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24ucG9sYXJQaGkgLSBUaGUgUG9sYXIzRCBwaGlcbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24udmVsb2NpdHlUaGV0YSAtIFRoZSB2ZWxvY2l0eSB0aGV0YVxuICAgKiBAcmV0dXJuIHtQb2xhclZlbG9jaXR5fVxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBjb25zdCB7XG4gICAgICBwb2xhclJhZGl1cyxcbiAgICAgIHBvbGFyVGhldGEsXG4gICAgICBwb2xhclBoaSxcbiAgICAgIHZlbG9jaXR5VGhldGEsXG4gICAgICBpc0VuYWJsZWQgPSB0cnVlLFxuICAgIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBQb2xhclZlbG9jaXR5KFxuICAgICAgbmV3IFBvbGFyM0QocG9sYXJSYWRpdXMsIHBvbGFyVGhldGEsIHBvbGFyUGhpKSxcbiAgICAgIHZlbG9jaXR5VGhldGEsXG4gICAgICBpc0VuYWJsZWRcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { Vector3D, createSpan } from '../../math';
|
|
2
|
-
import { DR } from '../../constants';
|
|
3
|
-
import Velocity from './Velocity';
|
|
4
|
-
import { INITIALIZER_TYPE_RADIAL_VELOCITY as type } from '../types';
|
|
5
|
-
/**
|
|
6
|
-
* Sets the velocity property on initialized particles.
|
|
7
|
-
*
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
export default class RadialVelocity extends Velocity {
|
|
11
|
-
/**
|
|
12
|
-
* Constructs a RadialVelocity initializer.
|
|
13
|
-
*
|
|
14
|
-
* @param {number|Span} radius - The velocity radius
|
|
15
|
-
* @param {Vector3D} vector3d - The directional vector for the velocity
|
|
16
|
-
* @param {number} theta - The theta angle to use
|
|
17
|
-
* @return void
|
|
18
|
-
*/
|
|
19
|
-
constructor(radius, vector3d, theta, isEnabled = true) {
|
|
20
|
-
super(type, isEnabled);
|
|
21
|
-
/**
|
|
22
|
-
* @desc Velocity radius span.
|
|
23
|
-
* @type {Span}
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
this.radiusPan = createSpan(radius);
|
|
27
|
-
/**
|
|
28
|
-
* @desc Direction vector.
|
|
29
|
-
* @type {Vector3D}
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
this.dir = vector3d.clone().normalize();
|
|
33
|
-
/**
|
|
34
|
-
* @desc Theta.
|
|
35
|
-
* @type {number}
|
|
36
|
-
*/
|
|
37
|
-
|
|
38
|
-
this.tha = theta * DR;
|
|
39
|
-
/**
|
|
40
|
-
* @desc Determines whether to use the directional vector or not.
|
|
41
|
-
* @type {boolean}
|
|
42
|
-
*/
|
|
43
|
-
|
|
44
|
-
this._useV = true;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Creates a RadialVelocity initializer from JSON.
|
|
48
|
-
*
|
|
49
|
-
* @param {object} json - The JSON to construct the instance from.
|
|
50
|
-
* @param {number} json.radius - The velocity radius
|
|
51
|
-
* @param {number} json.x - The velocity x axis direction
|
|
52
|
-
* @param {number} json.y - The velocity y axis direction
|
|
53
|
-
* @param {number} json.z - The velocity z axis direction
|
|
54
|
-
* @param {number} json.theta - The velocity theta
|
|
55
|
-
* @return {RadialVelocity}
|
|
56
|
-
*/
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
static fromJSON(json) {
|
|
60
|
-
const {
|
|
61
|
-
radius,
|
|
62
|
-
x,
|
|
63
|
-
y,
|
|
64
|
-
z,
|
|
65
|
-
theta,
|
|
66
|
-
isEnabled = true
|
|
67
|
-
} = json;
|
|
68
|
-
return new RadialVelocity(radius, new Vector3D(x, y, z), theta, isEnabled);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9WZWxvY2l0eS9SYWRpYWxWZWxvY2l0eS5qcyJdLCJuYW1lcyI6WyJWZWN0b3IzRCIsImNyZWF0ZVNwYW4iLCJEUiIsIlZlbG9jaXR5IiwiSU5JVElBTElaRVJfVFlQRV9SQURJQUxfVkVMT0NJVFkiLCJ0eXBlIiwiUmFkaWFsVmVsb2NpdHkiLCJjb25zdHJ1Y3RvciIsInJhZGl1cyIsInZlY3RvcjNkIiwidGhldGEiLCJpc0VuYWJsZWQiLCJyYWRpdXNQYW4iLCJkaXIiLCJjbG9uZSIsIm5vcm1hbGl6ZSIsInRoYSIsIl91c2VWIiwiZnJvbUpTT04iLCJqc29uIiwieCIsInkiLCJ6Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxRQUFULEVBQW1CQyxVQUFuQixRQUFxQyxZQUFyQztBQUVBLFNBQVNDLEVBQVQsUUFBbUIsaUJBQW5CO0FBQ0EsT0FBT0MsUUFBUCxNQUFxQixZQUFyQjtBQUNBLFNBQVNDLGdDQUFnQyxJQUFJQyxJQUE3QyxRQUF5RCxVQUF6RDtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsY0FBTixTQUE2QkgsUUFBN0IsQ0FBc0M7QUFDbkQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSSxFQUFBQSxXQUFXLENBQUNDLE1BQUQsRUFBU0MsUUFBVCxFQUFtQkMsS0FBbkIsRUFBMEJDLFNBQVMsR0FBRyxJQUF0QyxFQUE0QztBQUNyRCxVQUFNTixJQUFOLEVBQVlNLFNBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxTQUFMLEdBQWlCWCxVQUFVLENBQUNPLE1BQUQsQ0FBM0I7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSyxHQUFMLEdBQVdKLFFBQVEsQ0FBQ0ssS0FBVCxHQUFpQkMsU0FBakIsRUFBWDtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtDLEdBQUwsR0FBV04sS0FBSyxHQUFHUixFQUFuQjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtlLEtBQUwsR0FBYSxJQUFiO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDaUIsU0FBUkMsUUFBUSxDQUFDQyxJQUFELEVBQU87QUFDcEIsVUFBTTtBQUFFWCxNQUFBQSxNQUFGO0FBQVVZLE1BQUFBLENBQVY7QUFBYUMsTUFBQUEsQ0FBYjtBQUFnQkMsTUFBQUEsQ0FBaEI7QUFBbUJaLE1BQUFBLEtBQW5CO0FBQTBCQyxNQUFBQSxTQUFTLEdBQUc7QUFBdEMsUUFBK0NRLElBQXJEO0FBRUEsV0FBTyxJQUFJYixjQUFKLENBQW1CRSxNQUFuQixFQUEyQixJQUFJUixRQUFKLENBQWFvQixDQUFiLEVBQWdCQyxDQUFoQixFQUFtQkMsQ0FBbkIsQ0FBM0IsRUFBa0RaLEtBQWxELEVBQXlEQyxTQUF6RCxDQUFQO0FBQ0Q7O0FBcERrRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlY3RvcjNELCBjcmVhdGVTcGFuIH0gZnJvbSAnLi4vLi4vbWF0aCc7XG5cbmltcG9ydCB7IERSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCBWZWxvY2l0eSBmcm9tICcuL1ZlbG9jaXR5JztcbmltcG9ydCB7IElOSVRJQUxJWkVSX1RZUEVfUkFESUFMX1ZFTE9DSVRZIGFzIHR5cGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgdmVsb2NpdHkgcHJvcGVydHkgb24gaW5pdGlhbGl6ZWQgcGFydGljbGVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFkaWFsVmVsb2NpdHkgZXh0ZW5kcyBWZWxvY2l0eSB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgUmFkaWFsVmVsb2NpdHkgaW5pdGlhbGl6ZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfFNwYW59IHJhZGl1cyAtIFRoZSB2ZWxvY2l0eSByYWRpdXNcbiAgICogQHBhcmFtIHtWZWN0b3IzRH0gdmVjdG9yM2QgLSBUaGUgZGlyZWN0aW9uYWwgdmVjdG9yIGZvciB0aGUgdmVsb2NpdHlcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRoZXRhIC0gVGhlIHRoZXRhIGFuZ2xlIHRvIHVzZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHJhZGl1cywgdmVjdG9yM2QsIHRoZXRhLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodHlwZSwgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFZlbG9jaXR5IHJhZGl1cyBzcGFuLlxuICAgICAqIEB0eXBlIHtTcGFufVxuICAgICAqL1xuICAgIHRoaXMucmFkaXVzUGFuID0gY3JlYXRlU3BhbihyYWRpdXMpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgRGlyZWN0aW9uIHZlY3Rvci5cbiAgICAgKiBAdHlwZSB7VmVjdG9yM0R9XG4gICAgICovXG4gICAgdGhpcy5kaXIgPSB2ZWN0b3IzZC5jbG9uZSgpLm5vcm1hbGl6ZSgpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhldGEuXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLnRoYSA9IHRoZXRhICogRFI7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gdXNlIHRoZSBkaXJlY3Rpb25hbCB2ZWN0b3Igb3Igbm90LlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMuX3VzZVYgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBSYWRpYWxWZWxvY2l0eSBpbml0aWFsaXplciBmcm9tIEpTT04uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gdG8gY29uc3RydWN0IHRoZSBpbnN0YW5jZSBmcm9tLlxuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi5yYWRpdXMgLSBUaGUgdmVsb2NpdHkgcmFkaXVzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBqc29uLnggLSBUaGUgdmVsb2NpdHkgeCBheGlzIGRpcmVjdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi55IC0gVGhlIHZlbG9jaXR5IHkgYXhpcyBkaXJlY3Rpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24ueiAtIFRoZSB2ZWxvY2l0eSB6IGF4aXMgZGlyZWN0aW9uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBqc29uLnRoZXRhIC0gVGhlIHZlbG9jaXR5IHRoZXRhXG4gICAqIEByZXR1cm4ge1JhZGlhbFZlbG9jaXR5fVxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBjb25zdCB7IHJhZGl1cywgeCwgeSwgeiwgdGhldGEsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFJhZGlhbFZlbG9jaXR5KHJhZGl1cywgbmV3IFZlY3RvcjNEKHgsIHksIHopLCB0aGV0YSwgaXNFbmFibGVkKTtcbiAgfVxufVxuIl19
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { Vector3D, createSpan } from '../../math';
|
|
2
|
-
import { DR } from '../../constants';
|
|
3
|
-
import Velocity from './Velocity';
|
|
4
|
-
import { INITIALIZER_TYPE_VECTOR_VELOCITY as type } from '../types';
|
|
5
|
-
/**
|
|
6
|
-
* Sets the velocity property on initialized particles.
|
|
7
|
-
*
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
export default class VectorVelocity extends Velocity {
|
|
11
|
-
/**
|
|
12
|
-
* Constructs a VectorVelocity initializer.
|
|
13
|
-
*
|
|
14
|
-
* @param {Vector3D} vector3d - The directional vector for the velocity
|
|
15
|
-
* @param {number} theta - The theta angle to use
|
|
16
|
-
* @return void
|
|
17
|
-
*/
|
|
18
|
-
constructor(vector3d, theta, isEnabled = true) {
|
|
19
|
-
super(type, isEnabled);
|
|
20
|
-
/**
|
|
21
|
-
* @desc Velocity radius span.
|
|
22
|
-
* @type {Span}
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
this.radiusPan = createSpan(1);
|
|
26
|
-
/**
|
|
27
|
-
* @desc Direction vector.
|
|
28
|
-
* @type {Vector3D}
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
this.dir = vector3d.clone();
|
|
32
|
-
/**
|
|
33
|
-
* @desc Theta.
|
|
34
|
-
* @type {number}
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
this.tha = theta * DR;
|
|
38
|
-
/**
|
|
39
|
-
* @desc Determines whether to use the directional vector or not.
|
|
40
|
-
* @type {boolean}
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
this._useV = true;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Creates a VectorVelocity initializer from JSON.
|
|
47
|
-
*
|
|
48
|
-
* @param {object} json - The JSON to construct the instance from.
|
|
49
|
-
* @param {number} json.x - The velocity x axis direction
|
|
50
|
-
* @param {number} json.y - The velocity y axis direction
|
|
51
|
-
* @param {number} json.z - The velocity z axis direction
|
|
52
|
-
* @param {number} json.theta - The velocity theta
|
|
53
|
-
* @return {VectorVelocity}
|
|
54
|
-
*/
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
static fromJSON(json) {
|
|
58
|
-
const {
|
|
59
|
-
x,
|
|
60
|
-
y,
|
|
61
|
-
z,
|
|
62
|
-
theta,
|
|
63
|
-
isEnabled = true
|
|
64
|
-
} = json;
|
|
65
|
-
return new VectorVelocity(new Vector3D(x, y, z), theta, isEnabled);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9WZWxvY2l0eS9WZWN0b3JWZWxvY2l0eS5qcyJdLCJuYW1lcyI6WyJWZWN0b3IzRCIsImNyZWF0ZVNwYW4iLCJEUiIsIlZlbG9jaXR5IiwiSU5JVElBTElaRVJfVFlQRV9WRUNUT1JfVkVMT0NJVFkiLCJ0eXBlIiwiVmVjdG9yVmVsb2NpdHkiLCJjb25zdHJ1Y3RvciIsInZlY3RvcjNkIiwidGhldGEiLCJpc0VuYWJsZWQiLCJyYWRpdXNQYW4iLCJkaXIiLCJjbG9uZSIsInRoYSIsIl91c2VWIiwiZnJvbUpTT04iLCJqc29uIiwieCIsInkiLCJ6Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxRQUFULEVBQW1CQyxVQUFuQixRQUFxQyxZQUFyQztBQUVBLFNBQVNDLEVBQVQsUUFBbUIsaUJBQW5CO0FBQ0EsT0FBT0MsUUFBUCxNQUFxQixZQUFyQjtBQUNBLFNBQVNDLGdDQUFnQyxJQUFJQyxJQUE3QyxRQUF5RCxVQUF6RDtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsY0FBTixTQUE2QkgsUUFBN0IsQ0FBc0M7QUFDbkQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUksRUFBQUEsV0FBVyxDQUFDQyxRQUFELEVBQVdDLEtBQVgsRUFBa0JDLFNBQVMsR0FBRyxJQUE5QixFQUFvQztBQUM3QyxVQUFNTCxJQUFOLEVBQVlLLFNBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxTQUFMLEdBQWlCVixVQUFVLENBQUMsQ0FBRCxDQUEzQjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtXLEdBQUwsR0FBV0osUUFBUSxDQUFDSyxLQUFULEVBQVg7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxHQUFMLEdBQVdMLEtBQUssR0FBR1AsRUFBbkI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLYSxLQUFMLEdBQWEsSUFBYjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNpQixTQUFSQyxRQUFRLENBQUNDLElBQUQsRUFBTztBQUNwQixVQUFNO0FBQUVDLE1BQUFBLENBQUY7QUFBS0MsTUFBQUEsQ0FBTDtBQUFRQyxNQUFBQSxDQUFSO0FBQVdYLE1BQUFBLEtBQVg7QUFBa0JDLE1BQUFBLFNBQVMsR0FBRztBQUE5QixRQUF1Q08sSUFBN0M7QUFFQSxXQUFPLElBQUlYLGNBQUosQ0FBbUIsSUFBSU4sUUFBSixDQUFha0IsQ0FBYixFQUFnQkMsQ0FBaEIsRUFBbUJDLENBQW5CLENBQW5CLEVBQTBDWCxLQUExQyxFQUFpREMsU0FBakQsQ0FBUDtBQUNEOztBQWxEa0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZWN0b3IzRCwgY3JlYXRlU3BhbiB9IGZyb20gJy4uLy4uL21hdGgnO1xuXG5pbXBvcnQgeyBEUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgVmVsb2NpdHkgZnJvbSAnLi9WZWxvY2l0eSc7XG5pbXBvcnQgeyBJTklUSUFMSVpFUl9UWVBFX1ZFQ1RPUl9WRUxPQ0lUWSBhcyB0eXBlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIFNldHMgdGhlIHZlbG9jaXR5IHByb3BlcnR5IG9uIGluaXRpYWxpemVkIHBhcnRpY2xlcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlY3RvclZlbG9jaXR5IGV4dGVuZHMgVmVsb2NpdHkge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIFZlY3RvclZlbG9jaXR5IGluaXRpYWxpemVyLlxuICAgKlxuICAgKiBAcGFyYW0ge1ZlY3RvcjNEfSB2ZWN0b3IzZCAtIFRoZSBkaXJlY3Rpb25hbCB2ZWN0b3IgZm9yIHRoZSB2ZWxvY2l0eVxuICAgKiBAcGFyYW0ge251bWJlcn0gdGhldGEgLSBUaGUgdGhldGEgYW5nbGUgdG8gdXNlXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IodmVjdG9yM2QsIHRoZXRhLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodHlwZSwgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFZlbG9jaXR5IHJhZGl1cyBzcGFuLlxuICAgICAqIEB0eXBlIHtTcGFufVxuICAgICAqL1xuICAgIHRoaXMucmFkaXVzUGFuID0gY3JlYXRlU3BhbigxKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIERpcmVjdGlvbiB2ZWN0b3IuXG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMuZGlyID0gdmVjdG9yM2QuY2xvbmUoKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZXRhLlxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy50aGEgPSB0aGV0YSAqIERSO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHVzZSB0aGUgZGlyZWN0aW9uYWwgdmVjdG9yIG9yIG5vdC5cbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICB0aGlzLl91c2VWID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgVmVjdG9yVmVsb2NpdHkgaW5pdGlhbGl6ZXIgZnJvbSBKU09OLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBKU09OIHRvIGNvbnN0cnVjdCB0aGUgaW5zdGFuY2UgZnJvbS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24ueCAtIFRoZSB2ZWxvY2l0eSB4IGF4aXMgZGlyZWN0aW9uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBqc29uLnkgLSBUaGUgdmVsb2NpdHkgeSBheGlzIGRpcmVjdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi56IC0gVGhlIHZlbG9jaXR5IHogYXhpcyBkaXJlY3Rpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24udGhldGEgLSBUaGUgdmVsb2NpdHkgdGhldGFcbiAgICogQHJldHVybiB7VmVjdG9yVmVsb2NpdHl9XG4gICAqL1xuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGNvbnN0IHsgeCwgeSwgeiwgdGhldGEsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFZlY3RvclZlbG9jaXR5KG5ldyBWZWN0b3IzRCh4LCB5LCB6KSwgdGhldGEsIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { MEASURE, PI } from '../../constants';
|
|
2
|
-
import { MathUtils, Vector3D } from '../../math';
|
|
3
|
-
import Initializer from '../Initializer';
|
|
4
|
-
/**
|
|
5
|
-
* Abstract class for Velocity initializers.
|
|
6
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
export default class Velocity extends Initializer {
|
|
10
|
-
/**
|
|
11
|
-
* Constructs a Velocity intitializer instance.
|
|
12
|
-
*
|
|
13
|
-
* @return void
|
|
14
|
-
*/
|
|
15
|
-
constructor(type, isEnabled = true) {
|
|
16
|
-
super(type, isEnabled);
|
|
17
|
-
/**
|
|
18
|
-
* @desc Directional vector
|
|
19
|
-
* @type {Vector3D}
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
this.dirVec = new Vector3D(0, 0, 0);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
normalize(vr) {
|
|
26
|
-
return vr * MEASURE;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Sets the particle's initial velocity.
|
|
32
|
-
*
|
|
33
|
-
* @singleton
|
|
34
|
-
* @param {Particle} particle - the particle to initialize the property on
|
|
35
|
-
* @return void
|
|
36
|
-
*/
|
|
37
|
-
|
|
38
|
-
Velocity.prototype.initialize = function () {
|
|
39
|
-
var tha;
|
|
40
|
-
var normal = new Vector3D(0, 0, 1);
|
|
41
|
-
var v = new Vector3D(0, 0, 0);
|
|
42
|
-
return function initialize(particle) {
|
|
43
|
-
tha = this.tha * Math.random();
|
|
44
|
-
this._useV && this.dirVec.copy(this.dir).scalar(this.radiusPan.getValue());
|
|
45
|
-
MathUtils.getNormal(this.dirVec, normal);
|
|
46
|
-
v.copy(this.dirVec).applyAxisAngle(normal, tha);
|
|
47
|
-
v.applyAxisAngle(this.dirVec.normalize(), Math.random() * PI * 2);
|
|
48
|
-
particle.velocity.copy(v);
|
|
49
|
-
return this;
|
|
50
|
-
};
|
|
51
|
-
}();
|
|
52
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9WZWxvY2l0eS9WZWxvY2l0eS5qcyJdLCJuYW1lcyI6WyJNRUFTVVJFIiwiUEkiLCJNYXRoVXRpbHMiLCJWZWN0b3IzRCIsIkluaXRpYWxpemVyIiwiVmVsb2NpdHkiLCJjb25zdHJ1Y3RvciIsInR5cGUiLCJpc0VuYWJsZWQiLCJkaXJWZWMiLCJub3JtYWxpemUiLCJ2ciIsInByb3RvdHlwZSIsImluaXRpYWxpemUiLCJ0aGEiLCJub3JtYWwiLCJ2IiwicGFydGljbGUiLCJNYXRoIiwicmFuZG9tIiwiX3VzZVYiLCJjb3B5IiwiZGlyIiwic2NhbGFyIiwicmFkaXVzUGFuIiwiZ2V0VmFsdWUiLCJnZXROb3JtYWwiLCJhcHBseUF4aXNBbmdsZSIsInZlbG9jaXR5Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFULEVBQWtCQyxFQUFsQixRQUE0QixpQkFBNUI7QUFDQSxTQUFTQyxTQUFULEVBQW9CQyxRQUFwQixRQUFvQyxZQUFwQztBQUVBLE9BQU9DLFdBQVAsTUFBd0IsZ0JBQXhCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxRQUFOLFNBQXVCRCxXQUF2QixDQUFtQztBQUNoRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0VFLEVBQUFBLFdBQVcsQ0FBQ0MsSUFBRCxFQUFPQyxTQUFTLEdBQUcsSUFBbkIsRUFBeUI7QUFDbEMsVUFBTUQsSUFBTixFQUFZQyxTQUFaO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsTUFBTCxHQUFjLElBQUlOLFFBQUosQ0FBYSxDQUFiLEVBQWdCLENBQWhCLEVBQW1CLENBQW5CLENBQWQ7QUFDRDs7QUFFRE8sRUFBQUEsU0FBUyxDQUFDQyxFQUFELEVBQUs7QUFDWixXQUFPQSxFQUFFLEdBQUdYLE9BQVo7QUFDRDs7QUFsQitDO0FBcUJsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQUssUUFBUSxDQUFDTyxTQUFULENBQW1CQyxVQUFuQixHQUFpQyxZQUFXO0FBQzFDLE1BQUlDLEdBQUo7QUFDQSxNQUFJQyxNQUFNLEdBQUcsSUFBSVosUUFBSixDQUFhLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkIsQ0FBYjtBQUNBLE1BQUlhLENBQUMsR0FBRyxJQUFJYixRQUFKLENBQWEsQ0FBYixFQUFnQixDQUFoQixFQUFtQixDQUFuQixDQUFSO0FBRUEsU0FBTyxTQUFTVSxVQUFULENBQW9CSSxRQUFwQixFQUE4QjtBQUNuQ0gsSUFBQUEsR0FBRyxHQUFHLEtBQUtBLEdBQUwsR0FBV0ksSUFBSSxDQUFDQyxNQUFMLEVBQWpCO0FBQ0EsU0FBS0MsS0FBTCxJQUFjLEtBQUtYLE1BQUwsQ0FBWVksSUFBWixDQUFpQixLQUFLQyxHQUF0QixFQUEyQkMsTUFBM0IsQ0FBa0MsS0FBS0MsU0FBTCxDQUFlQyxRQUFmLEVBQWxDLENBQWQ7QUFFQXZCLElBQUFBLFNBQVMsQ0FBQ3dCLFNBQVYsQ0FBb0IsS0FBS2pCLE1BQXpCLEVBQWlDTSxNQUFqQztBQUNBQyxJQUFBQSxDQUFDLENBQUNLLElBQUYsQ0FBTyxLQUFLWixNQUFaLEVBQW9Ca0IsY0FBcEIsQ0FBbUNaLE1BQW5DLEVBQTJDRCxHQUEzQztBQUNBRSxJQUFBQSxDQUFDLENBQUNXLGNBQUYsQ0FBaUIsS0FBS2xCLE1BQUwsQ0FBWUMsU0FBWixFQUFqQixFQUEwQ1EsSUFBSSxDQUFDQyxNQUFMLEtBQWdCbEIsRUFBaEIsR0FBcUIsQ0FBL0Q7QUFFQWdCLElBQUFBLFFBQVEsQ0FBQ1csUUFBVCxDQUFrQlAsSUFBbEIsQ0FBdUJMLENBQXZCO0FBRUEsV0FBTyxJQUFQO0FBQ0QsR0FYRDtBQVlELENBakIrQixFQUFoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1FQVNVUkUsIFBJIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE1hdGhVdGlscywgVmVjdG9yM0QgfSBmcm9tICcuLi8uLi9tYXRoJztcblxuaW1wb3J0IEluaXRpYWxpemVyIGZyb20gJy4uL0luaXRpYWxpemVyJztcblxuLyoqXG4gKiBBYnN0cmFjdCBjbGFzcyBmb3IgVmVsb2NpdHkgaW5pdGlhbGl6ZXJzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2NpdHkgZXh0ZW5kcyBJbml0aWFsaXplciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgVmVsb2NpdHkgaW50aXRpYWxpemVyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHR5cGUsIGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICBzdXBlcih0eXBlLCBpc0VuYWJsZWQpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgRGlyZWN0aW9uYWwgdmVjdG9yXG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMuZGlyVmVjID0gbmV3IFZlY3RvcjNEKDAsIDAsIDApO1xuICB9XG5cbiAgbm9ybWFsaXplKHZyKSB7XG4gICAgcmV0dXJuIHZyICogTUVBU1VSRTtcbiAgfVxufVxuXG4vKipcbiAqIFNldHMgdGhlIHBhcnRpY2xlJ3MgaW5pdGlhbCB2ZWxvY2l0eS5cbiAqXG4gKiBAc2luZ2xldG9uXG4gKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBpbml0aWFsaXplIHRoZSBwcm9wZXJ0eSBvblxuICogQHJldHVybiB2b2lkXG4gKi9cblZlbG9jaXR5LnByb3RvdHlwZS5pbml0aWFsaXplID0gKGZ1bmN0aW9uKCkge1xuICB2YXIgdGhhO1xuICB2YXIgbm9ybWFsID0gbmV3IFZlY3RvcjNEKDAsIDAsIDEpO1xuICB2YXIgdiA9IG5ldyBWZWN0b3IzRCgwLCAwLCAwKTtcblxuICByZXR1cm4gZnVuY3Rpb24gaW5pdGlhbGl6ZShwYXJ0aWNsZSkge1xuICAgIHRoYSA9IHRoaXMudGhhICogTWF0aC5yYW5kb20oKTtcbiAgICB0aGlzLl91c2VWICYmIHRoaXMuZGlyVmVjLmNvcHkodGhpcy5kaXIpLnNjYWxhcih0aGlzLnJhZGl1c1Bhbi5nZXRWYWx1ZSgpKTtcblxuICAgIE1hdGhVdGlscy5nZXROb3JtYWwodGhpcy5kaXJWZWMsIG5vcm1hbCk7XG4gICAgdi5jb3B5KHRoaXMuZGlyVmVjKS5hcHBseUF4aXNBbmdsZShub3JtYWwsIHRoYSk7XG4gICAgdi5hcHBseUF4aXNBbmdsZSh0aGlzLmRpclZlYy5ub3JtYWxpemUoKSwgTWF0aC5yYW5kb20oKSAqIFBJICogMik7XG5cbiAgICBwYXJ0aWNsZS52ZWxvY2l0eS5jb3B5KHYpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG59KSgpO1xuIl19
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { default as PolarVelocity } from './PolarVelocity';
|
|
2
|
-
export { default as RadialVelocity } from './RadialVelocity';
|
|
3
|
-
export { default as VectorVelocity } from './VectorVelocity';
|
|
4
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9WZWxvY2l0eS9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiUG9sYXJWZWxvY2l0eSIsIlJhZGlhbFZlbG9jaXR5IiwiVmVjdG9yVmVsb2NpdHkiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQU8sSUFBSUMsYUFBcEIsUUFBeUMsaUJBQXpDO0FBQ0EsU0FBU0QsT0FBTyxJQUFJRSxjQUFwQixRQUEwQyxrQkFBMUM7QUFDQSxTQUFTRixPQUFPLElBQUlHLGNBQXBCLFFBQTBDLGtCQUExQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgUG9sYXJWZWxvY2l0eSB9IGZyb20gJy4vUG9sYXJWZWxvY2l0eSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJhZGlhbFZlbG9jaXR5IH0gZnJvbSAnLi9SYWRpYWxWZWxvY2l0eSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFZlY3RvclZlbG9jaXR5IH0gZnJvbSAnLi9WZWN0b3JWZWxvY2l0eSc7XG4iXX0=
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
|
|
3
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
-
|
|
5
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
|
-
|
|
7
|
-
import { AdditiveBlending, CustomBlending, MultiplyBlending, NoBlending, NormalBlending, SubtractiveBlending } from '../core/three/';
|
|
8
|
-
export const SUPPORTED_MATERIAL_BLENDING_MODES = {
|
|
9
|
-
AdditiveBlending,
|
|
10
|
-
CustomBlending,
|
|
11
|
-
MultiplyBlending,
|
|
12
|
-
NoBlending,
|
|
13
|
-
NormalBlending,
|
|
14
|
-
SubtractiveBlending
|
|
15
|
-
};
|
|
16
|
-
export const DEFAULT_MATERIAL_PROPERTIES = {
|
|
17
|
-
color: 0xff0000,
|
|
18
|
-
blending: AdditiveBlending,
|
|
19
|
-
fog: true
|
|
20
|
-
};
|
|
21
|
-
export const DEFAULT_JSON_MATERIAL_PROPERTIES = _objectSpread(_objectSpread({}, DEFAULT_MATERIAL_PROPERTIES), {}, {
|
|
22
|
-
blending: 'AdditiveBlending'
|
|
23
|
-
});
|
|
24
|
-
export const DEFAULT_RATE_NUM_PAN = 1;
|
|
25
|
-
export const DEFAULT_RATE_TIME_PAN = 1;
|
|
26
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9jb25zdGFudHMuanMiXSwibmFtZXMiOlsiQWRkaXRpdmVCbGVuZGluZyIsIkN1c3RvbUJsZW5kaW5nIiwiTXVsdGlwbHlCbGVuZGluZyIsIk5vQmxlbmRpbmciLCJOb3JtYWxCbGVuZGluZyIsIlN1YnRyYWN0aXZlQmxlbmRpbmciLCJTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVMiLCJERUZBVUxUX01BVEVSSUFMX1BST1BFUlRJRVMiLCJjb2xvciIsImJsZW5kaW5nIiwiZm9nIiwiREVGQVVMVF9KU09OX01BVEVSSUFMX1BST1BFUlRJRVMiLCJERUZBVUxUX1JBVEVfTlVNX1BBTiIsIkRFRkFVTFRfUkFURV9USU1FX1BBTiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsU0FDRUEsZ0JBREYsRUFFRUMsY0FGRixFQUdFQyxnQkFIRixFQUlFQyxVQUpGLEVBS0VDLGNBTEYsRUFNRUMsbUJBTkYsUUFPTyxnQkFQUDtBQVNBLE9BQU8sTUFBTUMsaUNBQWlDLEdBQUc7QUFDL0NOLEVBQUFBLGdCQUQrQztBQUUvQ0MsRUFBQUEsY0FGK0M7QUFHL0NDLEVBQUFBLGdCQUgrQztBQUkvQ0MsRUFBQUEsVUFKK0M7QUFLL0NDLEVBQUFBLGNBTCtDO0FBTS9DQyxFQUFBQTtBQU4rQyxDQUExQztBQVNQLE9BQU8sTUFBTUUsMkJBQTJCLEdBQUc7QUFDekNDLEVBQUFBLEtBQUssRUFBRSxRQURrQztBQUV6Q0MsRUFBQUEsUUFBUSxFQUFFVCxnQkFGK0I7QUFHekNVLEVBQUFBLEdBQUcsRUFBRTtBQUhvQyxDQUFwQztBQUtQLE9BQU8sTUFBTUMsZ0NBQWdDLG1DQUN4Q0osMkJBRHdDO0FBRTNDRSxFQUFBQSxRQUFRLEVBQUU7QUFGaUMsRUFBdEM7QUFJUCxPQUFPLE1BQU1HLG9CQUFvQixHQUFHLENBQTdCO0FBQ1AsT0FBTyxNQUFNQyxxQkFBcUIsR0FBRyxDQUE5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFkZGl0aXZlQmxlbmRpbmcsXG4gIEN1c3RvbUJsZW5kaW5nLFxuICBNdWx0aXBseUJsZW5kaW5nLFxuICBOb0JsZW5kaW5nLFxuICBOb3JtYWxCbGVuZGluZyxcbiAgU3VidHJhY3RpdmVCbGVuZGluZyxcbn0gZnJvbSAnLi4vY29yZS90aHJlZS8nO1xuXG5leHBvcnQgY29uc3QgU1VQUE9SVEVEX01BVEVSSUFMX0JMRU5ESU5HX01PREVTID0ge1xuICBBZGRpdGl2ZUJsZW5kaW5nLFxuICBDdXN0b21CbGVuZGluZyxcbiAgTXVsdGlwbHlCbGVuZGluZyxcbiAgTm9CbGVuZGluZyxcbiAgTm9ybWFsQmxlbmRpbmcsXG4gIFN1YnRyYWN0aXZlQmxlbmRpbmcsXG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTID0ge1xuICBjb2xvcjogMHhmZjAwMDAsXG4gIGJsZW5kaW5nOiBBZGRpdGl2ZUJsZW5kaW5nLFxuICBmb2c6IHRydWUsXG59O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTID0ge1xuICAuLi5ERUZBVUxUX01BVEVSSUFMX1BST1BFUlRJRVMsXG4gIGJsZW5kaW5nOiAnQWRkaXRpdmVCbGVuZGluZycsXG59O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkFURV9OVU1fUEFOID0gMTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX1JBVEVfVElNRV9QQU4gPSAxO1xuIl19
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export { default as Body } from './Body';
|
|
2
|
-
export { default as BodySprite } from './BodySprite';
|
|
3
|
-
export { default as InitializerUtil } from './InitializerUtil';
|
|
4
|
-
export { default as Life } from './Life';
|
|
5
|
-
export { default as Mass } from './Mass';
|
|
6
|
-
export { default as Position } from './Position';
|
|
7
|
-
export { default as Rotation } from './Rotation';
|
|
8
|
-
export { default as Radius } from './Radius';
|
|
9
|
-
export { default as Rate } from './Rate';
|
|
10
|
-
export { default as Texture } from './Texture';
|
|
11
|
-
export { VectorVelocity, PolarVelocity, RadialVelocity } from './Velocity';
|
|
12
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiQm9keSIsIkJvZHlTcHJpdGUiLCJJbml0aWFsaXplclV0aWwiLCJMaWZlIiwiTWFzcyIsIlBvc2l0aW9uIiwiUm90YXRpb24iLCJSYWRpdXMiLCJSYXRlIiwiVGV4dHVyZSIsIlZlY3RvclZlbG9jaXR5IiwiUG9sYXJWZWxvY2l0eSIsIlJhZGlhbFZlbG9jaXR5Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFPLElBQUlDLElBQXBCLFFBQWdDLFFBQWhDO0FBQ0EsU0FBU0QsT0FBTyxJQUFJRSxVQUFwQixRQUFzQyxjQUF0QztBQUNBLFNBQVNGLE9BQU8sSUFBSUcsZUFBcEIsUUFBMkMsbUJBQTNDO0FBQ0EsU0FBU0gsT0FBTyxJQUFJSSxJQUFwQixRQUFnQyxRQUFoQztBQUNBLFNBQVNKLE9BQU8sSUFBSUssSUFBcEIsUUFBZ0MsUUFBaEM7QUFDQSxTQUFTTCxPQUFPLElBQUlNLFFBQXBCLFFBQW9DLFlBQXBDO0FBQ0EsU0FBU04sT0FBTyxJQUFJTyxRQUFwQixRQUFvQyxZQUFwQztBQUNBLFNBQVNQLE9BQU8sSUFBSVEsTUFBcEIsUUFBa0MsVUFBbEM7QUFDQSxTQUFTUixPQUFPLElBQUlTLElBQXBCLFFBQWdDLFFBQWhDO0FBQ0EsU0FBU1QsT0FBTyxJQUFJVSxPQUFwQixRQUFtQyxXQUFuQztBQUNBLFNBQVNDLGNBQVQsRUFBeUJDLGFBQXpCLEVBQXdDQyxjQUF4QyxRQUE4RCxZQUE5RCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgQm9keSB9IGZyb20gJy4vQm9keSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvZHlTcHJpdGUgfSBmcm9tICcuL0JvZHlTcHJpdGUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbml0aWFsaXplclV0aWwgfSBmcm9tICcuL0luaXRpYWxpemVyVXRpbCc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExpZmUgfSBmcm9tICcuL0xpZmUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYXNzIH0gZnJvbSAnLi9NYXNzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUG9zaXRpb24gfSBmcm9tICcuL1Bvc2l0aW9uJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUm90YXRpb24gfSBmcm9tICcuL1JvdGF0aW9uJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmFkaXVzIH0gZnJvbSAnLi9SYWRpdXMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSYXRlIH0gZnJvbSAnLi9SYXRlJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGV4dHVyZSB9IGZyb20gJy4vVGV4dHVyZSc7XG5leHBvcnQgeyBWZWN0b3JWZWxvY2l0eSwgUG9sYXJWZWxvY2l0eSwgUmFkaWFsVmVsb2NpdHkgfSBmcm9tICcuL1ZlbG9jaXR5JztcbiJdfQ==
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export const INITIALIZER_TYPE_ABSTRACT = 'Initializer';
|
|
2
|
-
export const INITIALIZER_TYPE_BODY = 'Body';
|
|
3
|
-
export const INITIALIZER_TYPE_BODY_SPRITE = 'BodySprite';
|
|
4
|
-
export const INITIALIZER_TYPE_TEXTURE = 'Texture';
|
|
5
|
-
export const INITIALIZER_TYPE_LIFE = 'Life';
|
|
6
|
-
export const INITIALIZER_TYPE_MASS = 'Mass';
|
|
7
|
-
export const INITIALIZER_TYPE_POSITION = 'Position';
|
|
8
|
-
export const INITIALIZER_TYPE_ROTATION = 'Rotation';
|
|
9
|
-
export const INITIALIZER_TYPE_RADIUS = 'Radius';
|
|
10
|
-
export const INITIALIZER_TYPE_ZONE = 'Zone';
|
|
11
|
-
export const INITIALIZER_TYPE_VECTOR_VELOCITY = 'VectorVelocity';
|
|
12
|
-
export const INITIALIZER_TYPE_POLAR_VELOCITY = 'PolarVelocity';
|
|
13
|
-
export const INITIALIZER_TYPE_RADIAL_VELOCITY = 'RadialVelocity';
|
|
14
|
-
export const INITIALIZER_TYPE_RATE = 'Rate';
|
|
15
|
-
export const INITIALIZER_TYPES_THAT_REQUIRE_THREE = [INITIALIZER_TYPE_BODY_SPRITE, INITIALIZER_TYPE_TEXTURE];
|
|
16
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci90eXBlcy5qcyJdLCJuYW1lcyI6WyJJTklUSUFMSVpFUl9UWVBFX0FCU1RSQUNUIiwiSU5JVElBTElaRVJfVFlQRV9CT0RZIiwiSU5JVElBTElaRVJfVFlQRV9CT0RZX1NQUklURSIsIklOSVRJQUxJWkVSX1RZUEVfVEVYVFVSRSIsIklOSVRJQUxJWkVSX1RZUEVfTElGRSIsIklOSVRJQUxJWkVSX1RZUEVfTUFTUyIsIklOSVRJQUxJWkVSX1RZUEVfUE9TSVRJT04iLCJJTklUSUFMSVpFUl9UWVBFX1JPVEFUSU9OIiwiSU5JVElBTElaRVJfVFlQRV9SQURJVVMiLCJJTklUSUFMSVpFUl9UWVBFX1pPTkUiLCJJTklUSUFMSVpFUl9UWVBFX1ZFQ1RPUl9WRUxPQ0lUWSIsIklOSVRJQUxJWkVSX1RZUEVfUE9MQVJfVkVMT0NJVFkiLCJJTklUSUFMSVpFUl9UWVBFX1JBRElBTF9WRUxPQ0lUWSIsIklOSVRJQUxJWkVSX1RZUEVfUkFURSIsIklOSVRJQUxJWkVSX1RZUEVTX1RIQVRfUkVRVUlSRV9USFJFRSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSx5QkFBeUIsR0FBRyxhQUFsQztBQUNQLE9BQU8sTUFBTUMscUJBQXFCLEdBQUcsTUFBOUI7QUFDUCxPQUFPLE1BQU1DLDRCQUE0QixHQUFHLFlBQXJDO0FBQ1AsT0FBTyxNQUFNQyx3QkFBd0IsR0FBRyxTQUFqQztBQUNQLE9BQU8sTUFBTUMscUJBQXFCLEdBQUcsTUFBOUI7QUFDUCxPQUFPLE1BQU1DLHFCQUFxQixHQUFHLE1BQTlCO0FBQ1AsT0FBTyxNQUFNQyx5QkFBeUIsR0FBRyxVQUFsQztBQUNQLE9BQU8sTUFBTUMseUJBQXlCLEdBQUcsVUFBbEM7QUFDUCxPQUFPLE1BQU1DLHVCQUF1QixHQUFHLFFBQWhDO0FBQ1AsT0FBTyxNQUFNQyxxQkFBcUIsR0FBRyxNQUE5QjtBQUNQLE9BQU8sTUFBTUMsZ0NBQWdDLEdBQUcsZ0JBQXpDO0FBQ1AsT0FBTyxNQUFNQywrQkFBK0IsR0FBRyxlQUF4QztBQUNQLE9BQU8sTUFBTUMsZ0NBQWdDLEdBQUcsZ0JBQXpDO0FBQ1AsT0FBTyxNQUFNQyxxQkFBcUIsR0FBRyxNQUE5QjtBQUNQLE9BQU8sTUFBTUMsb0NBQW9DLEdBQUcsQ0FDbERaLDRCQURrRCxFQUVsREMsd0JBRmtELENBQTdDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfQUJTVFJBQ1QgPSAnSW5pdGlhbGl6ZXInO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfQk9EWSA9ICdCb2R5JztcbmV4cG9ydCBjb25zdCBJTklUSUFMSVpFUl9UWVBFX0JPRFlfU1BSSVRFID0gJ0JvZHlTcHJpdGUnO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfVEVYVFVSRSA9ICdUZXh0dXJlJztcbmV4cG9ydCBjb25zdCBJTklUSUFMSVpFUl9UWVBFX0xJRkUgPSAnTGlmZSc7XG5leHBvcnQgY29uc3QgSU5JVElBTElaRVJfVFlQRV9NQVNTID0gJ01hc3MnO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfUE9TSVRJT04gPSAnUG9zaXRpb24nO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfUk9UQVRJT04gPSAnUm90YXRpb24nO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfUkFESVVTID0gJ1JhZGl1cyc7XG5leHBvcnQgY29uc3QgSU5JVElBTElaRVJfVFlQRV9aT05FID0gJ1pvbmUnO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfVkVDVE9SX1ZFTE9DSVRZID0gJ1ZlY3RvclZlbG9jaXR5JztcbmV4cG9ydCBjb25zdCBJTklUSUFMSVpFUl9UWVBFX1BPTEFSX1ZFTE9DSVRZID0gJ1BvbGFyVmVsb2NpdHknO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfUkFESUFMX1ZFTE9DSVRZID0gJ1JhZGlhbFZlbG9jaXR5JztcbmV4cG9ydCBjb25zdCBJTklUSUFMSVpFUl9UWVBFX1JBVEUgPSAnUmF0ZSc7XG5leHBvcnQgY29uc3QgSU5JVElBTElaRVJfVFlQRVNfVEhBVF9SRVFVSVJFX1RIUkVFID0gW1xuICBJTklUSUFMSVpFUl9UWVBFX0JPRFlfU1BSSVRFLFxuICBJTklUSUFMSVpFUl9UWVBFX1RFWFRVUkUsXG5dO1xuIl19
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import Span from './Span';
|
|
2
|
-
import sample from 'lodash/sample';
|
|
3
|
-
import { MATH_TYPE_ARRAY_SPAN as type } from './types';
|
|
4
|
-
/**
|
|
5
|
-
* Class for storing items of mixed type and fetching a randomised
|
|
6
|
-
* value from these items.
|
|
7
|
-
*
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
export default class ArraySpan extends Span {
|
|
11
|
-
/**
|
|
12
|
-
* Constructs an ArraySpan instance.
|
|
13
|
-
*
|
|
14
|
-
* @param {mixed|array<mixed>} items - Items
|
|
15
|
-
* @return void
|
|
16
|
-
*/
|
|
17
|
-
constructor(items) {
|
|
18
|
-
super();
|
|
19
|
-
/**
|
|
20
|
-
* @desc The class type.
|
|
21
|
-
* @type {string}
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
this.type = type;
|
|
25
|
-
/**
|
|
26
|
-
* @desc An array of colors
|
|
27
|
-
* @type {array}
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
this.items = Array.isArray(items) ? items : [items];
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Gets a random item.
|
|
34
|
-
*
|
|
35
|
-
* @return {mixed}
|
|
36
|
-
*/
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
getValue() {
|
|
40
|
-
return sample(this.items);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Attempts to create an ArraySpan from the items provided.
|
|
46
|
-
*
|
|
47
|
-
* @param {mixed} items - Items to try and create an ArraySpan from
|
|
48
|
-
* @return {?ArraySpan}
|
|
49
|
-
*/
|
|
50
|
-
|
|
51
|
-
export const createArraySpan = items => {
|
|
52
|
-
if (!items) {
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
if (items instanceof ArraySpan) {
|
|
57
|
-
return items;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return new ArraySpan(items);
|
|
61
|
-
};
|
|
62
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL0FycmF5U3Bhbi5qcyJdLCJuYW1lcyI6WyJTcGFuIiwic2FtcGxlIiwiTUFUSF9UWVBFX0FSUkFZX1NQQU4iLCJ0eXBlIiwiQXJyYXlTcGFuIiwiY29uc3RydWN0b3IiLCJpdGVtcyIsIkFycmF5IiwiaXNBcnJheSIsImdldFZhbHVlIiwiY3JlYXRlQXJyYXlTcGFuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxJQUFQLE1BQWlCLFFBQWpCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixlQUFuQjtBQUNBLFNBQVNDLG9CQUFvQixJQUFJQyxJQUFqQyxRQUE2QyxTQUE3QztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxTQUFOLFNBQXdCSixJQUF4QixDQUE2QjtBQUMxQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUssRUFBQUEsV0FBVyxDQUFDQyxLQUFELEVBQVE7QUFDakI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSCxJQUFMLEdBQVlBLElBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLRyxLQUFMLEdBQWFDLEtBQUssQ0FBQ0MsT0FBTixDQUFjRixLQUFkLElBQXVCQSxLQUF2QixHQUErQixDQUFDQSxLQUFELENBQTVDO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUcsRUFBQUEsUUFBUSxHQUFHO0FBQ1QsV0FBT1IsTUFBTSxDQUFDLEtBQUtLLEtBQU4sQ0FBYjtBQUNEOztBQTlCeUM7QUFpQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1JLGVBQWUsR0FBR0osS0FBSyxJQUFJO0FBQ3RDLE1BQUksQ0FBQ0EsS0FBTCxFQUFZO0FBQ1YsV0FBTyxJQUFQO0FBQ0Q7O0FBRUQsTUFBSUEsS0FBSyxZQUFZRixTQUFyQixFQUFnQztBQUM5QixXQUFPRSxLQUFQO0FBQ0Q7O0FBRUQsU0FBTyxJQUFJRixTQUFKLENBQWNFLEtBQWQsQ0FBUDtBQUNELENBVk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3BhbiBmcm9tICcuL1NwYW4nO1xuaW1wb3J0IHNhbXBsZSBmcm9tICdsb2Rhc2gvc2FtcGxlJztcbmltcG9ydCB7IE1BVEhfVFlQRV9BUlJBWV9TUEFOIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBDbGFzcyBmb3Igc3RvcmluZyBpdGVtcyBvZiBtaXhlZCB0eXBlIGFuZCBmZXRjaGluZyBhIHJhbmRvbWlzZWRcbiAqIHZhbHVlIGZyb20gdGhlc2UgaXRlbXMuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcnJheVNwYW4gZXh0ZW5kcyBTcGFuIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYW4gQXJyYXlTcGFuIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge21peGVkfGFycmF5PG1peGVkPn0gaXRlbXMgLSBJdGVtc1xuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKGl0ZW1zKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBjbGFzcyB0eXBlLlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy50eXBlID0gdHlwZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIEFuIGFycmF5IG9mIGNvbG9yc1xuICAgICAqIEB0eXBlIHthcnJheX1cbiAgICAgKi9cbiAgICB0aGlzLml0ZW1zID0gQXJyYXkuaXNBcnJheShpdGVtcykgPyBpdGVtcyA6IFtpdGVtc107XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIHJhbmRvbSBpdGVtLlxuICAgKlxuICAgKiBAcmV0dXJuIHttaXhlZH1cbiAgICovXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiBzYW1wbGUodGhpcy5pdGVtcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBBdHRlbXB0cyB0byBjcmVhdGUgYW4gQXJyYXlTcGFuIGZyb20gdGhlIGl0ZW1zIHByb3ZpZGVkLlxuICpcbiAqIEBwYXJhbSB7bWl4ZWR9IGl0ZW1zIC0gSXRlbXMgdG8gdHJ5IGFuZCBjcmVhdGUgYW4gQXJyYXlTcGFuIGZyb21cbiAqIEByZXR1cm4gez9BcnJheVNwYW59XG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVBcnJheVNwYW4gPSBpdGVtcyA9PiB7XG4gIGlmICghaXRlbXMpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChpdGVtcyBpbnN0YW5jZW9mIEFycmF5U3Bhbikge1xuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHJldHVybiBuZXcgQXJyYXlTcGFuKGl0ZW1zKTtcbn07XG4iXX0=
|
package/build/esm/math/Box.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { MATH_TYPE_BOX as type } from './types';
|
|
2
|
-
export default class Box {
|
|
3
|
-
constructor(x, y, z, w, h, d) {
|
|
4
|
-
/**
|
|
5
|
-
* @desc The class type.
|
|
6
|
-
* @type {string}
|
|
7
|
-
*/
|
|
8
|
-
this.type = type;
|
|
9
|
-
this.x = x;
|
|
10
|
-
this.y = y;
|
|
11
|
-
this.z = z;
|
|
12
|
-
this.width = w;
|
|
13
|
-
this.height = h;
|
|
14
|
-
this.depth = d;
|
|
15
|
-
this.bottom = this.y + this.height;
|
|
16
|
-
this.right = this.x + this.width;
|
|
17
|
-
this.right = this.x + this.width;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
contains(x, y, z) {
|
|
21
|
-
if (x <= this.right && x >= this.x && y <= this.bottom && y >= this.y && z <= this.depth && z >= this.z) return true;else return false;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL0JveC5qcyJdLCJuYW1lcyI6WyJNQVRIX1RZUEVfQk9YIiwidHlwZSIsIkJveCIsImNvbnN0cnVjdG9yIiwieCIsInkiLCJ6IiwidyIsImgiLCJkIiwid2lkdGgiLCJoZWlnaHQiLCJkZXB0aCIsImJvdHRvbSIsInJpZ2h0IiwiY29udGFpbnMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsSUFBSUMsSUFBMUIsUUFBc0MsU0FBdEM7QUFFQSxlQUFlLE1BQU1DLEdBQU4sQ0FBVTtBQUN2QkMsRUFBQUEsV0FBVyxDQUFDQyxDQUFELEVBQUlDLENBQUosRUFBT0MsQ0FBUCxFQUFVQyxDQUFWLEVBQWFDLENBQWIsRUFBZ0JDLENBQWhCLEVBQW1CO0FBQzVCO0FBQ0o7QUFDQTtBQUNBO0FBQ0ksU0FBS1IsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0csQ0FBTCxHQUFTQSxDQUFUO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTQSxDQUFUO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTQSxDQUFUO0FBQ0EsU0FBS0ksS0FBTCxHQUFhSCxDQUFiO0FBQ0EsU0FBS0ksTUFBTCxHQUFjSCxDQUFkO0FBQ0EsU0FBS0ksS0FBTCxHQUFhSCxDQUFiO0FBQ0EsU0FBS0ksTUFBTCxHQUFjLEtBQUtSLENBQUwsR0FBUyxLQUFLTSxNQUE1QjtBQUNBLFNBQUtHLEtBQUwsR0FBYSxLQUFLVixDQUFMLEdBQVMsS0FBS00sS0FBM0I7QUFDQSxTQUFLSSxLQUFMLEdBQWEsS0FBS1YsQ0FBTCxHQUFTLEtBQUtNLEtBQTNCO0FBQ0Q7O0FBRURLLEVBQUFBLFFBQVEsQ0FBQ1gsQ0FBRCxFQUFJQyxDQUFKLEVBQU9DLENBQVAsRUFBVTtBQUNoQixRQUNFRixDQUFDLElBQUksS0FBS1UsS0FBVixJQUNBVixDQUFDLElBQUksS0FBS0EsQ0FEVixJQUVBQyxDQUFDLElBQUksS0FBS1EsTUFGVixJQUdBUixDQUFDLElBQUksS0FBS0EsQ0FIVixJQUlBQyxDQUFDLElBQUksS0FBS00sS0FKVixJQUtBTixDQUFDLElBQUksS0FBS0EsQ0FOWixFQVFFLE9BQU8sSUFBUCxDQVJGLEtBU0ssT0FBTyxLQUFQO0FBQ047O0FBN0JzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1BVEhfVFlQRV9CT1ggYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCb3gge1xuICBjb25zdHJ1Y3Rvcih4LCB5LCB6LCB3LCBoLCBkKSB7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGNsYXNzIHR5cGUuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMueCA9IHg7XG4gICAgdGhpcy55ID0geTtcbiAgICB0aGlzLnogPSB6O1xuICAgIHRoaXMud2lkdGggPSB3O1xuICAgIHRoaXMuaGVpZ2h0ID0gaDtcbiAgICB0aGlzLmRlcHRoID0gZDtcbiAgICB0aGlzLmJvdHRvbSA9IHRoaXMueSArIHRoaXMuaGVpZ2h0O1xuICAgIHRoaXMucmlnaHQgPSB0aGlzLnggKyB0aGlzLndpZHRoO1xuICAgIHRoaXMucmlnaHQgPSB0aGlzLnggKyB0aGlzLndpZHRoO1xuICB9XG5cbiAgY29udGFpbnMoeCwgeSwgeikge1xuICAgIGlmIChcbiAgICAgIHggPD0gdGhpcy5yaWdodCAmJlxuICAgICAgeCA+PSB0aGlzLnggJiZcbiAgICAgIHkgPD0gdGhpcy5ib3R0b20gJiZcbiAgICAgIHkgPj0gdGhpcy55ICYmXG4gICAgICB6IDw9IHRoaXMuZGVwdGggJiZcbiAgICAgIHogPj0gdGhpcy56XG4gICAgKVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgZWxzZSByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import MathUtils from './MathUtils';
|
|
2
|
-
import Span from './Span';
|
|
3
|
-
import sample from 'lodash/sample';
|
|
4
|
-
import { MATH_TYPE_COLOR_SPAN as type } from './types';
|
|
5
|
-
/**
|
|
6
|
-
* Class for storing and interacting with an array of colours.
|
|
7
|
-
*
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
export default class ColorSpan extends Span {
|
|
11
|
-
/**
|
|
12
|
-
* Constructs a ColorSpan instance.
|
|
13
|
-
*
|
|
14
|
-
* @param {string|array<string>} colors - A color or array of colors. If the
|
|
15
|
-
* string 'random' is provided, a random color will be returned from getValue
|
|
16
|
-
* @return void
|
|
17
|
-
*/
|
|
18
|
-
constructor(colors) {
|
|
19
|
-
super();
|
|
20
|
-
/**
|
|
21
|
-
* @desc The class type.
|
|
22
|
-
* @type {string}
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
this.type = type;
|
|
26
|
-
/**
|
|
27
|
-
* @desc Determines if a random color should be returned from the getValue method.
|
|
28
|
-
* @type {boolean}
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
this.shouldRandomize = colors === 'random' ? true : false;
|
|
32
|
-
/**
|
|
33
|
-
* @desc An array of colors to select from
|
|
34
|
-
* @type {array<string>}
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
this.colors = Array.isArray(colors) ? colors : [colors];
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Gets a color from the color array
|
|
41
|
-
* or a random color if this.shouldRandomize is true.
|
|
42
|
-
*
|
|
43
|
-
* @return {string} a hex color
|
|
44
|
-
*/
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
getValue() {
|
|
48
|
-
return this.shouldRandomize ? MathUtils.randomColor() : sample(this.colors);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Attempts to create an ArraySpan from the colors provided.
|
|
54
|
-
*
|
|
55
|
-
* @param {mixed} colors - colors to try and create an ArraySpan from
|
|
56
|
-
* @return {?ColorSpan}
|
|
57
|
-
*/
|
|
58
|
-
|
|
59
|
-
export const createColorSpan = colors => {
|
|
60
|
-
if (!colors) {
|
|
61
|
-
console.warn(`Invalid colors argument ${colors} passed to createColorSpan. Defaulting to 'random'.`);
|
|
62
|
-
colors = 'random';
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (colors instanceof ColorSpan) {
|
|
66
|
-
return colors;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return new ColorSpan(colors);
|
|
70
|
-
};
|
|
71
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL0NvbG9yU3Bhbi5qcyJdLCJuYW1lcyI6WyJNYXRoVXRpbHMiLCJTcGFuIiwic2FtcGxlIiwiTUFUSF9UWVBFX0NPTE9SX1NQQU4iLCJ0eXBlIiwiQ29sb3JTcGFuIiwiY29uc3RydWN0b3IiLCJjb2xvcnMiLCJzaG91bGRSYW5kb21pemUiLCJBcnJheSIsImlzQXJyYXkiLCJnZXRWYWx1ZSIsInJhbmRvbUNvbG9yIiwiY3JlYXRlQ29sb3JTcGFuIiwiY29uc29sZSIsIndhcm4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFNBQVAsTUFBc0IsYUFBdEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFFBQWpCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixlQUFuQjtBQUNBLFNBQVNDLG9CQUFvQixJQUFJQyxJQUFqQyxRQUE2QyxTQUE3QztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsU0FBTixTQUF3QkosSUFBeEIsQ0FBNkI7QUFDMUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUssRUFBQUEsV0FBVyxDQUFDQyxNQUFELEVBQVM7QUFDbEI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSCxJQUFMLEdBQVlBLElBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSSxlQUFMLEdBQXVCRCxNQUFNLEtBQUssUUFBWCxHQUFzQixJQUF0QixHQUE2QixLQUFwRDtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtBLE1BQUwsR0FBY0UsS0FBSyxDQUFDQyxPQUFOLENBQWNILE1BQWQsSUFBd0JBLE1BQXhCLEdBQWlDLENBQUNBLE1BQUQsQ0FBL0M7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VJLEVBQUFBLFFBQVEsR0FBRztBQUNULFdBQU8sS0FBS0gsZUFBTCxHQUF1QlIsU0FBUyxDQUFDWSxXQUFWLEVBQXZCLEdBQWlEVixNQUFNLENBQUMsS0FBS0ssTUFBTixDQUE5RDtBQUNEOztBQXRDeUM7QUF5QzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1NLGVBQWUsR0FBR04sTUFBTSxJQUFJO0FBQ3ZDLE1BQUksQ0FBQ0EsTUFBTCxFQUFhO0FBQ1hPLElBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUNHLDJCQUEwQlIsTUFBTyxxREFEcEM7QUFJQUEsSUFBQUEsTUFBTSxHQUFHLFFBQVQ7QUFDRDs7QUFFRCxNQUFJQSxNQUFNLFlBQVlGLFNBQXRCLEVBQWlDO0FBQy9CLFdBQU9FLE1BQVA7QUFDRDs7QUFFRCxTQUFPLElBQUlGLFNBQUosQ0FBY0UsTUFBZCxDQUFQO0FBQ0QsQ0FkTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNYXRoVXRpbHMgZnJvbSAnLi9NYXRoVXRpbHMnO1xuaW1wb3J0IFNwYW4gZnJvbSAnLi9TcGFuJztcbmltcG9ydCBzYW1wbGUgZnJvbSAnbG9kYXNoL3NhbXBsZSc7XG5pbXBvcnQgeyBNQVRIX1RZUEVfQ09MT1JfU1BBTiBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ2xhc3MgZm9yIHN0b3JpbmcgYW5kIGludGVyYWN0aW5nIHdpdGggYW4gYXJyYXkgb2YgY29sb3Vycy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbG9yU3BhbiBleHRlbmRzIFNwYW4ge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIENvbG9yU3BhbiBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd8YXJyYXk8c3RyaW5nPn0gY29sb3JzIC0gQSBjb2xvciBvciBhcnJheSBvZiBjb2xvcnMuIElmIHRoZVxuICAgKiBzdHJpbmcgJ3JhbmRvbScgaXMgcHJvdmlkZWQsIGEgcmFuZG9tIGNvbG9yIHdpbGwgYmUgcmV0dXJuZWQgZnJvbSBnZXRWYWx1ZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbG9ycykge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgY2xhc3MgdHlwZS5cbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBEZXRlcm1pbmVzIGlmIGEgcmFuZG9tIGNvbG9yIHNob3VsZCBiZSByZXR1cm5lZCBmcm9tIHRoZSBnZXRWYWx1ZSBtZXRob2QuXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgdGhpcy5zaG91bGRSYW5kb21pemUgPSBjb2xvcnMgPT09ICdyYW5kb20nID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgQW4gYXJyYXkgb2YgY29sb3JzIHRvIHNlbGVjdCBmcm9tXG4gICAgICogQHR5cGUge2FycmF5PHN0cmluZz59XG4gICAgICovXG4gICAgdGhpcy5jb2xvcnMgPSBBcnJheS5pc0FycmF5KGNvbG9ycykgPyBjb2xvcnMgOiBbY29sb3JzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgY29sb3IgZnJvbSB0aGUgY29sb3IgYXJyYXlcbiAgICogb3IgYSByYW5kb20gY29sb3IgaWYgdGhpcy5zaG91bGRSYW5kb21pemUgaXMgdHJ1ZS5cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nfSBhIGhleCBjb2xvclxuICAgKi9cbiAgZ2V0VmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdWxkUmFuZG9taXplID8gTWF0aFV0aWxzLnJhbmRvbUNvbG9yKCkgOiBzYW1wbGUodGhpcy5jb2xvcnMpO1xuICB9XG59XG5cbi8qKlxuICogQXR0ZW1wdHMgdG8gY3JlYXRlIGFuIEFycmF5U3BhbiBmcm9tIHRoZSBjb2xvcnMgcHJvdmlkZWQuXG4gKlxuICogQHBhcmFtIHttaXhlZH0gY29sb3JzIC0gY29sb3JzIHRvIHRyeSBhbmQgY3JlYXRlIGFuIEFycmF5U3BhbiBmcm9tXG4gKiBAcmV0dXJuIHs/Q29sb3JTcGFufVxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlQ29sb3JTcGFuID0gY29sb3JzID0+IHtcbiAgaWYgKCFjb2xvcnMpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBgSW52YWxpZCBjb2xvcnMgYXJndW1lbnQgJHtjb2xvcnN9IHBhc3NlZCB0byBjcmVhdGVDb2xvclNwYW4uIERlZmF1bHRpbmcgdG8gJ3JhbmRvbScuYFxuICAgICk7XG5cbiAgICBjb2xvcnMgPSAncmFuZG9tJztcbiAgfVxuXG4gIGlmIChjb2xvcnMgaW5zdGFuY2VvZiBDb2xvclNwYW4pIHtcbiAgICByZXR1cm4gY29sb3JzO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBDb2xvclNwYW4oY29sb3JzKTtcbn07XG4iXX0=
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { PI } from '../constants';
|
|
2
|
-
export default {
|
|
3
|
-
randomAToB: function (a, b, INT) {
|
|
4
|
-
if (!INT) return a + Math.random() * (b - a);else return (Math.random() * (b - a) >> 0) + a;
|
|
5
|
-
},
|
|
6
|
-
randomFloating: function (center, f, INT) {
|
|
7
|
-
return this.randomAToB(center - f, center + f, INT);
|
|
8
|
-
},
|
|
9
|
-
randomZone: function (display) {},
|
|
10
|
-
//eslint-disable-line
|
|
11
|
-
degreeTransform: function (a) {
|
|
12
|
-
return a * PI / 180;
|
|
13
|
-
},
|
|
14
|
-
toColor16: function getRGB(num) {
|
|
15
|
-
return '#' + num.toString(16);
|
|
16
|
-
},
|
|
17
|
-
randomColor: function () {
|
|
18
|
-
return '#' + ('00000' + (Math.random() * 0x1000000 << 0).toString(16)).slice(-6);
|
|
19
|
-
},
|
|
20
|
-
lerp: function (a, b, energy) {
|
|
21
|
-
return b + (a - b) * energy;
|
|
22
|
-
},
|
|
23
|
-
getNormal: function (v, n) {
|
|
24
|
-
if (v.x == 0 && v.y == 0) {
|
|
25
|
-
if (v.z == 0) n.set(1, 0, 1);else n.set(1, 1, -v.y / v.z);
|
|
26
|
-
} else {
|
|
27
|
-
if (v.x == 0) n.set(1, 0, 1);else n.set(-v.y / v.x, 1, 1);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return n.normalize();
|
|
31
|
-
},
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Rodrigues' Rotation Formula
|
|
35
|
-
* https://en.wikipedia.org/wiki/Rodrigues%27_rotation_formula
|
|
36
|
-
* v′ = vcos(θ) + k(k⋅v)(1−cos(θ)) + (k*v)sin(θ)
|
|
37
|
-
*/
|
|
38
|
-
axisRotate: function (v0, v, k, tha) {
|
|
39
|
-
var cos = Math.cos(tha);
|
|
40
|
-
var sin = Math.sin(tha);
|
|
41
|
-
var p = k.dot(v) * (1 - cos);
|
|
42
|
-
v0.copy(k);
|
|
43
|
-
v0.cross(v).scalar(sin);
|
|
44
|
-
v0.addValue(v.x * cos, v.y * cos, v.z * cos);
|
|
45
|
-
v0.addValue(k.x * p, k.y * p, k.z * p);
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL01hdGhVdGlscy5qcyJdLCJuYW1lcyI6WyJQSSIsInJhbmRvbUFUb0IiLCJhIiwiYiIsIklOVCIsIk1hdGgiLCJyYW5kb20iLCJyYW5kb21GbG9hdGluZyIsImNlbnRlciIsImYiLCJyYW5kb21ab25lIiwiZGlzcGxheSIsImRlZ3JlZVRyYW5zZm9ybSIsInRvQ29sb3IxNiIsImdldFJHQiIsIm51bSIsInRvU3RyaW5nIiwicmFuZG9tQ29sb3IiLCJzbGljZSIsImxlcnAiLCJlbmVyZ3kiLCJnZXROb3JtYWwiLCJ2IiwibiIsIngiLCJ5IiwieiIsInNldCIsIm5vcm1hbGl6ZSIsImF4aXNSb3RhdGUiLCJ2MCIsImsiLCJ0aGEiLCJjb3MiLCJzaW4iLCJwIiwiZG90IiwiY29weSIsImNyb3NzIiwic2NhbGFyIiwiYWRkVmFsdWUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEVBQVQsUUFBbUIsY0FBbkI7QUFFQSxlQUFlO0FBQ2JDLEVBQUFBLFVBQVUsRUFBRSxVQUFTQyxDQUFULEVBQVlDLENBQVosRUFBZUMsR0FBZixFQUFvQjtBQUM5QixRQUFJLENBQUNBLEdBQUwsRUFBVSxPQUFPRixDQUFDLEdBQUdHLElBQUksQ0FBQ0MsTUFBTCxNQUFpQkgsQ0FBQyxHQUFHRCxDQUFyQixDQUFYLENBQVYsS0FDSyxPQUFPLENBQUVHLElBQUksQ0FBQ0MsTUFBTCxNQUFpQkgsQ0FBQyxHQUFHRCxDQUFyQixDQUFELElBQTZCLENBQTlCLElBQW1DQSxDQUExQztBQUNOLEdBSlk7QUFLYkssRUFBQUEsY0FBYyxFQUFFLFVBQVNDLE1BQVQsRUFBaUJDLENBQWpCLEVBQW9CTCxHQUFwQixFQUF5QjtBQUN2QyxXQUFPLEtBQUtILFVBQUwsQ0FBZ0JPLE1BQU0sR0FBR0MsQ0FBekIsRUFBNEJELE1BQU0sR0FBR0MsQ0FBckMsRUFBd0NMLEdBQXhDLENBQVA7QUFDRCxHQVBZO0FBU2JNLEVBQUFBLFVBQVUsRUFBRSxVQUFTQyxPQUFULEVBQWtCLENBQUUsQ0FUbkI7QUFTcUI7QUFFbENDLEVBQUFBLGVBQWUsRUFBRSxVQUFTVixDQUFULEVBQVk7QUFDM0IsV0FBUUEsQ0FBQyxHQUFHRixFQUFMLEdBQVcsR0FBbEI7QUFDRCxHQWJZO0FBZWJhLEVBQUFBLFNBQVMsRUFBRSxTQUFTQyxNQUFULENBQWdCQyxHQUFoQixFQUFxQjtBQUM5QixXQUFPLE1BQU1BLEdBQUcsQ0FBQ0MsUUFBSixDQUFhLEVBQWIsQ0FBYjtBQUNELEdBakJZO0FBbUJiQyxFQUFBQSxXQUFXLEVBQUUsWUFBVztBQUN0QixXQUNFLE1BQ0EsQ0FBQyxVQUFVLENBQUVaLElBQUksQ0FBQ0MsTUFBTCxLQUFnQixTQUFqQixJQUErQixDQUFoQyxFQUFtQ1UsUUFBbkMsQ0FBNEMsRUFBNUMsQ0FBWCxFQUE0REUsS0FBNUQsQ0FBa0UsQ0FBQyxDQUFuRSxDQUZGO0FBSUQsR0F4Qlk7QUEwQmJDLEVBQUFBLElBQUksRUFBRSxVQUFTakIsQ0FBVCxFQUFZQyxDQUFaLEVBQWVpQixNQUFmLEVBQXVCO0FBQzNCLFdBQU9qQixDQUFDLEdBQUcsQ0FBQ0QsQ0FBQyxHQUFHQyxDQUFMLElBQVVpQixNQUFyQjtBQUNELEdBNUJZO0FBOEJiQyxFQUFBQSxTQUFTLEVBQUUsVUFBU0MsQ0FBVCxFQUFZQyxDQUFaLEVBQWU7QUFDeEIsUUFBSUQsQ0FBQyxDQUFDRSxDQUFGLElBQU8sQ0FBUCxJQUFZRixDQUFDLENBQUNHLENBQUYsSUFBTyxDQUF2QixFQUEwQjtBQUN4QixVQUFJSCxDQUFDLENBQUNJLENBQUYsSUFBTyxDQUFYLEVBQWNILENBQUMsQ0FBQ0ksR0FBRixDQUFNLENBQU4sRUFBUyxDQUFULEVBQVksQ0FBWixFQUFkLEtBQ0tKLENBQUMsQ0FBQ0ksR0FBRixDQUFNLENBQU4sRUFBUyxDQUFULEVBQVksQ0FBQ0wsQ0FBQyxDQUFDRyxDQUFILEdBQU9ILENBQUMsQ0FBQ0ksQ0FBckI7QUFDTixLQUhELE1BR087QUFDTCxVQUFJSixDQUFDLENBQUNFLENBQUYsSUFBTyxDQUFYLEVBQWNELENBQUMsQ0FBQ0ksR0FBRixDQUFNLENBQU4sRUFBUyxDQUFULEVBQVksQ0FBWixFQUFkLEtBQ0tKLENBQUMsQ0FBQ0ksR0FBRixDQUFNLENBQUNMLENBQUMsQ0FBQ0csQ0FBSCxHQUFPSCxDQUFDLENBQUNFLENBQWYsRUFBa0IsQ0FBbEIsRUFBcUIsQ0FBckI7QUFDTjs7QUFFRCxXQUFPRCxDQUFDLENBQUNLLFNBQUYsRUFBUDtBQUNELEdBeENZOztBQTBDYjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0VDLEVBQUFBLFVBQVUsRUFBRSxVQUFTQyxFQUFULEVBQWFSLENBQWIsRUFBZ0JTLENBQWhCLEVBQW1CQyxHQUFuQixFQUF3QjtBQUNsQyxRQUFJQyxHQUFHLEdBQUc1QixJQUFJLENBQUM0QixHQUFMLENBQVNELEdBQVQsQ0FBVjtBQUNBLFFBQUlFLEdBQUcsR0FBRzdCLElBQUksQ0FBQzZCLEdBQUwsQ0FBU0YsR0FBVCxDQUFWO0FBQ0EsUUFBSUcsQ0FBQyxHQUFHSixDQUFDLENBQUNLLEdBQUYsQ0FBTWQsQ0FBTixLQUFZLElBQUlXLEdBQWhCLENBQVI7QUFFQUgsSUFBQUEsRUFBRSxDQUFDTyxJQUFILENBQVFOLENBQVI7QUFDQUQsSUFBQUEsRUFBRSxDQUFDUSxLQUFILENBQVNoQixDQUFULEVBQVlpQixNQUFaLENBQW1CTCxHQUFuQjtBQUNBSixJQUFBQSxFQUFFLENBQUNVLFFBQUgsQ0FBWWxCLENBQUMsQ0FBQ0UsQ0FBRixHQUFNUyxHQUFsQixFQUF1QlgsQ0FBQyxDQUFDRyxDQUFGLEdBQU1RLEdBQTdCLEVBQWtDWCxDQUFDLENBQUNJLENBQUYsR0FBTU8sR0FBeEM7QUFDQUgsSUFBQUEsRUFBRSxDQUFDVSxRQUFILENBQVlULENBQUMsQ0FBQ1AsQ0FBRixHQUFNVyxDQUFsQixFQUFxQkosQ0FBQyxDQUFDTixDQUFGLEdBQU1VLENBQTNCLEVBQThCSixDQUFDLENBQUNMLENBQUYsR0FBTVMsQ0FBcEM7QUFDRDtBQXhEWSxDQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUEkgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHJhbmRvbUFUb0I6IGZ1bmN0aW9uKGEsIGIsIElOVCkge1xuICAgIGlmICghSU5UKSByZXR1cm4gYSArIE1hdGgucmFuZG9tKCkgKiAoYiAtIGEpO1xuICAgIGVsc2UgcmV0dXJuICgoTWF0aC5yYW5kb20oKSAqIChiIC0gYSkpID4+IDApICsgYTtcbiAgfSxcbiAgcmFuZG9tRmxvYXRpbmc6IGZ1bmN0aW9uKGNlbnRlciwgZiwgSU5UKSB7XG4gICAgcmV0dXJuIHRoaXMucmFuZG9tQVRvQihjZW50ZXIgLSBmLCBjZW50ZXIgKyBmLCBJTlQpO1xuICB9LFxuXG4gIHJhbmRvbVpvbmU6IGZ1bmN0aW9uKGRpc3BsYXkpIHt9LCAvL2VzbGludC1kaXNhYmxlLWxpbmVcblxuICBkZWdyZWVUcmFuc2Zvcm06IGZ1bmN0aW9uKGEpIHtcbiAgICByZXR1cm4gKGEgKiBQSSkgLyAxODA7XG4gIH0sXG5cbiAgdG9Db2xvcjE2OiBmdW5jdGlvbiBnZXRSR0IobnVtKSB7XG4gICAgcmV0dXJuICcjJyArIG51bS50b1N0cmluZygxNik7XG4gIH0sXG5cbiAgcmFuZG9tQ29sb3I6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAoXG4gICAgICAnIycgK1xuICAgICAgKCcwMDAwMCcgKyAoKE1hdGgucmFuZG9tKCkgKiAweDEwMDAwMDApIDw8IDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTYpXG4gICAgKTtcbiAgfSxcblxuICBsZXJwOiBmdW5jdGlvbihhLCBiLCBlbmVyZ3kpIHtcbiAgICByZXR1cm4gYiArIChhIC0gYikgKiBlbmVyZ3k7XG4gIH0sXG5cbiAgZ2V0Tm9ybWFsOiBmdW5jdGlvbih2LCBuKSB7XG4gICAgaWYgKHYueCA9PSAwICYmIHYueSA9PSAwKSB7XG4gICAgICBpZiAodi56ID09IDApIG4uc2V0KDEsIDAsIDEpO1xuICAgICAgZWxzZSBuLnNldCgxLCAxLCAtdi55IC8gdi56KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHYueCA9PSAwKSBuLnNldCgxLCAwLCAxKTtcbiAgICAgIGVsc2Ugbi5zZXQoLXYueSAvIHYueCwgMSwgMSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG4ubm9ybWFsaXplKCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJvZHJpZ3VlcycgUm90YXRpb24gRm9ybXVsYVxuICAgKiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Sb2RyaWd1ZXMlMjdfcm90YXRpb25fZm9ybXVsYVxuICAgKiB24oCyID0gdmNvcyjOuCkgKyBrKGvii4V2KSgx4oiSY29zKM64KSkgKyAoayp2KXNpbijOuClcbiAgICovXG4gIGF4aXNSb3RhdGU6IGZ1bmN0aW9uKHYwLCB2LCBrLCB0aGEpIHtcbiAgICB2YXIgY29zID0gTWF0aC5jb3ModGhhKTtcbiAgICB2YXIgc2luID0gTWF0aC5zaW4odGhhKTtcbiAgICB2YXIgcCA9IGsuZG90KHYpICogKDEgLSBjb3MpO1xuXG4gICAgdjAuY29weShrKTtcbiAgICB2MC5jcm9zcyh2KS5zY2FsYXIoc2luKTtcbiAgICB2MC5hZGRWYWx1ZSh2LnggKiBjb3MsIHYueSAqIGNvcywgdi56ICogY29zKTtcbiAgICB2MC5hZGRWYWx1ZShrLnggKiBwLCBrLnkgKiBwLCBrLnogKiBwKTtcbiAgfVxufTtcbiJdfQ==
|