@realsee/five 6.7.0-alpha.8 → 6.7.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/docs/assets/hierarchy.js +1 -1
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/five.AdaptiveLuminancePass.html +22 -0
- package/docs/classes/five.AnimationFrameLoop.html +4 -4
- package/docs/classes/five.BoundingMesh.html +4 -0
- package/docs/classes/five.Camera.html +6 -5
- package/docs/classes/five.EffectComposer.html +21 -0
- package/docs/classes/five.EyeDomeLightingPass.html +21 -0
- package/docs/classes/five.Five.html +90 -76
- package/docs/classes/five.FivePass.html +18 -0
- package/docs/classes/five.FiveRenderer.html +9 -0
- package/docs/classes/five.FullScreenQuad.html +6 -0
- package/docs/classes/five.InternalWebGLRenderer.html +1 -1
- package/docs/classes/five.Model.html +32 -31
- package/docs/classes/five.ModelScene.html +23 -20
- package/docs/classes/five.NetworkSubscribe.html +1 -1
- package/docs/classes/five.PBMContainer.html +1 -1
- package/docs/classes/five.PBMGroup.html +1 -1
- package/docs/classes/five.PBMMesh.html +1 -1
- package/docs/classes/five.PBMMeshMaterial.html +6 -7
- package/docs/classes/five.PBMPointCloud.html +1 -1
- package/docs/classes/five.PBMPointCloudMaterial.html +5 -6
- package/docs/classes/five.PBMSkinnedMesh.html +1 -1
- package/docs/classes/five.PanoCircleMesh.html +3 -3
- package/docs/classes/five.PanoCircleMeshCustom.html +4 -4
- package/docs/classes/five.PanoCircleMeshSolid.html +5 -5
- package/docs/classes/five.Parameter.html +44 -47
- package/docs/classes/five.Scene.html +1 -1
- package/docs/classes/five.Subscribe.html +1 -1
- package/docs/classes/five.TextureLoader.html +2 -2
- package/docs/classes/five.Tile3D.html +21 -21
- package/docs/classes/five.TileNode.html +4 -3
- package/docs/classes/five.Tileset.html +4 -4
- package/docs/classes/five.TrajectoryNode.html +1 -1
- package/docs/classes/five.Work.html +16 -16
- package/docs/classes/five.WorkResolvedObserver.html +20 -21
- package/docs/classes/gltf-loader.DDSLoader.html +1 -1
- package/docs/classes/gltf-loader.DRACOLoader.html +1 -1
- package/docs/classes/gltf-loader.GLTFLoader.html +1 -1
- package/docs/classes/gltf-loader.GLTFObject.html +1 -1
- package/docs/classes/gltf-loader.THREEGLTFLoader.html +1 -1
- package/docs/classes/line.Line.html +1 -1
- package/docs/classes/line.LineGeometry.html +1 -1
- package/docs/classes/line.LineMaterial.html +1 -1
- package/docs/classes/line.LineSegmentsGeometry.html +1 -1
- package/docs/classes/line.THREE_Line2.html +1 -1
- package/docs/classes/line.THREE_LineSegments2.html +1 -1
- package/docs/classes/plugins.BasePlugin.Controller.html +1 -1
- package/docs/classes/plugins.RoundedBoxGeometry.html +1 -1
- package/docs/classes/sticker.Sticker.html +1 -1
- package/docs/classes/vfx.Airflow.html +1 -1
- package/docs/classes/vfx.Flame.html +1 -1
- package/docs/classes/vfx.Particle.html +1 -1
- package/docs/classes/vfx.ParticleGPU.html +1 -1
- package/docs/classes/vfx.SpotLight.html +1 -1
- package/docs/functions/five.loadAt3d.html +1 -1
- package/docs/functions/five.parseWork.html +1 -1
- package/docs/functions/five.workToJson.html +1 -1
- package/docs/functions/plugins.DynamicPathLinePlugin.html +1 -0
- package/docs/functions/react.withFive.html +1 -1
- package/docs/functions/vue.useFiveWorks.html +2 -2
- package/docs/hierarchy.html +1 -1
- package/docs/interfaces/five.AddableObject.html +1 -1
- package/docs/interfaces/five.AjaxOptions.html +1 -1
- package/docs/interfaces/five.AnimationFrame.html +3 -2
- package/docs/interfaces/five.AnimationFrameContext.html +2 -2
- package/docs/interfaces/five.BaseEvent.html +1 -1
- package/docs/interfaces/five.EventCallback.html +1 -1
- package/docs/interfaces/five.FiveInitArgs.html +3 -3
- package/docs/interfaces/five.FiveLoadOptions.html +8 -10
- package/docs/interfaces/five.GestureEvent.html +1 -1
- package/docs/interfaces/five.ImageOptions.html +1 -1
- package/docs/interfaces/five.IntersectEvent.html +1 -1
- package/docs/interfaces/five.IntersectMesh.html +2 -2
- package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
- package/docs/interfaces/five.Intersection.html +1 -1
- package/docs/interfaces/five.LoosePanoWork.html +2 -2
- package/docs/interfaces/five.LooseWork.html +2 -2
- package/docs/interfaces/five.LooseWorkInitial.html +2 -2
- package/docs/interfaces/five.LooseWorkModel.html +3 -2
- package/docs/interfaces/five.LooseWorkObserver.html +3 -2
- package/docs/interfaces/five.LooseWorkPanorama.html +8 -8
- package/docs/interfaces/five.LooseWorkVideo.html +2 -2
- package/docs/interfaces/five.LooseWorkWithExtrinsics.html +7 -7
- package/docs/interfaces/five.ModeChangeEvent.html +2 -2
- package/docs/interfaces/five.ModelControllerCustomInitArgs.html +5 -3
- package/docs/interfaces/five.ModelEvent.html +2 -2
- package/docs/interfaces/five.ModelOptions.html +11 -0
- package/docs/interfaces/five.ModelSceneEvent.html +2 -2
- package/docs/interfaces/five.MovePanoOptions.html +1 -1
- package/docs/interfaces/five.NetworkAbortError.html +1 -1
- package/docs/interfaces/five.NetworkFirbiddenError.html +1 -1
- package/docs/interfaces/five.NetworkOptions.html +1 -1
- package/docs/interfaces/five.NetworkProxyError.html +1 -1
- package/docs/interfaces/five.NetworkResourceEvent.html +2 -2
- package/docs/interfaces/five.NetworkResponseError.html +1 -1
- package/docs/interfaces/five.NetworkTimeoutError.html +1 -1
- package/docs/interfaces/five.ObjectEvent.html +2 -2
- package/docs/interfaces/five.PBMMaterial.html +1 -1
- package/docs/interfaces/five.PBMMeshMaterialParameters.html +2 -3
- package/docs/interfaces/five.PBMPointCloudMaterialParameters.html +2 -3
- package/docs/interfaces/five.PanoCircleMeshInterface.html +1 -1
- package/docs/interfaces/five.PanoCircleMeshSolidOptions.html +2 -2
- package/docs/interfaces/five.PanoEvent.html +1 -1
- package/docs/interfaces/five.PanoTextureEvent.html +1 -1
- package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +12 -10
- package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +5 -3
- package/docs/interfaces/five.ParameterMaterialValue.html +29 -31
- package/docs/interfaces/five.ParameterTilesetValue.html +15 -16
- package/docs/interfaces/five.ParameterValue.html +43 -46
- package/docs/interfaces/five.Pass.html +9 -0
- package/docs/interfaces/five.Pose.html +1 -1
- package/docs/interfaces/five.RenderEvent.html +2 -2
- package/docs/interfaces/five.ResolvedParameterValue.html +43 -46
- package/docs/interfaces/five.State.html +1 -1
- package/docs/interfaces/five.StateEvent.html +1 -1
- package/docs/interfaces/five.TextureOptions.html +1 -1
- package/docs/interfaces/five.TilesetOptions.html +2 -2
- package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +7 -3
- package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +12 -10
- package/docs/interfaces/five.ViewLayer.html +21 -21
- package/docs/interfaces/five.WorkCubeImage.html +2 -2
- package/docs/interfaces/five.WorkImage.html +5 -3
- package/docs/interfaces/five.WorkInitial.html +8 -8
- package/docs/interfaces/five.WorkModel.html +9 -7
- package/docs/interfaces/five.WorkModelJson.html +3 -2
- package/docs/interfaces/five.WorkModelLayer.html +7 -2
- package/docs/interfaces/five.WorkModelLayerJson.html +2 -2
- package/docs/interfaces/five.WorkObserver.html +21 -22
- package/docs/interfaces/five.WorkObserverJson.html +4 -2
- package/docs/interfaces/five.WorkPanoramaJson.html +2 -2
- package/docs/interfaces/five.WorkPanoramasJson.html +2 -2
- package/docs/interfaces/five.WorkTile.html +4 -4
- package/docs/interfaces/five.WorkVideo.html +4 -4
- package/docs/interfaces/five.WorksEvent.html +2 -3
- package/docs/interfaces/five.XRControllerEvent.html +1 -1
- package/docs/interfaces/five.XRGestureEvent.html +1 -1
- package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +12 -10
- package/docs/interfaces/five.XRSessionEvent.html +1 -1
- package/docs/interfaces/plugins.BackgroundPluginController.html +1 -1
- package/docs/interfaces/plugins.BackgroundPluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.BasePlugin.State.html +1 -1
- package/docs/interfaces/plugins.DynamicPathLinePluginController.html +83 -0
- package/docs/interfaces/plugins.DynamicPathLinePluginType.Config.html +36 -0
- package/docs/interfaces/plugins.DynamicPathLinePluginType.EventMap.html +26 -0
- package/docs/interfaces/plugins.DynamicPathLinePluginType.Params.html +6 -0
- package/docs/interfaces/plugins.DynamicPathLinePluginType.PathConfig.html +28 -0
- package/docs/interfaces/plugins.DynamicPathLinePluginType.State.html +10 -0
- package/docs/interfaces/plugins.ItemMaskController.html +1 -1
- package/docs/interfaces/plugins.ItemMaskPluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.ItemMaskPluginType.State.html +1 -1
- package/docs/interfaces/plugins.OrientationPluginController.html +1 -1
- package/docs/interfaces/plugins.OrientationPluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.OrientationPluginType.State.html +1 -1
- package/docs/interfaces/plugins.PanoAnimeController.html +1 -1
- package/docs/interfaces/plugins.PanoAnimePluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.PanoAnimePluginType.State.html +1 -1
- package/docs/interfaces/plugins.PluginTemplateType.EventMap.html +1 -1
- package/docs/interfaces/plugins.PluginTemplateType.State.html +1 -1
- package/docs/interfaces/plugins.TrajectoryController.html +1 -1
- package/docs/interfaces/react.FiveInjectionTypes.html +4 -4
- package/docs/modules/five.html +1 -1
- package/docs/modules/plugins.DynamicPathLinePluginType.html +1 -0
- package/docs/modules/plugins.html +1 -1
- package/docs/types/five.AnimationFrameLoopType.html +1 -1
- package/docs/types/five.Models.html +4 -4
- package/docs/types/five.ParseOptions.html +6 -6
- package/docs/types/five.PostProcessingType.html +1 -1
- package/docs/types/five.RequestAnimationFrameArgs.html +1 -0
- package/docs/types/five.TilesetFrameState.html +2 -3
- package/docs/types/plugins.BasePlugin.EventMap.html +1 -1
- package/docs/types/plugins.DynamicPathLinePluginType.PluginData.html +3 -0
- package/docs/types/plugins.DynamicPathLinePluginType.ServerData.html +3 -0
- package/docs/types/vue.FiveProviderComponent.html +1 -1
- package/five/index.d.ts +311 -85
- package/five/index.js +299 -198
- package/five/index.mjs +6822 -6456
- package/gltf-loader/index.js +3 -3
- package/gltf-loader/index.mjs +146 -146
- package/line/index.js +3 -3
- package/line/index.mjs +10 -10
- package/package.json +1 -1
- package/plugins/index.d.ts +314 -0
- package/plugins/index.js +296 -15
- package/plugins/index.mjs +2615 -1503
- package/react/index.d.ts +1 -1
- package/react/index.js +2 -2
- package/react/index.mjs +2 -2
- package/shader-lib/index.d.ts +24 -1
- package/shader-lib/index.js +22 -13
- package/shader-lib/index.mjs +408 -171
- package/sticker/index.js +3 -3
- package/sticker/index.mjs +7 -7
- package/umd/five-gltf-loader.js +3 -3
- package/umd/five-line.js +3 -3
- package/umd/five-plugins.js +296 -15
- package/umd/five-react.js +2 -2
- package/umd/five-shader-lib.js +22 -13
- package/umd/five-sticker.js +3 -3
- package/umd/five-vfx.js +2 -2
- package/umd/five-vue.js +2 -2
- package/umd/five.js +299 -198
- package/vfx/index.js +2 -2
- package/vfx/index.mjs +2 -2
- package/vue/index.d.ts +1 -1
- package/vue/index.js +2 -2
- package/vue/index.mjs +2 -2
- package/work-downloader/index.js +3 -3
- package/work-downloader/index.mjs +13 -11
- package/docs/interfaces/five.ModelLike.html +0 -3
- package/docs/types/five.Tile3dOptions.html +0 -1
package/shader-lib/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five
|
|
4
|
-
* Generated:
|
|
5
|
-
* Version: 6.7.0
|
|
4
|
+
* Generated: 12/29/2025
|
|
5
|
+
* Version: 6.7.0
|
|
6
6
|
* Terms:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
* Update: July 28, 2021
|
|
@@ -252,30 +252,117 @@
|
|
|
252
252
|
* No amendment to or modification of this Agreement will be binding unless in
|
|
253
253
|
* writing and signed by Realsee. You and Realsee hereto confirm that this
|
|
254
254
|
* Agreement and all related documents shall be drafted in English.
|
|
255
|
-
*/import { CustomShader as
|
|
256
|
-
import * as
|
|
257
|
-
var
|
|
258
|
-
return
|
|
259
|
-
n.__proto__ =
|
|
260
|
-
} || function(n,
|
|
261
|
-
for (var
|
|
262
|
-
},
|
|
255
|
+
*/import { CustomShader as F } from "@realsee/five";
|
|
256
|
+
import * as l from "three";
|
|
257
|
+
var M = function(i, e) {
|
|
258
|
+
return M = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(n, o) {
|
|
259
|
+
n.__proto__ = o;
|
|
260
|
+
} || function(n, o) {
|
|
261
|
+
for (var t in o) Object.prototype.hasOwnProperty.call(o, t) && (n[t] = o[t]);
|
|
262
|
+
}, M(i, e);
|
|
263
263
|
};
|
|
264
|
-
function
|
|
264
|
+
function B(i, e) {
|
|
265
265
|
if (typeof e != "function" && e !== null)
|
|
266
266
|
throw new TypeError("Class extends value " + String(e) + " is not a constructor or null");
|
|
267
|
-
|
|
267
|
+
M(i, e);
|
|
268
268
|
function n() {
|
|
269
269
|
this.constructor = i;
|
|
270
270
|
}
|
|
271
271
|
i.prototype = e === null ? Object.create(e) : (n.prototype = e.prototype, new n());
|
|
272
272
|
}
|
|
273
|
-
function
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
273
|
+
function A(i, e, n, o) {
|
|
274
|
+
function t(r) {
|
|
275
|
+
return r instanceof n ? r : new n(function(s) {
|
|
276
|
+
s(r);
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
return new (n || (n = Promise))(function(r, s) {
|
|
280
|
+
function f(u) {
|
|
281
|
+
try {
|
|
282
|
+
a(o.next(u));
|
|
283
|
+
} catch (v) {
|
|
284
|
+
s(v);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
function c(u) {
|
|
288
|
+
try {
|
|
289
|
+
a(o.throw(u));
|
|
290
|
+
} catch (v) {
|
|
291
|
+
s(v);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
function a(u) {
|
|
295
|
+
u.done ? r(u.value) : t(u.value).then(f, c);
|
|
296
|
+
}
|
|
297
|
+
a((o = o.apply(i, e || [])).next());
|
|
298
|
+
});
|
|
277
299
|
}
|
|
278
|
-
|
|
300
|
+
function k(i, e) {
|
|
301
|
+
var n = { label: 0, sent: function() {
|
|
302
|
+
if (r[0] & 1) throw r[1];
|
|
303
|
+
return r[1];
|
|
304
|
+
}, trys: [], ops: [] }, o, t, r, s = Object.create((typeof Iterator == "function" ? Iterator : Object).prototype);
|
|
305
|
+
return s.next = f(0), s.throw = f(1), s.return = f(2), typeof Symbol == "function" && (s[Symbol.iterator] = function() {
|
|
306
|
+
return this;
|
|
307
|
+
}), s;
|
|
308
|
+
function f(a) {
|
|
309
|
+
return function(u) {
|
|
310
|
+
return c([a, u]);
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
function c(a) {
|
|
314
|
+
if (o) throw new TypeError("Generator is already executing.");
|
|
315
|
+
for (; s && (s = 0, a[0] && (n = 0)), n; ) try {
|
|
316
|
+
if (o = 1, t && (r = a[0] & 2 ? t.return : a[0] ? t.throw || ((r = t.return) && r.call(t), 0) : t.next) && !(r = r.call(t, a[1])).done) return r;
|
|
317
|
+
switch (t = 0, r && (a = [a[0] & 2, r.value]), a[0]) {
|
|
318
|
+
case 0:
|
|
319
|
+
case 1:
|
|
320
|
+
r = a;
|
|
321
|
+
break;
|
|
322
|
+
case 4:
|
|
323
|
+
return n.label++, { value: a[1], done: !1 };
|
|
324
|
+
case 5:
|
|
325
|
+
n.label++, t = a[1], a = [0];
|
|
326
|
+
continue;
|
|
327
|
+
case 7:
|
|
328
|
+
a = n.ops.pop(), n.trys.pop();
|
|
329
|
+
continue;
|
|
330
|
+
default:
|
|
331
|
+
if (r = n.trys, !(r = r.length > 0 && r[r.length - 1]) && (a[0] === 6 || a[0] === 2)) {
|
|
332
|
+
n = 0;
|
|
333
|
+
continue;
|
|
334
|
+
}
|
|
335
|
+
if (a[0] === 3 && (!r || a[1] > r[0] && a[1] < r[3])) {
|
|
336
|
+
n.label = a[1];
|
|
337
|
+
break;
|
|
338
|
+
}
|
|
339
|
+
if (a[0] === 6 && n.label < r[1]) {
|
|
340
|
+
n.label = r[1], r = a;
|
|
341
|
+
break;
|
|
342
|
+
}
|
|
343
|
+
if (r && n.label < r[2]) {
|
|
344
|
+
n.label = r[2], n.ops.push(a);
|
|
345
|
+
break;
|
|
346
|
+
}
|
|
347
|
+
r[2] && n.ops.pop(), n.trys.pop();
|
|
348
|
+
continue;
|
|
349
|
+
}
|
|
350
|
+
a = e.call(i, n);
|
|
351
|
+
} catch (u) {
|
|
352
|
+
a = [6, u], t = 0;
|
|
353
|
+
} finally {
|
|
354
|
+
o = r = 0;
|
|
355
|
+
}
|
|
356
|
+
if (a[0] & 5) throw a[1];
|
|
357
|
+
return { value: a[0] ? a[1] : void 0, done: !0 };
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
function I(i, e, n) {
|
|
361
|
+
if (n || arguments.length === 2) for (var o = 0, t = e.length, r; o < t; o++)
|
|
362
|
+
(r || !(o in e)) && (r || (r = Array.prototype.slice.call(e, 0, o)), r[o] = e[o]);
|
|
363
|
+
return i.concat(r || Array.prototype.slice.call(e));
|
|
364
|
+
}
|
|
365
|
+
var R = `
|
|
279
366
|
#if defined(USE_PLANE_DISTANCE)
|
|
280
367
|
struct Plane {
|
|
281
368
|
vec3 normal;
|
|
@@ -286,7 +373,7 @@ var I = `
|
|
|
286
373
|
uniform float evennessPlaneConstant;
|
|
287
374
|
uniform float evennessPlaneDepth;
|
|
288
375
|
#endif
|
|
289
|
-
`,
|
|
376
|
+
`, V = `
|
|
290
377
|
#if defined(USE_PLANE_DISTANCE)
|
|
291
378
|
|
|
292
379
|
bool inside = true;
|
|
@@ -306,28 +393,28 @@ var I = `
|
|
|
306
393
|
}
|
|
307
394
|
}
|
|
308
395
|
#endif
|
|
309
|
-
`,
|
|
396
|
+
`, W = "", L = {
|
|
310
397
|
type: ["pointcloud"],
|
|
311
398
|
fragment: {
|
|
312
|
-
mainBefore:
|
|
313
|
-
mainStart:
|
|
314
|
-
mainEnd:
|
|
399
|
+
mainBefore: R,
|
|
400
|
+
mainStart: W,
|
|
401
|
+
mainEnd: V
|
|
315
402
|
},
|
|
316
403
|
uniforms: {
|
|
317
|
-
evennessPlaneNormal: new
|
|
318
|
-
evennessPlaneConstant: new
|
|
319
|
-
evennessPlanes: new
|
|
320
|
-
evennessPlaneDepth: new
|
|
404
|
+
evennessPlaneNormal: new l.Uniform(new l.Vector3()),
|
|
405
|
+
evennessPlaneConstant: new l.Uniform(0),
|
|
406
|
+
evennessPlanes: new l.Uniform([]),
|
|
407
|
+
evennessPlaneDepth: new l.Uniform(0)
|
|
321
408
|
},
|
|
322
409
|
defines: {
|
|
323
410
|
USE_PLANE_DISTANCE: !1
|
|
324
411
|
}
|
|
325
|
-
},
|
|
412
|
+
}, tn = (
|
|
326
413
|
/** @class */
|
|
327
414
|
(function(i) {
|
|
328
|
-
|
|
415
|
+
B(e, i);
|
|
329
416
|
function e() {
|
|
330
|
-
var n = i.call(this,
|
|
417
|
+
var n = i.call(this, L) || this;
|
|
331
418
|
return Object.defineProperties(n, {
|
|
332
419
|
evennessPlane: {
|
|
333
420
|
get: function() {
|
|
@@ -336,21 +423,21 @@ var I = `
|
|
|
336
423
|
points: this.uniforms.evennessPoints.value
|
|
337
424
|
};
|
|
338
425
|
},
|
|
339
|
-
set: function(
|
|
340
|
-
var
|
|
341
|
-
if (
|
|
342
|
-
|
|
343
|
-
var
|
|
426
|
+
set: function(o) {
|
|
427
|
+
var t = o.points, r = o.depth, s = !1;
|
|
428
|
+
if (t.length !== 0 && t.length % 4 === 0) {
|
|
429
|
+
s = !0;
|
|
430
|
+
var f = t[0], c = t[1], a = t[2], u = t[3], v = new l.Vector3().subVectors(c, f), h = new l.Vector3().subVectors(a, f), m = new l.Vector3().crossVectors(v, h).normalize(), y = -m.dot(f), p = r, g = f.clone().add(m.clone().negate().multiplyScalar(p)), d = f.clone().add(m.clone().multiplyScalar(p)), x = c.clone().add(m.clone().negate().multiplyScalar(p)), P = c.clone().add(m.clone().multiplyScalar(p)), w = a.clone().add(m.clone().negate().multiplyScalar(p)), E = a.clone().add(m.clone().multiplyScalar(p)), b = u.clone().add(m.clone().negate().multiplyScalar(p)), C = u.clone().add(m.clone().multiplyScalar(p)), S = new l.Plane().setFromCoplanarPoints(d, P, E), _ = new l.Plane().setFromCoplanarPoints(w, x, g), z = new l.Plane().setFromCoplanarPoints(P, d, g), N = new l.Plane().setFromCoplanarPoints(b, C, E), D = new l.Plane().setFromCoplanarPoints(E, P, x), O = new l.Plane().setFromCoplanarPoints(g, d, C);
|
|
344
431
|
this.uniforms.evennessPlanes.value = [
|
|
432
|
+
{ normal: S.normal, constant: S.constant },
|
|
433
|
+
{ normal: _.normal, constant: _.constant },
|
|
345
434
|
{ normal: z.normal, constant: z.constant },
|
|
346
435
|
{ normal: N.normal, constant: N.constant },
|
|
347
|
-
{ normal:
|
|
348
|
-
{ normal: O.normal, constant: O.constant }
|
|
349
|
-
|
|
350
|
-
{ normal: D.normal, constant: D.constant }
|
|
351
|
-
], this.uniforms.evennessPlaneDepth.value = l, this.uniforms.evennessPlaneNormal.value = c, this.uniforms.evennessPlaneConstant.value = h;
|
|
436
|
+
{ normal: D.normal, constant: D.constant },
|
|
437
|
+
{ normal: O.normal, constant: O.constant }
|
|
438
|
+
], this.uniforms.evennessPlaneDepth.value = r, this.uniforms.evennessPlaneNormal.value = m, this.uniforms.evennessPlaneConstant.value = y;
|
|
352
439
|
}
|
|
353
|
-
this.defines.USE_PLANE_DISTANCE =
|
|
440
|
+
this.defines.USE_PLANE_DISTANCE = s, this.needsUpdate = !0;
|
|
354
441
|
}
|
|
355
442
|
}
|
|
356
443
|
}), n.evennessPlane = {
|
|
@@ -359,8 +446,8 @@ var I = `
|
|
|
359
446
|
}, n;
|
|
360
447
|
}
|
|
361
448
|
return e;
|
|
362
|
-
})(
|
|
363
|
-
),
|
|
449
|
+
})(F)
|
|
450
|
+
), j = `
|
|
364
451
|
#if NUM_SWEEP_OBJECTS > 0
|
|
365
452
|
uniform float sweepProgress;
|
|
366
453
|
uniform float sweepRange;
|
|
@@ -373,7 +460,7 @@ var I = `
|
|
|
373
460
|
};
|
|
374
461
|
uniform SWEEP_OBJECT sweepBoxs[NUM_SWEEP_OBJECTS];
|
|
375
462
|
#endif
|
|
376
|
-
`,
|
|
463
|
+
`, J = `
|
|
377
464
|
|
|
378
465
|
#if NUM_SWEEP_OBJECTS > 0
|
|
379
466
|
#pragma unroll_loop_start
|
|
@@ -406,25 +493,25 @@ var I = `
|
|
|
406
493
|
}
|
|
407
494
|
#pragma unroll_loop_end
|
|
408
495
|
#endif
|
|
409
|
-
`,
|
|
496
|
+
`, H = "", rn = (
|
|
410
497
|
/** @class */
|
|
411
498
|
(function(i) {
|
|
412
|
-
|
|
499
|
+
B(e, i);
|
|
413
500
|
function e() {
|
|
414
501
|
var n = i.call(this, {
|
|
415
502
|
type: ["basic", "phong", "pointcloud"],
|
|
416
503
|
fragment: {
|
|
417
|
-
mainBefore:
|
|
418
|
-
mainStart:
|
|
419
|
-
mainEnd:
|
|
504
|
+
mainBefore: j,
|
|
505
|
+
mainStart: H,
|
|
506
|
+
mainEnd: J
|
|
420
507
|
},
|
|
421
508
|
uniforms: {
|
|
422
|
-
sweepProgress: new
|
|
423
|
-
sweepRange: new
|
|
424
|
-
sweepBoxs: new
|
|
425
|
-
interval: new
|
|
509
|
+
sweepProgress: new l.Uniform(0),
|
|
510
|
+
sweepRange: new l.Uniform(0),
|
|
511
|
+
sweepBoxs: new l.Uniform([]),
|
|
512
|
+
interval: new l.Uniform(0.04),
|
|
426
513
|
// 线间距
|
|
427
|
-
threshold: new
|
|
514
|
+
threshold: new l.Uniform(2e-3)
|
|
428
515
|
// 线宽
|
|
429
516
|
},
|
|
430
517
|
defines: {
|
|
@@ -436,19 +523,19 @@ var I = `
|
|
|
436
523
|
get: function() {
|
|
437
524
|
return this.uniforms.sweepBoxs.value;
|
|
438
525
|
},
|
|
439
|
-
set: function(
|
|
440
|
-
var
|
|
441
|
-
|
|
526
|
+
set: function(o) {
|
|
527
|
+
var t = o.length;
|
|
528
|
+
t > 0 && (this.defines.NUM_SWEEP_OBJECTS = t, this.needsUpdate = !0, this.uniforms.sweepBoxs.value = o);
|
|
442
529
|
}
|
|
443
530
|
}
|
|
444
531
|
}), n.sweepBoxs = [], n;
|
|
445
532
|
}
|
|
446
|
-
return e.prototype.onBeforeCompile = function(n,
|
|
447
|
-
var
|
|
448
|
-
n.vertexShader = n.vertexShader.replace(/NUM_SWEEP_OBJECTS/g,
|
|
533
|
+
return e.prototype.onBeforeCompile = function(n, o) {
|
|
534
|
+
var t = String(this.sweepBoxs.length);
|
|
535
|
+
n.vertexShader = n.vertexShader.replace(/NUM_SWEEP_OBJECTS/g, t), n.fragmentShader = n.fragmentShader.replace(/NUM_SWEEP_OBJECTS/g, t);
|
|
449
536
|
}, e;
|
|
450
|
-
})(
|
|
451
|
-
),
|
|
537
|
+
})(F)
|
|
538
|
+
), G = `
|
|
452
539
|
uniform float pointCloudExpand_progress;
|
|
453
540
|
|
|
454
541
|
vec4 pointCloudExpand_permute(vec4 x) { return mod(((x * 34.0) + 1.0) * x, 289.0); }
|
|
@@ -521,7 +608,7 @@ float pointCloudExpand_gln_simplex(vec3 v) {
|
|
|
521
608
|
m = m * m;
|
|
522
609
|
return 42.0 * dot(m * m, vec4(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3)));
|
|
523
610
|
}
|
|
524
|
-
`,
|
|
611
|
+
`, q = `
|
|
525
612
|
float pointCloudExpand_sizeScale = 1.0;
|
|
526
613
|
float pointCloudExpand_sizeBasis = 0.0;
|
|
527
614
|
vec4 pointCloudExpand_basis = vec4((modelBoundingMax + modelBoundingMin) / 2.0, 1.0);
|
|
@@ -535,19 +622,19 @@ float pointCloudExpand_progress2 = step(pointCloudExpand_progress, 1.0 - pointCl
|
|
|
535
622
|
pointCloudExpand_sizeBasis = mix(0.1 * step(abs(pointCloudExpand_noise), 0.5 / pointCloudExpand_boundingRadius), pointCloudExpand_sizeBasis, pointCloudExpand_progress2);
|
|
536
623
|
gl_PointSize = gl_PointSize * pointCloudExpand_sizeScale + pointCloudExpand_sizeBasis;
|
|
537
624
|
vPointSize = gl_PointSize;
|
|
538
|
-
`,
|
|
625
|
+
`, an = (
|
|
539
626
|
/** @class */
|
|
540
627
|
(function(i) {
|
|
541
|
-
|
|
628
|
+
B(e, i);
|
|
542
629
|
function e() {
|
|
543
630
|
return i.call(this, {
|
|
544
631
|
type: ["pointcloud"],
|
|
545
632
|
vertex: {
|
|
546
|
-
mainBefore:
|
|
547
|
-
mainEnd:
|
|
633
|
+
mainBefore: G,
|
|
634
|
+
mainEnd: q
|
|
548
635
|
},
|
|
549
636
|
uniforms: {
|
|
550
|
-
pointCloudExpand_progress: new
|
|
637
|
+
pointCloudExpand_progress: new l.Uniform(0)
|
|
551
638
|
}
|
|
552
639
|
}) || this;
|
|
553
640
|
}
|
|
@@ -561,8 +648,115 @@ vPointSize = gl_PointSize;
|
|
|
561
648
|
enumerable: !1,
|
|
562
649
|
configurable: !0
|
|
563
650
|
}), e;
|
|
564
|
-
})(
|
|
565
|
-
)
|
|
651
|
+
})(F)
|
|
652
|
+
);
|
|
653
|
+
const U = `(function(){"use strict";function P(n){onmessage=function(a){Promise.resolve(a.data).then(function(t){return n(t)}).then(function(t){var v=t.output,r=t.transfer;return postMessage(v,r)}).catch(function(t){return postMessage({$$error:t})})}}function y(n,a,t){var v=new OffscreenCanvas(a,t),r=v.getContext("2d");if(!r)throw new Error("Failed to get canvas context");r.clearRect(0,0,a,t),r.fillStyle="rgba(0,0,0,1.0)",r.beginPath();var o=n[0][0],i=n[0][0],u=n[0][1],m=n[0][1];n.forEach(function(e){var f=e[0],s=e[1];o=Math.min(o,f),i=Math.max(i,f),u=Math.min(u,s),m=Math.max(m,s)});var g=i-o,c=m-u,h=g>=c?a/g:a/c,x=n.map(function(e){var f=e[0]-o,s=e[1]-u;return[f,s]}),l=x.map(function(e){return[e[0]*h,e[1]*h]});return l.forEach(function(e,f){var s=e[0],D=e[1];f===0?r.moveTo(s,D):r.lineTo(s,D)}),r.closePath(),r.fill(),r.getImageData(0,0,a,t)}function M(n,a,t){for(var v=new ImageData(a,t),r=n.map(function(s){return y(s.polygon,s.width,s.height)}),o=0;o<a;o++)for(var i=0;i<t;i++){for(var u=0,m=0,g=0,c=0;c<r.length;c++){var h=r[c].data,x=(o+i*a)*4;if(h[x+3]===255){var l=c%8,e=Math.floor(c/8);e===0?u=u|1<<l:e===1?m=m|1<<l:e===2&&(g=g|1<<l)}}var f=(o+i*a)*4;v.data[f]=u,v.data[f+1]=m,v.data[f+2]=g,v.data[f+3]=255}return v}P(function(n){return Promise.resolve(n).then(function(a){var t=a.canvasDataList,v=a.width,r=a.height,o=M(t,v,r);return{output:{imageData:o},transfer:[o.data.buffer]}})})})();
|
|
654
|
+
`, T = typeof self != "undefined" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", U], { type: "text/javascript;charset=utf-8" });
|
|
655
|
+
function $(i) {
|
|
656
|
+
let e;
|
|
657
|
+
try {
|
|
658
|
+
if (e = T && (self.URL || self.webkitURL).createObjectURL(T), !e) throw "";
|
|
659
|
+
const n = new Worker(e, {
|
|
660
|
+
name: i == null ? void 0 : i.name
|
|
661
|
+
});
|
|
662
|
+
return n.addEventListener("error", () => {
|
|
663
|
+
(self.URL || self.webkitURL).revokeObjectURL(e);
|
|
664
|
+
}), n;
|
|
665
|
+
} catch (n) {
|
|
666
|
+
return new Worker(
|
|
667
|
+
"data:text/javascript;charset=utf-8," + encodeURIComponent(U),
|
|
668
|
+
{
|
|
669
|
+
name: i == null ? void 0 : i.name
|
|
670
|
+
}
|
|
671
|
+
);
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
var Y = (
|
|
675
|
+
/** @class */
|
|
676
|
+
(function() {
|
|
677
|
+
function i(e, n) {
|
|
678
|
+
this.disposed = !1, this.pool = n, this.workerCreator = e, this.queue = [], this.workers = [], this.workerResolvers = [], this.workerStatus = 0;
|
|
679
|
+
}
|
|
680
|
+
return i.prototype.setWorkerCreator = function(e) {
|
|
681
|
+
this.workerCreator = e;
|
|
682
|
+
}, i.prototype.initWorker = function(e) {
|
|
683
|
+
if (!this.workerCreator)
|
|
684
|
+
throw new Error("workerCreator is not defined");
|
|
685
|
+
if (!this.workers[e]) {
|
|
686
|
+
var n = this.workerCreator(e);
|
|
687
|
+
n.addEventListener("message", this.onMessage.bind(this, e)), this.workers[e] = n;
|
|
688
|
+
}
|
|
689
|
+
}, i.prototype.getIdleWorker = function() {
|
|
690
|
+
for (var e = 0; e < this.pool; e++)
|
|
691
|
+
if (!(this.workerStatus & 1 << e))
|
|
692
|
+
return e;
|
|
693
|
+
return -1;
|
|
694
|
+
}, i.prototype.onMessage = function(e, n) {
|
|
695
|
+
var o = this.workerResolvers[e];
|
|
696
|
+
if (n.data && "$$error" in n.data ? o == null || o.reject(n.data.$$error) : o == null || o.resolve(n.data), this.workerResolvers[e] = void 0, this.queue.length) {
|
|
697
|
+
var t = this.queue.shift(), r = t.resolve, s = t.reject, f = t.input, c = t.transfer;
|
|
698
|
+
this.workerResolvers[e] = { resolve: r, reject: s }, this.workers[e].postMessage(f, c);
|
|
699
|
+
} else
|
|
700
|
+
this.workerStatus ^= 1 << e;
|
|
701
|
+
}, i.prototype.postMessage = function(e, n) {
|
|
702
|
+
var o = this;
|
|
703
|
+
return n === void 0 && (n = []), new Promise(function(t, r) {
|
|
704
|
+
if (o.disposed) {
|
|
705
|
+
r(new Error("disposed"));
|
|
706
|
+
return;
|
|
707
|
+
}
|
|
708
|
+
var s = o.getIdleWorker();
|
|
709
|
+
s !== -1 ? (o.initWorker(s), o.workerStatus |= 1 << s, o.workerResolvers[s] = { resolve: t, reject: r }, o.workers[s].postMessage(e, n)) : o.queue.push({ resolve: t, reject: r, input: e, transfer: n });
|
|
710
|
+
});
|
|
711
|
+
}, i.prototype.dispose = function() {
|
|
712
|
+
this.disposed = !0, this.workers.forEach(function(e) {
|
|
713
|
+
e.terminate();
|
|
714
|
+
}), this.workers.length = 0, this.workerResolvers.forEach(function(e) {
|
|
715
|
+
e == null || e.reject(new Error("disposed"));
|
|
716
|
+
}), this.workerResolvers.length = 0, this.queue.forEach(function(e) {
|
|
717
|
+
e.reject(new Error("disposed"));
|
|
718
|
+
}), this.queue.length = 0, this.workerStatus = 0;
|
|
719
|
+
}, i;
|
|
720
|
+
})()
|
|
721
|
+
);
|
|
722
|
+
function sn(i) {
|
|
723
|
+
if (i.length < 3)
|
|
724
|
+
throw new Error("At least 3 points are required to compute alignment matrix");
|
|
725
|
+
var e = i[0], n = i[1], o = i[2], t = new l.Vector3().subVectors(n, e), r = new l.Vector3().subVectors(o, e), s = new l.Vector3().crossVectors(t, r);
|
|
726
|
+
if (s.lengthSq() < 1e-4)
|
|
727
|
+
for (var f = 3; f < i.length && (o = i[f], r = new l.Vector3().subVectors(o, e), s = new l.Vector3().crossVectors(t, r), !(s.lengthSq() >= 1e-4)); f++)
|
|
728
|
+
;
|
|
729
|
+
if (s.lengthSq() < 1e-4)
|
|
730
|
+
throw new Error("All points are collinear, cannot compute normal");
|
|
731
|
+
s.normalize();
|
|
732
|
+
var c = new l.Vector3();
|
|
733
|
+
i.forEach(function(w) {
|
|
734
|
+
return c.add(w);
|
|
735
|
+
}), c.divideScalar(i.length);
|
|
736
|
+
var a = new l.Vector3(0, 1, 0), u = new l.Quaternion(), v = s.dot(a);
|
|
737
|
+
if (!(Math.abs(v - 1) < 1e-4)) if (Math.abs(v + 1) < 1e-4) {
|
|
738
|
+
var h = new l.Vector3(1, 0, 0);
|
|
739
|
+
u.setFromAxisAngle(h, Math.PI);
|
|
740
|
+
} else {
|
|
741
|
+
var h = new l.Vector3().crossVectors(s, a).normalize(), m = Math.acos(v);
|
|
742
|
+
u.setFromAxisAngle(h, m);
|
|
743
|
+
}
|
|
744
|
+
var y = new l.Matrix4().makeTranslation(-c.x, -c.y, -c.z), p = new l.Matrix4().makeRotationFromQuaternion(u), g = new l.Matrix4();
|
|
745
|
+
g.multiplyMatrices(p, y);
|
|
746
|
+
var d = i.map(function(w) {
|
|
747
|
+
var E = w.clone().applyMatrix4(g);
|
|
748
|
+
return [E.x, E.z];
|
|
749
|
+
});
|
|
750
|
+
if (d.length > 0) {
|
|
751
|
+
var x = d[0], P = d[d.length - 1];
|
|
752
|
+
(x[0] !== P[0] || x[1] !== P[1]) && d.push([x[0], x[1]]);
|
|
753
|
+
}
|
|
754
|
+
return {
|
|
755
|
+
transformMatrix: g,
|
|
756
|
+
points2D: d
|
|
757
|
+
};
|
|
758
|
+
}
|
|
759
|
+
var Q = `
|
|
566
760
|
uniform sampler2D polygonTexture;
|
|
567
761
|
|
|
568
762
|
struct PolygonClipper {
|
|
@@ -571,12 +765,13 @@ vPointSize = gl_PointSize;
|
|
|
571
765
|
vec2 minPos;
|
|
572
766
|
float polygonScale;
|
|
573
767
|
bool cutOutSide;
|
|
768
|
+
float floorIndex;
|
|
574
769
|
};
|
|
575
770
|
|
|
576
771
|
#if NUM_POLYGON_CLIPPER > 0
|
|
577
772
|
uniform PolygonClipper polygonClippers[NUM_POLYGON_CLIPPER];
|
|
578
773
|
#endif
|
|
579
|
-
`,
|
|
774
|
+
`, K = `
|
|
580
775
|
|
|
581
776
|
for(int i = 0; i < NUM_POLYGON_CLIPPER; i++){
|
|
582
777
|
PolygonClipper polygonClipper = polygonClippers[i];
|
|
@@ -585,6 +780,13 @@ vPointSize = gl_PointSize;
|
|
|
585
780
|
vec2 minPos = polygonClipper.minPos;
|
|
586
781
|
float polygonScale = polygonClipper.polygonScale;
|
|
587
782
|
bool cutOutSide = polygonClipper.cutOutSide;
|
|
783
|
+
float clipperFloorIndex = polygonClipper.floorIndex;
|
|
784
|
+
|
|
785
|
+
// 楼层判断:如果 floorIndex < 0,对所有楼层生效;否则只对特定楼层生效
|
|
786
|
+
bool isFloorMatch = clipperFloorIndex < 0.0 || abs(floorIndex - clipperFloorIndex) < 1.0;
|
|
787
|
+
if (!isFloorMatch) {
|
|
788
|
+
continue;
|
|
789
|
+
}
|
|
588
790
|
|
|
589
791
|
vec4 worldPosition = vFinalPosition;
|
|
590
792
|
vec4 positionInPolygonSpace = polygonTransformInverse * worldPosition;
|
|
@@ -646,11 +848,11 @@ vPointSize = gl_PointSize;
|
|
|
646
848
|
}
|
|
647
849
|
}
|
|
648
850
|
|
|
649
|
-
`,
|
|
851
|
+
`, Z = (
|
|
650
852
|
/** @class */
|
|
651
853
|
(function() {
|
|
652
854
|
function i() {
|
|
653
|
-
this.canvasCache = /* @__PURE__ */ new Map(), this.canvas = document.createElement("canvas"), this.canvas.width = 512, this.canvas.height = 512, this.polygonTexture = new
|
|
855
|
+
this.canvasCache = /* @__PURE__ */ new Map(), this.canvas = document.createElement("canvas"), this.canvas.width = 512, this.canvas.height = 512, this.polygonTexture = new l.CanvasTexture(this.canvas), this.polygonCount = 0;
|
|
654
856
|
}
|
|
655
857
|
return i.prototype.setSize = function(e) {
|
|
656
858
|
this.canvas.width = e, this.canvas.height = e;
|
|
@@ -658,120 +860,154 @@ vPointSize = gl_PointSize;
|
|
|
658
860
|
var n = JSON.stringify(e);
|
|
659
861
|
if (this.canvasCache.has(n))
|
|
660
862
|
return this.canvasCache.get(n);
|
|
661
|
-
var
|
|
662
|
-
|
|
663
|
-
var
|
|
664
|
-
if (!
|
|
863
|
+
var o = document.createElement("canvas");
|
|
864
|
+
o.width = this.canvas.width, o.height = this.canvas.height;
|
|
865
|
+
var t = o.getContext("2d");
|
|
866
|
+
if (!t)
|
|
665
867
|
throw new Error("Failed to get canvas context");
|
|
666
868
|
if (this.polygonCount >= 24)
|
|
667
869
|
throw new Error("polygon count exceed 24, please clear the canvas");
|
|
668
|
-
|
|
669
|
-
var
|
|
670
|
-
e.forEach(function(
|
|
671
|
-
var
|
|
672
|
-
|
|
870
|
+
t.clearRect(0, 0, this.canvas.width, this.canvas.height), t.fillStyle = "rgba(0,0,0,1.0)", t.beginPath();
|
|
871
|
+
var r = e[0][0], s = e[0][0], f = e[0][1], c = e[0][1];
|
|
872
|
+
e.forEach(function(p) {
|
|
873
|
+
var g = p[0], d = p[1];
|
|
874
|
+
r = Math.min(r, g), s = Math.max(s, g), f = Math.min(f, d), c = Math.max(c, d);
|
|
673
875
|
});
|
|
674
|
-
var
|
|
675
|
-
var
|
|
676
|
-
return [
|
|
677
|
-
}),
|
|
678
|
-
return [
|
|
876
|
+
var a = s - r, u = c - f, v = this.canvas.width, h = a >= u ? v / a : v / u, m = e.map(function(p) {
|
|
877
|
+
var g = p[0] - r, d = p[1] - f;
|
|
878
|
+
return [g, d];
|
|
879
|
+
}), y = m.map(function(p) {
|
|
880
|
+
return [p[0] * h, p[1] * h];
|
|
679
881
|
});
|
|
680
|
-
return
|
|
681
|
-
var
|
|
682
|
-
|
|
683
|
-
}),
|
|
882
|
+
return y.forEach(function(p, g) {
|
|
883
|
+
var d = p[0], x = p[1];
|
|
884
|
+
g === 0 ? t.moveTo(d, x) : t.lineTo(d, x);
|
|
885
|
+
}), t.closePath(), t.fill(), this.polygonCount++, this.canvasCache.set(n, o), o;
|
|
684
886
|
}, i.generatePolygonGeometry = function(e, n) {
|
|
685
|
-
for (var
|
|
686
|
-
return [
|
|
687
|
-
}),
|
|
688
|
-
return [
|
|
689
|
-
}),
|
|
690
|
-
|
|
691
|
-
for (var
|
|
692
|
-
|
|
693
|
-
for (var
|
|
694
|
-
|
|
695
|
-
|
|
887
|
+
for (var o = new l.BufferGeometry(), t = e.slice(0, -1), r = t.map(function(h) {
|
|
888
|
+
return [h[0], 0, h[1]];
|
|
889
|
+
}), s = t.map(function(h) {
|
|
890
|
+
return [h[0], n, h[1]];
|
|
891
|
+
}), f = I(I([], r, !0), s, !0), c = t.length, a = [], u = 1; u < c - 1; u++)
|
|
892
|
+
a.push(0, u, u + 1);
|
|
893
|
+
for (var u = 1; u < c - 1; u++)
|
|
894
|
+
a.push(c, c + u, c + u + 1);
|
|
895
|
+
for (var u = 0; u < c; u++) {
|
|
896
|
+
var v = (u + 1) % c;
|
|
897
|
+
a.push(u, v, c + u), a.push(v, c + v, c + u);
|
|
898
|
+
}
|
|
899
|
+
return o.setAttribute("position", new l.Float32BufferAttribute(f.flat(), 3)), o.setIndex(a), o.computeVertexNormals(), o;
|
|
696
900
|
}, i.prototype.generatePolygonTexture = function(e) {
|
|
697
901
|
var n = this.canvas.getContext("2d", {
|
|
698
902
|
willReadFrequently: !0
|
|
699
903
|
});
|
|
700
904
|
if (!n)
|
|
701
905
|
throw new Error("Failed to get canvas context");
|
|
702
|
-
for (var
|
|
703
|
-
for (var
|
|
704
|
-
for (var
|
|
705
|
-
var
|
|
706
|
-
if (!
|
|
906
|
+
for (var o = n.createImageData(this.canvas.width, this.canvas.height), t = 0; t < this.canvas.width; t++)
|
|
907
|
+
for (var r = 0; r < this.canvas.height; r++) {
|
|
908
|
+
for (var s = 0, f = 0, c = 0, a = 0; a < e.length; a++) {
|
|
909
|
+
var u = e[a].getContext("2d", { willReadFrequently: !0 });
|
|
910
|
+
if (!u)
|
|
707
911
|
throw new Error("Failed to get canvas context");
|
|
708
|
-
var
|
|
709
|
-
if (
|
|
710
|
-
var
|
|
711
|
-
|
|
912
|
+
var v = u.getImageData(t, r, 1, 1).data;
|
|
913
|
+
if (v[3] === 255) {
|
|
914
|
+
var h = a % 8, m = Math.floor(a / 8);
|
|
915
|
+
m === 0 ? s = s | 1 << h : m === 1 ? f = f | 1 << h : m === 2 && (c = c | 1 << h);
|
|
712
916
|
}
|
|
713
917
|
}
|
|
714
|
-
var
|
|
715
|
-
|
|
918
|
+
var y = (t + r * this.canvas.width) * 4;
|
|
919
|
+
o.data[y] = s, o.data[y + 1] = f, o.data[y + 2] = c, o.data[y + 3] = 255;
|
|
716
920
|
}
|
|
717
|
-
return n.putImageData(
|
|
921
|
+
return n.putImageData(o, 0, 0), new l.CanvasTexture(this.canvas);
|
|
718
922
|
}, i;
|
|
719
923
|
})()
|
|
720
|
-
),
|
|
924
|
+
), ln = (
|
|
721
925
|
/** @class */
|
|
722
926
|
(function(i) {
|
|
723
|
-
|
|
724
|
-
function e() {
|
|
725
|
-
|
|
927
|
+
B(e, i);
|
|
928
|
+
function e(n) {
|
|
929
|
+
n === void 0 && (n = 512);
|
|
930
|
+
var o = i.call(this, {
|
|
726
931
|
type: ["basic", "phong", "pointcloud"],
|
|
727
932
|
fragment: {
|
|
728
|
-
mainBefore:
|
|
729
|
-
mainEnd:
|
|
933
|
+
mainBefore: Q,
|
|
934
|
+
mainEnd: K
|
|
730
935
|
},
|
|
731
936
|
uniforms: {
|
|
732
|
-
polygonClippers: new
|
|
733
|
-
polygonTexture: new
|
|
937
|
+
polygonClippers: new l.Uniform([]),
|
|
938
|
+
polygonTexture: new l.Uniform(null)
|
|
734
939
|
}
|
|
735
940
|
}) || this;
|
|
736
|
-
return
|
|
941
|
+
return o._polygonClippers = [], o.polygonGenerater = new Z(), o._radio = 512, o.radio = n, o.workerPool = new Y(function() {
|
|
942
|
+
return new $();
|
|
943
|
+
}, 1), o;
|
|
737
944
|
}
|
|
738
|
-
return
|
|
945
|
+
return e.prototype.setPolygonClippersAsync = function(n) {
|
|
946
|
+
return A(this, void 0, void 0, function() {
|
|
947
|
+
var o, t, r, s, f, c, a = this;
|
|
948
|
+
return k(this, function(u) {
|
|
949
|
+
switch (u.label) {
|
|
950
|
+
case 0:
|
|
951
|
+
return this._polygonClippers = n, o = this.uniforms, o.polygonClippers.value = n.map(function(v) {
|
|
952
|
+
var h = new l.Matrix4().getInverse(v.polygonTransform), m = v.polygonHeight, y = v.cutOutSide, p = v.polygon, g = v.floorIndex !== void 0 ? v.floorIndex : -1, d = p[0][0], x = p[0][0], P = p[0][1], w = p[0][1];
|
|
953
|
+
p.forEach(function(C) {
|
|
954
|
+
var S = C[0], _ = C[1];
|
|
955
|
+
d = Math.min(d, S), x = Math.max(x, S), P = Math.min(P, _), w = Math.max(w, _);
|
|
956
|
+
});
|
|
957
|
+
var E = new l.Vector2(d, P), b = x - d >= w - P ? x - d : w - P;
|
|
958
|
+
return {
|
|
959
|
+
polygonTransformInverse: h,
|
|
960
|
+
polygonHeight: m,
|
|
961
|
+
minPos: E,
|
|
962
|
+
polygonScale: b,
|
|
963
|
+
cutOutSide: y,
|
|
964
|
+
floorIndex: g
|
|
965
|
+
};
|
|
966
|
+
}), t = n.map(function(v) {
|
|
967
|
+
return {
|
|
968
|
+
polygon: v.polygon,
|
|
969
|
+
width: a.polygonGenerater.canvas.width,
|
|
970
|
+
height: a.polygonGenerater.canvas.height
|
|
971
|
+
};
|
|
972
|
+
}), [4, this.workerPool.postMessage({
|
|
973
|
+
canvasDataList: t,
|
|
974
|
+
width: this.polygonGenerater.canvas.width,
|
|
975
|
+
height: this.polygonGenerater.canvas.height
|
|
976
|
+
})];
|
|
977
|
+
case 1:
|
|
978
|
+
return r = u.sent(), s = document.createElement("canvas"), s.width = this.polygonGenerater.canvas.width, s.height = this.polygonGenerater.canvas.height, f = s.getContext("2d"), f && (f.putImageData(r.imageData, 0, 0), c = new l.CanvasTexture(s), c.minFilter = l.NearestFilter, c.magFilter = l.NearestFilter, this.uniforms.polygonTexture.value = c, this.needsUpdate = !0), [
|
|
979
|
+
2
|
|
980
|
+
/*return*/
|
|
981
|
+
];
|
|
982
|
+
}
|
|
983
|
+
});
|
|
984
|
+
});
|
|
985
|
+
}, Object.defineProperty(e.prototype, "polygonClippers", {
|
|
739
986
|
get: function() {
|
|
740
987
|
return this._polygonClippers;
|
|
741
988
|
},
|
|
742
989
|
set: function(n) {
|
|
743
990
|
this._polygonClippers = n;
|
|
744
|
-
var t = this.uniforms;
|
|
745
|
-
t.polygonClippers.value = n.map(function(p) {
|
|
746
|
-
var a = new r.Matrix4().getInverse(p.polygonTransform), g = p.polygonHeight, x = p.cutOutSide, c = p.polygon, h = c[0][0], s = c[0][0], d = c[0][1], f = c[0][1];
|
|
747
|
-
c.forEach(function(_) {
|
|
748
|
-
var P = _[0], w = _[1];
|
|
749
|
-
h = Math.min(h, P), s = Math.max(s, P), d = Math.min(d, w), f = Math.max(f, w);
|
|
750
|
-
});
|
|
751
|
-
var y = new r.Vector2(h, d), E = s - h >= f - d ? s - h : f - d;
|
|
752
|
-
return {
|
|
753
|
-
polygonTransformInverse: a,
|
|
754
|
-
polygonHeight: g,
|
|
755
|
-
minPos: y,
|
|
756
|
-
polygonScale: E,
|
|
757
|
-
cutOutSide: x
|
|
758
|
-
};
|
|
759
|
-
});
|
|
760
|
-
for (var o = [], l = 0; l < n.length; l++) {
|
|
761
|
-
var m = n[l].polygon, v = b.generatePolygonCanvas(m);
|
|
762
|
-
o.push(v);
|
|
763
|
-
}
|
|
764
|
-
var u = b.generatePolygonTexture(o);
|
|
765
|
-
this.uniforms.polygonTexture.value = u, this.needsUpdate = !0;
|
|
766
991
|
},
|
|
767
992
|
enumerable: !1,
|
|
768
993
|
configurable: !0
|
|
769
|
-
}), e.prototype
|
|
770
|
-
|
|
771
|
-
|
|
994
|
+
}), Object.defineProperty(e.prototype, "radio", {
|
|
995
|
+
get: function() {
|
|
996
|
+
return this._radio;
|
|
997
|
+
},
|
|
998
|
+
set: function(n) {
|
|
999
|
+
this._radio = n, this.polygonGenerater.setSize(n);
|
|
1000
|
+
},
|
|
1001
|
+
enumerable: !1,
|
|
1002
|
+
configurable: !0
|
|
1003
|
+
}), e.prototype.dispose = function() {
|
|
1004
|
+
this.workerPool.dispose();
|
|
1005
|
+
}, e.prototype.onBeforeCompile = function(n, o) {
|
|
1006
|
+
var t = String(this.polygonClippers.length);
|
|
1007
|
+
n.vertexShader = n.vertexShader.replace(/NUM_POLYGON_CLIPPER/g, t), n.fragmentShader = n.fragmentShader.replace(/NUM_POLYGON_CLIPPER/g, t);
|
|
772
1008
|
}, e;
|
|
773
|
-
})(
|
|
774
|
-
),
|
|
1009
|
+
})(F)
|
|
1010
|
+
), X = `
|
|
775
1011
|
#if NUM_SHINE_OBJECTS > 0
|
|
776
1012
|
uniform float shineProgress;
|
|
777
1013
|
struct SHINE_OBJECT {
|
|
@@ -780,7 +1016,7 @@ vPointSize = gl_PointSize;
|
|
|
780
1016
|
};
|
|
781
1017
|
uniform SHINE_OBJECT shineBoxes[NUM_SHINE_OBJECTS];
|
|
782
1018
|
#endif
|
|
783
|
-
`,
|
|
1019
|
+
`, nn = `
|
|
784
1020
|
#if NUM_SHINE_OBJECTS > 0
|
|
785
1021
|
#pragma unroll_loop_start
|
|
786
1022
|
for ( int i = 0; i < NUM_SHINE_OBJECTS; i ++ ) {
|
|
@@ -796,21 +1032,21 @@ vPointSize = gl_PointSize;
|
|
|
796
1032
|
}
|
|
797
1033
|
#pragma unroll_loop_end
|
|
798
1034
|
#endif
|
|
799
|
-
`,
|
|
1035
|
+
`, en = "", un = (
|
|
800
1036
|
/** @class */
|
|
801
1037
|
(function(i) {
|
|
802
|
-
|
|
1038
|
+
B(e, i);
|
|
803
1039
|
function e() {
|
|
804
1040
|
var n = i.call(this, {
|
|
805
1041
|
type: ["basic", "phong", "none"],
|
|
806
1042
|
fragment: {
|
|
807
|
-
mainBefore:
|
|
808
|
-
mainStart:
|
|
809
|
-
mainEnd:
|
|
1043
|
+
mainBefore: X,
|
|
1044
|
+
mainStart: en,
|
|
1045
|
+
mainEnd: nn
|
|
810
1046
|
},
|
|
811
1047
|
uniforms: {
|
|
812
|
-
shineProgress: new
|
|
813
|
-
shineBoxes: new
|
|
1048
|
+
shineProgress: new l.Uniform(0),
|
|
1049
|
+
shineBoxes: new l.Uniform([])
|
|
814
1050
|
},
|
|
815
1051
|
defines: {
|
|
816
1052
|
NUM_SHINE_OBJECTS: 0
|
|
@@ -821,24 +1057,25 @@ vPointSize = gl_PointSize;
|
|
|
821
1057
|
get: function() {
|
|
822
1058
|
return this.uniforms.shineBoxes.value;
|
|
823
1059
|
},
|
|
824
|
-
set: function(
|
|
825
|
-
var
|
|
826
|
-
|
|
1060
|
+
set: function(o) {
|
|
1061
|
+
var t = o.length;
|
|
1062
|
+
t > 0 && (this.defines.NUM_SHINE_OBJECTS = t, this.uniforms.shineBoxes.value = o);
|
|
827
1063
|
}
|
|
828
1064
|
}
|
|
829
1065
|
}), n.shineBoxes = [], n;
|
|
830
1066
|
}
|
|
831
|
-
return e.prototype.onBeforeCompile = function(n,
|
|
832
|
-
var
|
|
833
|
-
n.vertexShader = n.vertexShader.replace(/NUM_SHINE_OBJECTS/g,
|
|
1067
|
+
return e.prototype.onBeforeCompile = function(n, o) {
|
|
1068
|
+
var t = String(this.shineBoxes.length);
|
|
1069
|
+
n.vertexShader = n.vertexShader.replace(/NUM_SHINE_OBJECTS/g, t), n.fragmentShader = n.fragmentShader.replace(/NUM_SHINE_OBJECTS/g, t);
|
|
834
1070
|
}, e;
|
|
835
|
-
})(
|
|
1071
|
+
})(F)
|
|
836
1072
|
);
|
|
837
1073
|
export {
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
1074
|
+
tn as EvenessPlaneShader,
|
|
1075
|
+
an as PointCloudExpandShader,
|
|
1076
|
+
ln as PolygonCuterShader,
|
|
1077
|
+
Z as PolygonGenerater,
|
|
1078
|
+
un as ShineModelShader,
|
|
1079
|
+
rn as SweepModelShader,
|
|
1080
|
+
sn as computeAlignmentMatrix
|
|
844
1081
|
};
|