three-nebula 10.0.3 → 11.1.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/.claude/rules/no-coauthor.md +4 -0
- package/CHANGELOG.md +33 -0
- package/dist/three-nebula.cjs +109 -0
- package/dist/three-nebula.cjs.map +1 -0
- package/dist/three-nebula.mjs +2968 -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 +32 -56
- 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 -791
- 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/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 -100
- package/build/cjs/initializer/types.js +0 -35
- 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 -350
- 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 -364
- 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 -53
- 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 -43
- 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 -63
- 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 -14
- 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 -701
- 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/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 -11
- package/build/esm/initializer/types.js +0 -15
- 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 -331
- package/build/esm/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +0 -23
- package/build/esm/renderer/GPURenderer/Desktop/shaders/index.js +0 -3
- package/build/esm/renderer/GPURenderer/Desktop/shaders/vertexShader.js +0 -33
- package/build/esm/renderer/GPURenderer/Mobile/index.js +0 -349
- package/build/esm/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +0 -20
- package/build/esm/renderer/GPURenderer/Mobile/shaders/index.js +0 -3
- package/build/esm/renderer/GPURenderer/Mobile/shaders/vertexShader.js +0 -30
- package/build/esm/renderer/GPURenderer/common/ParticleBuffer/constants.js +0 -27
- 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 -24
- 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 -94
- package/build/esm/renderer/SpriteRenderer.js +0 -26
- 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,206 +0,0 @@
|
|
|
1
|
-
import { RENDERER_TYPE_GPU_DESKTOP, RENDERER_TYPE_GPU_MOBILE } from '../../../types';
|
|
2
|
-
import { DATA_TEXTURE_SIZE } from './constants';
|
|
3
|
-
import { __DEV__ } from '../../../../constants';
|
|
4
|
-
import potpack from 'potpack';
|
|
5
|
-
/**
|
|
6
|
-
* Dynamic texture atlas for performant support of systems with multiple emitters and textures.
|
|
7
|
-
*
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
export default class TextureAtlas {
|
|
11
|
-
constructor(renderer, shouldDebug) {
|
|
12
|
-
const {
|
|
13
|
-
three: THREE,
|
|
14
|
-
type: rendererType
|
|
15
|
-
} = renderer;
|
|
16
|
-
const data = new Float32Array(DATA_TEXTURE_SIZE * 4);
|
|
17
|
-
const ctx = this.ctx = document.createElement('canvas').getContext('2d');
|
|
18
|
-
const {
|
|
19
|
-
canvas
|
|
20
|
-
} = ctx;
|
|
21
|
-
this.shouldDebug = shouldDebug;
|
|
22
|
-
this.rendererType = rendererType;
|
|
23
|
-
this.indexData = data;
|
|
24
|
-
this.canvas = canvas;
|
|
25
|
-
this.entries = [];
|
|
26
|
-
|
|
27
|
-
if (rendererType === RENDERER_TYPE_GPU_DESKTOP) {
|
|
28
|
-
this.atlasIndex = new THREE.DataTexture(data, DATA_TEXTURE_SIZE, 1, THREE.RGBAFormat, THREE.FloatType);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
canvas.width = canvas.height = DATA_TEXTURE_SIZE;
|
|
32
|
-
|
|
33
|
-
if (shouldDebug) {
|
|
34
|
-
this.debug(canvas, ctx);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
this.atlasTexture = new THREE.CanvasTexture(canvas);
|
|
38
|
-
this.atlasTexture.flipY = false;
|
|
39
|
-
renderer.material.uniforms.uTexture.value = this.atlasTexture;
|
|
40
|
-
|
|
41
|
-
if (rendererType === RENDERER_TYPE_GPU_DESKTOP) {
|
|
42
|
-
renderer.material.uniforms.atlasIndex.value = this.atlasIndex;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
renderer.material.uniformsNeedUpdate = true;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Logs to the console when in dev mode.
|
|
49
|
-
*
|
|
50
|
-
*/
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
log(...args) {
|
|
54
|
-
if (!__DEV__) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
console.log(...args);
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Debugs the texture atlas by rendering it to a canvas in the DOM.
|
|
62
|
-
*
|
|
63
|
-
*/
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
debug() {
|
|
67
|
-
const {
|
|
68
|
-
canvas,
|
|
69
|
-
ctx
|
|
70
|
-
} = this;
|
|
71
|
-
const halfmax = canvas.width;
|
|
72
|
-
ctx.fillStyle = 'purple';
|
|
73
|
-
ctx.fillRect(0, 0, halfmax, halfmax);
|
|
74
|
-
ctx.fillStyle = 'green';
|
|
75
|
-
ctx.fillRect(0, halfmax, halfmax, halfmax);
|
|
76
|
-
ctx.fillStyle = 'blue';
|
|
77
|
-
ctx.fillRect(halfmax, 0, halfmax, halfmax);
|
|
78
|
-
ctx.fillStyle = 'orange';
|
|
79
|
-
ctx.fillRect(halfmax, halfmax, halfmax, halfmax);
|
|
80
|
-
ctx.fillStyle = 'yellow';
|
|
81
|
-
ctx.font = canvas.width + 'px Verdana';
|
|
82
|
-
ctx.fillText('top row', 100, 500);
|
|
83
|
-
ctx.fillStyle = 'pink';
|
|
84
|
-
ctx.fillText('bottom row', 100, 1500);
|
|
85
|
-
canvas.style.position = 'absolute';
|
|
86
|
-
canvas.style.width = canvas.style.height = '300px';
|
|
87
|
-
canvas.style.left = canvas.style.top = '0px';
|
|
88
|
-
canvas.style.zIndex = 100;
|
|
89
|
-
document.body.appendChild(canvas);
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Adds a texture to the texture atlas and flags that the atlas needs to be updated.
|
|
93
|
-
*
|
|
94
|
-
*/
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
addTexture(texture) {
|
|
98
|
-
this.log('Adding texture to atlas:', texture.uuid);
|
|
99
|
-
texture.textureIndex = this.entries.length;
|
|
100
|
-
this.entries.push({
|
|
101
|
-
texture: texture
|
|
102
|
-
});
|
|
103
|
-
this.needsUpdate = true;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Updates the texture atlas. Will only rebuild the atlas if all images are loaded.
|
|
107
|
-
*
|
|
108
|
-
*/
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
update() {
|
|
112
|
-
if (!this.needsUpdate) {
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
const {
|
|
117
|
-
entries,
|
|
118
|
-
canvas,
|
|
119
|
-
indexData,
|
|
120
|
-
ctx,
|
|
121
|
-
atlasIndex,
|
|
122
|
-
atlasTexture,
|
|
123
|
-
rendererType
|
|
124
|
-
} = this;
|
|
125
|
-
|
|
126
|
-
for (let i = 0; i < entries.length; i++) {
|
|
127
|
-
if (!entries[i].texture.image) {
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
this.needsUpdate = false;
|
|
133
|
-
|
|
134
|
-
for (let i = 0; i < entries.length; i++) {
|
|
135
|
-
const e = entries[i];
|
|
136
|
-
const {
|
|
137
|
-
texture
|
|
138
|
-
} = e;
|
|
139
|
-
const {
|
|
140
|
-
width,
|
|
141
|
-
height
|
|
142
|
-
} = texture.image;
|
|
143
|
-
e.w = width;
|
|
144
|
-
e.h = height;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
const stats = potpack(entries);
|
|
148
|
-
this.log('Rebuilt atlas:', stats);
|
|
149
|
-
|
|
150
|
-
if (canvas.width != stats.w || canvas.height != stats.h) {
|
|
151
|
-
canvas.width = stats.w;
|
|
152
|
-
canvas.height = stats.h;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
for (let i = 0; i < entries.length; i++) {
|
|
156
|
-
const e = this.entries[i];
|
|
157
|
-
const ii = e.texture.textureIndex * 4;
|
|
158
|
-
|
|
159
|
-
if (rendererType === RENDERER_TYPE_GPU_DESKTOP) {
|
|
160
|
-
indexData[ii + 0] = e.x / canvas.width;
|
|
161
|
-
indexData[ii + 1] = e.y / canvas.height;
|
|
162
|
-
indexData[ii + 2] = (e.x + e.w) / canvas.width;
|
|
163
|
-
indexData[ii + 3] = (e.y + e.h) / canvas.height;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
if (rendererType === RENDERER_TYPE_GPU_MOBILE) {
|
|
167
|
-
indexData[ii + 0] = e.x / (canvas.width + 1);
|
|
168
|
-
indexData[ii + 1] = e.y / (canvas.height + 1);
|
|
169
|
-
indexData[ii + 2] = (e.x + e.w) / (canvas.width + 1);
|
|
170
|
-
indexData[ii + 3] = (e.y + e.h) / (canvas.height + 1);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
ctx.drawImage(e.texture.image, e.x, e.y, e.w, e.h);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
if (rendererType === RENDERER_TYPE_GPU_DESKTOP) {
|
|
177
|
-
atlasIndex.needsUpdate = true;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
atlasTexture.needsUpdate = true;
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Disposes of the textures used by the texture atlas.
|
|
184
|
-
*
|
|
185
|
-
* @return void
|
|
186
|
-
*/
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
destroy() {
|
|
190
|
-
const {
|
|
191
|
-
atlasIndex,
|
|
192
|
-
atlasTexture,
|
|
193
|
-
canvas
|
|
194
|
-
} = this;
|
|
195
|
-
atlasTexture.dispose();
|
|
196
|
-
atlasIndex && atlasIndex.dispose();
|
|
197
|
-
|
|
198
|
-
if (this.shouldDebug) {
|
|
199
|
-
canvas.remove();
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
this.entries = [];
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
}
|
|
206
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vVGV4dHVyZUF0bGFzL2luZGV4LmpzIl0sIm5hbWVzIjpbIlJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1AiLCJSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUiLCJEQVRBX1RFWFRVUkVfU0laRSIsIl9fREVWX18iLCJwb3RwYWNrIiwiVGV4dHVyZUF0bGFzIiwiY29uc3RydWN0b3IiLCJyZW5kZXJlciIsInNob3VsZERlYnVnIiwidGhyZWUiLCJUSFJFRSIsInR5cGUiLCJyZW5kZXJlclR5cGUiLCJkYXRhIiwiRmxvYXQzMkFycmF5IiwiY3R4IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiZ2V0Q29udGV4dCIsImNhbnZhcyIsImluZGV4RGF0YSIsImVudHJpZXMiLCJhdGxhc0luZGV4IiwiRGF0YVRleHR1cmUiLCJSR0JBRm9ybWF0IiwiRmxvYXRUeXBlIiwid2lkdGgiLCJoZWlnaHQiLCJkZWJ1ZyIsImF0bGFzVGV4dHVyZSIsIkNhbnZhc1RleHR1cmUiLCJmbGlwWSIsIm1hdGVyaWFsIiwidW5pZm9ybXMiLCJ1VGV4dHVyZSIsInZhbHVlIiwidW5pZm9ybXNOZWVkVXBkYXRlIiwibG9nIiwiYXJncyIsImNvbnNvbGUiLCJoYWxmbWF4IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJmb250IiwiZmlsbFRleHQiLCJzdHlsZSIsInBvc2l0aW9uIiwibGVmdCIsInRvcCIsInpJbmRleCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImFkZFRleHR1cmUiLCJ0ZXh0dXJlIiwidXVpZCIsInRleHR1cmVJbmRleCIsImxlbmd0aCIsInB1c2giLCJuZWVkc1VwZGF0ZSIsInVwZGF0ZSIsImkiLCJpbWFnZSIsImUiLCJ3IiwiaCIsInN0YXRzIiwiaWkiLCJ4IiwieSIsImRyYXdJbWFnZSIsImRlc3Ryb3kiLCJkaXNwb3NlIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNF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QUEzQyxFQUE4Q0QsQ0FBQyxDQUFDRSxDQUFoRDtBQUNEOztBQUVELFFBQUlwRCxZQUFZLEtBQUtaLHlCQUFyQixFQUFnRDtBQUM5Q3NCLE1BQUFBLFVBQVUsQ0FBQ29DLFdBQVgsR0FBeUIsSUFBekI7QUFDRDs7QUFFRDdCLElBQUFBLFlBQVksQ0FBQzZCLFdBQWIsR0FBMkIsSUFBM0I7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFWSxFQUFBQSxPQUFPLEdBQUc7QUFDUixVQUFNO0FBQUVoRCxNQUFBQSxVQUFGO0FBQWNPLE1BQUFBLFlBQWQ7QUFBNEJWLE1BQUFBO0FBQTVCLFFBQXVDLElBQTdDO0FBRUFVLElBQUFBLFlBQVksQ0FBQzBDLE9BQWI7QUFDQWpELElBQUFBLFVBQVUsSUFBSUEsVUFBVSxDQUFDaUQsT0FBWCxFQUFkOztBQUVBLFFBQUksS0FBSy9ELFdBQVQsRUFBc0I7QUFDcEJXLE1BQUFBLE1BQU0sQ0FBQ3FELE1BQVA7QUFDRDs7QUFFRCxTQUFLbkQsT0FBTCxHQUFlLEVBQWY7QUFDRDs7QUF4TCtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUkVOREVSRVJfVFlQRV9HUFVfREVTS1RPUCxcbiAgUkVOREVSRVJfVFlQRV9HUFVfTU9CSUxFLFxufSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IERBVEFfVEVYVFVSRV9TSVpFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgX19ERVZfXyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgcG90cGFjayBmcm9tICdwb3RwYWNrJztcblxuLyoqXG4gKiBEeW5hbWljIHRleHR1cmUgYXRsYXMgZm9yIHBlcmZvcm1hbnQgc3VwcG9ydCBvZiBzeXN0ZW1zIHdpdGggbXVsdGlwbGUgZW1pdHRlcnMgYW5kIHRleHR1cmVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGV4dHVyZUF0bGFzIHtcbiAgY29uc3RydWN0b3IocmVuZGVyZXIsIHNob3VsZERlYnVnKSB7XG4gICAgY29uc3QgeyB0aHJlZTogVEhSRUUsIHR5cGU6IHJlbmRlcmVyVHlwZSB9ID0gcmVuZGVyZXI7XG4gICAgY29uc3QgZGF0YSA9IG5ldyBGbG9hdDMyQXJyYXkoREFUQV9URVhUVVJFX1NJWkUgKiA0KTtcbiAgICBjb25zdCBjdHggPSAodGhpcy5jdHggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpKTtcbiAgICBjb25zdCB7IGNhbnZhcyB9ID0gY3R4O1xuXG4gICAgdGhpcy5zaG91bGREZWJ1ZyA9IHNob3VsZERlYnVnO1xuICAgIHRoaXMucmVuZGVyZXJUeXBlID0gcmVuZGVyZXJUeXBlO1xuICAgIHRoaXMuaW5kZXhEYXRhID0gZGF0YTtcbiAgICB0aGlzLmNhbnZhcyA9IGNhbnZhcztcbiAgICB0aGlzLmVudHJpZXMgPSBbXTtcblxuICAgIGlmIChyZW5kZXJlclR5cGUgPT09IFJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1ApIHtcbiAgICAgIHRoaXMuYXRsYXNJbmRleCA9IG5ldyBUSFJFRS5EYXRhVGV4dHVyZShcbiAgICAgICAgZGF0YSxcbiAgICAgICAgREFUQV9URVhUVVJFX1NJWkUsXG4gICAgICAgIDEsXG4gICAgICAgIFRIUkVFLlJHQkFGb3JtYXQsXG4gICAgICAgIFRIUkVFLkZsb2F0VHlwZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjYW52YXMud2lkdGggPSBjYW52YXMuaGVpZ2h0ID0gREFUQV9URVhUVVJFX1NJWkU7XG5cbiAgICBpZiAoc2hvdWxkRGVidWcpIHtcbiAgICAgIHRoaXMuZGVidWcoY2FudmFzLCBjdHgpO1xuICAgIH1cblxuICAgIHRoaXMuYXRsYXNUZXh0dXJlID0gbmV3IFRIUkVFLkNhbnZhc1RleHR1cmUoY2FudmFzKTtcbiAgICB0aGlzLmF0bGFzVGV4dHVyZS5mbGlwWSA9IGZhbHNlO1xuXG4gICAgcmVuZGVyZXIubWF0ZXJpYWwudW5pZm9ybXMudVRleHR1cmUudmFsdWUgPSB0aGlzLmF0bGFzVGV4dHVyZTtcblxuICAgIGlmIChyZW5kZXJlclR5cGUgPT09IFJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1ApIHtcbiAgICAgIHJlbmRlcmVyLm1hdGVyaWFsLnVuaWZvcm1zLmF0bGFzSW5kZXgudmFsdWUgPSB0aGlzLmF0bGFzSW5kZXg7XG4gICAgfVxuXG4gICAgcmVuZGVyZXIubWF0ZXJpYWwudW5pZm9ybXNOZWVkVXBkYXRlID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIHRvIHRoZSBjb25zb2xlIHdoZW4gaW4gZGV2IG1vZGUuXG4gICAqXG4gICAqL1xuICBsb2coLi4uYXJncykge1xuICAgIGlmICghX19ERVZfXykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKC4uLmFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlYnVncyB0aGUgdGV4dHVyZSBhdGxhcyBieSByZW5kZXJpbmcgaXQgdG8gYSBjYW52YXMgaW4gdGhlIERPTS5cbiAgICpcbiAgICovXG4gIGRlYnVnKCkge1xuICAgIGNvbnN0IHsgY2FudmFzLCBjdHggfSA9IHRoaXM7XG4gICAgY29uc3QgaGFsZm1heCA9IGNhbnZhcy53aWR0aDtcblxuICAgIGN0eC5maWxsU3R5bGUgPSAncHVycGxlJztcbiAgICBjdHguZmlsbFJlY3QoMCwgMCwgaGFsZm1heCwgaGFsZm1heCk7XG4gICAgY3R4LmZpbGxTdHlsZSA9ICdncmVlbic7XG4gICAgY3R4LmZpbGxSZWN0KDAsIGhhbGZtYXgsIGhhbGZtYXgsIGhhbGZtYXgpO1xuICAgIGN0eC5maWxsU3R5bGUgPSAnYmx1ZSc7XG4gICAgY3R4LmZpbGxSZWN0KGhhbGZtYXgsIDAsIGhhbGZtYXgsIGhhbGZtYXgpO1xuICAgIGN0eC5maWxsU3R5bGUgPSAnb3JhbmdlJztcbiAgICBjdHguZmlsbFJlY3QoaGFsZm1heCwgaGFsZm1heCwgaGFsZm1heCwgaGFsZm1heCk7XG4gICAgY3R4LmZpbGxTdHlsZSA9ICd5ZWxsb3cnO1xuICAgIGN0eC5mb250ID0gY2FudmFzLndpZHRoICsgJ3B4IFZlcmRhbmEnO1xuICAgIGN0eC5maWxsVGV4dCgndG9wIHJvdycsIDEwMCwgNTAwKTtcbiAgICBjdHguZmlsbFN0eWxlID0gJ3BpbmsnO1xuICAgIGN0eC5maWxsVGV4dCgnYm90dG9tIHJvdycsIDEwMCwgMTUwMCk7XG5cbiAgICBjYW52YXMuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIGNhbnZhcy5zdHlsZS53aWR0aCA9IGNhbnZhcy5zdHlsZS5oZWlnaHQgPSAnMzAwcHgnO1xuICAgIGNhbnZhcy5zdHlsZS5sZWZ0ID0gY2FudmFzLnN0eWxlLnRvcCA9ICcwcHgnO1xuICAgIGNhbnZhcy5zdHlsZS56SW5kZXggPSAxMDA7XG5cbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNhbnZhcyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHRleHR1cmUgdG8gdGhlIHRleHR1cmUgYXRsYXMgYW5kIGZsYWdzIHRoYXQgdGhlIGF0bGFzIG5lZWRzIHRvIGJlIHVwZGF0ZWQuXG4gICAqXG4gICAqL1xuICBhZGRUZXh0dXJlKHRleHR1cmUpIHtcbiAgICB0aGlzLmxvZygnQWRkaW5nIHRleHR1cmUgdG8gYXRsYXM6JywgdGV4dHVyZS51dWlkKTtcblxuICAgIHRleHR1cmUudGV4dHVyZUluZGV4ID0gdGhpcy5lbnRyaWVzLmxlbmd0aDtcbiAgICB0aGlzLmVudHJpZXMucHVzaCh7IHRleHR1cmU6IHRleHR1cmUgfSk7XG4gICAgdGhpcy5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgdGV4dHVyZSBhdGxhcy4gV2lsbCBvbmx5IHJlYnVpbGQgdGhlIGF0bGFzIGlmIGFsbCBpbWFnZXMgYXJlIGxvYWRlZC5cbiAgICpcbiAgICovXG4gIHVwZGF0ZSgpIHtcbiAgICBpZiAoIXRoaXMubmVlZHNVcGRhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBlbnRyaWVzLFxuICAgICAgY2FudmFzLFxuICAgICAgaW5kZXhEYXRhLFxuICAgICAgY3R4LFxuICAgICAgYXRsYXNJbmRleCxcbiAgICAgIGF0bGFzVGV4dHVyZSxcbiAgICAgIHJlbmRlcmVyVHlwZSxcbiAgICB9ID0gdGhpcztcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCFlbnRyaWVzW2ldLnRleHR1cmUuaW1hZ2UpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubmVlZHNVcGRhdGUgPSBmYWxzZTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZSA9IGVudHJpZXNbaV07XG4gICAgICBjb25zdCB7IHRleHR1cmUgfSA9IGU7XG4gICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRleHR1cmUuaW1hZ2U7XG5cbiAgICAgIGUudyA9IHdpZHRoO1xuICAgICAgZS5oID0gaGVpZ2h0O1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXRzID0gcG90cGFjayhlbnRyaWVzKTtcblxuICAgIHRoaXMubG9nKCdSZWJ1aWx0IGF0bGFzOicsIHN0YXRzKTtcblxuICAgIGlmIChjYW52YXMud2lkdGggIT0gc3RhdHMudyB8fCBjYW52YXMuaGVpZ2h0ICE9IHN0YXRzLmgpIHtcbiAgICAgIGNhbnZhcy53aWR0aCA9IHN0YXRzLnc7XG4gICAgICBjYW52YXMuaGVpZ2h0ID0gc3RhdHMuaDtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGUgPSB0aGlzLmVudHJpZXNbaV07XG4gICAgICBjb25zdCBpaSA9IGUudGV4dHVyZS50ZXh0dXJlSW5kZXggKiA0O1xuXG4gICAgICBpZiAocmVuZGVyZXJUeXBlID09PSBSRU5ERVJFUl9UWVBFX0dQVV9ERVNLVE9QKSB7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDBdID0gZS54IC8gY2FudmFzLndpZHRoO1xuICAgICAgICBpbmRleERhdGFbaWkgKyAxXSA9IGUueSAvIGNhbnZhcy5oZWlnaHQ7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDJdID0gKGUueCArIGUudykgLyBjYW52YXMud2lkdGg7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDNdID0gKGUueSArIGUuaCkgLyBjYW52YXMuaGVpZ2h0O1xuICAgICAgfVxuXG4gICAgICBpZiAocmVuZGVyZXJUeXBlID09PSBSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUpIHtcbiAgICAgICAgaW5kZXhEYXRhW2lpICsgMF0gPSBlLnggLyAoY2FudmFzLndpZHRoICsgMSk7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDFdID0gZS55IC8gKGNhbnZhcy5oZWlnaHQgKyAxKTtcbiAgICAgICAgaW5kZXhEYXRhW2lpICsgMl0gPSAoZS54ICsgZS53KSAvIChjYW52YXMud2lkdGggKyAxKTtcbiAgICAgICAgaW5kZXhEYXRhW2lpICsgM10gPSAoZS55ICsgZS5oKSAvIChjYW52YXMuaGVpZ2h0ICsgMSk7XG4gICAgICB9XG5cbiAgICAgIGN0eC5kcmF3SW1hZ2UoZS50ZXh0dXJlLmltYWdlLCBlLngsIGUueSwgZS53LCBlLmgpO1xuICAgIH1cblxuICAgIGlmIChyZW5kZXJlclR5cGUgPT09IFJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1ApIHtcbiAgICAgIGF0bGFzSW5kZXgubmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgIH1cblxuICAgIGF0bGFzVGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogRGlzcG9zZXMgb2YgdGhlIHRleHR1cmVzIHVzZWQgYnkgdGhlIHRleHR1cmUgYXRsYXMuXG4gICAqXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICBjb25zdCB7IGF0bGFzSW5kZXgsIGF0bGFzVGV4dHVyZSwgY2FudmFzIH0gPSB0aGlzO1xuXG4gICAgYXRsYXNUZXh0dXJlLmRpc3Bvc2UoKTtcbiAgICBhdGxhc0luZGV4ICYmIGF0bGFzSW5kZXguZGlzcG9zZSgpO1xuXG4gICAgaWYgKHRoaXMuc2hvdWxkRGVidWcpIHtcbiAgICAgIGNhbnZhcy5yZW1vdmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmVudHJpZXMgPSBbXTtcbiAgfVxufVxuIl19
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_MAX_PARTICLES } from './ParticleBuffer/constants';
|
|
2
|
-
export const DEFAULT_RENDERER_OPTIONS = {
|
|
3
|
-
blending: 'AdditiveBlending',
|
|
4
|
-
baseColor: 0xffffff,
|
|
5
|
-
depthTest: true,
|
|
6
|
-
depthWrite: false,
|
|
7
|
-
transparent: true,
|
|
8
|
-
maxParticles: DEFAULT_MAX_PARTICLES,
|
|
9
|
-
shouldDebugTextureAtlas: false,
|
|
10
|
-
shouldForceDesktopRenderer: false,
|
|
11
|
-
shouldForceMobileRenderer: false
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfTUFYX1BBUlRJQ0xFUyIsIkRFRkFVTFRfUkVOREVSRVJfT1BUSU9OUyIsImJsZW5kaW5nIiwiYmFzZUNvbG9yIiwiZGVwdGhUZXN0IiwiZGVwdGhXcml0ZSIsInRyYW5zcGFyZW50IiwibWF4UGFydGljbGVzIiwic2hvdWxkRGVidWdUZXh0dXJlQXRsYXMiLCJzaG91bGRGb3JjZURlc2t0b3BSZW5kZXJlciIsInNob3VsZEZvcmNlTW9iaWxlUmVuZGVyZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLHFCQUFULFFBQXNDLDRCQUF0QztBQUVBLE9BQU8sTUFBTUMsd0JBQXdCLEdBQUc7QUFDdENDLEVBQUFBLFFBQVEsRUFBRSxrQkFENEI7QUFFdENDLEVBQUFBLFNBQVMsRUFBRSxRQUYyQjtBQUd0Q0MsRUFBQUEsU0FBUyxFQUFFLElBSDJCO0FBSXRDQyxFQUFBQSxVQUFVLEVBQUUsS0FKMEI7QUFLdENDLEVBQUFBLFdBQVcsRUFBRSxJQUx5QjtBQU10Q0MsRUFBQUEsWUFBWSxFQUFFUCxxQkFOd0I7QUFPdENRLEVBQUFBLHVCQUF1QixFQUFFLEtBUGE7QUFRdENDLEVBQUFBLDBCQUEwQixFQUFFLEtBUlU7QUFTdENDLEVBQUFBLHlCQUF5QixFQUFFO0FBVFcsQ0FBakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX01BWF9QQVJUSUNMRVMgfSBmcm9tICcuL1BhcnRpY2xlQnVmZmVyL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1JFTkRFUkVSX09QVElPTlMgPSB7XG4gIGJsZW5kaW5nOiAnQWRkaXRpdmVCbGVuZGluZycsXG4gIGJhc2VDb2xvcjogMHhmZmZmZmYsXG4gIGRlcHRoVGVzdDogdHJ1ZSxcbiAgZGVwdGhXcml0ZTogZmFsc2UsXG4gIHRyYW5zcGFyZW50OiB0cnVlLFxuICBtYXhQYXJ0aWNsZXM6IERFRkFVTFRfTUFYX1BBUlRJQ0xFUyxcbiAgc2hvdWxkRGVidWdUZXh0dXJlQXRsYXM6IGZhbHNlLFxuICBzaG91bGRGb3JjZURlc2t0b3BSZW5kZXJlcjogZmFsc2UsXG4gIHNob3VsZEZvcmNlTW9iaWxlUmVuZGVyZXI6IGZhbHNlLFxufTtcbiJdfQ==
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { Target, UniqueList } from './stores';
|
|
2
|
-
export { default as ParticleBuffer } from './ParticleBuffer';
|
|
3
|
-
export { default as TextureAtlas } from './TextureAtlas';
|
|
4
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vaW5kZXguanMiXSwibmFtZXMiOlsiVGFyZ2V0IiwiVW5pcXVlTGlzdCIsImRlZmF1bHQiLCJQYXJ0aWNsZUJ1ZmZlciIsIlRleHR1cmVBdGxhcyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsTUFBVCxFQUFpQkMsVUFBakIsUUFBbUMsVUFBbkM7QUFDQSxTQUFTQyxPQUFPLElBQUlDLGNBQXBCLFFBQTBDLGtCQUExQztBQUNBLFNBQVNELE9BQU8sSUFBSUUsWUFBcEIsUUFBd0MsZ0JBQXhDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVGFyZ2V0LCBVbmlxdWVMaXN0IH0gZnJvbSAnLi9zdG9yZXMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYXJ0aWNsZUJ1ZmZlciB9IGZyb20gJy4vUGFydGljbGVCdWZmZXInO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0dXJlQXRsYXMgfSBmcm9tICcuL1RleHR1cmVBdGxhcyc7XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const SIZE_ATTENUATION_FACTOR = '600.0';
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vc2hhZGVycy9jb25zdGFudHMuanMiXSwibmFtZXMiOlsiU0laRV9BVFRFTlVBVElPTl9GQUNUT1IiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTUEsdUJBQXVCLEdBQUcsT0FBaEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU0laRV9BVFRFTlVBVElPTl9GQUNUT1IgPSAnNjAwLjAnO1xuIl19
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Simple class that stores the particle's "target" or "next" state.
|
|
3
|
-
*
|
|
4
|
-
*/
|
|
5
|
-
export class Target {
|
|
6
|
-
constructor(THREE) {
|
|
7
|
-
this.position = new THREE.Vector3();
|
|
8
|
-
this.size = 0;
|
|
9
|
-
this.color = new THREE.Color();
|
|
10
|
-
this.alpha = 0;
|
|
11
|
-
this.texture = null;
|
|
12
|
-
this.index = 0;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
reset() {
|
|
16
|
-
this.position.set(0, 0, 0);
|
|
17
|
-
this.size = 0;
|
|
18
|
-
this.color.setRGB(0, 0, 0);
|
|
19
|
-
this.alpha = 0;
|
|
20
|
-
this.texture = null;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vc3RvcmVzL1RhcmdldC5qcyJdLCJuYW1lcyI6WyJUYXJnZXQiLCJjb25zdHJ1Y3RvciIsIlRIUkVFIiwicG9zaXRpb24iLCJWZWN0b3IzIiwic2l6ZSIsImNvbG9yIiwiQ29sb3IiLCJhbHBoYSIsInRleHR1cmUiLCJpbmRleCIsInJlc2V0Iiwic2V0Iiwic2V0UkdCIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sTUFBTUEsTUFBTixDQUFhO0FBQ2xCQyxFQUFBQSxXQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNqQixTQUFLQyxRQUFMLEdBQWdCLElBQUlELEtBQUssQ0FBQ0UsT0FBVixFQUFoQjtBQUNBLFNBQUtDLElBQUwsR0FBWSxDQUFaO0FBQ0EsU0FBS0MsS0FBTCxHQUFhLElBQUlKLEtBQUssQ0FBQ0ssS0FBVixFQUFiO0FBQ0EsU0FBS0MsS0FBTCxHQUFhLENBQWI7QUFDQSxTQUFLQyxPQUFMLEdBQWUsSUFBZjtBQUNBLFNBQUtDLEtBQUwsR0FBYSxDQUFiO0FBQ0Q7O0FBRURDLEVBQUFBLEtBQUssR0FBRztBQUNOLFNBQUtSLFFBQUwsQ0FBY1MsR0FBZCxDQUFrQixDQUFsQixFQUFxQixDQUFyQixFQUF3QixDQUF4QjtBQUNBLFNBQUtQLElBQUwsR0FBWSxDQUFaO0FBQ0EsU0FBS0MsS0FBTCxDQUFXTyxNQUFYLENBQWtCLENBQWxCLEVBQXFCLENBQXJCLEVBQXdCLENBQXhCO0FBQ0EsU0FBS0wsS0FBTCxHQUFhLENBQWI7QUFDQSxTQUFLQyxPQUFMLEdBQWUsSUFBZjtBQUNEOztBQWhCaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNpbXBsZSBjbGFzcyB0aGF0IHN0b3JlcyB0aGUgcGFydGljbGUncyBcInRhcmdldFwiIG9yIFwibmV4dFwiIHN0YXRlLlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIFRhcmdldCB7XG4gIGNvbnN0cnVjdG9yKFRIUkVFKSB7XG4gICAgdGhpcy5wb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG4gICAgdGhpcy5zaXplID0gMDtcbiAgICB0aGlzLmNvbG9yID0gbmV3IFRIUkVFLkNvbG9yKCk7XG4gICAgdGhpcy5hbHBoYSA9IDA7XG4gICAgdGhpcy50ZXh0dXJlID0gbnVsbDtcbiAgICB0aGlzLmluZGV4ID0gMDtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMucG9zaXRpb24uc2V0KDAsIDAsIDApO1xuICAgIHRoaXMuc2l6ZSA9IDA7XG4gICAgdGhpcy5jb2xvci5zZXRSR0IoMCwgMCwgMCk7XG4gICAgdGhpcy5hbHBoYSA9IDA7XG4gICAgdGhpcy50ZXh0dXJlID0gbnVsbDtcbiAgfVxufVxuIl19
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Map of particle IDs to integer ids
|
|
3
|
-
*/
|
|
4
|
-
export class UniqueList {
|
|
5
|
-
constructor(max = Infinity) {
|
|
6
|
-
this.max = max;
|
|
7
|
-
this.count = 0;
|
|
8
|
-
this._items = {};
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
add(item) {
|
|
12
|
-
if (this._items[item] !== undefined) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
this._items[item] = this.count++;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
find(item) {
|
|
20
|
-
return this._items[item];
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
destroy() {
|
|
24
|
-
this._items = {};
|
|
25
|
-
this.count = 0;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vc3RvcmVzL1VuaXF1ZUxpc3QuanMiXSwibmFtZXMiOlsiVW5pcXVlTGlzdCIsImNvbnN0cnVjdG9yIiwibWF4IiwiSW5maW5pdHkiLCJjb3VudCIsIl9pdGVtcyIsImFkZCIsIml0ZW0iLCJ1bmRlZmluZWQiLCJmaW5kIiwiZGVzdHJveSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsT0FBTyxNQUFNQSxVQUFOLENBQWlCO0FBQ3RCQyxFQUFBQSxXQUFXLENBQUNDLEdBQUcsR0FBR0MsUUFBUCxFQUFpQjtBQUMxQixTQUFLRCxHQUFMLEdBQVdBLEdBQVg7QUFDQSxTQUFLRSxLQUFMLEdBQWEsQ0FBYjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxFQUFkO0FBQ0Q7O0FBRURDLEVBQUFBLEdBQUcsQ0FBQ0MsSUFBRCxFQUFPO0FBQ1IsUUFBSSxLQUFLRixNQUFMLENBQVlFLElBQVosTUFBc0JDLFNBQTFCLEVBQXFDO0FBQ25DO0FBQ0Q7O0FBRUQsU0FBS0gsTUFBTCxDQUFZRSxJQUFaLElBQW9CLEtBQUtILEtBQUwsRUFBcEI7QUFDRDs7QUFFREssRUFBQUEsSUFBSSxDQUFDRixJQUFELEVBQU87QUFDVCxXQUFPLEtBQUtGLE1BQUwsQ0FBWUUsSUFBWixDQUFQO0FBQ0Q7O0FBRURHLEVBQUFBLE9BQU8sR0FBRztBQUNSLFNBQUtMLE1BQUwsR0FBYyxFQUFkO0FBQ0EsU0FBS0QsS0FBTCxHQUFhLENBQWI7QUFDRDs7QUF0QnFCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNYXAgb2YgcGFydGljbGUgSURzIHRvIGludGVnZXIgaWRzXG4gKi9cbmV4cG9ydCBjbGFzcyBVbmlxdWVMaXN0IHtcbiAgY29uc3RydWN0b3IobWF4ID0gSW5maW5pdHkpIHtcbiAgICB0aGlzLm1heCA9IG1heDtcbiAgICB0aGlzLmNvdW50ID0gMDtcbiAgICB0aGlzLl9pdGVtcyA9IHt9O1xuICB9XG5cbiAgYWRkKGl0ZW0pIHtcbiAgICBpZiAodGhpcy5faXRlbXNbaXRlbV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2l0ZW1zW2l0ZW1dID0gdGhpcy5jb3VudCsrO1xuICB9XG5cbiAgZmluZChpdGVtKSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zW2l0ZW1dO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLl9pdGVtcyA9IHt9O1xuICAgIHRoaXMuY291bnQgPSAwO1xuICB9XG59XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { Target } from './Target';
|
|
2
|
-
export { UniqueList } from './UniqueList';
|
|
3
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vc3RvcmVzL2luZGV4LmpzIl0sIm5hbWVzIjpbIlRhcmdldCIsIlVuaXF1ZUxpc3QiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE1BQVQsUUFBdUIsVUFBdkI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLGNBQTNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVGFyZ2V0IH0gZnJvbSAnLi9UYXJnZXQnO1xuZXhwb3J0IHsgVW5pcXVlTGlzdCB9IGZyb20gJy4vVW5pcXVlTGlzdCc7XG4iXX0=
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import BaseRenderer from '../BaseRenderer';
|
|
2
|
-
import { DEFAULT_RENDERER_OPTIONS } from './common/constants';
|
|
3
|
-
import DesktopGPURenderer from './Desktop';
|
|
4
|
-
import MobileGPURenderer from './Mobile';
|
|
5
|
-
import { RENDERER_TYPE_GPU } from '../types';
|
|
6
|
-
/**
|
|
7
|
-
* Performant particle renderer that uses THREE.Points to propagate particle (postiion, rgba etc.,) properties to
|
|
8
|
-
* vertices in a ParticleBufferGeometry.
|
|
9
|
-
* Uses a dynamic texture atlas to support systems with mutliple sprites in a performant way.
|
|
10
|
-
*
|
|
11
|
-
* NOTE! This is an experimental renderer and is currently not covered by tests, coverage will be added when the API
|
|
12
|
-
* is more stable. Currently only compatible with sprite/texture based systems. Meshes are not yet supported.
|
|
13
|
-
*
|
|
14
|
-
* @author thrax <manthrax@gmail.com>
|
|
15
|
-
* @author rohan-deshpande <rohan@creativelifeform.com>
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
export default class GPURenderer extends BaseRenderer {
|
|
19
|
-
constructor(container, THREE, options = DEFAULT_RENDERER_OPTIONS) {
|
|
20
|
-
super(RENDERER_TYPE_GPU);
|
|
21
|
-
const {
|
|
22
|
-
shouldForceDesktopRenderer,
|
|
23
|
-
shouldForceMobileRenderer
|
|
24
|
-
} = options;
|
|
25
|
-
const args = [container, THREE, options];
|
|
26
|
-
|
|
27
|
-
if (shouldForceDesktopRenderer) {
|
|
28
|
-
return new DesktopGPURenderer(...args);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (shouldForceMobileRenderer) {
|
|
32
|
-
return new MobileGPURenderer(...args);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if (!this.isFloatingPointTextureSupported()) {
|
|
36
|
-
return new MobileGPURenderer(...args);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return new DesktopGPURenderer(...args);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
isFloatingPointTextureSupported() {
|
|
43
|
-
const canvas = document.createElement('canvas');
|
|
44
|
-
|
|
45
|
-
if (window.WebGL2RenderingContext && canvas.getContext('webgl2')) {
|
|
46
|
-
// return false here to test the mobile renderer on desktop
|
|
47
|
-
return true;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const gl = canvas.getContext('webgl');
|
|
51
|
-
const support = !!gl.getExtension('OES_texture_float');
|
|
52
|
-
canvas.remove();
|
|
53
|
-
return support;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9pbmRleC5qcyJdLCJuYW1lcyI6WyJCYXNlUmVuZGVyZXIiLCJERUZBVUxUX1JFTkRFUkVSX09QVElPTlMiLCJEZXNrdG9wR1BVUmVuZGVyZXIiLCJNb2JpbGVHUFVSZW5kZXJlciIsIlJFTkRFUkVSX1RZUEVfR1BVIiwiR1BVUmVuZGVyZXIiLCJjb25zdHJ1Y3RvciIsImNvbnRhaW5lciIsIlRIUkVFIiwib3B0aW9ucyIsInNob3VsZEZvcmNlRGVza3RvcFJlbmRlcmVyIiwic2hvdWxkRm9yY2VNb2JpbGVSZW5kZXJlciIsImFyZ3MiLCJpc0Zsb2F0aW5nUG9pbnRUZXh0dXJlU3VwcG9ydGVkIiwiY2FudmFzIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwid2luZG93IiwiV2ViR0wyUmVuZGVyaW5nQ29udGV4dCIsImdldENvbnRleHQiLCJnbCIsInN1cHBvcnQiLCJnZXRFeHRlbnNpb24iLCJyZW1vdmUiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVAsTUFBeUIsaUJBQXpCO0FBQ0EsU0FBU0Msd0JBQVQsUUFBeUMsb0JBQXpDO0FBQ0EsT0FBT0Msa0JBQVAsTUFBK0IsV0FBL0I7QUFDQSxPQUFPQyxpQkFBUCxNQUE4QixVQUE5QjtBQUNBLFNBQVNDLGlCQUFULFFBQWtDLFVBQWxDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFdBQU4sU0FBMEJMLFlBQTFCLENBQXVDO0FBQ3BETSxFQUFBQSxXQUFXLENBQUNDLFNBQUQsRUFBWUMsS0FBWixFQUFtQkMsT0FBTyxHQUFHUix3QkFBN0IsRUFBdUQ7QUFDaEUsVUFBTUcsaUJBQU47QUFFQSxVQUFNO0FBQUVNLE1BQUFBLDBCQUFGO0FBQThCQyxNQUFBQTtBQUE5QixRQUE0REYsT0FBbEU7QUFDQSxVQUFNRyxJQUFJLEdBQUcsQ0FBQ0wsU0FBRCxFQUFZQyxLQUFaLEVBQW1CQyxPQUFuQixDQUFiOztBQUVBLFFBQUlDLDBCQUFKLEVBQWdDO0FBQzlCLGFBQU8sSUFBSVIsa0JBQUosQ0FBdUIsR0FBR1UsSUFBMUIsQ0FBUDtBQUNEOztBQUVELFFBQUlELHlCQUFKLEVBQStCO0FBQzdCLGFBQU8sSUFBSVIsaUJBQUosQ0FBc0IsR0FBR1MsSUFBekIsQ0FBUDtBQUNEOztBQUVELFFBQUksQ0FBQyxLQUFLQywrQkFBTCxFQUFMLEVBQTZDO0FBQzNDLGFBQU8sSUFBSVYsaUJBQUosQ0FBc0IsR0FBR1MsSUFBekIsQ0FBUDtBQUNEOztBQUVELFdBQU8sSUFBSVYsa0JBQUosQ0FBdUIsR0FBR1UsSUFBMUIsQ0FBUDtBQUNEOztBQUVEQyxFQUFBQSwrQkFBK0IsR0FBRztBQUNoQyxVQUFNQyxNQUFNLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixRQUF2QixDQUFmOztBQUVBLFFBQUlDLE1BQU0sQ0FBQ0Msc0JBQVAsSUFBaUNKLE1BQU0sQ0FBQ0ssVUFBUCxDQUFrQixRQUFsQixDQUFyQyxFQUFrRTtBQUNoRTtBQUNBLGFBQU8sSUFBUDtBQUNEOztBQUVELFVBQU1DLEVBQUUsR0FBR04sTUFBTSxDQUFDSyxVQUFQLENBQWtCLE9BQWxCLENBQVg7QUFDQSxVQUFNRSxPQUFPLEdBQUcsQ0FBQyxDQUFDRCxFQUFFLENBQUNFLFlBQUgsQ0FBZ0IsbUJBQWhCLENBQWxCO0FBRUFSLElBQUFBLE1BQU0sQ0FBQ1MsTUFBUDtBQUVBLFdBQU9GLE9BQVA7QUFDRDs7QUFwQ21EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VSZW5kZXJlciBmcm9tICcuLi9CYXNlUmVuZGVyZXInO1xuaW1wb3J0IHsgREVGQVVMVF9SRU5ERVJFUl9PUFRJT05TIH0gZnJvbSAnLi9jb21tb24vY29uc3RhbnRzJztcbmltcG9ydCBEZXNrdG9wR1BVUmVuZGVyZXIgZnJvbSAnLi9EZXNrdG9wJztcbmltcG9ydCBNb2JpbGVHUFVSZW5kZXJlciBmcm9tICcuL01vYmlsZSc7XG5pbXBvcnQgeyBSRU5ERVJFUl9UWVBFX0dQVSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBQZXJmb3JtYW50IHBhcnRpY2xlIHJlbmRlcmVyIHRoYXQgdXNlcyBUSFJFRS5Qb2ludHMgdG8gcHJvcGFnYXRlIHBhcnRpY2xlIChwb3N0aWlvbiwgcmdiYSBldGMuLCkgcHJvcGVydGllcyB0b1xuICogdmVydGljZXMgaW4gYSBQYXJ0aWNsZUJ1ZmZlckdlb21ldHJ5LlxuICogVXNlcyBhIGR5bmFtaWMgdGV4dHVyZSBhdGxhcyB0byBzdXBwb3J0IHN5c3RlbXMgd2l0aCBtdXRsaXBsZSBzcHJpdGVzIGluIGEgcGVyZm9ybWFudCB3YXkuXG4gKlxuICogTk9URSEgVGhpcyBpcyBhbiBleHBlcmltZW50YWwgcmVuZGVyZXIgYW5kIGlzIGN1cnJlbnRseSBub3QgY292ZXJlZCBieSB0ZXN0cywgY292ZXJhZ2Ugd2lsbCBiZSBhZGRlZCB3aGVuIHRoZSBBUElcbiAqIGlzIG1vcmUgc3RhYmxlLiBDdXJyZW50bHkgb25seSBjb21wYXRpYmxlIHdpdGggc3ByaXRlL3RleHR1cmUgYmFzZWQgc3lzdGVtcy4gTWVzaGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC5cbiAqXG4gKiBAYXV0aG9yIHRocmF4IDxtYW50aHJheEBnbWFpbC5jb20+XG4gKiBAYXV0aG9yIHJvaGFuLWRlc2hwYW5kZSA8cm9oYW5AY3JlYXRpdmVsaWZlZm9ybS5jb20+XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdQVVJlbmRlcmVyIGV4dGVuZHMgQmFzZVJlbmRlcmVyIHtcbiAgY29uc3RydWN0b3IoY29udGFpbmVyLCBUSFJFRSwgb3B0aW9ucyA9IERFRkFVTFRfUkVOREVSRVJfT1BUSU9OUykge1xuICAgIHN1cGVyKFJFTkRFUkVSX1RZUEVfR1BVKTtcblxuICAgIGNvbnN0IHsgc2hvdWxkRm9yY2VEZXNrdG9wUmVuZGVyZXIsIHNob3VsZEZvcmNlTW9iaWxlUmVuZGVyZXIgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgYXJncyA9IFtjb250YWluZXIsIFRIUkVFLCBvcHRpb25zXTtcblxuICAgIGlmIChzaG91bGRGb3JjZURlc2t0b3BSZW5kZXJlcikge1xuICAgICAgcmV0dXJuIG5ldyBEZXNrdG9wR1BVUmVuZGVyZXIoLi4uYXJncyk7XG4gICAgfVxuXG4gICAgaWYgKHNob3VsZEZvcmNlTW9iaWxlUmVuZGVyZXIpIHtcbiAgICAgIHJldHVybiBuZXcgTW9iaWxlR1BVUmVuZGVyZXIoLi4uYXJncyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmlzRmxvYXRpbmdQb2ludFRleHR1cmVTdXBwb3J0ZWQoKSkge1xuICAgICAgcmV0dXJuIG5ldyBNb2JpbGVHUFVSZW5kZXJlciguLi5hcmdzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERlc2t0b3BHUFVSZW5kZXJlciguLi5hcmdzKTtcbiAgfVxuXG4gIGlzRmxvYXRpbmdQb2ludFRleHR1cmVTdXBwb3J0ZWQoKSB7XG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG5cbiAgICBpZiAod2luZG93LldlYkdMMlJlbmRlcmluZ0NvbnRleHQgJiYgY2FudmFzLmdldENvbnRleHQoJ3dlYmdsMicpKSB7XG4gICAgICAvLyByZXR1cm4gZmFsc2UgaGVyZSB0byB0ZXN0IHRoZSBtb2JpbGUgcmVuZGVyZXIgb24gZGVza3RvcFxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgZ2wgPSBjYW52YXMuZ2V0Q29udGV4dCgnd2ViZ2wnKTtcbiAgICBjb25zdCBzdXBwb3J0ID0gISFnbC5nZXRFeHRlbnNpb24oJ09FU190ZXh0dXJlX2Zsb2F0Jyk7XG5cbiAgICBjYW52YXMucmVtb3ZlKCk7XG5cbiAgICByZXR1cm4gc3VwcG9ydDtcbiAgfVxufVxuIl19
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import BaseRenderer from './BaseRenderer';
|
|
2
|
-
import { PUID } from '../utils';
|
|
3
|
-
import { Pool } from '../core';
|
|
4
|
-
import { RENDERER_TYPE_MESH as type } from './types';
|
|
5
|
-
/**
|
|
6
|
-
* @requires THREE - { Mesh, BoxGeometry, MeshLambertMaterial }
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
export default class MeshRenderer extends BaseRenderer {
|
|
10
|
-
/**
|
|
11
|
-
* @param {object} container - An Object3D container, usually a THREE.Scene
|
|
12
|
-
* @param {object} THREE - THREE Api
|
|
13
|
-
*/
|
|
14
|
-
constructor(container, THREE) {
|
|
15
|
-
super(type);
|
|
16
|
-
this.container = container;
|
|
17
|
-
this._targetPool = new Pool();
|
|
18
|
-
this._materialPool = new Pool();
|
|
19
|
-
this._body = new THREE.Mesh(new THREE.BoxGeometry(50, 50, 50), new THREE.MeshLambertMaterial({
|
|
20
|
-
color: '#ff0000'
|
|
21
|
-
}));
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
isThreeSprite(particle) {
|
|
25
|
-
return particle.target.isSprite;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
onSystemUpdate() {}
|
|
29
|
-
|
|
30
|
-
onParticleCreated(particle) {
|
|
31
|
-
if (!particle.target) {
|
|
32
|
-
//set target
|
|
33
|
-
if (!particle.body) particle.body = this._body;
|
|
34
|
-
particle.target = this._targetPool.get(particle.body); //set material
|
|
35
|
-
|
|
36
|
-
if (particle.useAlpha || particle.useColor) {
|
|
37
|
-
particle.target.material.__puid = PUID.id(particle.body.material);
|
|
38
|
-
particle.target.material = this._materialPool.get(particle.target.material);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (particle.target) {
|
|
43
|
-
particle.target.position.copy(particle.position);
|
|
44
|
-
this.container.add(particle.target);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
onParticleUpdate(particle) {
|
|
49
|
-
const {
|
|
50
|
-
target,
|
|
51
|
-
useAlpha,
|
|
52
|
-
useColor,
|
|
53
|
-
rotation
|
|
54
|
-
} = particle;
|
|
55
|
-
|
|
56
|
-
if (!target) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
target.position.copy(particle.position);
|
|
61
|
-
|
|
62
|
-
if (!this.isThreeSprite(particle)) {
|
|
63
|
-
target.rotation.set(rotation.x, rotation.y, rotation.z);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
this.scale(particle);
|
|
67
|
-
|
|
68
|
-
if (useAlpha) {
|
|
69
|
-
target.material.opacity = particle.alpha;
|
|
70
|
-
target.material.transparent = true;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
if (useColor) {
|
|
74
|
-
target.material.color.copy(particle.color);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
scale(particle) {
|
|
79
|
-
particle.target.scale.set(particle.scale, particle.scale, particle.scale);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
onParticleDead(particle) {
|
|
83
|
-
if (particle.target) {
|
|
84
|
-
if (particle.useAlpha || particle.useColor) this._materialPool.expire(particle.target.material);
|
|
85
|
-
|
|
86
|
-
this._targetPool.expire(particle.target);
|
|
87
|
-
|
|
88
|
-
this.container.remove(particle.target);
|
|
89
|
-
particle.target = null;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci9NZXNoUmVuZGVyZXIuanMiXSwibmFtZXMiOlsiQmFzZVJlbmRlcmVyIiwiUFVJRCIsIlBvb2wiLCJSRU5ERVJFUl9UWVBFX01FU0giLCJ0eXBlIiwiTWVzaFJlbmRlcmVyIiwiY29uc3RydWN0b3IiLCJjb250YWluZXIiLCJUSFJFRSIsIl90YXJnZXRQb29sIiwiX21hdGVyaWFsUG9vbCIsIl9ib2R5IiwiTWVzaCIsIkJveEdlb21ldHJ5IiwiTWVzaExhbWJlcnRNYXRlcmlhbCIsImNvbG9yIiwiaXNUaHJlZVNwcml0ZSIsInBhcnRpY2xlIiwidGFyZ2V0IiwiaXNTcHJpdGUiLCJvblN5c3RlbVVwZGF0ZSIsIm9uUGFydGljbGVDcmVhdGVkIiwiYm9keSIsImdldCIsInVzZUFscGhhIiwidXNlQ29sb3IiLCJtYXRlcmlhbCIsIl9fcHVpZCIsImlkIiwicG9zaXRpb24iLCJjb3B5IiwiYWRkIiwib25QYXJ0aWNsZVVwZGF0ZSIsInJvdGF0aW9uIiwic2V0IiwieCIsInkiLCJ6Iiwic2NhbGUiLCJvcGFjaXR5IiwiYWxwaGEiLCJ0cmFuc3BhcmVudCIsIm9uUGFydGljbGVEZWFkIiwiZXhwaXJlIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxZQUFQLE1BQXlCLGdCQUF6QjtBQUNBLFNBQVNDLElBQVQsUUFBcUIsVUFBckI7QUFDQSxTQUFTQyxJQUFULFFBQXFCLFNBQXJCO0FBQ0EsU0FBU0Msa0JBQWtCLElBQUlDLElBQS9CLFFBQTJDLFNBQTNDO0FBRUE7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsWUFBTixTQUEyQkwsWUFBM0IsQ0FBd0M7QUFDckQ7QUFDRjtBQUNBO0FBQ0E7QUFDRU0sRUFBQUEsV0FBVyxDQUFDQyxTQUFELEVBQVlDLEtBQVosRUFBbUI7QUFDNUIsVUFBTUosSUFBTjtBQUVBLFNBQUtHLFNBQUwsR0FBaUJBLFNBQWpCO0FBQ0EsU0FBS0UsV0FBTCxHQUFtQixJQUFJUCxJQUFK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UUFBRCxFQUFXO0FBQ2RBLElBQUFBLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQm9CLEtBQWhCLENBQXNCSixHQUF0QixDQUEwQmpCLFFBQVEsQ0FBQ3FCLEtBQW5DLEVBQTBDckIsUUFBUSxDQUFDcUIsS0FBbkQsRUFBMERyQixRQUFRLENBQUNxQixLQUFuRTtBQUNEOztBQUVESSxFQUFBQSxjQUFjLENBQUN6QixRQUFELEVBQVc7QUFDdkIsUUFBSUEsUUFBUSxDQUFDQyxNQUFiLEVBQXFCO0FBQ25CLFVBQUlELFFBQVEsQ0FBQ08sUUFBVCxJQUFxQlAsUUFBUSxDQUFDUSxRQUFsQyxFQUNFLEtBQUtmLGFBQUwsQ0FBbUJpQyxNQUFuQixDQUEwQjFCLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQlEsUUFBMUM7O0FBRUYsV0FBS2pCLFdBQUwsQ0FBaUJrQyxNQUFqQixDQUF3QjFCLFFBQVEsQ0FBQ0MsTUFBakM7O0FBQ0EsV0FBS1gsU0FBTCxDQUFlcUMsTUFBZixDQUFzQjNCLFFBQVEsQ0FBQ0MsTUFBL0I7QUFDQUQsTUFBQUEsUUFBUSxDQUFDQyxNQUFULEdBQWtCLElBQWxCO0FBQ0Q7QUFDRjs7QUFsRm9EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VSZW5kZXJlciBmcm9tICcuL0Jhc2VSZW5kZXJlcic7XG5pbXBvcnQgeyBQVUlEIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgUG9vbCB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgUkVOREVSRVJfVFlQRV9NRVNIIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBAcmVxdWlyZXMgVEhSRUUgLSB7IE1lc2gsIEJveEdlb21ldHJ5LCBNZXNoTGFtYmVydE1hdGVyaWFsIH1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWVzaFJlbmRlcmVyIGV4dGVuZHMgQmFzZVJlbmRlcmVyIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjb250YWluZXIgLSBBbiBPYmplY3QzRCBjb250YWluZXIsIHVzdWFsbHkgYSBUSFJFRS5TY2VuZVxuICAgKiBAcGFyYW0ge29iamVjdH0gVEhSRUUgLSBUSFJFRSBBcGlcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbnRhaW5lciwgVEhSRUUpIHtcbiAgICBzdXBlcih0eXBlKTtcblxuICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIHRoaXMuX3RhcmdldFBvb2wgPSBuZXcgUG9vbCgpO1xuICAgIHRoaXMuX21hdGVyaWFsUG9vbCA9IG5ldyBQb29sKCk7XG4gICAgdGhpcy5fYm9keSA9IG5ldyBUSFJFRS5NZXNoKFxuICAgICAgbmV3IFRIUkVFLkJveEdlb21ldHJ5KDUwLCA1MCwgNTApLFxuICAgICAgbmV3IFRIUkVFLk1lc2hMYW1iZXJ0TWF0ZXJpYWwoeyBjb2xvcjogJyNmZjAwMDAnIH0pXG4gICAgKTtcbiAgfVxuXG4gIGlzVGhyZWVTcHJpdGUocGFydGljbGUpIHtcbiAgICByZXR1cm4gcGFydGljbGUudGFyZ2V0LmlzU3ByaXRlO1xuICB9XG5cbiAgb25TeXN0ZW1VcGRhdGUoKSB7fVxuXG4gIG9uUGFydGljbGVDcmVhdGVkKHBhcnRpY2xlKSB7XG4gICAgaWYgKCFwYXJ0aWNsZS50YXJnZXQpIHtcbiAgICAgIC8vc2V0IHRhcmdldFxuICAgICAgaWYgKCFwYXJ0aWNsZS5ib2R5KSBwYXJ0aWNsZS5ib2R5ID0gdGhpcy5fYm9keTtcbiAgICAgIHBhcnRpY2xlLnRhcmdldCA9IHRoaXMuX3RhcmdldFBvb2wuZ2V0KHBhcnRpY2xlLmJvZHkpO1xuXG4gICAgICAvL3NldCBtYXRlcmlhbFxuICAgICAgaWYgKHBhcnRpY2xlLnVzZUFscGhhIHx8IHBhcnRpY2xlLnVzZUNvbG9yKSB7XG4gICAgICAgIHBhcnRpY2xlLnRhcmdldC5tYXRlcmlhbC5fX3B1aWQgPSBQVUlELmlkKHBhcnRpY2xlLmJvZHkubWF0ZXJpYWwpO1xuICAgICAgICBwYXJ0aWNsZS50YXJnZXQubWF0ZXJpYWwgPSB0aGlzLl9tYXRlcmlhbFBvb2wuZ2V0KFxuICAgICAgICAgIHBhcnRpY2xlLnRhcmdldC5tYXRlcmlhbFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYXJ0aWNsZS50YXJnZXQpIHtcbiAgICAgIHBhcnRpY2xlLnRhcmdldC5wb3NpdGlvbi5jb3B5KHBhcnRpY2xlLnBvc2l0aW9uKTtcbiAgICAgIHRoaXMuY29udGFpbmVyLmFkZChwYXJ0aWNsZS50YXJnZXQpO1xuICAgIH1cbiAgfVxuXG4gIG9uUGFydGljbGVVcGRhdGUocGFydGljbGUpIHtcbiAgICBjb25zdCB7IHRhcmdldCwgdXNlQWxwaGEsIHVzZUNvbG9yLCByb3RhdGlvbiB9ID0gcGFydGljbGU7XG5cbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRhcmdldC5wb3NpdGlvbi5jb3B5KHBhcnRpY2xlLnBvc2l0aW9uKTtcblxuICAgIGlmICghdGhpcy5pc1RocmVlU3ByaXRlKHBhcnRpY2xlKSkge1xuICAgICAgdGFyZ2V0LnJvdGF0aW9uLnNldChyb3RhdGlvbi54LCByb3RhdGlvbi55LCByb3RhdGlvbi56KTtcbiAgICB9XG5cbiAgICB0aGlzLnNjYWxlKHBhcnRpY2xlKTtcblxuICAgIGlmICh1c2VBbHBoYSkge1xuICAgICAgdGFyZ2V0Lm1hdGVyaWFsLm9wYWNpdHkgPSBwYXJ0aWNsZS5hbHBoYTtcbiAgICAgIHRhcmdldC5tYXRlcmlhbC50cmFuc3BhcmVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHVzZUNvbG9yKSB7XG4gICAgICB0YXJnZXQubWF0ZXJpYWwuY29sb3IuY29weShwYXJ0aWNsZS5jb2xvcik7XG4gICAgfVxuICB9XG5cbiAgc2NhbGUocGFydGljbGUpIHtcbiAgICBwYXJ0aWNsZS50YXJnZXQuc2NhbGUuc2V0KHBhcnRpY2xlLnNjYWxlLCBwYXJ0aWNsZS5zY2FsZSwgcGFydGljbGUuc2NhbGUpO1xuICB9XG5cbiAgb25QYXJ0aWNsZURlYWQocGFydGljbGUpIHtcbiAgICBpZiAocGFydGljbGUudGFyZ2V0KSB7XG4gICAgICBpZiAocGFydGljbGUudXNlQWxwaGEgfHwgcGFydGljbGUudXNlQ29sb3IpXG4gICAgICAgIHRoaXMuX21hdGVyaWFsUG9vbC5leHBpcmUocGFydGljbGUudGFyZ2V0Lm1hdGVyaWFsKTtcblxuICAgICAgdGhpcy5fdGFyZ2V0UG9vbC5leHBpcmUocGFydGljbGUudGFyZ2V0KTtcbiAgICAgIHRoaXMuY29udGFpbmVyLnJlbW92ZShwYXJ0aWNsZS50YXJnZXQpO1xuICAgICAgcGFydGljbGUudGFyZ2V0ID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import MeshRenderer from './MeshRenderer';
|
|
2
|
-
import { RENDERER_TYPE_SPRITE as type } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* @requires THREE - { Mesh, BoxGeometry, MeshLambertMaterial, Sprite, SpriteMaterial }
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export default class SpriteRenderer extends MeshRenderer {
|
|
8
|
-
constructor(container, THREE) {
|
|
9
|
-
super(container, THREE);
|
|
10
|
-
/**
|
|
11
|
-
* @desc The class type.
|
|
12
|
-
* @type {string}
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
this.type = type;
|
|
16
|
-
this._body = new THREE.Sprite(new THREE.SpriteMaterial({
|
|
17
|
-
color: 0xffffff
|
|
18
|
-
}));
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
scale(particle) {
|
|
22
|
-
particle.target.scale.set(particle.scale * particle.radius, particle.scale * particle.radius, 1);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci9TcHJpdGVSZW5kZXJlci5qcyJdLCJuYW1lcyI6WyJNZXNoUmVuZGVyZXIiLCJSRU5ERVJFUl9UWVBFX1NQUklURSIsInR5cGUiLCJTcHJpdGVSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwiY29udGFpbmVyIiwiVEhSRUUiLCJfYm9keSIsIlNwcml0ZSIsIlNwcml0ZU1hdGVyaWFsIiwiY29sb3IiLCJzY2FsZSIsInBhcnRpY2xlIiwidGFyZ2V0Iiwic2V0IiwicmFkaXVzIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxZQUFQLE1BQXlCLGdCQUF6QjtBQUNBLFNBQVNDLG9CQUFvQixJQUFJQyxJQUFqQyxRQUE2QyxTQUE3QztBQUVBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLGNBQU4sU0FBNkJILFlBQTdCLENBQTBDO0FBQ3ZESSxFQUFBQSxXQUFXLENBQUNDLFNBQUQsRUFBWUMsS0FBWixFQUFtQjtBQUM1QixVQUFNRCxTQUFOLEVBQWlCQyxLQUFqQjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtKLElBQUwsR0FBWUEsSUFBWjtBQUNBLFNBQUtLLEtBQUwsR0FBYSxJQUFJRCxLQUFLLENBQUNFLE1BQVYsQ0FDWCxJQUFJRixLQUFLLENBQUNHLGNBQVYsQ0FBeUI7QUFBRUMsTUFBQUEsS0FBSyxFQUFFO0FBQVQsS0FBekIsQ0FEVyxDQUFiO0FBR0Q7O0FBRURDLEVBQUFBLEtBQUssQ0FBQ0MsUUFBRCxFQUFXO0FBQ2RBLElBQUFBLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQkYsS0FBaEIsQ0FBc0JHLEdBQXRCLENBQ0VGLFFBQVEsQ0FBQ0QsS0FBVCxHQUFpQkMsUUFBUSxDQUFDRyxNQUQ1QixFQUVFSCxRQUFRLENBQUNELEtBQVQsR0FBaUJDLFFBQVEsQ0FBQ0csTUFGNUIsRUFHRSxDQUhGO0FBS0Q7O0FBcEJzRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNZXNoUmVuZGVyZXIgZnJvbSAnLi9NZXNoUmVuZGVyZXInO1xuaW1wb3J0IHsgUkVOREVSRVJfVFlQRV9TUFJJVEUgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEByZXF1aXJlcyBUSFJFRSAtIHsgTWVzaCwgQm94R2VvbWV0cnksIE1lc2hMYW1iZXJ0TWF0ZXJpYWwsIFNwcml0ZSwgU3ByaXRlTWF0ZXJpYWwgfVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTcHJpdGVSZW5kZXJlciBleHRlbmRzIE1lc2hSZW5kZXJlciB7XG4gIGNvbnN0cnVjdG9yKGNvbnRhaW5lciwgVEhSRUUpIHtcbiAgICBzdXBlcihjb250YWluZXIsIFRIUkVFKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBjbGFzcyB0eXBlLlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLl9ib2R5ID0gbmV3IFRIUkVFLlNwcml0ZShcbiAgICAgIG5ldyBUSFJFRS5TcHJpdGVNYXRlcmlhbCh7IGNvbG9yOiAweGZmZmZmZiB9KVxuICAgICk7XG4gIH1cblxuICBzY2FsZShwYXJ0aWNsZSkge1xuICAgIHBhcnRpY2xlLnRhcmdldC5zY2FsZS5zZXQoXG4gICAgICBwYXJ0aWNsZS5zY2FsZSAqIHBhcnRpY2xlLnJhZGl1cyxcbiAgICAgIHBhcnRpY2xlLnNjYWxlICogcGFydGljbGUucmFkaXVzLFxuICAgICAgMVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { default as CustomRenderer } from './CustomRenderer';
|
|
2
|
-
export { default as MeshRenderer } from './MeshRenderer';
|
|
3
|
-
export { default as SpriteRenderer } from './SpriteRenderer';
|
|
4
|
-
export { default as GPURenderer } from './GPURenderer';
|
|
5
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiQ3VzdG9tUmVuZGVyZXIiLCJNZXNoUmVuZGVyZXIiLCJTcHJpdGVSZW5kZXJlciIsIkdQVVJlbmRlcmVyIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFPLElBQUlDLGNBQXBCLFFBQTBDLGtCQUExQztBQUNBLFNBQVNELE9BQU8sSUFBSUUsWUFBcEIsUUFBd0MsZ0JBQXhDO0FBQ0EsU0FBU0YsT0FBTyxJQUFJRyxjQUFwQixRQUEwQyxrQkFBMUM7QUFDQSxTQUFTSCxPQUFPLElBQUlJLFdBQXBCLFFBQXVDLGVBQXZDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBDdXN0b21SZW5kZXJlciB9IGZyb20gJy4vQ3VzdG9tUmVuZGVyZXInO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZXNoUmVuZGVyZXIgfSBmcm9tICcuL01lc2hSZW5kZXJlcic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNwcml0ZVJlbmRlcmVyIH0gZnJvbSAnLi9TcHJpdGVSZW5kZXJlcic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdQVVJlbmRlcmVyIH0gZnJvbSAnLi9HUFVSZW5kZXJlcic7XG4iXX0=
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export const RENDERER_TYPE_BASE = 'BaseRenderer';
|
|
2
|
-
export const RENDERER_TYPE_CUSTOM = 'CustomRenderer';
|
|
3
|
-
export const RENDERER_TYPE_SPRITE = 'SpriteRenderer';
|
|
4
|
-
export const RENDERER_TYPE_MESH = 'MeshRenderer';
|
|
5
|
-
export const RENDERER_TYPE_GPU = 'GPURenderer';
|
|
6
|
-
export const RENDERER_TYPE_GPU_MOBILE = 'MobileGPURenderer';
|
|
7
|
-
export const RENDERER_TYPE_GPU_DESKTOP = 'DesktopGPURenderer';
|
|
8
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci90eXBlcy5qcyJdLCJuYW1lcyI6WyJSRU5ERVJFUl9UWVBFX0JBU0UiLCJSRU5ERVJFUl9UWVBFX0NVU1RPTSIsIlJFTkRFUkVSX1RZUEVfU1BSSVRFIiwiUkVOREVSRVJfVFlQRV9NRVNIIiwiUkVOREVSRVJfVFlQRV9HUFUiLCJSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUiLCJSRU5ERVJFUl9UWVBFX0dQVV9ERVNLVE9QIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU1BLGtCQUFrQixHQUFHLGNBQTNCO0FBQ1AsT0FBTyxNQUFNQyxvQkFBb0IsR0FBRyxnQkFBN0I7QUFDUCxPQUFPLE1BQU1DLG9CQUFvQixHQUFHLGdCQUE3QjtBQUNQLE9BQU8sTUFBTUMsa0JBQWtCLEdBQUcsY0FBM0I7QUFDUCxPQUFPLE1BQU1DLGlCQUFpQixHQUFHLGFBQTFCO0FBQ1AsT0FBTyxNQUFNQyx3QkFBd0IsR0FBRyxtQkFBakM7QUFDUCxPQUFPLE1BQU1DLHlCQUF5QixHQUFHLG9CQUFsQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBSRU5ERVJFUl9UWVBFX0JBU0UgPSAnQmFzZVJlbmRlcmVyJztcbmV4cG9ydCBjb25zdCBSRU5ERVJFUl9UWVBFX0NVU1RPTSA9ICdDdXN0b21SZW5kZXJlcic7XG5leHBvcnQgY29uc3QgUkVOREVSRVJfVFlQRV9TUFJJVEUgPSAnU3ByaXRlUmVuZGVyZXInO1xuZXhwb3J0IGNvbnN0IFJFTkRFUkVSX1RZUEVfTUVTSCA9ICdNZXNoUmVuZGVyZXInO1xuZXhwb3J0IGNvbnN0IFJFTkRFUkVSX1RZUEVfR1BVID0gJ0dQVVJlbmRlcmVyJztcbmV4cG9ydCBjb25zdCBSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUgPSAnTW9iaWxlR1BVUmVuZGVyZXInO1xuZXhwb3J0IGNvbnN0IFJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1AgPSAnRGVza3RvcEdQVVJlbmRlcmVyJztcbiJdfQ==
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
getRGB: function (color) {
|
|
3
|
-
var rgb = {};
|
|
4
|
-
|
|
5
|
-
if (typeof color === 'number') {
|
|
6
|
-
hex = Math.floor(color);
|
|
7
|
-
rgb.r = (color >> 16 & 255) / 255;
|
|
8
|
-
rgb.g = (color >> 8 & 255) / 255;
|
|
9
|
-
rgb.b = (color & 255) / 255;
|
|
10
|
-
} else if (typeof color === 'string') {
|
|
11
|
-
var m;
|
|
12
|
-
|
|
13
|
-
if (m = /^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(color)) {
|
|
14
|
-
rgb.r = Math.min(255, parseInt(m[1], 10)) / 255;
|
|
15
|
-
rgb.g = Math.min(255, parseInt(m[2], 10)) / 255;
|
|
16
|
-
rgb.b = Math.min(255, parseInt(m[3], 10)) / 255; // eslint-disable-next-line no-useless-escape
|
|
17
|
-
} else if (m = /^\#([A-Fa-f0-9]+)$/.exec(color)) {
|
|
18
|
-
var hex = m[1];
|
|
19
|
-
rgb.r = parseInt(hex.charAt(0) + hex.charAt(1), 16) / 255;
|
|
20
|
-
rgb.g = parseInt(hex.charAt(2) + hex.charAt(3), 16) / 255;
|
|
21
|
-
rgb.b = parseInt(hex.charAt(4) + hex.charAt(5), 16) / 255;
|
|
22
|
-
}
|
|
23
|
-
} else {
|
|
24
|
-
rgb.r = color.r;
|
|
25
|
-
rgb.g = color.g;
|
|
26
|
-
rgb.b = color.b;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
return rgb;
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9Db2xvclV0aWwuanMiXSwibmFtZXMiOlsiZ2V0UkdCIiwiY29sb3IiLCJyZ2IiLCJoZXgiLCJNYXRoIiwiZmxvb3IiLCJyIiwiZyIsImIiLCJtIiwiZXhlYyIsIm1pbiIsInBhcnNlSW50IiwiY2hhckF0Il0sIm1hcHBpbmdzIjoiQUFBQSxlQUFlO0FBQ2JBLEVBQUFBLE1BQU0sRUFBRSxVQUFTQyxLQUFULEVBQWdCO0FBQ3RCLFFBQUlDLEdBQUcsR0FBRyxFQUFWOztBQUVBLFFBQUksT0FBT0QsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUM3QkUsTUFBQUEsR0FBRyxHQUFHQyxJQUFJLENBQUNDLEtBQUwsQ0FBV0osS0FBWCxDQUFOO0FBQ0FDLE1BQUFBLEdBQUcsQ0FBQ0ksQ0FBSixHQUFRLENBQUVMLEtBQUssSUFBSSxFQUFWLEdBQWdCLEdBQWpCLElBQXdCLEdBQWhDO0FBQ0FDLE1BQUFBLEdBQUcsQ0FBQ0ssQ0FBSixHQUFRLENBQUVOLEtBQUssSUFBSSxDQUFWLEdBQWUsR0FBaEIsSUFBdUIsR0FBL0I7QUFDQUMsTUFBQUEsR0FBRyxDQUFDTSxDQUFKLEdBQVEsQ0FBQ1AsS0FBSyxHQUFHLEdBQVQsSUFBZ0IsR0FBeEI7QUFDRCxLQUxELE1BS08sSUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQ3BDLFVBQUlRLENBQUo7O0FBRUEsVUFDR0EsQ0FBQyxHQUFHLGdFQUFnRUMsSUFBaEUsQ0FDSFQsS0FERyxDQURQLEVBSUU7QUFDQUMsUUFBQUEsR0FBRyxDQUFDSSxDQUFKLEdBQVFGLElBQUksQ0FBQ08sR0FBTCxDQUFTLEdBQVQsRUFBY0MsUUFBUSxDQUFDSCxDQUFDLENBQUMsQ0FBRCxDQUFGLEVBQU8sRUFBUCxDQUF0QixJQUFvQyxHQUE1QztBQUNBUCxRQUFBQSxHQUFHLENBQUNLLENBQUosR0FBUUgsSUFBSSxDQUFDTyxHQUFMLENBQVMsR0FBVCxFQUFjQyxRQUFRLENBQUNILENBQUMsQ0FBQyxDQUFELENBQUYsRUFBTyxFQUFQLENBQXRCLElBQW9DLEdBQTVDO0FBQ0FQLFFBQUFBLEdBQUcsQ0FBQ00sQ0FBSixHQUFRSixJQUFJLENBQUNPLEdBQUwsQ0FBUyxHQUFULEVBQWNDLFFBQVEsQ0FBQ0gsQ0FBQyxDQUFDLENBQUQsQ0FBRixFQUFPLEVBQVAsQ0FBdEIsSUFBb0MsR0FBNUMsQ0FIQSxDQUlBO0FBQ0QsT0FURCxNQVNPLElBQUtBLENBQUMsR0FBRyxxQkFBcUJDLElBQXJCLENBQTBCVCxLQUExQixDQUFULEVBQTRDO0FBQ2pELFlBQUlFLEdBQUcsR0FBR00sQ0FBQyxDQUFDLENBQUQsQ0FBWDtBQUVBUCxRQUFBQSxHQUFHLENBQUNJLENBQUosR0FBUU0sUUFBUSxDQUFDVCxHQUFHLENBQUNVLE1BQUosQ0FBVyxDQUFYLElBQWdCVixHQUFHLENBQUNVLE1BQUosQ0FBVyxDQUFYLENBQWpCLEVBQWdDLEVBQWhDLENBQVIsR0FBOEMsR0FBdEQ7QUFDQVgsUUFBQUEsR0FBRyxDQUFDSyxDQUFKLEdBQVFLLFFBQVEsQ0FBQ1QsR0FBRyxDQUFDVSxNQUFKLENBQVcsQ0FBWCxJQUFnQlYsR0FBRyxDQUFDVSxNQUFKLENBQVcsQ0FBWCxDQUFqQixFQUFnQyxFQUFoQyxDQUFSLEdBQThDLEdBQXREO0FBQ0FYLFFBQUFBLEdBQUcsQ0FBQ00sQ0FBSixHQUFRSSxRQUFRLENBQUNULEdBQUcsQ0FBQ1UsTUFBSixDQUFXLENBQVgsSUFBZ0JWLEdBQUcsQ0FBQ1UsTUFBSixDQUFXLENBQVgsQ0FBakIsRUFBZ0MsRUFBaEMsQ0FBUixHQUE4QyxHQUF0RDtBQUNEO0FBQ0YsS0FuQk0sTUFtQkE7QUFDTFgsTUFBQUEsR0FBRyxDQUFDSSxDQUFKLEdBQVFMLEtBQUssQ0FBQ0ssQ0FBZDtBQUNBSixNQUFBQSxHQUFHLENBQUNLLENBQUosR0FBUU4sS0FBSyxDQUFDTSxDQUFkO0FBQ0FMLE1BQUFBLEdBQUcsQ0FBQ00sQ0FBSixHQUFRUCxLQUFLLENBQUNPLENBQWQ7QUFDRDs7QUFFRCxXQUFPTixHQUFQO0FBQ0Q7QUFuQ1ksQ0FBZiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcbiAgZ2V0UkdCOiBmdW5jdGlvbihjb2xvcikge1xuICAgIHZhciByZ2IgPSB7fTtcblxuICAgIGlmICh0eXBlb2YgY29sb3IgPT09ICdudW1iZXInKSB7XG4gICAgICBoZXggPSBNYXRoLmZsb29yKGNvbG9yKTtcbiAgICAgIHJnYi5yID0gKChjb2xvciA+PiAxNikgJiAyNTUpIC8gMjU1O1xuICAgICAgcmdiLmcgPSAoKGNvbG9yID4+IDgpICYgMjU1KSAvIDI1NTtcbiAgICAgIHJnYi5iID0gKGNvbG9yICYgMjU1KSAvIDI1NTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb2xvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhciBtO1xuXG4gICAgICBpZiAoXG4gICAgICAgIChtID0gL14oXFxkKylcXHMqLFxccyooXFxkKylcXHMqLFxccyooXFxkKylcXHMqKCxcXHMqKFswLTldKlxcLj9bMC05XSspXFxzKik/JC8uZXhlYyhcbiAgICAgICAgICBjb2xvclxuICAgICAgICApKVxuICAgICAgKSB7XG4gICAgICAgIHJnYi5yID0gTWF0aC5taW4oMjU1LCBwYXJzZUludChtWzFdLCAxMCkpIC8gMjU1O1xuICAgICAgICByZ2IuZyA9IE1hdGgubWluKDI1NSwgcGFyc2VJbnQobVsyXSwgMTApKSAvIDI1NTtcbiAgICAgICAgcmdiLmIgPSBNYXRoLm1pbigyNTUsIHBhcnNlSW50KG1bM10sIDEwKSkgLyAyNTU7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuICAgICAgfSBlbHNlIGlmICgobSA9IC9eXFwjKFtBLUZhLWYwLTldKykkLy5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgdmFyIGhleCA9IG1bMV07XG5cbiAgICAgICAgcmdiLnIgPSBwYXJzZUludChoZXguY2hhckF0KDApICsgaGV4LmNoYXJBdCgxKSwgMTYpIC8gMjU1O1xuICAgICAgICByZ2IuZyA9IHBhcnNlSW50KGhleC5jaGFyQXQoMikgKyBoZXguY2hhckF0KDMpLCAxNikgLyAyNTU7XG4gICAgICAgIHJnYi5iID0gcGFyc2VJbnQoaGV4LmNoYXJBdCg0KSArIGhleC5jaGFyQXQoNSksIDE2KSAvIDI1NTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmdiLnIgPSBjb2xvci5yO1xuICAgICAgcmdiLmcgPSBjb2xvci5nO1xuICAgICAgcmdiLmIgPSBjb2xvci5iO1xuICAgIH1cblxuICAgIHJldHVybiByZ2I7XG4gIH0sXG59O1xuIl19
|
package/build/esm/utils/PUID.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
_id: 0,
|
|
3
|
-
_uids: new Map(),
|
|
4
|
-
getNewId: function () {
|
|
5
|
-
return `PUID_${++this._id}`;
|
|
6
|
-
},
|
|
7
|
-
id: function (functionOrObject) {
|
|
8
|
-
if (this._uids.has(functionOrObject)) {
|
|
9
|
-
return this._uids.get(functionOrObject);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const newId = this.getNewId();
|
|
13
|
-
|
|
14
|
-
this._uids.set(functionOrObject, newId);
|
|
15
|
-
|
|
16
|
-
return newId;
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9QVUlELmpzIl0sIm5hbWVzIjpbIl9pZCIsIl91aWRzIiwiTWFwIiwiZ2V0TmV3SWQiLCJpZCIsImZ1bmN0aW9uT3JPYmplY3QiLCJoYXMiLCJnZXQiLCJuZXdJZCIsInNldCJdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZTtBQUNiQSxFQUFBQSxHQUFHLEVBQUUsQ0FEUTtBQUViQyxFQUFBQSxLQUFLLEVBQUUsSUFBSUMsR0FBSixFQUZNO0FBR2JDLEVBQUFBLFFBQVEsRUFBRSxZQUFXO0FBQ25CLFdBQVEsUUFBTyxFQUFFLEtBQUtILEdBQUksRUFBMUI7QUFDRCxHQUxZO0FBTWJJLEVBQUFBLEVBQUUsRUFBRSxVQUFTQyxnQkFBVCxFQUEyQjtBQUM3QixRQUFJLEtBQUtKLEtBQUwsQ0FBV0ssR0FBWCxDQUFlRCxnQkFBZixDQUFKLEVBQXNDO0FBQ3BDLGFBQU8sS0FBS0osS0FBTCxDQUFXTSxHQUFYLENBQWVGLGdCQUFmLENBQVA7QUFDRDs7QUFFRCxVQUFNRyxLQUFLLEdBQUcsS0FBS0wsUUFBTCxFQUFkOztBQUVBLFNBQUtGLEtBQUwsQ0FBV1EsR0FBWCxDQUFlSixnQkFBZixFQUFpQ0csS0FBakM7O0FBRUEsV0FBT0EsS0FBUDtBQUNEO0FBaEJZLENBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XG4gIF9pZDogMCxcbiAgX3VpZHM6IG5ldyBNYXAoKSxcbiAgZ2V0TmV3SWQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBgUFVJRF8keysrdGhpcy5faWR9YDtcbiAgfSxcbiAgaWQ6IGZ1bmN0aW9uKGZ1bmN0aW9uT3JPYmplY3QpIHtcbiAgICBpZiAodGhpcy5fdWlkcy5oYXMoZnVuY3Rpb25Pck9iamVjdCkpIHtcbiAgICAgIHJldHVybiB0aGlzLl91aWRzLmdldChmdW5jdGlvbk9yT2JqZWN0KTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdJZCA9IHRoaXMuZ2V0TmV3SWQoKTtcblxuICAgIHRoaXMuX3VpZHMuc2V0KGZ1bmN0aW9uT3JPYmplY3QsIG5ld0lkKTtcblxuICAgIHJldHVybiBuZXdJZDtcbiAgfSxcbn07XG4iXX0=
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Vector3 } from '../core/three/';
|
|
2
|
-
export default {
|
|
3
|
-
toScreenPos: function () {
|
|
4
|
-
var vector = new Vector3();
|
|
5
|
-
return function (pos, camera, canvas) {
|
|
6
|
-
vector.copy(pos); // map to normalized device coordinate (NDC) space
|
|
7
|
-
|
|
8
|
-
vector.project(camera); // map to 2D screen space
|
|
9
|
-
|
|
10
|
-
vector.x = Math.round((vector.x + 1) * canvas.width / 2);
|
|
11
|
-
vector.y = Math.round((-vector.y + 1) * canvas.height / 2);
|
|
12
|
-
vector.z = 0;
|
|
13
|
-
return vector;
|
|
14
|
-
};
|
|
15
|
-
}(),
|
|
16
|
-
toSpacePos: function () {
|
|
17
|
-
var vector = new Vector3(),
|
|
18
|
-
dir = new Vector3(),
|
|
19
|
-
distance;
|
|
20
|
-
return function (pos, camera, canvas) {
|
|
21
|
-
vector.set(pos.x / canvas.width * 2 - 1, -(pos.y / canvas.height) * 2 + 1, 0.5);
|
|
22
|
-
vector.unproject(camera);
|
|
23
|
-
dir.copy(vector.sub(camera.position).normalize());
|
|
24
|
-
distance = -camera.position.z / dir.z;
|
|
25
|
-
vector.copy(camera.position);
|
|
26
|
-
vector.add(dir.multiplyScalar(distance));
|
|
27
|
-
return vector;
|
|
28
|
-
};
|
|
29
|
-
}()
|
|
30
|
-
};
|
|
31
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9USFJFRVV0aWwuanMiXSwibmFtZXMiOlsiVmVjdG9yMyIsInRvU2NyZWVuUG9zIiwidmVjdG9yIiwicG9zIiwiY2FtZXJhIiwiY2FudmFzIiwiY29weSIsInByb2plY3QiLCJ4IiwiTWF0aCIsInJvdW5kIiwid2lkdGgiLCJ5IiwiaGVpZ2h0IiwieiIsInRvU3BhY2VQb3MiLCJkaXIiLCJkaXN0YW5jZSIsInNldCIsInVucHJvamVjdCIsInN1YiIsInBvc2l0aW9uIiwibm9ybWFsaXplIiwiYWRkIiwibXVsdGlwbHlTY2FsYXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQVQsUUFBd0IsZ0JBQXhCO0FBRUEsZUFBZTtBQUNiQyxFQUFBQSxXQUFXLEVBQUcsWUFBVztBQUN2QixRQUFJQyxNQUFNLEdBQUcsSUFBSUYsT0FBSixFQUFiO0FBRUEsV0FBTyxVQUFTRyxHQUFULEVBQWNDLE1BQWQsRUFBc0JDLE1BQXRCLEVBQThCO0FBQ25DSCxNQUFBQSxNQUFNLENBQUNJLElBQVAsQ0FBWUgsR0FBWixFQURtQyxDQUVuQzs7QUFDQUQsTUFBQUEsTUFBTSxDQUFDSyxPQUFQLENBQWVILE1BQWYsRUFIbUMsQ0FJbkM7O0FBQ0FGLE1BQUFBLE1BQU0sQ0FBQ00sQ0FBUCxHQUFXQyxJQUFJLENBQUNDLEtBQUwsQ0FBWSxDQUFDUixNQUFNLENBQUNNLENBQVAsR0FBVyxDQUFaLElBQWlCSCxNQUFNLENBQUNNLEtBQXpCLEdBQWtDLENBQTdDLENBQVg7QUFDQVQsTUFBQUEsTUFBTSxDQUFDVSxDQUFQLEdBQVdILElBQUksQ0FBQ0MsS0FBTCxDQUFZLENBQUMsQ0FBQ1IsTUFBTSxDQUFDVSxDQUFSLEdBQVksQ0FBYixJQUFrQlAsTUFBTSxDQUFDUSxNQUExQixHQUFvQyxDQUEvQyxDQUFYO0FBQ0FYLE1BQUFBLE1BQU0sQ0FBQ1ksQ0FBUCxHQUFXLENBQVg7QUFFQSxhQUFPWixNQUFQO0FBQ0QsS0FWRDtBQVdELEdBZFksRUFEQTtBQWlCYmEsRUFBQUEsVUFBVSxFQUFHLFlBQVc7QUFDdEIsUUFBSWIsTUFBTSxHQUFHLElBQUlGLE9BQUosRUFBYjtBQUFBLFFBQ0VnQixHQUFHLEdBQUcsSUFBSWhCLE9BQUosRUFEUjtBQUFBLFFBRUVpQixRQUZGO0FBSUEsV0FBTyxVQUFTZCxHQUFULEVBQWNDLE1BQWQsRUFBc0JDLE1BQXRCLEVBQThCO0FBQ25DSCxNQUFBQSxNQUFNLENBQUNnQixHQUFQLENBQ0dmLEdBQUcsQ0FBQ0ssQ0FBSixHQUFRSCxNQUFNLENBQUNNLEtBQWhCLEdBQXlCLENBQXpCLEdBQTZCLENBRC9CLEVBRUUsRUFBRVIsR0FBRyxDQUFDUyxDQUFKLEdBQVFQLE1BQU0sQ0FBQ1EsTUFBakIsSUFBMkIsQ0FBM0IsR0FBK0IsQ0FGakMsRUFHRSxHQUhGO0FBS0FYLE1BQUFBLE1BQU0sQ0FBQ2lCLFNBQVAsQ0FBaUJmLE1BQWpCO0FBRUFZLE1BQUFBLEdBQUcsQ0FBQ1YsSUFBSixDQUFTSixNQUFNLENBQUNrQixHQUFQLENBQVdoQixNQUFNLENBQUNpQixRQUFsQixFQUE0QkMsU0FBNUIsRUFBVDtBQUNBTCxNQUFBQSxRQUFRLEdBQUcsQ0FBQ2IsTUFBTSxDQUFDaUIsUUFBUCxDQUFnQlAsQ0FBakIsR0FBcUJFLEdBQUcsQ0FBQ0YsQ0FBcEM7QUFDQVosTUFBQUEsTUFBTSxDQUFDSSxJQUFQLENBQVlGLE1BQU0sQ0FBQ2lCLFFBQW5CO0FBQ0FuQixNQUFBQSxNQUFNLENBQUNxQixHQUFQLENBQVdQLEdBQUcsQ0FBQ1EsY0FBSixDQUFtQlAsUUFBbkIsQ0FBWDtBQUVBLGFBQU9mLE1BQVA7QUFDRCxLQWREO0FBZUQsR0FwQlc7QUFqQkMsQ0FBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlY3RvcjMgfSBmcm9tICcuLi9jb3JlL3RocmVlLyc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdG9TY3JlZW5Qb3M6IChmdW5jdGlvbigpIHtcbiAgICB2YXIgdmVjdG9yID0gbmV3IFZlY3RvcjMoKTtcblxuICAgIHJldHVybiBmdW5jdGlvbihwb3MsIGNhbWVyYSwgY2FudmFzKSB7XG4gICAgICB2ZWN0b3IuY29weShwb3MpO1xuICAgICAgLy8gbWFwIHRvIG5vcm1hbGl6ZWQgZGV2aWNlIGNvb3JkaW5hdGUgKE5EQykgc3BhY2VcbiAgICAgIHZlY3Rvci5wcm9qZWN0KGNhbWVyYSk7XG4gICAgICAvLyBtYXAgdG8gMkQgc2NyZWVuIHNwYWNlXG4gICAgICB2ZWN0b3IueCA9IE1hdGgucm91bmQoKCh2ZWN0b3IueCArIDEpICogY2FudmFzLndpZHRoKSAvIDIpO1xuICAgICAgdmVjdG9yLnkgPSBNYXRoLnJvdW5kKCgoLXZlY3Rvci55ICsgMSkgKiBjYW52YXMuaGVpZ2h0KSAvIDIpO1xuICAgICAgdmVjdG9yLnogPSAwO1xuXG4gICAgICByZXR1cm4gdmVjdG9yO1xuICAgIH07XG4gIH0pKCksXG5cbiAgdG9TcGFjZVBvczogKGZ1bmN0aW9uKCkge1xuICAgIHZhciB2ZWN0b3IgPSBuZXcgVmVjdG9yMygpLFxuICAgICAgZGlyID0gbmV3IFZlY3RvcjMoKSxcbiAgICAgIGRpc3RhbmNlO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uKHBvcywgY2FtZXJhLCBjYW52YXMpIHtcbiAgICAgIHZlY3Rvci5zZXQoXG4gICAgICAgIChwb3MueCAvIGNhbnZhcy53aWR0aCkgKiAyIC0gMSxcbiAgICAgICAgLShwb3MueSAvIGNhbnZhcy5oZWlnaHQpICogMiArIDEsXG4gICAgICAgIDAuNVxuICAgICAgKTtcbiAgICAgIHZlY3Rvci51bnByb2plY3QoY2FtZXJhKTtcblxuICAgICAgZGlyLmNvcHkodmVjdG9yLnN1YihjYW1lcmEucG9zaXRpb24pLm5vcm1hbGl6ZSgpKTtcbiAgICAgIGRpc3RhbmNlID0gLWNhbWVyYS5wb3NpdGlvbi56IC8gZGlyLno7XG4gICAgICB2ZWN0b3IuY29weShjYW1lcmEucG9zaXRpb24pO1xuICAgICAgdmVjdG9yLmFkZChkaXIubXVsdGlwbHlTY2FsYXIoZGlzdGFuY2UpKTtcblxuICAgICAgcmV0dXJuIHZlY3RvcjtcbiAgICB9O1xuICB9KSgpLFxufTtcbiJdfQ==
|