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.
Files changed (247) hide show
  1. package/.claude/rules/no-coauthor.md +4 -0
  2. package/CHANGELOG.md +33 -0
  3. package/dist/three-nebula.cjs +109 -0
  4. package/dist/three-nebula.cjs.map +1 -0
  5. package/dist/three-nebula.mjs +2968 -0
  6. package/dist/three-nebula.mjs.map +1 -0
  7. package/dist/three-nebula.umd.js +109 -0
  8. package/dist/three-nebula.umd.js.map +1 -0
  9. package/package.json +32 -56
  10. package/specs/01-emitter-hierarchy.md +200 -0
  11. package/specs/02-determinism-scrubbing.md +188 -0
  12. package/specs/03-sound-renderer.md +183 -0
  13. package/specs/04-schema-versioning.md +140 -0
  14. package/specs/05-content-addressed-assets.md +288 -0
  15. package/specs/README.md +80 -0
  16. package/build/cjs/behaviour/Alpha.js +0 -189
  17. package/build/cjs/behaviour/Attraction.js +0 -189
  18. package/build/cjs/behaviour/Behaviour.js +0 -253
  19. package/build/cjs/behaviour/Collision.js +0 -146
  20. package/build/cjs/behaviour/Color.js +0 -148
  21. package/build/cjs/behaviour/CrossZone.js +0 -141
  22. package/build/cjs/behaviour/Force.js +0 -126
  23. package/build/cjs/behaviour/Gravity.js +0 -78
  24. package/build/cjs/behaviour/RandomDrift.js +0 -153
  25. package/build/cjs/behaviour/Repulsion.js +0 -123
  26. package/build/cjs/behaviour/Rotate.js +0 -265
  27. package/build/cjs/behaviour/Scale.js +0 -177
  28. package/build/cjs/behaviour/Spring.js +0 -133
  29. package/build/cjs/behaviour/constants.js +0 -28
  30. package/build/cjs/behaviour/index.js +0 -112
  31. package/build/cjs/behaviour/types.js +0 -33
  32. package/build/cjs/constants/index.js +0 -61
  33. package/build/cjs/core/Particle.js +0 -390
  34. package/build/cjs/core/Pool.js +0 -203
  35. package/build/cjs/core/System.js +0 -366
  36. package/build/cjs/core/constants.js +0 -163
  37. package/build/cjs/core/fromJSON.js +0 -128
  38. package/build/cjs/core/fromJSONAsync.js +0 -239
  39. package/build/cjs/core/index.js +0 -32
  40. package/build/cjs/core/three/Euler.js +0 -233
  41. package/build/cjs/core/three/Math.js +0 -91
  42. package/build/cjs/core/three/Matrix4.js +0 -745
  43. package/build/cjs/core/three/Quaternion.js +0 -451
  44. package/build/cjs/core/three/Vector3.js +0 -464
  45. package/build/cjs/core/three/constants.js +0 -298
  46. package/build/cjs/core/three/index.js +0 -48
  47. package/build/cjs/core/types.js +0 -13
  48. package/build/cjs/debug/Debug.js +0 -209
  49. package/build/cjs/debug/constants.js +0 -19
  50. package/build/cjs/debug/index.js +0 -24
  51. package/build/cjs/debug/log.js +0 -38
  52. package/build/cjs/ease/index.js +0 -149
  53. package/build/cjs/emitter/Emitter.js +0 -791
  54. package/build/cjs/emitter/FollowEmitter.js +0 -146
  55. package/build/cjs/emitter/constants.js +0 -20
  56. package/build/cjs/emitter/index.js +0 -24
  57. package/build/cjs/emitter/types.js +0 -11
  58. package/build/cjs/events/EventDispatcher.js +0 -105
  59. package/build/cjs/events/constants.js +0 -23
  60. package/build/cjs/events/index.js +0 -27
  61. package/build/cjs/index.js +0 -151
  62. package/build/cjs/initializer/Body.js +0 -122
  63. package/build/cjs/initializer/BodySprite.js +0 -146
  64. package/build/cjs/initializer/Initializer.js +0 -109
  65. package/build/cjs/initializer/InitializerUtil.js +0 -54
  66. package/build/cjs/initializer/Life.js +0 -106
  67. package/build/cjs/initializer/Mass.js +0 -101
  68. package/build/cjs/initializer/Position.js +0 -152
  69. package/build/cjs/initializer/Radius.js +0 -118
  70. package/build/cjs/initializer/Rate.js +0 -150
  71. package/build/cjs/initializer/Texture.js +0 -139
  72. package/build/cjs/initializer/Velocity/PolarVelocity.js +0 -102
  73. package/build/cjs/initializer/Velocity/RadialVelocity.js +0 -111
  74. package/build/cjs/initializer/Velocity/VectorVelocity.js +0 -108
  75. package/build/cjs/initializer/Velocity/Velocity.js +0 -94
  76. package/build/cjs/initializer/Velocity/index.js +0 -32
  77. package/build/cjs/initializer/constants.js +0 -43
  78. package/build/cjs/initializer/index.js +0 -100
  79. package/build/cjs/initializer/types.js +0 -35
  80. package/build/cjs/math/ArraySpan.js +0 -103
  81. package/build/cjs/math/Box.js +0 -46
  82. package/build/cjs/math/ColorSpan.js +0 -113
  83. package/build/cjs/math/MathUtils.js +0 -57
  84. package/build/cjs/math/Polar3D.js +0 -115
  85. package/build/cjs/math/Span.js +0 -88
  86. package/build/cjs/math/Vector3D.js +0 -76
  87. package/build/cjs/math/constants.js +0 -35
  88. package/build/cjs/math/index.js +0 -122
  89. package/build/cjs/math/integration.js +0 -59
  90. package/build/cjs/math/types.js +0 -19
  91. package/build/cjs/renderer/BaseRenderer.js +0 -108
  92. package/build/cjs/renderer/CustomRenderer.js +0 -65
  93. package/build/cjs/renderer/GPURenderer/Desktop/index.js +0 -350
  94. package/build/cjs/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +0 -13
  95. package/build/cjs/renderer/GPURenderer/Desktop/shaders/index.js +0 -22
  96. package/build/cjs/renderer/GPURenderer/Desktop/shaders/vertexShader.js +0 -17
  97. package/build/cjs/renderer/GPURenderer/Mobile/index.js +0 -364
  98. package/build/cjs/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +0 -13
  99. package/build/cjs/renderer/GPURenderer/Mobile/shaders/index.js +0 -22
  100. package/build/cjs/renderer/GPURenderer/Mobile/shaders/vertexShader.js +0 -15
  101. package/build/cjs/renderer/GPURenderer/common/ParticleBuffer/constants.js +0 -53
  102. package/build/cjs/renderer/GPURenderer/common/ParticleBuffer/index.js +0 -93
  103. package/build/cjs/renderer/GPURenderer/common/TextureAtlas/constants.js +0 -9
  104. package/build/cjs/renderer/GPURenderer/common/TextureAtlas/index.js +0 -221
  105. package/build/cjs/renderer/GPURenderer/common/constants.js +0 -22
  106. package/build/cjs/renderer/GPURenderer/common/index.js +0 -38
  107. package/build/cjs/renderer/GPURenderer/common/shaders/constants.js +0 -9
  108. package/build/cjs/renderer/GPURenderer/common/stores/Target.js +0 -43
  109. package/build/cjs/renderer/GPURenderer/common/stores/UniqueList.js +0 -51
  110. package/build/cjs/renderer/GPURenderer/common/stores/index.js +0 -22
  111. package/build/cjs/renderer/GPURenderer/index.js +0 -97
  112. package/build/cjs/renderer/MeshRenderer.js +0 -136
  113. package/build/cjs/renderer/SpriteRenderer.js +0 -63
  114. package/build/cjs/renderer/index.js +0 -40
  115. package/build/cjs/renderer/types.js +0 -21
  116. package/build/cjs/utils/ColorUtil.js +0 -39
  117. package/build/cjs/utils/PUID.js +0 -26
  118. package/build/cjs/utils/THREEUtil.js +0 -40
  119. package/build/cjs/utils/Util.js +0 -69
  120. package/build/cjs/utils/index.js +0 -61
  121. package/build/cjs/utils/uid.js +0 -14
  122. package/build/cjs/zone/BoxZone.js +0 -178
  123. package/build/cjs/zone/LineZone.js +0 -101
  124. package/build/cjs/zone/MeshZone.js +0 -101
  125. package/build/cjs/zone/PointZone.js +0 -99
  126. package/build/cjs/zone/ScreenZone.js +0 -164
  127. package/build/cjs/zone/SphereZone.js +0 -155
  128. package/build/cjs/zone/Zone.js +0 -172
  129. package/build/cjs/zone/index.js +0 -56
  130. package/build/cjs/zone/types.js +0 -21
  131. package/build/esm/behaviour/Alpha.js +0 -134
  132. package/build/esm/behaviour/Attraction.js +0 -135
  133. package/build/esm/behaviour/Behaviour.js +0 -215
  134. package/build/esm/behaviour/Collision.js +0 -100
  135. package/build/esm/behaviour/Color.js +0 -101
  136. package/build/esm/behaviour/CrossZone.js +0 -82
  137. package/build/esm/behaviour/Force.js +0 -83
  138. package/build/esm/behaviour/Gravity.js +0 -40
  139. package/build/esm/behaviour/RandomDrift.js +0 -97
  140. package/build/esm/behaviour/Repulsion.js +0 -81
  141. package/build/esm/behaviour/Rotate.js +0 -214
  142. package/build/esm/behaviour/Scale.js +0 -131
  143. package/build/esm/behaviour/Spring.js +0 -90
  144. package/build/esm/behaviour/constants.js +0 -11
  145. package/build/esm/behaviour/index.js +0 -14
  146. package/build/esm/behaviour/types.js +0 -14
  147. package/build/esm/constants/index.js +0 -42
  148. package/build/esm/core/Particle.js +0 -357
  149. package/build/esm/core/Pool.js +0 -161
  150. package/build/esm/core/System.js +0 -320
  151. package/build/esm/core/constants.js +0 -127
  152. package/build/esm/core/fromJSON.js +0 -107
  153. package/build/esm/core/fromJSONAsync.js +0 -210
  154. package/build/esm/core/index.js +0 -4
  155. package/build/esm/core/three/Euler.js +0 -224
  156. package/build/esm/core/three/Math.js +0 -84
  157. package/build/esm/core/three/Matrix4.js +0 -739
  158. package/build/esm/core/three/Quaternion.js +0 -445
  159. package/build/esm/core/three/Vector3.js +0 -457
  160. package/build/esm/core/three/constants.js +0 -148
  161. package/build/esm/core/three/index.js +0 -5
  162. package/build/esm/core/types.js +0 -4
  163. package/build/esm/debug/Debug.js +0 -195
  164. package/build/esm/debug/constants.js +0 -7
  165. package/build/esm/debug/index.js +0 -3
  166. package/build/esm/debug/log.js +0 -31
  167. package/build/esm/ease/index.js +0 -113
  168. package/build/esm/emitter/Emitter.js +0 -701
  169. package/build/esm/emitter/FollowEmitter.js +0 -97
  170. package/build/esm/emitter/constants.js +0 -7
  171. package/build/esm/emitter/index.js +0 -3
  172. package/build/esm/emitter/types.js +0 -3
  173. package/build/esm/events/EventDispatcher.js +0 -82
  174. package/build/esm/events/constants.js +0 -9
  175. package/build/esm/events/index.js +0 -4
  176. package/build/esm/index.js +0 -13
  177. package/build/esm/initializer/Body.js +0 -83
  178. package/build/esm/initializer/BodySprite.js +0 -108
  179. package/build/esm/initializer/Initializer.js +0 -84
  180. package/build/esm/initializer/InitializerUtil.js +0 -48
  181. package/build/esm/initializer/Life.js +0 -66
  182. package/build/esm/initializer/Mass.js +0 -60
  183. package/build/esm/initializer/Position.js +0 -98
  184. package/build/esm/initializer/Radius.js +0 -75
  185. package/build/esm/initializer/Rate.js +0 -107
  186. package/build/esm/initializer/Texture.js +0 -101
  187. package/build/esm/initializer/Velocity/PolarVelocity.js +0 -63
  188. package/build/esm/initializer/Velocity/RadialVelocity.js +0 -72
  189. package/build/esm/initializer/Velocity/VectorVelocity.js +0 -69
  190. package/build/esm/initializer/Velocity/Velocity.js +0 -52
  191. package/build/esm/initializer/Velocity/index.js +0 -4
  192. package/build/esm/initializer/constants.js +0 -26
  193. package/build/esm/initializer/index.js +0 -11
  194. package/build/esm/initializer/types.js +0 -15
  195. package/build/esm/math/ArraySpan.js +0 -62
  196. package/build/esm/math/Box.js +0 -25
  197. package/build/esm/math/ColorSpan.js +0 -71
  198. package/build/esm/math/MathUtils.js +0 -48
  199. package/build/esm/math/Polar3D.js +0 -81
  200. package/build/esm/math/Span.js +0 -63
  201. package/build/esm/math/Vector3D.js +0 -34
  202. package/build/esm/math/constants.js +0 -24
  203. package/build/esm/math/index.js +0 -10
  204. package/build/esm/math/integration.js +0 -47
  205. package/build/esm/math/types.js +0 -7
  206. package/build/esm/renderer/BaseRenderer.js +0 -78
  207. package/build/esm/renderer/CustomRenderer.js +0 -23
  208. package/build/esm/renderer/GPURenderer/Desktop/index.js +0 -331
  209. package/build/esm/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +0 -23
  210. package/build/esm/renderer/GPURenderer/Desktop/shaders/index.js +0 -3
  211. package/build/esm/renderer/GPURenderer/Desktop/shaders/vertexShader.js +0 -33
  212. package/build/esm/renderer/GPURenderer/Mobile/index.js +0 -349
  213. package/build/esm/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +0 -20
  214. package/build/esm/renderer/GPURenderer/Mobile/shaders/index.js +0 -3
  215. package/build/esm/renderer/GPURenderer/Mobile/shaders/vertexShader.js +0 -30
  216. package/build/esm/renderer/GPURenderer/common/ParticleBuffer/constants.js +0 -27
  217. package/build/esm/renderer/GPURenderer/common/ParticleBuffer/index.js +0 -70
  218. package/build/esm/renderer/GPURenderer/common/TextureAtlas/constants.js +0 -2
  219. package/build/esm/renderer/GPURenderer/common/TextureAtlas/index.js +0 -206
  220. package/build/esm/renderer/GPURenderer/common/constants.js +0 -13
  221. package/build/esm/renderer/GPURenderer/common/index.js +0 -4
  222. package/build/esm/renderer/GPURenderer/common/shaders/constants.js +0 -2
  223. package/build/esm/renderer/GPURenderer/common/stores/Target.js +0 -24
  224. package/build/esm/renderer/GPURenderer/common/stores/UniqueList.js +0 -29
  225. package/build/esm/renderer/GPURenderer/common/stores/index.js +0 -3
  226. package/build/esm/renderer/GPURenderer/index.js +0 -57
  227. package/build/esm/renderer/MeshRenderer.js +0 -94
  228. package/build/esm/renderer/SpriteRenderer.js +0 -26
  229. package/build/esm/renderer/index.js +0 -5
  230. package/build/esm/renderer/types.js +0 -8
  231. package/build/esm/utils/ColorUtil.js +0 -32
  232. package/build/esm/utils/PUID.js +0 -19
  233. package/build/esm/utils/THREEUtil.js +0 -31
  234. package/build/esm/utils/Util.js +0 -60
  235. package/build/esm/utils/index.js +0 -13
  236. package/build/esm/utils/uid.js +0 -3
  237. package/build/esm/zone/BoxZone.js +0 -133
  238. package/build/esm/zone/LineZone.js +0 -61
  239. package/build/esm/zone/MeshZone.js +0 -60
  240. package/build/esm/zone/PointZone.js +0 -59
  241. package/build/esm/zone/ScreenZone.js +0 -116
  242. package/build/esm/zone/SphereZone.js +0 -113
  243. package/build/esm/zone/Zone.js +0 -141
  244. package/build/esm/zone/index.js +0 -7
  245. package/build/esm/zone/types.js +0 -8
  246. package/build/three-nebula.js +0 -2
  247. package/build/three-nebula.js.map +0 -1
@@ -1,178 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _MathUtils = _interopRequireDefault(require("../math/MathUtils"));
21
-
22
- var _Util = _interopRequireDefault(require("../utils/Util"));
23
-
24
- var _Zone2 = _interopRequireDefault(require("./Zone"));
25
-
26
- var _types = require("./types");
27
-
28
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
29
-
30
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
31
-
32
- var BoxZone = /*#__PURE__*/function (_Zone) {
33
- (0, _inherits2["default"])(BoxZone, _Zone);
34
-
35
- var _super = _createSuper(BoxZone);
36
-
37
- /**
38
- * BoxZone is a box zone
39
- * @param {Number|Vector3D} x - the position's x value or a Vector3D Object
40
- * @param {Number} y - the position's y value
41
- * @param {Number} z - the position's z value
42
- * @param {Number} w - the Box's width
43
- * @param {Number} h - the Box's height
44
- * @param {Number} d - the Box's depth
45
- * @example
46
- * var boxZone = new BoxZone(0,0,0,50,50,50);
47
- * or
48
- * var boxZone = new BoxZone(new Vector3D(0,0,0), 50, 50, 50);
49
- * @extends {Zone}
50
- * @constructor
51
- */
52
- function BoxZone(a, b, c, d, e, f) {
53
- var _this;
54
-
55
- (0, _classCallCheck2["default"])(this, BoxZone);
56
- _this = _super.call(this, _types.ZONE_TYPE_BOX); // TODO this reassigning of arguments is pretty dangerous, need to fix it.
57
- // eslint-disable-next-line
58
-
59
- var x, y, z, w, h, d;
60
-
61
- if (_Util["default"].isUndefined(b, c, d, e, f)) {
62
- x = y = z = 0;
63
- w = h = d = a || 100;
64
- } else if (_Util["default"].isUndefined(d, e, f)) {
65
- x = y = z = 0;
66
- w = a;
67
- h = b;
68
- d = c;
69
- } else {
70
- x = a;
71
- y = b;
72
- z = c;
73
- w = d;
74
- h = e;
75
- d = f;
76
- }
77
-
78
- _this.x = x;
79
- _this.y = y;
80
- _this.z = z;
81
- _this.width = w;
82
- _this.height = h;
83
- _this.depth = d; // TODO Set this via an argument to the constructor
84
-
85
- _this.friction = 0.85; // TODO Set this via an argument to the constructor
86
-
87
- _this.max = 6;
88
- return _this;
89
- }
90
- /**
91
- * Returns true to indicate this is a BoxZone.
92
- *
93
- * @return {boolean}
94
- */
95
-
96
-
97
- (0, _createClass2["default"])(BoxZone, [{
98
- key: "isBoxZone",
99
- value: function isBoxZone() {
100
- return true;
101
- }
102
- }, {
103
- key: "getPosition",
104
- value: function getPosition() {
105
- this.vector.x = this.x + _MathUtils["default"].randomAToB(-0.5, 0.5) * this.width;
106
- this.vector.y = this.y + _MathUtils["default"].randomAToB(-0.5, 0.5) * this.height;
107
- this.vector.z = this.z + _MathUtils["default"].randomAToB(-0.5, 0.5) * this.depth;
108
- return this.vector;
109
- }
110
- }, {
111
- key: "_dead",
112
- value: function _dead(particle) {
113
- if (particle.position.x + particle.radius < this.x - this.width / 2) particle.dead = true;else if (particle.position.x - particle.radius > this.x + this.width / 2) particle.dead = true;
114
- if (particle.position.y + particle.radius < this.y - this.height / 2) particle.dead = true;else if (particle.position.y - particle.radius > this.y + this.height / 2) particle.dead = true;
115
- if (particle.position.z + particle.radius < this.z - this.depth / 2) particle.dead = true;else if (particle.position.z - particle.radius > this.z + this.depth / 2) particle.dead = true;
116
- }
117
- }, {
118
- key: "_bound",
119
- value: function _bound(particle) {
120
- if (particle.position.x - particle.radius < this.x - this.width / 2) {
121
- particle.position.x = this.x - this.width / 2 + particle.radius;
122
- particle.velocity.x *= -this.friction;
123
-
124
- this._static(particle, 'x');
125
- } else if (particle.position.x + particle.radius > this.x + this.width / 2) {
126
- particle.position.x = this.x + this.width / 2 - particle.radius;
127
- particle.velocity.x *= -this.friction;
128
-
129
- this._static(particle, 'x');
130
- }
131
-
132
- if (particle.position.y - particle.radius < this.y - this.height / 2) {
133
- particle.position.y = this.y - this.height / 2 + particle.radius;
134
- particle.velocity.y *= -this.friction;
135
-
136
- this._static(particle, 'y');
137
- } else if (particle.position.y + particle.radius > this.y + this.height / 2) {
138
- particle.position.y = this.y + this.height / 2 - particle.radius;
139
- particle.velocity.y *= -this.friction;
140
-
141
- this._static(particle, 'y');
142
- }
143
-
144
- if (particle.position.z - particle.radius < this.z - this.depth / 2) {
145
- particle.position.z = this.z - this.depth / 2 + particle.radius;
146
- particle.velocity.z *= -this.friction;
147
-
148
- this._static(particle, 'z');
149
- } else if (particle.position.z + particle.radius > this.z + this.depth / 2) {
150
- particle.position.z = this.z + this.depth / 2 - particle.radius;
151
- particle.velocity.z *= -this.friction;
152
-
153
- this._static(particle, 'z');
154
- }
155
- }
156
- }, {
157
- key: "_static",
158
- value: function _static(particle, axis) {
159
- if (particle.velocity[axis] * particle.acceleration[axis] > 0) return;
160
-
161
- if (Math.abs(particle.velocity[axis]) < Math.abs(particle.acceleration[axis]) * 0.0167 * this.max) {
162
- particle.velocity[axis] = 0;
163
- particle.acceleration[axis] = 0;
164
- }
165
- }
166
- }, {
167
- key: "_cross",
168
- value: function _cross(particle) {
169
- if (particle.position.x + particle.radius < this.x - this.width / 2 && particle.velocity.x <= 0) particle.position.x = this.x + this.width / 2 + particle.radius;else if (particle.position.x - particle.radius > this.x + this.width / 2 && particle.velocity.x >= 0) particle.position.x = this.x - this.width / 2 - particle.radius;
170
- if (particle.position.y + particle.radius < this.y - this.height / 2 && particle.velocity.y <= 0) particle.position.y = this.y + this.height / 2 + particle.radius;else if (particle.position.y - particle.radius > this.y + this.height / 2 && particle.velocity.y >= 0) particle.position.y = this.y - this.height / 2 - particle.radius;
171
- if (particle.position.z + particle.radius < this.z - this.depth / 2 && particle.velocity.z <= 0) particle.position.z = this.z + this.depth / 2 + particle.radius;else if (particle.position.z - particle.radius > this.z + this.depth / 2 && particle.velocity.z >= 0) particle.position.z = this.z - this.depth / 2 - particle.radius;
172
- }
173
- }]);
174
- return BoxZone;
175
- }(_Zone2["default"]);
176
-
177
- exports["default"] = BoxZone;
178
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL0JveFpvbmUuanMiXSwibmFtZXMiOlsiQm94Wm9uZSIsImEiLCJiIiwiYyIsImQiLCJlIiwiZiIsInR5cGUiLCJ4IiwieSIsInoiLCJ3IiwiaCIsIlV0aWwiLCJpc1VuZGVmaW5lZCIsIndpZHRoIiwiaGVpZ2h0IiwiZGVwdGgiLCJmcmljdGlvbiIsIm1heCIsInZlY3RvciIsIk1hdGhVdGlscyIsInJhbmRvbUFUb0IiLCJwYXJ0aWNsZSIsInBvc2l0aW9uIiwicmFkaXVzIiwiZGVhZCIsInZlbG9jaXR5IiwiX3N0YXRpYyIsImF4aXMiLCJhY2NlbGVyYXRpb24iLCJNYXRoIiwiYWJzIiwiWm9uZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7SUFFcUJBLE87Ozs7O0FBQ25CO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFLG1CQUFZQyxDQUFaLEVBQWVDLENBQWYsRUFBa0JDLENBQWxCLEVBQXFCQyxDQUFyQixFQUF3QkMsQ0FBeEIsRUFBMkJDLENBQTNCLEVBQThCO0FBQUE7O0FBQUE7QUFDNUIsOEJBQU1DLG9CQUFOLEVBRDRCLENBRzVCO0FBQ0E7O0FBQ0EsUUFBSUMsQ0FBSixFQUFPQyxDQUFQLEVBQVVDLENBQVYsRUFBYUMsQ0FBYixFQUFnQkMsQ0FBaEIsRUFBbUJSLENBQW5COztBQUVBLFFBQUlTLGlCQUFLQyxXQUFMLENBQWlCWixDQUFqQixFQUFvQkMsQ0FBcEIsRUFBdUJDLENBQXZCLEVBQTBCQyxDQUExQixFQUE2QkMsQ0FBN0IsQ0FBSixFQUFxQztBQUNuQ0UsTUFBQUEsQ0FBQyxHQUFHQyxDQUFDLEdBQUdDLENBQUMsR0FBRyxDQUFaO0FBQ0FDLE1BQUFBLENBQUMsR0FBR0MsQ0FBQyxHQUFHUixDQUFDLEdBQUdILENBQUMsSUFBSSxHQUFqQjtBQUNELEtB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QUFRLENBQUNDLFFBQVQsQ0FBa0JmLENBQWxCLEdBQXNCLEtBQUtBLENBQUwsR0FBUyxLQUFLTyxNQUFMLEdBQWMsQ0FBdkIsR0FBMkJPLFFBQVEsQ0FBQ0UsTUFBMUQ7QUFFRixVQUNFRixRQUFRLENBQUNDLFFBQVQsQ0FBa0JkLENBQWxCLEdBQXNCYSxRQUFRLENBQUNFLE1BQS9CLEdBQXdDLEtBQUtmLENBQUwsR0FBUyxLQUFLTyxLQUFMLEdBQWEsQ0FBOUQsSUFDQU0sUUFBUSxDQUFDSSxRQUFULENBQWtCakIsQ0FBbEIsSUFBdUIsQ0FGekIsRUFJRWEsUUFBUSxDQUFDQyxRQUFULENBQWtCZCxDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS08sS0FBTCxHQUFhLENBQXRCLEdBQTBCTSxRQUFRLENBQUNFLE1BQXpELENBSkYsS0FLSyxJQUNIRixRQUFRLENBQUNDLFFBQVQsQ0FBa0JkLENBQWxCLEdBQXNCYSxRQUFRLENBQUNFLE1BQS9CLEdBQXdDLEtBQUtmLENBQUwsR0FBUyxLQUFLTyxLQUFMLEdBQWEsQ0FBOUQsSUFDQU0sUUFBUSxDQUFDSSxRQUFULENBQWtCakIsQ0FBbEIsSUFBdUIsQ0FGcEIsRUFJSGEsUUFBUSxDQUFDQyxRQUFULENBQWtCZCxDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS08sS0FBTCxHQUFhLENBQXRCLEdBQTBCTSxRQUFRLENBQUNFLE1BQXpEO0FBQ0g7OztFQWxLa0NRLGlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hdGhVdGlscyBmcm9tICcuLi9tYXRoL01hdGhVdGlscyc7XG5pbXBvcnQgVXRpbCBmcm9tICcuLi91dGlscy9VdGlsJztcbmltcG9ydCBab25lIGZyb20gJy4vWm9uZSc7XG5pbXBvcnQgeyBaT05FX1RZUEVfQk9YIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQm94Wm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogQm94Wm9uZSBpcyBhIGJveCB6b25lXG4gICAqIEBwYXJhbSB7TnVtYmVyfFZlY3RvcjNEfSB4IC0gdGhlIHBvc2l0aW9uJ3MgeCB2YWx1ZSBvciBhIFZlY3RvcjNEIE9iamVjdFxuICAgKiBAcGFyYW0ge051bWJlcn0geSAtIHRoZSBwb3NpdGlvbidzIHkgdmFsdWVcbiAgICogQHBhcmFtIHtOdW1iZXJ9IHogLSB0aGUgcG9zaXRpb24ncyB6IHZhbHVlXG4gICAqIEBwYXJhbSB7TnVtYmVyfSB3IC0gdGhlIEJveCdzIHdpZHRoXG4gICAqIEBwYXJhbSB7TnVtYmVyfSBoIC0gdGhlIEJveCdzIGhlaWdodFxuICAgKiBAcGFyYW0ge051bWJlcn0gZCAtIHRoZSBCb3gncyBkZXB0aFxuICAgKiBAZXhhbXBsZVxuICAgKiB2YXIgYm94Wm9uZSA9IG5ldyBCb3hab25lKDAsMCwwLDUwLDUwLDUwKTtcbiAgICogb3JcbiAgICogdmFyIGJveFpvbmUgPSBuZXcgQm94Wm9uZShuZXcgVmVjdG9yM0QoMCwwLDApLCA1MCwgNTAsIDUwKTtcbiAgICogQGV4dGVuZHMge1pvbmV9XG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKi9cbiAgY29uc3RydWN0b3IoYSwgYiwgYywgZCwgZSwgZikge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgLy8gVE9ETyB0aGlzIHJlYXNzaWduaW5nIG9mIGFyZ3VtZW50cyBpcyBwcmV0dHkgZGFuZ2Vyb3VzLCBuZWVkIHRvIGZpeCBpdC5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICB2YXIgeCwgeSwgeiwgdywgaCwgZDtcblxuICAgIGlmIChVdGlsLmlzVW5kZWZpbmVkKGIsIGMsIGQsIGUsIGYpKSB7XG4gICAgICB4ID0geSA9IHogPSAwO1xuICAgICAgdyA9IGggPSBkID0gYSB8fCAxMDA7XG4gICAgfSBlbHNlIGlmIChVdGlsLmlzVW5kZWZpbmVkKGQsIGUsIGYpKSB7XG4gICAgICB4ID0geSA9IHogPSAwO1xuICAgICAgdyA9IGE7XG4gICAgICBoID0gYjtcbiAgICAgIGQgPSBjO1xuICAgIH0gZWxzZSB7XG4gICAgICB4ID0gYTtcbiAgICAgIHkgPSBiO1xuICAgICAgeiA9IGM7XG4gICAgICB3ID0gZDtcbiAgICAgIGggPSBlO1xuICAgICAgZCA9IGY7XG4gICAgfVxuXG4gICAgdGhpcy54ID0geDtcbiAgICB0aGlzLnkgPSB5O1xuICAgIHRoaXMueiA9IHo7XG4gICAgdGhpcy53aWR0aCA9IHc7XG4gICAgdGhpcy5oZWlnaHQgPSBoO1xuICAgIHRoaXMuZGVwdGggPSBkO1xuICAgIC8vIFRPRE8gU2V0IHRoaXMgdmlhIGFuIGFyZ3VtZW50IHRvIHRoZSBjb25zdHJ1Y3RvclxuICAgIHRoaXMuZnJpY3Rpb24gPSAwLjg1O1xuICAgIC8vIFRPRE8gU2V0IHRoaXMgdmlhIGFuIGFyZ3VtZW50IHRvIHRoZSBjb25zdHJ1Y3RvclxuICAgIHRoaXMubWF4ID0gNjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgdG8gaW5kaWNhdGUgdGhpcyBpcyBhIEJveFpvbmUuXG4gICAqXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBpc0JveFpvbmUoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXRQb3NpdGlvbigpIHtcbiAgICB0aGlzLnZlY3Rvci54ID0gdGhpcy54ICsgTWF0aFV0aWxzLnJhbmRvbUFUb0IoLTAuNSwgMC41KSAqIHRoaXMud2lkdGg7XG4gICAgdGhpcy52ZWN0b3IueSA9IHRoaXMueSArIE1hdGhVdGlscy5yYW5kb21BVG9CKC0wLjUsIDAuNSkgKiB0aGlzLmhlaWdodDtcbiAgICB0aGlzLnZlY3Rvci56ID0gdGhpcy56ICsgTWF0aFV0aWxzLnJhbmRvbUFUb0IoLTAuNSwgMC41KSAqIHRoaXMuZGVwdGg7XG5cbiAgICByZXR1cm4gdGhpcy52ZWN0b3I7XG4gIH1cblxuICBfZGVhZChwYXJ0aWNsZSkge1xuICAgIGlmIChwYXJ0aWNsZS5wb3NpdGlvbi54ICsgcGFydGljbGUucmFkaXVzIDwgdGhpcy54IC0gdGhpcy53aWR0aCAvIDIpXG4gICAgICBwYXJ0aWNsZS5kZWFkID0gdHJ1ZTtcbiAgICBlbHNlIGlmIChwYXJ0aWNsZS5wb3NpdGlvbi54IC0gcGFydGljbGUucmFkaXVzID4gdGhpcy54ICsgdGhpcy53aWR0aCAvIDIpXG4gICAgICBwYXJ0aWNsZS5kZWFkID0gdHJ1ZTtcblxuICAgIGlmIChwYXJ0aWNsZS5wb3NpdGlvbi55ICsgcGFydGljbGUucmFkaXVzIDwgdGhpcy55IC0gdGhpcy5oZWlnaHQgLyAyKVxuICAgICAgcGFydGljbGUuZGVhZCA9IHRydWU7XG4gICAgZWxzZSBpZiAocGFydGljbGUucG9zaXRpb24ueSAtIHBhcnRpY2xlLnJhZGl1cyA+IHRoaXMueSArIHRoaXMuaGVpZ2h0IC8gMilcbiAgICAgIHBhcnRpY2xlLmRlYWQgPSB0cnVlO1xuXG4gICAgaWYgKHBhcnRpY2xlLnBvc2l0aW9uLnogKyBwYXJ0aWNsZS5yYWRpdXMgPCB0aGlzLnogLSB0aGlzLmRlcHRoIC8gMilcbiAgICAgIHBhcnRpY2xlLmRlYWQgPSB0cnVlO1xuICAgIGVsc2UgaWYgKHBhcnRpY2xlLnBvc2l0aW9uLnogLSBwYXJ0aWNsZS5yYWRpdXMgPiB0aGlzLnogKyB0aGlzLmRlcHRoIC8gMilcbiAgICAgIHBhcnRpY2xlLmRlYWQgPSB0cnVlO1xuICB9XG5cbiAgX2JvdW5kKHBhcnRpY2xlKSB7XG4gICAgaWYgKHBhcnRpY2xlLnBvc2l0aW9uLnggLSBwYXJ0aWNsZS5yYWRpdXMgPCB0aGlzLnggLSB0aGlzLndpZHRoIC8gMikge1xuICAgICAgcGFydGljbGUucG9zaXRpb24ueCA9IHRoaXMueCAtIHRoaXMud2lkdGggLyAyICsgcGFydGljbGUucmFkaXVzO1xuICAgICAgcGFydGljbGUudmVsb2NpdHkueCAqPSAtdGhpcy5mcmljdGlvbjtcbiAgICAgIHRoaXMuX3N0YXRpYyhwYXJ0aWNsZSwgJ3gnKTtcbiAgICB9IGVsc2UgaWYgKHBhcnRpY2xlLnBvc2l0aW9uLnggKyBwYXJ0aWNsZS5yYWRpdXMgPiB0aGlzLnggKyB0aGlzLndpZHRoIC8gMikge1xuICAgICAgcGFydGljbGUucG9zaXRpb24ueCA9IHRoaXMueCArIHRoaXMud2lkdGggLyAyIC0gcGFydGljbGUucmFkaXVzO1xuICAgICAgcGFydGljbGUudmVsb2NpdHkueCAqPSAtdGhpcy5mcmljdGlvbjtcbiAgICAgIHRoaXMuX3N0YXRpYyhwYXJ0aWNsZSwgJ3gnKTtcbiAgICB9XG5cbiAgICBpZiAocGFydGljbGUucG9zaXRpb24ueSAtIHBhcnRpY2xlLnJhZGl1cyA8IHRoaXMueSAtIHRoaXMuaGVpZ2h0IC8gMikge1xuICAgICAgcGFydGljbGUucG9zaXRpb24ueSA9IHRoaXMueSAtIHRoaXMuaGVpZ2h0IC8gMiArIHBhcnRpY2xlLnJhZGl1cztcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnkgKj0gLXRoaXMuZnJpY3Rpb247XG4gICAgICB0aGlzLl9zdGF0aWMocGFydGljbGUsICd5Jyk7XG4gICAgfSBlbHNlIGlmIChwYXJ0aWNsZS5wb3NpdGlvbi55ICsgcGFydGljbGUucmFkaXVzID4gdGhpcy55ICsgdGhpcy5oZWlnaHQgLyAyKSB7XG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi55ID0gdGhpcy55ICsgdGhpcy5oZWlnaHQgLyAyIC0gcGFydGljbGUucmFkaXVzO1xuICAgICAgcGFydGljbGUudmVsb2NpdHkueSAqPSAtdGhpcy5mcmljdGlvbjtcbiAgICAgIHRoaXMuX3N0YXRpYyhwYXJ0aWNsZSwgJ3knKTtcbiAgICB9XG5cbiAgICBpZiAocGFydGljbGUucG9zaXRpb24ueiAtIHBhcnRpY2xlLnJhZGl1cyA8IHRoaXMueiAtIHRoaXMuZGVwdGggLyAyKSB7XG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi56ID0gdGhpcy56IC0gdGhpcy5kZXB0aCAvIDIgKyBwYXJ0aWNsZS5yYWRpdXM7XG4gICAgICBwYXJ0aWNsZS52ZWxvY2l0eS56ICo9IC10aGlzLmZyaWN0aW9uO1xuICAgICAgdGhpcy5fc3RhdGljKHBhcnRpY2xlLCAneicpO1xuICAgIH0gZWxzZSBpZiAocGFydGljbGUucG9zaXRpb24ueiArIHBhcnRpY2xlLnJhZGl1cyA+IHRoaXMueiArIHRoaXMuZGVwdGggLyAyKSB7XG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi56ID0gdGhpcy56ICsgdGhpcy5kZXB0aCAvIDIgLSBwYXJ0aWNsZS5yYWRpdXM7XG4gICAgICBwYXJ0aWNsZS52ZWxvY2l0eS56ICo9IC10aGlzLmZyaWN0aW9uO1xuICAgICAgdGhpcy5fc3RhdGljKHBhcnRpY2xlLCAneicpO1xuICAgIH1cbiAgfVxuXG4gIF9zdGF0aWMocGFydGljbGUsIGF4aXMpIHtcbiAgICBpZiAocGFydGljbGUudmVsb2NpdHlbYXhpc10gKiBwYXJ0aWNsZS5hY2NlbGVyYXRpb25bYXhpc10gPiAwKSByZXR1cm47XG4gICAgaWYgKFxuICAgICAgTWF0aC5hYnMocGFydGljbGUudmVsb2NpdHlbYXhpc10pIDxcbiAgICAgIE1hdGguYWJzKHBhcnRpY2xlLmFjY2VsZXJhdGlvbltheGlzXSkgKiAwLjAxNjcgKiB0aGlzLm1heFxuICAgICkge1xuICAgICAgcGFydGljbGUudmVsb2NpdHlbYXhpc10gPSAwO1xuICAgICAgcGFydGljbGUuYWNjZWxlcmF0aW9uW2F4aXNdID0gMDtcbiAgICB9XG4gIH1cblxuICBfY3Jvc3MocGFydGljbGUpIHtcbiAgICBpZiAoXG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi54ICsgcGFydGljbGUucmFkaXVzIDwgdGhpcy54IC0gdGhpcy53aWR0aCAvIDIgJiZcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnggPD0gMFxuICAgIClcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnggPSB0aGlzLnggKyB0aGlzLndpZHRoIC8gMiArIHBhcnRpY2xlLnJhZGl1cztcbiAgICBlbHNlIGlmIChcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnggLSBwYXJ0aWNsZS5yYWRpdXMgPiB0aGlzLnggKyB0aGlzLndpZHRoIC8gMiAmJlxuICAgICAgcGFydGljbGUudmVsb2NpdHkueCA+PSAwXG4gICAgKVxuICAgICAgcGFydGljbGUucG9zaXRpb24ueCA9IHRoaXMueCAtIHRoaXMud2lkdGggLyAyIC0gcGFydGljbGUucmFkaXVzO1xuXG4gICAgaWYgKFxuICAgICAgcGFydGljbGUucG9zaXRpb24ueSArIHBhcnRpY2xlLnJhZGl1cyA8IHRoaXMueSAtIHRoaXMuaGVpZ2h0IC8gMiAmJlxuICAgICAgcGFydGljbGUudmVsb2NpdHkueSA8PSAwXG4gICAgKVxuICAgICAgcGFydGljbGUucG9zaXRpb24ueSA9IHRoaXMueSArIHRoaXMuaGVpZ2h0IC8gMiArIHBhcnRpY2xlLnJhZGl1cztcbiAgICBlbHNlIGlmIChcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgLSBwYXJ0aWNsZS5yYWRpdXMgPiB0aGlzLnkgKyB0aGlzLmhlaWdodCAvIDIgJiZcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnkgPj0gMFxuICAgIClcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgPSB0aGlzLnkgLSB0aGlzLmhlaWdodCAvIDIgLSBwYXJ0aWNsZS5yYWRpdXM7XG5cbiAgICBpZiAoXG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi56ICsgcGFydGljbGUucmFkaXVzIDwgdGhpcy56IC0gdGhpcy5kZXB0aCAvIDIgJiZcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnogPD0gMFxuICAgIClcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnogPSB0aGlzLnogKyB0aGlzLmRlcHRoIC8gMiArIHBhcnRpY2xlLnJhZGl1cztcbiAgICBlbHNlIGlmIChcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnogLSBwYXJ0aWNsZS5yYWRpdXMgPiB0aGlzLnogKyB0aGlzLmRlcHRoIC8gMiAmJlxuICAgICAgcGFydGljbGUudmVsb2NpdHkueiA+PSAwXG4gICAgKVxuICAgICAgcGFydGljbGUucG9zaXRpb24ueiA9IHRoaXMueiAtIHRoaXMuZGVwdGggLyAyIC0gcGFydGljbGUucmFkaXVzO1xuICB9XG59XG4iXX0=
@@ -1,101 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _Vector3D = _interopRequireDefault(require("../math/Vector3D"));
21
-
22
- var _Zone2 = _interopRequireDefault(require("./Zone"));
23
-
24
- var _types = require("./types");
25
-
26
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
27
-
28
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
29
-
30
- var LineZone = /*#__PURE__*/function (_Zone) {
31
- (0, _inherits2["default"])(LineZone, _Zone);
32
-
33
- var _super = _createSuper(LineZone);
34
-
35
- /**
36
- * LineZone is a 3d line zone
37
- * @param {Number|Vector3D} x1 - the line's start point of x value or a Vector3D Object
38
- * @param {Number|Vector3D} y1 - the line's start point of y value or a Vector3D Object
39
- * @param {Number} z1 - the line's start point of z value
40
- * @param {Number} x2 - the line's end point of x value
41
- * @param {Number} y2 - the line's end point of y value
42
- * @param {Number} z2 - the line's end point of z value
43
- * @example
44
- * var lineZone = new System.LineZone(0,0,0,100,100,0);
45
- * or
46
- * var lineZone = new System.LineZone(new System.Vector3D(0,0,0),new System.Vector3D(100,100,0));
47
- * @extends {Zone}
48
- * @constructor
49
- */
50
- function LineZone(x1, y1, z1, x2, y2, z2) {
51
- var _this;
52
-
53
- (0, _classCallCheck2["default"])(this, LineZone);
54
- _this = _super.call(this, _types.ZONE_TYPE_LINE);
55
-
56
- if (x1 instanceof _Vector3D["default"]) {
57
- _this.x1 = x1.x;
58
- _this.y1 = x1.y;
59
- _this.z1 = x1.z;
60
- _this.x2 = x2.x;
61
- _this.y2 = x2.y;
62
- _this.z2 = x2.z;
63
- } else {
64
- _this.x1 = x1;
65
- _this.y1 = y1;
66
- _this.z1 = z1;
67
- _this.x2 = x2;
68
- _this.y2 = y2;
69
- _this.z2 = z2;
70
- }
71
-
72
- _this.supportsCrossing = false;
73
- return _this;
74
- }
75
- /**
76
- * Returns true to indicate this is a LineZone.
77
- *
78
- * @return {boolean}
79
- */
80
-
81
-
82
- (0, _createClass2["default"])(LineZone, [{
83
- key: "isLineZone",
84
- value: function isLineZone() {
85
- return true;
86
- }
87
- }, {
88
- key: "getPosition",
89
- value: function getPosition() {
90
- this.random = Math.random();
91
- this.vector.x = this.x1 + this.random * (this.x2 - this.x1);
92
- this.vector.y = this.y1 + this.random * (this.y2 - this.y1);
93
- this.vector.z = this.z1 + this.random * (this.z2 - this.z1);
94
- return this.vector;
95
- }
96
- }]);
97
- return LineZone;
98
- }(_Zone2["default"]);
99
-
100
- exports["default"] = LineZone;
101
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL0xpbmVab25lLmpzIl0sIm5hbWVzIjpbIkxpbmVab25lIiwieDEiLCJ5MSIsInoxIiwieDIiLCJ5MiIsInoyIiwidHlwZSIsIlZlY3RvcjNEIiwieCIsInkiLCJ6Iiwic3VwcG9ydHNDcm9zc2luZyIsInJhbmRvbSIsIk1hdGgiLCJ2ZWN0b3IiLCJab25lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7OztJQUVxQkEsUTs7Ozs7QUFDbkI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Usb0JBQVlDLEVBQVosRUFBZ0JDLEVBQWhCLEVBQW9CQyxFQUFwQixFQUF3QkMsRUFBeEIsRUFBNEJDLEVBQTVCLEVBQWdDQyxFQUFoQyxFQUFvQztBQUFBOztBQUFBO0FBQ2xDLDhCQUFNQyxxQkFBTjs7QUFFQSxRQUFJTixFQUFFLFlBQVlPLG9CQUFsQixFQUE0QjtBQUMxQixZQUFLUCxFQUFMLEdBQVVBLEVBQUUsQ0FBQ1EsQ0FBYjtBQUNBLFlBQUtQLEVBQUwsR0FBVUQsRUFBRSxDQUFDUyxDQUFiO0FBQ0EsWUFBS1AsRUFBTCxHQUFVRixFQUFFLENBQUNVLENBQWI7QUFFQSxZQUFLUCxFQUFMLEdBQVVBLEVBQUUsQ0FBQ0ssQ0FBYjtBQUNBLFlBQUtKLEVBQUwsR0FBVUQsRUFBRSxDQUFDTSxDQUFiO0FBQ0EsWUFBS0osRUFBTCxHQUFVRixFQUFFLENBQUNPLENBQWI7QUFDRCxLQVJELE1BUU87QUFDTCxZQUFLVixFQUFMLEdBQVVBLEVBQVY7QUFDQSxZQUFLQyxFQUFMLEdBQVVBLEVBQVY7QUFDQSxZQUFLQyxFQUFMLEdBQVVBLEVBQVY7QUFFQSxZQUFLQyxFQUFMLEdBQVVBLEVBQVY7QUFDQSxZQUFLQyxFQUFMLEdBQVVBLEVBQVY7QUFDQSxZQUFLQyxFQUFMLEdBQVVBLEVBQVY7QUFDRDs7QUFFRCxVQUFLTSxnQkFBTCxHQUF3QixLQUF4QjtBQXJCa0M7QUFzQm5DO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7Ozs7aUNBQ2U7QUFDWCxhQUFPLElBQVA7QUFDRDs7O2tDQUVhO0FBQ1osV0FBS0MsTUFBTCxHQUFjQyxJQUFJLENBQUNELE1BQUwsRUFBZDtBQUNBLFdBQUtFLE1BQUwsQ0FBWU4sQ0FBWixHQUFnQixLQUFLUixFQUFMLEdBQVUsS0FBS1ksTUFBTCxJQUFlLEtBQUtULEVBQUwsR0FBVSxLQUFLSCxFQUE5QixDQUExQjtBQUNBLFdBQUtjLE1BQUwsQ0FBWUwsQ0FBWixHQUFnQixLQUFLUixFQUFMLEdBQVUsS0FBS1csTUFBTCxJQUFlLEtBQUtSLEVBQUwsR0FBVSxLQUFLSCxFQUE5QixDQUExQjtBQUNBLFdBQUthLE1BQUwsQ0FBWUosQ0FBWixHQUFnQixLQUFLUixFQUFMLEdBQVUsS0FBS1UsTUFBTCxJQUFlLEtBQUtQLEVBQUwsR0FBVSxLQUFLSCxFQUE5QixDQUExQjtBQUVBLGFBQU8sS0FBS1ksTUFBWjtBQUNEOzs7RUF4RG1DQyxpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBWZWN0b3IzRCBmcm9tICcuLi9tYXRoL1ZlY3RvcjNEJztcbmltcG9ydCBab25lIGZyb20gJy4vWm9uZSc7XG5pbXBvcnQgeyBaT05FX1RZUEVfTElORSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExpbmVab25lIGV4dGVuZHMgWm9uZSB7XG4gIC8qKlxuICAgKiBMaW5lWm9uZSBpcyBhIDNkIGxpbmUgem9uZVxuICAgKiBAcGFyYW0ge051bWJlcnxWZWN0b3IzRH0geDEgLSB0aGUgbGluZSdzIHN0YXJ0IHBvaW50IG9mIHggdmFsdWUgb3IgYSBWZWN0b3IzRCBPYmplY3RcbiAgICogQHBhcmFtIHtOdW1iZXJ8VmVjdG9yM0R9IHkxIC0gdGhlIGxpbmUncyBzdGFydCBwb2ludCBvZiB5IHZhbHVlIG9yIGEgVmVjdG9yM0QgT2JqZWN0XG4gICAqIEBwYXJhbSB7TnVtYmVyfSB6MSAtIHRoZSBsaW5lJ3Mgc3RhcnQgcG9pbnQgb2YgeiB2YWx1ZVxuICAgKiBAcGFyYW0ge051bWJlcn0geDIgLSB0aGUgbGluZSdzIGVuZCBwb2ludCBvZiB4IHZhbHVlXG4gICAqIEBwYXJhbSB7TnVtYmVyfSB5MiAtIHRoZSBsaW5lJ3MgZW5kIHBvaW50IG9mIHkgdmFsdWVcbiAgICogQHBhcmFtIHtOdW1iZXJ9IHoyIC0gdGhlIGxpbmUncyBlbmQgcG9pbnQgb2YgeiB2YWx1ZVxuICAgKiBAZXhhbXBsZVxuICAgKiB2YXIgbGluZVpvbmUgPSBuZXcgU3lzdGVtLkxpbmVab25lKDAsMCwwLDEwMCwxMDAsMCk7XG4gICAqIG9yXG4gICAqIHZhciBsaW5lWm9uZSA9IG5ldyBTeXN0ZW0uTGluZVpvbmUobmV3IFN5c3RlbS5WZWN0b3IzRCgwLDAsMCksbmV3IFN5c3RlbS5WZWN0b3IzRCgxMDAsMTAwLDApKTtcbiAgICogQGV4dGVuZHMge1pvbmV9XG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKi9cbiAgY29uc3RydWN0b3IoeDEsIHkxLCB6MSwgeDIsIHkyLCB6Mikge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgaWYgKHgxIGluc3RhbmNlb2YgVmVjdG9yM0QpIHtcbiAgICAgIHRoaXMueDEgPSB4MS54O1xuICAgICAgdGhpcy55MSA9IHgxLnk7XG4gICAgICB0aGlzLnoxID0geDEuejtcblxuICAgICAgdGhpcy54MiA9IHgyLng7XG4gICAgICB0aGlzLnkyID0geDIueTtcbiAgICAgIHRoaXMuejIgPSB4Mi56O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLngxID0geDE7XG4gICAgICB0aGlzLnkxID0geTE7XG4gICAgICB0aGlzLnoxID0gejE7XG5cbiAgICAgIHRoaXMueDIgPSB4MjtcbiAgICAgIHRoaXMueTIgPSB5MjtcbiAgICAgIHRoaXMuejIgPSB6MjtcbiAgICB9XG5cbiAgICB0aGlzLnN1cHBvcnRzQ3Jvc3NpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgdG8gaW5kaWNhdGUgdGhpcyBpcyBhIExpbmVab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNMaW5lWm9uZSgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGdldFBvc2l0aW9uKCkge1xuICAgIHRoaXMucmFuZG9tID0gTWF0aC5yYW5kb20oKTtcbiAgICB0aGlzLnZlY3Rvci54ID0gdGhpcy54MSArIHRoaXMucmFuZG9tICogKHRoaXMueDIgLSB0aGlzLngxKTtcbiAgICB0aGlzLnZlY3Rvci55ID0gdGhpcy55MSArIHRoaXMucmFuZG9tICogKHRoaXMueTIgLSB0aGlzLnkxKTtcbiAgICB0aGlzLnZlY3Rvci56ID0gdGhpcy56MSArIHRoaXMucmFuZG9tICogKHRoaXMuejIgLSB0aGlzLnoxKTtcblxuICAgIHJldHVybiB0aGlzLnZlY3RvcjtcbiAgfVxufVxuIl19
@@ -1,101 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _Zone2 = _interopRequireDefault(require("./Zone"));
21
-
22
- var _types = require("./types");
23
-
24
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
25
-
26
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
27
-
28
- /**
29
- * Uses a three THREE.Geometry to determine the zone parameters.
30
- *
31
- */
32
- var MeshZone = /*#__PURE__*/function (_Zone) {
33
- (0, _inherits2["default"])(MeshZone, _Zone);
34
-
35
- var _super = _createSuper(MeshZone);
36
-
37
- /**
38
- * @constructs {MeshZone}
39
- *
40
- * @param {THREE.Geometry|Mesh} bounds - the geometry or mesh that will determine the zone bounds
41
- * @param {number} scale - the zone scale
42
- * @param {THREE.Geometry} ThreeGeometry - the three geometry class
43
- * @return void
44
- */
45
- function MeshZone(bounds) {
46
- var _this;
47
-
48
- var scale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
49
- var ThreeGeometry = arguments.length > 2 ? arguments[2] : undefined;
50
- (0, _classCallCheck2["default"])(this, MeshZone);
51
- _this = _super.call(this, _types.ZONE_TYPE_MESH);
52
- _this.geometry = null;
53
- _this.scale = scale;
54
- _this.supportsCrossing = false;
55
-
56
- if (bounds.type && bounds.type === 'Geometry') {
57
- _this.geometry = bounds;
58
- }
59
-
60
- if (bounds.geometry) {
61
- _this.geometry = bounds.geometry;
62
- }
63
-
64
- if (!_this.geometry) {
65
- throw new Error('MeshZone unable to set geometry from the supplied bounds');
66
- }
67
-
68
- if (_this.geometry.isBufferGeometry) {
69
- _this.geometry = new ThreeGeometry().fromBufferGeometry(_this.geometry);
70
- }
71
-
72
- return _this;
73
- }
74
- /**
75
- * Returns true to indicate this is a MeshZone.
76
- *
77
- * @return {boolean}
78
- */
79
-
80
-
81
- (0, _createClass2["default"])(MeshZone, [{
82
- key: "isMeshZone",
83
- value: function isMeshZone() {
84
- return true;
85
- }
86
- }, {
87
- key: "getPosition",
88
- value: function getPosition() {
89
- var vertices = this.geometry.vertices;
90
- var rVector = vertices[vertices.length * Math.random() >> 0];
91
- this.vector.x = rVector.x * this.scale;
92
- this.vector.y = rVector.y * this.scale;
93
- this.vector.z = rVector.z * this.scale;
94
- return this.vector;
95
- }
96
- }]);
97
- return MeshZone;
98
- }(_Zone2["default"]);
99
-
100
- exports["default"] = MeshZone;
101
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL01lc2hab25lLmpzIl0sIm5hbWVzIjpbIk1lc2hab25lIiwiYm91bmRzIiwic2NhbGUiLCJUaHJlZUdlb21ldHJ5IiwidHlwZSIsImdlb21ldHJ5Iiwic3VwcG9ydHNDcm9zc2luZyIsIkVycm9yIiwiaXNCdWZmZXJHZW9tZXRyeSIsImZyb21CdWZmZXJHZW9tZXRyeSIsInZlcnRpY2VzIiwiclZlY3RvciIsImxlbmd0aCIsIk1hdGgiLCJyYW5kb20iLCJ2ZWN0b3IiLCJ4IiwieSIsInoiLCJab25lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0lBQ3FCQSxROzs7OztBQUNuQjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Usb0JBQVlDLE1BQVosRUFBOEM7QUFBQTs7QUFBQSxRQUExQkMsS0FBMEIsdUVBQWxCLENBQWtCO0FBQUEsUUFBZkMsYUFBZTtBQUFBO0FBQzVDLDhCQUFNQyxxQkFBTjtBQUVBLFVBQUtDLFFBQUwsR0FBZ0IsSUFBaEI7QUFDQSxVQUFLSCxLQUFMLEdBQWFBLEtBQWI7QUFDQSxVQUFLSSxnQkFBTCxHQUF3QixLQUF4Qjs7QUFFQSxRQUFJTCxNQUFNLENBQUNHLElBQVAsSUFBZUgsTUFBTSxDQUFDRyxJQUFQLEtBQWdCLFVBQW5DLEVBQStDO0FBQzdDLFlBQUtDLFFBQUwsR0FBZ0JKLE1BQWhCO0FBQ0Q7O0FBRUQsUUFBSUEsTUFBTSxDQUFDSSxRQUFYLEVBQXFCO0FBQ25CLFlBQUtBLFFBQUwsR0FBZ0JKLE1BQU0sQ0FBQ0ksUUFBdkI7QUFDRDs7QUFFRCxRQUFJLENBQUMsTUFBS0EsUUFBVixFQUFvQjtBQUNsQixZQUFNLElBQUlFLEtBQUosQ0FDSiwwREFESSxDQUFOO0FBR0Q7O0FBRUQsUUFBSSxNQUFLRixRQUFMLENBQWNHLGdCQUFsQixFQUFvQztBQUNsQyxZQUFLSCxRQUFMLEdBQWdCLElBQUlGLGFBQUosR0FBb0JNLGtCQUFwQixDQUF1QyxNQUFLSixRQUE1QyxDQUFoQjtBQUNEOztBQXZCMkM7QUF3QjdDO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7Ozs7aUNBQ2U7QUFDWCxhQUFPLElBQVA7QUFDRDs7O2tDQUVhO0FBQ1osVUFBTUssUUFBUSxHQUFHLEtBQUtMLFFBQUwsQ0FBY0ssUUFBL0I7QUFDQSxVQUFNQyxPQUFPLEdBQUdELFFBQVEsQ0FBRUEsUUFBUSxDQUFDRSxNQUFULEdBQWtCQyxJQUFJLENBQUNDLE1BQUwsRUFBbkIsSUFBcUMsQ0FBdEMsQ0FBeEI7QUFFQSxXQUFLQyxNQUFMLENBQVlDLENBQVosR0FBZ0JMLE9BQU8sQ0FBQ0ssQ0FBUixHQUFZLEtBQUtkLEtBQWpDO0FBQ0EsV0FBS2EsTUFBTCxDQUFZRSxDQUFaLEdBQWdCTixPQUFPLENBQUNNLENBQVIsR0FBWSxLQUFLZixLQUFqQztBQUNBLFdBQUthLE1BQUwsQ0FBWUcsQ0FBWixHQUFnQlAsT0FBTyxDQUFDTyxDQUFSLEdBQVksS0FBS2hCLEtBQWpDO0FBRUEsYUFBTyxLQUFLYSxNQUFaO0FBQ0Q7OztFQXJEbUNJLGlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFpvbmUgZnJvbSAnLi9ab25lJztcbmltcG9ydCB7IFpPTkVfVFlQRV9NRVNIIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBVc2VzIGEgdGhyZWUgVEhSRUUuR2VvbWV0cnkgdG8gZGV0ZXJtaW5lIHRoZSB6b25lIHBhcmFtZXRlcnMuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNZXNoWm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogQGNvbnN0cnVjdHMge01lc2hab25lfVxuICAgKlxuICAgKiBAcGFyYW0ge1RIUkVFLkdlb21ldHJ5fE1lc2h9IGJvdW5kcyAtIHRoZSBnZW9tZXRyeSBvciBtZXNoIHRoYXQgd2lsbCBkZXRlcm1pbmUgdGhlIHpvbmUgYm91bmRzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzY2FsZSAtIHRoZSB6b25lIHNjYWxlXG4gICAqIEBwYXJhbSB7VEhSRUUuR2VvbWV0cnl9IFRocmVlR2VvbWV0cnkgLSB0aGUgdGhyZWUgZ2VvbWV0cnkgY2xhc3NcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihib3VuZHMsIHNjYWxlID0gMSwgVGhyZWVHZW9tZXRyeSkge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgdGhpcy5nZW9tZXRyeSA9IG51bGw7XG4gICAgdGhpcy5zY2FsZSA9IHNjYWxlO1xuICAgIHRoaXMuc3VwcG9ydHNDcm9zc2luZyA9IGZhbHNlO1xuXG4gICAgaWYgKGJvdW5kcy50eXBlICYmIGJvdW5kcy50eXBlID09PSAnR2VvbWV0cnknKSB7XG4gICAgICB0aGlzLmdlb21ldHJ5ID0gYm91bmRzO1xuICAgIH1cblxuICAgIGlmIChib3VuZHMuZ2VvbWV0cnkpIHtcbiAgICAgIHRoaXMuZ2VvbWV0cnkgPSBib3VuZHMuZ2VvbWV0cnk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmdlb21ldHJ5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdNZXNoWm9uZSB1bmFibGUgdG8gc2V0IGdlb21ldHJ5IGZyb20gdGhlIHN1cHBsaWVkIGJvdW5kcydcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSkge1xuICAgICAgdGhpcy5nZW9tZXRyeSA9IG5ldyBUaHJlZUdlb21ldHJ5KCkuZnJvbUJ1ZmZlckdlb21ldHJ5KHRoaXMuZ2VvbWV0cnkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgdG8gaW5kaWNhdGUgdGhpcyBpcyBhIE1lc2hab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNNZXNoWm9uZSgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGdldFBvc2l0aW9uKCkge1xuICAgIGNvbnN0IHZlcnRpY2VzID0gdGhpcy5nZW9tZXRyeS52ZXJ0aWNlcztcbiAgICBjb25zdCByVmVjdG9yID0gdmVydGljZXNbKHZlcnRpY2VzLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkpID4+IDBdO1xuXG4gICAgdGhpcy52ZWN0b3IueCA9IHJWZWN0b3IueCAqIHRoaXMuc2NhbGU7XG4gICAgdGhpcy52ZWN0b3IueSA9IHJWZWN0b3IueSAqIHRoaXMuc2NhbGU7XG4gICAgdGhpcy52ZWN0b3IueiA9IHJWZWN0b3IueiAqIHRoaXMuc2NhbGU7XG5cbiAgICByZXR1cm4gdGhpcy52ZWN0b3I7XG4gIH1cbn1cbiJdfQ==
@@ -1,99 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _Util = _interopRequireDefault(require("../utils/Util"));
21
-
22
- var _Zone2 = _interopRequireDefault(require("./Zone"));
23
-
24
- var _types = require("./types");
25
-
26
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
27
-
28
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
29
-
30
- var PointZone = /*#__PURE__*/function (_Zone) {
31
- (0, _inherits2["default"])(PointZone, _Zone);
32
-
33
- var _super = _createSuper(PointZone);
34
-
35
- /**
36
- * PointZone is a point zone
37
- * @param {Number|Vector3D} x - the center's x value or a Vector3D Object
38
- * @param {Number} y - the center's y value
39
- * @param {Number} z - the center's z value
40
- * @example
41
- * var pointZone = new System.PointZone(0,30,10);
42
- * or
43
- * var pointZone = new System.PointZone(new System.Vector3D(0,30,10));
44
- * @extends {Zone}
45
- * @constructor
46
- */
47
- function PointZone(a, b, c) {
48
- var _this;
49
-
50
- (0, _classCallCheck2["default"])(this, PointZone);
51
- _this = _super.call(this, _types.ZONE_TYPE_POINT); // TODO see below, these should probably be assigned properly
52
- // eslint-disable-next-line
53
-
54
- var x, y, z;
55
-
56
- if (_Util["default"].isUndefined(a, b, c)) {
57
- x = y = z = 0;
58
- } else {
59
- x = a; // eslint-disable-next-line
60
-
61
- y = b; // eslint-disable-next-line
62
-
63
- z = c;
64
- }
65
-
66
- _this.x = x; // TODO shouldn't this be set to y?
67
-
68
- _this.y = x; // TODO shouldn't this be set to z?
69
-
70
- _this.z = x;
71
- _this.supportsCrossing = false;
72
- return _this;
73
- }
74
- /**
75
- * Returns true to indicate this is a PointZone.
76
- *
77
- * @return {boolean}
78
- */
79
-
80
-
81
- (0, _createClass2["default"])(PointZone, [{
82
- key: "isPointZone",
83
- value: function isPointZone() {
84
- return true;
85
- }
86
- }, {
87
- key: "getPosition",
88
- value: function getPosition() {
89
- this.vector.x = this.x;
90
- this.vector.y = this.y;
91
- this.vector.z = this.z;
92
- return this.vector;
93
- }
94
- }]);
95
- return PointZone;
96
- }(_Zone2["default"]);
97
-
98
- exports["default"] = PointZone;
99
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL1BvaW50Wm9uZS5qcyJdLCJuYW1lcyI6WyJQb2ludFpvbmUiLCJhIiwiYiIsImMiLCJ0eXBlIiwieCIsInkiLCJ6IiwiVXRpbCIsImlzVW5kZWZpbmVkIiwic3VwcG9ydHNDcm9zc2luZyIsInZlY3RvciIsIlpvbmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7Ozs7O0lBRXFCQSxTOzs7OztBQUNuQjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRSxxQkFBWUMsQ0FBWixFQUFlQyxDQUFmLEVBQWtCQyxDQUFsQixFQUFxQjtBQUFBOztBQUFBO0FBQ25CLDhCQUFNQyxzQkFBTixFQURtQixDQUduQjtBQUNBOztBQUNBLFFBQUlDLENBQUosRUFBT0MsQ0FBUCxFQUFVQyxDQUFWOztBQUVBLFFBQUlDLGlCQUFLQyxXQUFMLENBQWlCUixDQUFqQixFQUFvQkMsQ0FBcEIsRUFBdUJDLENBQXZCLENBQUosRUFBK0I7QUFDN0JFLE1BQUFBLENBQUMsR0FBR0MsQ0FBQyxHQUFHQyxDQUFDLEdBQUcsQ0FBWjtBQUNELEtBRkQsTUFFTztBQUNMRixNQUFBQSxDQUFDLEdBQUdKLENBQUosQ0FESyxDQUVMOztBQUNBSyxNQUFBQSxDQUFDLEdBQUdKLENBQUosQ0FISyxDQUlMOztBQUNBSyxNQUFBQSxDQUFDLEdBQUdKLENBQUo7QUFDRDs7QUFFRCxVQUFLRSxDQUFMLEdBQVNBLENBQVQsQ0FqQm1CLENBbUJuQjs7QUFDQSxVQUFLQyxDQUFMLEdBQVNELENBQVQsQ0FwQm1CLENBc0JuQjs7QUFDQSxVQUFLRSxDQUFMLEdBQVNGLENBQVQ7QUFDQSxVQUFLSyxnQkFBTCxHQUF3QixLQUF4QjtBQXhCbUI7QUF5QnBCO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7Ozs7a0NBQ2dCO0FBQ1osYUFBTyxJQUFQO0FBQ0Q7OztrQ0FFYTtBQUNaLFdBQUtDLE1BQUwsQ0FBWU4sQ0FBWixHQUFnQixLQUFLQSxDQUFyQjtBQUNBLFdBQUtNLE1BQUwsQ0FBWUwsQ0FBWixHQUFnQixLQUFLQSxDQUFyQjtBQUNBLFdBQUtLLE1BQUwsQ0FBWUosQ0FBWixHQUFnQixLQUFLQSxDQUFyQjtBQUVBLGFBQU8sS0FBS0ksTUFBWjtBQUNEOzs7RUF2RG9DQyxpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBVdGlsIGZyb20gJy4uL3V0aWxzL1V0aWwnO1xuaW1wb3J0IFpvbmUgZnJvbSAnLi9ab25lJztcbmltcG9ydCB7IFpPTkVfVFlQRV9QT0lOVCBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBvaW50Wm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogUG9pbnRab25lIGlzIGEgcG9pbnQgem9uZVxuICAgKiBAcGFyYW0ge051bWJlcnxWZWN0b3IzRH0geCAtIHRoZSBjZW50ZXIncyB4IHZhbHVlIG9yIGEgVmVjdG9yM0QgT2JqZWN0XG4gICAqIEBwYXJhbSB7TnVtYmVyfSB5IC0gdGhlIGNlbnRlcidzIHkgdmFsdWVcbiAgICogQHBhcmFtIHtOdW1iZXJ9IHogLSB0aGUgY2VudGVyJ3MgeiB2YWx1ZVxuICAgKiBAZXhhbXBsZVxuICAgKiB2YXIgcG9pbnRab25lID0gbmV3IFN5c3RlbS5Qb2ludFpvbmUoMCwzMCwxMCk7XG4gICAqIG9yXG4gICAqIHZhciBwb2ludFpvbmUgPSBuZXcgU3lzdGVtLlBvaW50Wm9uZShuZXcgU3lzdGVtLlZlY3RvcjNEKDAsMzAsMTApKTtcbiAgICogQGV4dGVuZHMge1pvbmV9XG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKi9cbiAgY29uc3RydWN0b3IoYSwgYiwgYykge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgLy8gVE9ETyBzZWUgYmVsb3csIHRoZXNlIHNob3VsZCBwcm9iYWJseSBiZSBhc3NpZ25lZCBwcm9wZXJseVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHZhciB4LCB5LCB6O1xuXG4gICAgaWYgKFV0aWwuaXNVbmRlZmluZWQoYSwgYiwgYykpIHtcbiAgICAgIHggPSB5ID0geiA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHggPSBhO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICB5ID0gYjtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgeiA9IGM7XG4gICAgfVxuXG4gICAgdGhpcy54ID0geDtcblxuICAgIC8vIFRPRE8gc2hvdWxkbid0IHRoaXMgYmUgc2V0IHRvIHk/XG4gICAgdGhpcy55ID0geDtcblxuICAgIC8vIFRPRE8gc2hvdWxkbid0IHRoaXMgYmUgc2V0IHRvIHo/XG4gICAgdGhpcy56ID0geDtcbiAgICB0aGlzLnN1cHBvcnRzQ3Jvc3NpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgdG8gaW5kaWNhdGUgdGhpcyBpcyBhIFBvaW50Wm9uZS5cbiAgICpcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGlzUG9pbnRab25lKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0UG9zaXRpb24oKSB7XG4gICAgdGhpcy52ZWN0b3IueCA9IHRoaXMueDtcbiAgICB0aGlzLnZlY3Rvci55ID0gdGhpcy55O1xuICAgIHRoaXMudmVjdG9yLnogPSB0aGlzLno7XG5cbiAgICByZXR1cm4gdGhpcy52ZWN0b3I7XG4gIH1cbn1cbiJdfQ==