@anov/3d-ability 0.0.116 → 0.0.117
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/dist/business/Area/{Fence → fence}/FenceBase.js +38 -22
- package/dist/business/Area/fence/FenceBase.js.map +1 -0
- package/dist/business/Area/{Fence → fence}/fence_base_01.d.ts +2 -2
- package/dist/business/Area/{Fence → fence}/fence_base_01.js +18 -6
- package/dist/business/Area/fence/fence_base_01.js.map +1 -0
- package/dist/business/Area/{Fence → fence}/fence_feeting_01.d.ts +2 -2
- package/dist/business/Area/{Fence → fence}/fence_feeting_01.js +37 -7
- package/dist/business/Area/fence/fence_feeting_01.js.map +1 -0
- package/dist/business/Area/{Fence → fence}/fence_roll_01.d.ts +2 -2
- package/dist/business/Area/{Fence → fence}/fence_roll_01.js +38 -7
- package/dist/business/Area/fence/fence_roll_01.js.map +1 -0
- package/dist/business/Area/{FillArea → fillArea}/FillAreaBase.js.map +1 -1
- package/dist/business/Area/{FillArea → fillArea}/fillArea_face_01.d.ts +2 -3
- package/dist/business/Area/{FillArea → fillArea}/fillArea_face_01.js +7 -8
- package/dist/business/Area/fillArea/fillArea_face_01.js.map +1 -0
- package/dist/business/Area/{FillArea → fillArea}/fillArea_line_01.js +16 -8
- package/dist/business/Area/fillArea/fillArea_line_01.js.map +1 -0
- package/dist/business/Area/index.js +5 -5
- package/dist/business/Area/index.js.map +1 -1
- package/dist/business/Batch/index.d.ts +8 -0
- package/dist/business/Batch/index.js +80 -6
- package/dist/business/Batch/index.js.map +1 -1
- package/dist/business/Flyline/line/ArcLine.js +1 -1
- package/dist/business/Flyline/line/ArcLine.js.map +1 -1
- package/dist/business/Mark/index.js +1 -3
- package/dist/business/Mark/index.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.d.ts +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.js +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
- package/dist/business/Poi/index.js +4 -1
- package/dist/business/Poi/index.js.map +1 -1
- package/dist/business/Poi/link/Pyramid.d.ts +1 -0
- package/dist/business/Poi/link/Pyramid.js +41 -9
- package/dist/business/Poi/link/Pyramid.js.map +1 -1
- package/dist/business/Poi/particle/DynamicCircle.js +1 -1
- package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
- package/dist/business/Spline/index.d.ts +25 -10
- package/dist/business/Spline/index.js +222 -40
- package/dist/business/Spline/index.js.map +1 -1
- package/dist/business/Spline/types.d.ts +14 -8
- package/dist/business/Spline/types.js.map +1 -1
- package/dist/business/Utils/constant.js +2 -2
- package/dist/business/Utils/constant.js.map +1 -1
- package/dist/business/Utils/round-curve.d.ts +4 -2
- package/dist/business/Utils/round-curve.js +131 -2
- package/dist/business/Utils/round-curve.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +1 -1
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.d.ts +12 -2
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +107 -59
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
- package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
- package/dist/core/PostEffects/outlinePass.js +5 -1
- package/dist/core/PostEffects/outlinePass.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/sky.js +1 -1
- package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
- package/dist/core/WeatherSystem/sky/index.js +27 -20
- package/dist/core/WeatherSystem/sky/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/business/Area/Fence/FenceBase.js.map +0 -1
- package/dist/business/Area/Fence/fence_base_01.js.map +0 -1
- package/dist/business/Area/Fence/fence_feeting_01.js.map +0 -1
- package/dist/business/Area/Fence/fence_roll_01.js.map +0 -1
- package/dist/business/Area/FillArea/fillArea_face_01.js.map +0 -1
- package/dist/business/Area/FillArea/fillArea_line_01.js.map +0 -1
- package/dist/business/Utils/constant.d.ts +0 -1
- /package/dist/business/Area/{Fence → fence}/FenceBase.d.ts +0 -0
- /package/dist/business/Area/{FillArea → fillArea}/FillAreaBase.d.ts +0 -0
- /package/dist/business/Area/{FillArea → fillArea}/FillAreaBase.js +0 -0
- /package/dist/business/Area/{FillArea → fillArea}/fillArea_line_01.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_","Group","Vector3","ObjectLayer","FenceStrategy","base","_base","_callee","_callee$","_context","default","feeting","_feeting","_callee2","_callee2$","_context2","roll","_roll","_callee3","_callee3$","_context3","FillAreaStrategy","line","_line","_callee4","_callee4$","_context4","face","_face","_callee5","_callee5$","_context5","DEFAULT_OPTION","style","fence","uri","height","alpha","color","visible","fillArea","pos","surfaceSnap","posType","coordZType","path","points","position","corner","close","STYLE_DATA","area_base_01","area_feeting_01","area_roll_01","Area","_ObjectLayer","_inherits","_super","_createSuper","option","_this","_classCallCheck","_defineProperty","_assertThisInitialized","_initParam","_arrangePathParam","_path","_initializeMesh","_createClass","get","_mesh","_style","_fence","_fillArea","_surfaceSnap","set","_posType","_coordZType","_pathProxy","_resetFence","_resetFillArea","dispose","remove","_option","mergeWith","cloneDeep","_arrayMergeCustomizer","_this$_option","_createPathProxy","add","Array","isArray","_points","map","_corner","_close","console","_initializeMesh2","_callee6","_this$_option2","_this$_getCurrentStyl","currentFenceStyle","currentFillAreaStyle","_callee6$","_context6","_getCurrentStyle","_createFence","_fenceMesh","addReloadListener","createProxy","_createFillArea","_fillAreaMesh","_registerStrategy2","_callee7","StrategyManage","strategyClass","_callee7$","_context7","concat","_registerStrategy","_x","_x2","_createFence2","_callee8","Strategy","_callee8$","_context8","_objectSpread","_x3","_resetFence2","_callee9","_this$_getCurrentStyl2","_callee9$","_context9","_createFillArea2","_callee10","_this$_option3","mesh","_callee10$","_context10","_x4","_resetFillArea2","_callee11","_this$_getCurrentStyl3","_callee11$","_context11","_this2","Proxy","target","prop","objValue","srcValue","_STYLE_DATA$this$styl","_slicedToArray"],"sources":["../../../src/business/Area/index.ts"],"sourcesContent":["import _ from 'lodash'\nimport type { Mesh, Object3D } from '@anov/3d-core'\nimport { Group, Vector3, use } from '@anov/3d-core'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport type { FenceOption, FillAreaOption, Option } from './type'\n\nconst FenceStrategy = {\n base: async () => (await import('./Fence/fence_base_01')).default,\n feeting: async () => (await import('./Fence/fence_feeting_01')).default,\n roll: async () => (await import('./Fence/fence_roll_01')).default,\n}\nconst FillAreaStrategy = {\n line: async () => (await import('./FillArea/fillArea_line_01')).default,\n face: async () => (await import('./FillArea/fillArea_face_01')).default,\n}\nconst DEFAULT_OPTION = {\n style: 'area_base_01',\n fence: {\n uri: 'base',\n height: 70,\n alpha: 1,\n color: '#006CBF',\n visible: true,\n },\n fillArea: {\n uri: 'face',\n visible: true,\n alpha: 1,\n color: '#006CBF',\n pos: 'bottom',\n },\n surfaceSnap: false,\n posType: 0,\n coordZType: 0,\n path: {\n points: [\n {\n position: [-100, 0, 100],\n },\n {\n position: [100, 0, 100],\n },\n {\n position: [100, 0.00, -100],\n },\n {\n position: [-100, 0.00, -100],\n },\n ],\n corner: 10, // 圆角默认 10\n close: true, // 默认闭合\n },\n}\nconst STYLE_DATA = {\n area_base_01: ['base', ''],\n area_feeting_01: ['feeting', ''],\n area_roll_01: ['roll', ''],\n}\nclass Area extends ObjectLayer {\n private _mesh!: Group\n private _option: Option\n\n private _fenceMesh: Mesh & any\n private _fillAreaMesh: Mesh & any\n\n private _style: string\n private _surfaceSnap: boolean\n private _posType: number\n private _coordZType: number\n private _fence: FenceOption\n private _fenceProxy: FenceOption\n private _fillArea: FillAreaOption\n private _path: Option['path']\n private _pathProxy: Option['path']\n private _points!: Vector3[]\n private _corner: number\n private _close: boolean\n constructor(option: Option) {\n super()\n this._initParam(option)\n this._arrangePathParam(this._path)\n this._initializeMesh()\n }\n\n get mesh() {\n return this._mesh\n }\n\n get style(): string {\n return this._style\n }\n\n get fence(): FenceOption {\n // return this._fenceProxy\n return this._fence\n }\n\n get fillArea(): FillAreaOption {\n return this._fillArea\n }\n\n get surfaceSnap(): boolean {\n return this._surfaceSnap\n }\n\n set surfaceSnap(value: boolean) {\n if (this._surfaceSnap === value)\n return\n this._surfaceSnap = value\n }\n\n get posType(): number {\n return this._posType\n }\n\n set posType(value: number) {\n if (this._posType === value)\n return\n this._posType = value\n }\n\n get coordZType(): number {\n return this._coordZType\n }\n\n set coordZType(value: number) {\n if (this._coordZType === value)\n return\n this._coordZType = value\n }\n\n // 设置 path 时,返回代理对象\n set path(value: Option['path']) {\n if (this._path === value)\n return\n this._arrangePathParam(value)\n this._resetFence()\n this._resetFillArea()\n }\n\n // 获取 path 时,返回代理对象\n get path(): Option['path'] {\n return this._pathProxy // 返回代理对象\n }\n\n // 销毁\n dispose() {\n this.remove(this._mesh)\n }\n\n private _initParam(option: Option) {\n this._option = _.mergeWith(\n _.cloneDeep(DEFAULT_OPTION),\n option,\n this._arrayMergeCustomizer,\n )\n\n const { fence, fillArea } = this._option\n this._fence = fence\n this._fillArea = fillArea\n this._style = this._option.style\n this._path = this._option.path\n this._surfaceSnap = this._option.surfaceSnap\n this._posType = this._option.posType\n this._coordZType = this._option.coordZType\n this._createPathProxy()\n this._mesh = new Group()\n this.add(this._mesh)\n // this._createFenceProxy()\n }\n\n private _arrangePathParam(value: Option['path']) {\n // 确保 value 符合预期结构\n if (value && Array.isArray(value.points) && value.points.length >= 3) {\n const { points, corner, close } = value\n\n this._path = value // 更新 _path\n this._points = points.map(v => new Vector3(v.position[0], v.position[1], v.position[2])) // 使用 points 创建 Vector3 对象\n this._corner = corner // 更新圆角\n this._close = close // 更新闭合状态\n }\n\n else { console.error('Invalid path data: Ensure points has at least 3 elements') }\n }\n\n private async _initializeMesh() {\n const { fence, fillArea } = this._option\n const { currentFenceStyle, currentFillAreaStyle } = this._getCurrentStyle()\n if (currentFenceStyle) {\n this._fenceMesh = await this._createFence(currentFenceStyle)\n this._fenceMesh.visible = fence.visible\n this._fenceMesh.addReloadListener(this._resetFence)\n this._mesh.add(this._fenceMesh)\n this._fence = this.createProxy(this._fence, this._fenceMesh)\n }\n if (currentFillAreaStyle) {\n this._fillAreaMesh = await this._createFillArea(currentFillAreaStyle)\n this._fillAreaMesh.visible = fillArea.visible\n this._fillAreaMesh.addReloadListener(this._resetFillArea)\n this._mesh.add(this._fillAreaMesh)\n this._fillArea = this.createProxy(this._fillArea, this._fillAreaMesh)\n }\n // 统一更新矩阵\n // this._mesh.updateWorldMatrix(true, true)\n }\n\n // 注册样式\n private async _registerStrategy(style: string, StrategyManage: Object) {\n const strategyClass = StrategyManage[style]\n if (strategyClass)\n return await strategyClass()\n\n else\n throw new Error(`Style ${style} not found`)\n }\n\n // 创建围栏\n private async _createFence(style: string) {\n const { fence } = this._option\n const Strategy = await this._registerStrategy(style, FenceStrategy)\n const option = {\n points: this._points,\n corner: this._corner,\n close: this._close,\n ...fence,\n }\n return new Strategy(option, this)\n }\n\n private async _resetFence() {\n if (this._fenceMesh) {\n this._mesh.remove(this._fenceMesh)\n const { currentFenceStyle } = this._getCurrentStyle()\n this._fenceMesh = await this._createFence(currentFenceStyle)\n this._mesh.add(this._fenceMesh)\n this._fence = this.createProxy(this._fence, this._fenceMesh)\n }\n }\n\n // 创建封底\n private async _createFillArea(style: string) {\n const { fillArea, fence } = this._option\n const Strategy = await this._registerStrategy(style, FillAreaStrategy)\n const option = {\n points: this._points,\n corner: this._corner,\n close: this._close,\n ...fillArea,\n }\n const mesh = new Strategy(option, this)\n mesh.position.y = fillArea.pos === 'bottom' ? 0 : fence.height\n return mesh\n }\n\n private async _resetFillArea() {\n if (this._fillAreaMesh) {\n this._mesh.remove(this._fillAreaMesh)\n const { currentFillAreaStyle } = this._getCurrentStyle()\n this._fillAreaMesh = await this._createFillArea(currentFillAreaStyle)\n this._mesh.add(this._fillAreaMesh)\n this._fillArea = this.createProxy(this._fillArea, this._fillAreaMesh)\n }\n }\n\n private _createPathProxy() {\n // 创建代理,拦截对 _path 的修改\n this._pathProxy = new Proxy(this._path, {\n set: (target, prop, value) => {\n if (prop === 'corner')\n this._corner = value\n\n else if (prop === 'close')\n this._close = value\n\n else if (prop === 'points')\n this._points = value.map(v => new Vector3(v.position[0], v.position[1], v.position[2]))\n\n target[prop] = value // 更新值\n this._resetFence()\n this._resetFillArea()\n return true // 必须返回 true 表示操作成功\n },\n })\n }\n\n private _arrayMergeCustomizer(objValue, srcValue) {\n if (_.isArray(objValue) && srcValue)\n return srcValue\n }\n\n private _getCurrentStyle() {\n let currentFenceStyle = ''\n let currentFillAreaStyle = ''\n if (this.style === 'area_dynamic_mode') {\n currentFenceStyle = this._fence.uri\n currentFillAreaStyle = this._fillArea.uri\n }\n else {\n [currentFenceStyle, currentFillAreaStyle] = STYLE_DATA[this.style]\n }\n return { currentFenceStyle, currentFillAreaStyle }\n }\n}\n\nexport { Area }"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_","Group","Vector3","ObjectLayer","FenceStrategy","base","_base","_callee","_callee$","_context","default","feeting","_feeting","_callee2","_callee2$","_context2","roll","_roll","_callee3","_callee3$","_context3","FillAreaStrategy","line","_line","_callee4","_callee4$","_context4","face","_face","_callee5","_callee5$","_context5","DEFAULT_OPTION","style","fence","uri","height","alpha","color","visible","fillArea","pos","surfaceSnap","posType","coordZType","path","points","position","corner","close","STYLE_DATA","area_base_01","area_feeting_01","area_roll_01","Area","_ObjectLayer","_inherits","_super","_createSuper","option","_this","_classCallCheck","_defineProperty","_assertThisInitialized","_initParam","_arrangePathParam","_path","_initializeMesh","_createClass","get","_mesh","_style","_fence","_fillArea","_surfaceSnap","set","_posType","_coordZType","_pathProxy","_resetFence","_resetFillArea","dispose","remove","_option","mergeWith","cloneDeep","_arrayMergeCustomizer","_this$_option","_createPathProxy","add","Array","isArray","_points","map","_corner","_close","console","_initializeMesh2","_callee6","_this$_option2","_this$_getCurrentStyl","currentFenceStyle","currentFillAreaStyle","_callee6$","_context6","_getCurrentStyle","_createFence","_fenceMesh","addReloadListener","createProxy","_createFillArea","_fillAreaMesh","_registerStrategy2","_callee7","StrategyManage","strategyClass","_callee7$","_context7","concat","_registerStrategy","_x","_x2","_createFence2","_callee8","Strategy","_callee8$","_context8","_objectSpread","_x3","_resetFence2","_callee9","_this$_getCurrentStyl2","_callee9$","_context9","_createFillArea2","_callee10","_this$_option3","mesh","_callee10$","_context10","_x4","_resetFillArea2","_callee11","_this$_getCurrentStyl3","_callee11$","_context11","_this2","Proxy","target","prop","objValue","srcValue","_STYLE_DATA$this$styl","_slicedToArray"],"sources":["../../../src/business/Area/index.ts"],"sourcesContent":["import _ from 'lodash'\nimport type { Mesh, Object3D } from '@anov/3d-core'\nimport { Group, Vector3, use } from '@anov/3d-core'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport type { FenceOption, FillAreaOption, Option } from './type'\n\nconst FenceStrategy = {\n base: async () => (await import('./fence/fence_base_01')).default,\n feeting: async () => (await import('./fence/fence_feeting_01')).default,\n roll: async () => (await import('./fence/fence_roll_01')).default,\n}\nconst FillAreaStrategy = {\n line: async () => (await import('./fillArea/fillArea_line_01')).default,\n face: async () => (await import('./fillArea/fillArea_face_01')).default,\n}\nconst DEFAULT_OPTION = {\n style: 'area_base_01',\n fence: {\n uri: 'base',\n height: 70,\n alpha: 1,\n color: '#006CBF',\n visible: true,\n },\n fillArea: {\n uri: 'face',\n visible: true,\n alpha: 1,\n color: '#006CBF',\n pos: 'bottom',\n },\n surfaceSnap: false,\n posType: 0,\n coordZType: 0,\n path: {\n points: [\n {\n position: [-100, 0, 100],\n },\n {\n position: [100, 0, 100],\n },\n {\n position: [100, 0.00, -100],\n },\n {\n position: [-100, 0.00, -100],\n },\n ],\n corner: 10, // 圆角默认 10\n close: true, // 默认闭合\n },\n}\nconst STYLE_DATA = {\n area_base_01: ['base', ''],\n area_feeting_01: ['feeting', ''],\n area_roll_01: ['roll', ''],\n}\nclass Area extends ObjectLayer {\n private _mesh!: Group\n private _option: Option\n\n private _fenceMesh: Mesh & any\n private _fillAreaMesh: Mesh & any\n\n private _style: string\n private _surfaceSnap: boolean\n private _posType: number\n private _coordZType: number\n private _fence: FenceOption\n private _fenceProxy: FenceOption\n private _fillArea: FillAreaOption\n private _path: Option['path']\n private _pathProxy: Option['path']\n private _points!: Vector3[]\n private _corner: number\n private _close: boolean\n constructor(option: Option) {\n super()\n this._initParam(option)\n this._arrangePathParam(this._path)\n this._initializeMesh()\n }\n\n get mesh() {\n return this._mesh\n }\n\n get style(): string {\n return this._style\n }\n\n get fence(): FenceOption {\n // return this._fenceProxy\n return this._fence\n }\n\n get fillArea(): FillAreaOption {\n return this._fillArea\n }\n\n get surfaceSnap(): boolean {\n return this._surfaceSnap\n }\n\n set surfaceSnap(value: boolean) {\n if (this._surfaceSnap === value)\n return\n this._surfaceSnap = value\n }\n\n get posType(): number {\n return this._posType\n }\n\n set posType(value: number) {\n if (this._posType === value)\n return\n this._posType = value\n }\n\n get coordZType(): number {\n return this._coordZType\n }\n\n set coordZType(value: number) {\n if (this._coordZType === value)\n return\n this._coordZType = value\n }\n\n // 设置 path 时,返回代理对象\n set path(value: Option['path']) {\n if (this._path === value)\n return\n this._arrangePathParam(value)\n this._resetFence()\n this._resetFillArea()\n }\n\n // 获取 path 时,返回代理对象\n get path(): Option['path'] {\n return this._pathProxy // 返回代理对象\n }\n\n // 销毁\n dispose() {\n this.remove(this._mesh)\n }\n\n private _initParam(option: Option) {\n this._option = _.mergeWith(\n _.cloneDeep(DEFAULT_OPTION),\n option,\n this._arrayMergeCustomizer,\n )\n\n const { fence, fillArea } = this._option\n this._fence = fence\n this._fillArea = fillArea\n this._style = this._option.style\n this._path = this._option.path\n this._surfaceSnap = this._option.surfaceSnap\n this._posType = this._option.posType\n this._coordZType = this._option.coordZType\n this._createPathProxy()\n this._mesh = new Group()\n this.add(this._mesh)\n // this._createFenceProxy()\n }\n\n private _arrangePathParam(value: Option['path']) {\n // 确保 value 符合预期结构\n if (value && Array.isArray(value.points) && value.points.length >= 3) {\n const { points, corner, close } = value\n\n this._path = value // 更新 _path\n this._points = points.map(v => new Vector3(v.position[0], v.position[1], v.position[2])) // 使用 points 创建 Vector3 对象\n this._corner = corner // 更新圆角\n this._close = close // 更新闭合状态\n }\n\n else { console.error('Invalid path data: Ensure points has at least 3 elements') }\n }\n\n private async _initializeMesh() {\n const { fence, fillArea } = this._option\n const { currentFenceStyle, currentFillAreaStyle } = this._getCurrentStyle()\n if (currentFenceStyle) {\n this._fenceMesh = await this._createFence(currentFenceStyle)\n this._fenceMesh.visible = fence.visible\n this._fenceMesh.addReloadListener(this._resetFence)\n this._mesh.add(this._fenceMesh)\n this._fence = this.createProxy(this._fence, this._fenceMesh)\n }\n if (currentFillAreaStyle) {\n this._fillAreaMesh = await this._createFillArea(currentFillAreaStyle)\n this._fillAreaMesh.visible = fillArea.visible\n this._fillAreaMesh.addReloadListener(this._resetFillArea)\n this._mesh.add(this._fillAreaMesh)\n this._fillArea = this.createProxy(this._fillArea, this._fillAreaMesh)\n }\n // 统一更新矩阵\n // this._mesh.updateWorldMatrix(true, true)\n }\n\n // 注册样式\n private async _registerStrategy(style: string, StrategyManage: Object) {\n const strategyClass = StrategyManage[style]\n if (strategyClass)\n return await strategyClass()\n\n else\n throw new Error(`Style ${style} not found`)\n }\n\n // 创建围栏\n private async _createFence(style: string) {\n const { fence } = this._option\n const Strategy = await this._registerStrategy(style, FenceStrategy)\n const option = {\n points: this._points,\n corner: this._corner,\n close: this._close,\n ...fence,\n }\n return new Strategy(option, this)\n }\n\n private async _resetFence() {\n if (this._fenceMesh) {\n this._mesh.remove(this._fenceMesh)\n const { currentFenceStyle } = this._getCurrentStyle()\n this._fenceMesh = await this._createFence(currentFenceStyle)\n this._mesh.add(this._fenceMesh)\n this._fence = this.createProxy(this._fence, this._fenceMesh)\n }\n }\n\n // 创建封底\n private async _createFillArea(style: string) {\n const { fillArea, fence } = this._option\n const Strategy = await this._registerStrategy(style, FillAreaStrategy)\n const option = {\n points: this._points,\n corner: this._corner,\n close: this._close,\n ...fillArea,\n }\n const mesh = new Strategy(option, this)\n mesh.position.y = fillArea.pos === 'bottom' ? 0 : fence.height\n return mesh\n }\n\n private async _resetFillArea() {\n if (this._fillAreaMesh) {\n this._mesh.remove(this._fillAreaMesh)\n const { currentFillAreaStyle } = this._getCurrentStyle()\n this._fillAreaMesh = await this._createFillArea(currentFillAreaStyle)\n this._mesh.add(this._fillAreaMesh)\n this._fillArea = this.createProxy(this._fillArea, this._fillAreaMesh)\n }\n }\n\n private _createPathProxy() {\n // 创建代理,拦截对 _path 的修改\n this._pathProxy = new Proxy(this._path, {\n set: (target, prop, value) => {\n if (prop === 'corner')\n this._corner = value\n\n else if (prop === 'close')\n this._close = value\n\n else if (prop === 'points')\n this._points = value.map(v => new Vector3(v.position[0], v.position[1], v.position[2]))\n\n target[prop] = value // 更新值\n this._resetFence()\n this._resetFillArea()\n return true // 必须返回 true 表示操作成功\n },\n })\n }\n\n private _arrayMergeCustomizer(objValue, srcValue) {\n if (_.isArray(objValue) && srcValue)\n return srcValue\n }\n\n private _getCurrentStyle() {\n let currentFenceStyle = ''\n let currentFillAreaStyle = ''\n if (this.style === 'area_dynamic_mode') {\n currentFenceStyle = this._fence.uri\n currentFillAreaStyle = this._fillArea.uri\n }\n else {\n [currentFenceStyle, currentFillAreaStyle] = STYLE_DATA[this.style]\n }\n return { currentFenceStyle, currentFillAreaStyle }\n }\n}\n\nexport { Area }"],"mappings":"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"}
|
|
@@ -21,6 +21,14 @@ export declare class Batch extends ObjectLayer implements BatchInterface {
|
|
|
21
21
|
set followTangent(newValue: boolean);
|
|
22
22
|
constructor(option: Option);
|
|
23
23
|
private init;
|
|
24
|
+
private isEffectivelyClosed;
|
|
25
|
+
/**
|
|
26
|
+
* 从曲线路径上每隔指定距离采样点
|
|
27
|
+
* @param {THREE.CurvePath} curvePath - Three.js的CurvePath对象(可以是曲线或直线组合)
|
|
28
|
+
* @param {Number} distance - 采样点之间的距离(单位:米)
|
|
29
|
+
* @return {Array<THREE.Vector3>} 采样点坐标数组
|
|
30
|
+
*/
|
|
31
|
+
private getPointsAtDistance;
|
|
24
32
|
private getAdaptiveSpacedPoints;
|
|
25
33
|
private handlePropertyUpdate;
|
|
26
34
|
private clearScene;
|
|
@@ -89,10 +89,12 @@ export var Batch = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
89
89
|
}, {
|
|
90
90
|
key: "init",
|
|
91
91
|
value: function init() {
|
|
92
|
-
var
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
var
|
|
92
|
+
var _points,
|
|
93
|
+
_this2 = this;
|
|
94
|
+
// 判断是否闭合
|
|
95
|
+
var isClosed = this.isEffectivelyClosed(this._path);
|
|
96
|
+
var points = [];
|
|
97
|
+
if (this.number > 0) points = this.getAdaptiveSpacedPoints(this.path, this.number);else if (this.span && this.span > 0) points = this.getPointsAtDistance(this.path, this.span);
|
|
96
98
|
this._mesh = new Group();
|
|
97
99
|
|
|
98
100
|
// 模型原始旋转(转换为四元数后叠加)
|
|
@@ -101,10 +103,10 @@ export var Batch = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
101
103
|
// 预创建可复用对象减少内存分配
|
|
102
104
|
var _tempTangent = new Vector3();
|
|
103
105
|
var _lookAtTarget = new Vector3();
|
|
104
|
-
points === null ||
|
|
106
|
+
(_points = points) === null || _points === void 0 || _points.forEach(function (point, index) {
|
|
105
107
|
var proxy = _this2._entity.clone();
|
|
106
108
|
proxy.visible = true;
|
|
107
|
-
proxy.position.
|
|
109
|
+
proxy.position.add(point);
|
|
108
110
|
if (_this2._followTangent) {
|
|
109
111
|
// 重置旋转
|
|
110
112
|
proxy.quaternion.identity();
|
|
@@ -123,6 +125,78 @@ export var Batch = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
123
125
|
});
|
|
124
126
|
this.add(this._mesh);
|
|
125
127
|
}
|
|
128
|
+
}, {
|
|
129
|
+
key: "isEffectivelyClosed",
|
|
130
|
+
value: function isEffectivelyClosed(curvePath) {
|
|
131
|
+
var tolerance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.01;
|
|
132
|
+
if (curvePath.closed) return true;
|
|
133
|
+
|
|
134
|
+
// 获取第一个点和最后一个点
|
|
135
|
+
var startPoint = curvePath.getPoint(0);
|
|
136
|
+
var endPoint = curvePath.getPoint(1);
|
|
137
|
+
|
|
138
|
+
// 计算距离
|
|
139
|
+
var distance = startPoint.distanceTo(endPoint);
|
|
140
|
+
|
|
141
|
+
// 如果距离小于容差,则认为是闭合的
|
|
142
|
+
return distance < tolerance;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* 从曲线路径上每隔指定距离采样点
|
|
147
|
+
* @param {THREE.CurvePath} curvePath - Three.js的CurvePath对象(可以是曲线或直线组合)
|
|
148
|
+
* @param {Number} distance - 采样点之间的距离(单位:米)
|
|
149
|
+
* @return {Array<THREE.Vector3>} 采样点坐标数组
|
|
150
|
+
*/
|
|
151
|
+
}, {
|
|
152
|
+
key: "getPointsAtDistance",
|
|
153
|
+
value: function getPointsAtDistance(curvePath, distance) {
|
|
154
|
+
// 确保参数有效
|
|
155
|
+
if (!curvePath || typeof distance !== 'number' || distance <= 0) {
|
|
156
|
+
console.error('Invalid parameters');
|
|
157
|
+
return [];
|
|
158
|
+
}
|
|
159
|
+
var points = [];
|
|
160
|
+
|
|
161
|
+
// 获取曲线总长度
|
|
162
|
+
var totalLength = curvePath.getLength();
|
|
163
|
+
|
|
164
|
+
// 计算需要的采样点数量
|
|
165
|
+
var numSamples = Math.floor(totalLength / distance) + 1;
|
|
166
|
+
|
|
167
|
+
// 第一个点总是加入(起点)
|
|
168
|
+
points.push(curvePath.getPointAt(0));
|
|
169
|
+
var currentU = 0;
|
|
170
|
+
// 使用二分查找法找到每个距离点对应的u参数
|
|
171
|
+
for (var i = 1; i < numSamples; i++) {
|
|
172
|
+
var targetDistance = i * distance;
|
|
173
|
+
|
|
174
|
+
// 从上一个点开始查找
|
|
175
|
+
var low = currentU;
|
|
176
|
+
var high = 1;
|
|
177
|
+
var mid = void 0,
|
|
178
|
+
tempDistance = void 0;
|
|
179
|
+
|
|
180
|
+
// 二分查找法查找对应的u值
|
|
181
|
+
while (high - low > 0.0001) {
|
|
182
|
+
mid = (low + high) / 2;
|
|
183
|
+
tempDistance = curvePath.getLength() * mid;
|
|
184
|
+
if (tempDistance < targetDistance) low = mid;else high = mid;
|
|
185
|
+
}
|
|
186
|
+
currentU = (low + high) / 2;
|
|
187
|
+
|
|
188
|
+
// 如果已达曲线末端,则退出循环
|
|
189
|
+
if (currentU >= 1) break;
|
|
190
|
+
|
|
191
|
+
// 获取点并添加到结果数组
|
|
192
|
+
var point = curvePath.getPointAt(currentU);
|
|
193
|
+
points.push(point);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// 确保添加最后一个点(如果还没添加)
|
|
197
|
+
if (currentU < 1) points.push(curvePath.getPointAt(1));
|
|
198
|
+
return points;
|
|
199
|
+
}
|
|
126
200
|
|
|
127
201
|
// 创建自适应采样点获取方法(处理count=1的特殊情况)
|
|
128
202
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Group","Mesh","Quaternion","Vector3","ObjectLayer","Batch","_ObjectLayer","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","path","number","span","entity","followTangent","_path","_number","_span","_followTangent","_entity","_option","init","_createClass","key","get","_mesh","set","newValue","handlePropertyUpdate","Math","max","value","_this2","count","floor","getLength","points","getAdaptiveSpacedPoints","originalEuler","rotation","clone","rotationQuaternion","setFromEuler","_tempTangent","_lookAtTarget","forEach","point","index","proxy","visible","position","copy","quaternion","identity","t","length","getTangent","add","lookAt","multiply","curve","midPoint","getPointAt","getSpacedPoints","clearScene","traverse","child","_child$geometry","_child$material","geometry","dispose","Array","isArray","material","m","remove"],"sources":["../../../src/business/Batch/index.ts"],"sourcesContent":["import { Group, Mesh, Quaternion, Vector3 } from '@anov/3d-core'\nimport type { CurvePath, Object3D } from '@anov/3d-core'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport type { BatchInterface, Option } from './type'\n\nexport class Batch extends ObjectLayer implements BatchInterface {\n _mesh: Group\n _path: CurvePath<Vector3>\n _number: number\n _span: number\n _followTangent: boolean\n _entity: Object3D\n _option: any\n\n public get mesh() {\n return this._mesh\n }\n\n public get path(): CurvePath<Vector3> {\n return this._path\n }\n\n public set path(newValue: CurvePath<Vector3>) {\n if (newValue === this._path)\n return\n this._path = newValue\n this.handlePropertyUpdate()\n }\n\n public get number(): number {\n return this._number\n }\n\n public set number(newValue: number) {\n if (newValue === this._number)\n return\n this._number = Math.max(1, newValue)\n this.handlePropertyUpdate()\n }\n\n public get span(): number {\n return this._span\n }\n\n public set span(newValue: number) {\n if (newValue === this._span)\n return\n this._span = newValue > 0 ? newValue : 10\n this.handlePropertyUpdate()\n }\n\n public get followTangent(): boolean {\n return this._followTangent\n }\n\n public set followTangent(newValue: boolean) {\n if (newValue === this._followTangent)\n return\n this.handlePropertyUpdate()\n }\n\n constructor(option: Option) {\n super()\n\n const { path, number, span, entity, followTangent } = option\n this._path = path\n this._number = number\n this._span = span\n this._followTangent = followTangent\n this._entity = entity\n this._option = option\n\n this.init()\n }\n\n private init() {\n let count = 10\n if (this._number > 0)\n count = this._number\n else if (this._span && this._span > 0)\n count = Math.max(1, Math.floor(this._path.getLength() / this._span))\n\n const points = this.getAdaptiveSpacedPoints(this._path, count)\n this._mesh = new Group()\n\n // 模型原始旋转(转换为四元数后叠加)\n const originalEuler = this._entity.rotation.clone()\n const rotationQuaternion = new Quaternion()\n .setFromEuler(originalEuler)\n // 预创建可复用对象减少内存分配\n const _tempTangent = new Vector3()\n const _lookAtTarget = new Vector3()\n points?.forEach((point: Vector3, index) => {\n const proxy = this._entity.clone()\n proxy.visible = true\n proxy.position.copy(point)\n\n if (this._followTangent) {\n // 重置旋转\n proxy.quaternion.identity()\n // 计算当前点在曲线上的参数化位置 (0到1)\n const t = index / Math.max(1, points.length - 1)\n // 获取精确的切线方向(自动归一化)\n this._path.getTangent(t, _tempTangent)\n // 计算看向目标点:当前位置 + 切线方向\n _lookAtTarget.copy(point).add(_tempTangent)\n // 设置模型朝向(默认使用 THREE.Object3D 的默认 UP 方向)\n proxy.lookAt(_lookAtTarget)\n // 在局部坐标系叠加旋转\n proxy.quaternion.multiply(rotationQuaternion)\n }\n this._mesh.add(proxy)\n })\n\n this.add(this._mesh)\n }\n\n // 创建自适应采样点获取方法(处理count=1的特殊情况)\n private getAdaptiveSpacedPoints(curve: CurvePath<Vector3>, count: number) {\n if (count <= 0)\n return []\n\n // 当请求1个点时返回路径中点\n if (count === 1) {\n const midPoint = new Vector3()\n curve.getPointAt(0.5, midPoint) // 获取50%位置的点\n return [midPoint]\n }\n\n // 常规情况返回等间距点\n return curve.getSpacedPoints(count - 1)\n }\n\n // 统一属性更新入口\n private handlePropertyUpdate() {\n this.clearScene()\n this.init()\n }\n\n // 内存安全清理\n private clearScene() {\n this._mesh.traverse((child) => {\n if (child instanceof Mesh) {\n child.geometry?.dispose()\n Array.isArray(child.material)\n ? child.material.forEach(m => m.dispose())\n : child.material?.dispose()\n }\n })\n this.remove(this._mesh)\n }\n\n // 显式销毁方法\n dispose() {\n this.clearScene()\n }\n}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Group","Mesh","Quaternion","Vector3","ObjectLayer","Batch","_ObjectLayer","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","path","number","span","entity","followTangent","_path","_number","_span","_followTangent","_entity","_option","init","_createClass","key","get","_mesh","set","newValue","handlePropertyUpdate","Math","max","value","_points","_this2","isClosed","isEffectivelyClosed","points","getAdaptiveSpacedPoints","getPointsAtDistance","originalEuler","rotation","clone","rotationQuaternion","setFromEuler","_tempTangent","_lookAtTarget","forEach","point","index","proxy","visible","position","add","quaternion","identity","t","length","getTangent","copy","lookAt","multiply","curvePath","tolerance","arguments","undefined","closed","startPoint","getPoint","endPoint","distance","distanceTo","console","error","totalLength","getLength","numSamples","floor","push","getPointAt","currentU","i","targetDistance","low","high","mid","tempDistance","curve","count","midPoint","getSpacedPoints","clearScene","traverse","child","_child$geometry","_child$material","geometry","dispose","Array","isArray","material","m","remove"],"sources":["../../../src/business/Batch/index.ts"],"sourcesContent":["import { Group, Mesh, Quaternion, Vector3 } from '@anov/3d-core'\nimport type { CurvePath, Object3D } from '@anov/3d-core'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport type { BatchInterface, Option } from './type'\n\nexport class Batch extends ObjectLayer implements BatchInterface {\n _mesh: Group\n _path: CurvePath<Vector3>\n _number: number\n _span: number\n _followTangent: boolean\n _entity: Object3D\n _option: any\n\n public get mesh() {\n return this._mesh\n }\n\n public get path(): CurvePath<Vector3> {\n return this._path\n }\n\n public set path(newValue: CurvePath<Vector3>) {\n if (newValue === this._path)\n return\n this._path = newValue\n this.handlePropertyUpdate()\n }\n\n public get number(): number {\n return this._number\n }\n\n public set number(newValue: number) {\n if (newValue === this._number)\n return\n this._number = Math.max(1, newValue)\n this.handlePropertyUpdate()\n }\n\n public get span(): number {\n return this._span\n }\n\n public set span(newValue: number) {\n if (newValue === this._span)\n return\n this._span = newValue > 0 ? newValue : 10\n this.handlePropertyUpdate()\n }\n\n public get followTangent(): boolean {\n return this._followTangent\n }\n\n public set followTangent(newValue: boolean) {\n if (newValue === this._followTangent)\n return\n this.handlePropertyUpdate()\n }\n\n constructor(option: Option) {\n super()\n\n const { path, number, span, entity, followTangent } = option\n this._path = path\n this._number = number\n this._span = span\n this._followTangent = followTangent\n this._entity = entity\n this._option = option\n\n this.init()\n }\n\n private init() {\n // 判断是否闭合\n const isClosed = this.isEffectivelyClosed(this._path)\n\n let points = []\n if (this.number > 0)\n points = this.getAdaptiveSpacedPoints(this.path, this.number)\n else if (this.span && this.span > 0)\n points = this.getPointsAtDistance(this.path, this.span)\n\n this._mesh = new Group()\n\n // 模型原始旋转(转换为四元数后叠加)\n const originalEuler = this._entity.rotation.clone()\n const rotationQuaternion = new Quaternion()\n .setFromEuler(originalEuler)\n // 预创建可复用对象减少内存分配\n const _tempTangent = new Vector3()\n const _lookAtTarget = new Vector3()\n points?.forEach((point: Vector3, index) => {\n const proxy = this._entity.clone()\n proxy.visible = true\n proxy.position.add(point)\n\n if (this._followTangent) {\n // 重置旋转\n proxy.quaternion.identity()\n // 计算当前点在曲线上的参数化位置 (0到1)\n const t = index / Math.max(1, points.length - 1)\n // 获取精确的切线方向(自动归一化)\n this._path.getTangent(t, _tempTangent)\n // 计算看向目标点:当前位置 + 切线方向\n _lookAtTarget.copy(point).add(_tempTangent)\n // 设置模型朝向(默认使用 THREE.Object3D 的默认 UP 方向)\n proxy.lookAt(_lookAtTarget)\n // 在局部坐标系叠加旋转\n proxy.quaternion.multiply(rotationQuaternion)\n }\n this._mesh.add(proxy)\n })\n\n this.add(this._mesh)\n }\n\n private isEffectivelyClosed(curvePath, tolerance = 0.01) {\n if (curvePath.closed)\n return true\n\n // 获取第一个点和最后一个点\n const startPoint = curvePath.getPoint(0)\n const endPoint = curvePath.getPoint(1)\n\n // 计算距离\n const distance = startPoint.distanceTo(endPoint)\n\n // 如果距离小于容差,则认为是闭合的\n return distance < tolerance\n }\n\n /**\n * 从曲线路径上每隔指定距离采样点\n * @param {THREE.CurvePath} curvePath - Three.js的CurvePath对象(可以是曲线或直线组合)\n * @param {Number} distance - 采样点之间的距离(单位:米)\n * @return {Array<THREE.Vector3>} 采样点坐标数组\n */\n private getPointsAtDistance(curvePath, distance) {\n // 确保参数有效\n if (!curvePath || typeof distance !== 'number' || distance <= 0) {\n console.error('Invalid parameters')\n return []\n }\n\n const points = []\n\n // 获取曲线总长度\n const totalLength = curvePath.getLength()\n\n // 计算需要的采样点数量\n const numSamples = Math.floor(totalLength / distance) + 1\n\n // 第一个点总是加入(起点)\n points.push(curvePath.getPointAt(0))\n\n let currentU = 0\n // 使用二分查找法找到每个距离点对应的u参数\n for (let i = 1; i < numSamples; i++) {\n const targetDistance = i * distance\n\n // 从上一个点开始查找\n let low = currentU\n let high = 1\n let mid, tempDistance\n\n // 二分查找法查找对应的u值\n while (high - low > 0.0001) {\n mid = (low + high) / 2\n tempDistance = curvePath.getLength() * mid\n\n if (tempDistance < targetDistance)\n low = mid\n else\n high = mid\n }\n\n currentU = (low + high) / 2\n\n // 如果已达曲线末端,则退出循环\n if (currentU >= 1)\n break\n\n // 获取点并添加到结果数组\n const point = curvePath.getPointAt(currentU)\n points.push(point)\n }\n\n // 确保添加最后一个点(如果还没添加)\n if (currentU < 1)\n points.push(curvePath.getPointAt(1))\n\n return points\n }\n\n // 创建自适应采样点获取方法(处理count=1的特殊情况)\n private getAdaptiveSpacedPoints(curve: CurvePath<Vector3>, count: number) {\n if (count <= 0)\n return []\n\n // 当请求1个点时返回路径中点\n if (count === 1) {\n const midPoint = new Vector3()\n curve.getPointAt(0.5, midPoint) // 获取50%位置的点\n return [midPoint]\n }\n\n // 常规情况返回等间距点\n return curve.getSpacedPoints(count - 1)\n }\n\n // 统一属性更新入口\n private handlePropertyUpdate() {\n this.clearScene()\n this.init()\n }\n\n // 内存安全清理\n private clearScene() {\n this._mesh.traverse((child) => {\n if (child instanceof Mesh) {\n child.geometry?.dispose()\n Array.isArray(child.material)\n ? child.material.forEach(m => m.dispose())\n : child.material?.dispose()\n }\n })\n this.remove(this._mesh)\n }\n\n // 显式销毁方法\n dispose() {\n this.clearScene()\n }\n}"],"mappings":"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"}
|
|
@@ -248,7 +248,7 @@ var CurveLine = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
248
248
|
texture.offset.x -= offsetPerFrame;
|
|
249
249
|
|
|
250
250
|
// 检查是否完成一次完整的UV移动
|
|
251
|
-
if (totalOffset >=
|
|
251
|
+
if (totalOffset >= _this3.tiling) {
|
|
252
252
|
// 重置偏移量以确保精确的位置
|
|
253
253
|
totalOffset = 0;
|
|
254
254
|
texture.offset.x = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","ClampToEdgeWrapping","Color","DoubleSide","Mesh","MeshBasicMaterial","QuadraticBezierCurve3","RepeatWrapping","TextureLoader","TubeGeometry","Vector3","use","ObjectLayer","IMG","CurveLine","_ObjectLayer","_super","params","_this","startPoint","endPoint","_params$width","width","_params$color","color","_params$curve","curve","_params$tiling","tiling","_params$duration","duration","_params$loop","loop","_params$delay","delay","_startPoint","fromArray","_endPoint","_width","_color","_curve","_tiling","_duration","_loop","_delay","_readyPromise","init","get","set","destroy","_material","_mesh","_init","_callee","texture","tube","_callee$","_context","getCurve","loadTexture","Math","floor","getLength","map","side","transparent","renderOrder","add","setupAnimation","_loadTexture","_callee2","path","_this2","textLoader","_callee2$","_context2","load","repeat","offset","wrapS","wrapT","_x","_this3","isAnimating","totalOffset","lastTime","performance","now","isDelaying","delayStartTime","_cancelAnimation","useframe","currentTime","deltaTime","offsetPerFrame","x","midPoint","z","direction","subVectors","distance","height","controlPoint","copy","addScaledVector","geometry","dispose","material","Array","isArray","remove"],"sources":["../../../../src/business/Flyline/line/ArcLine.ts"],"sourcesContent":["import type { Texture } from '@anov/3d-core'\nimport { ClampToEdgeWrapping, Color, DoubleSide, Mesh, MeshBasicMaterial, QuadraticBezierCurve3, RepeatWrapping, TextureLoader, TubeGeometry, Vector3, use } from '@anov/3d-core'\nimport ObjectLayer from '../../Base/ObjectLayer'\nimport type { LineOption } from '../type'\nimport { IMG } from './index'\n\nclass CurveLine extends ObjectLayer {\n private _startPoint: Vector3\n private _endPoint: Vector3\n private _width: number\n private _color: string\n private _curve: number\n private _tiling: number\n private _duration: number\n private _loop: boolean\n private _delay: number\n\n private _material: MeshBasicMaterial\n private _mesh: Mesh\n private _readyPromise: Promise<boolean>\n private _cancelAnimation: Function\n\n public get width(): number {\n return this._width\n }\n\n public set width(value: number) {\n this._width = value\n this.destroy()\n this.init()\n }\n\n public get color(): string {\n return this._color\n }\n\n public set color(value: string) {\n this._color = value\n this._material.color = new Color(this._color)\n }\n\n public get curve(): number {\n return this._curve\n }\n\n public set curve(value: number) {\n this._curve = value\n this.destroy()\n this.init()\n }\n\n public get duration(): number {\n if (this._duration <= 0)\n return 1\n return this._duration\n }\n\n public set duration(value: number) {\n this._duration = value\n }\n\n public get tiling(): number {\n if (this._tiling <= 0)\n return 0\n return this._tiling\n }\n\n public set tiling(value: number) {\n this._tiling = value\n }\n\n public get loop(): boolean {\n return this._loop\n }\n\n public set loop(value: boolean) {\n this._loop = value\n }\n\n public get delay(): number {\n return this._delay\n }\n\n public set delay(value: number) {\n this._delay = value\n }\n\n public get mesh(): Mesh | null {\n return this._mesh\n }\n\n public get ready() {\n return this._readyPromise\n }\n\n constructor(params: LineOption) {\n super()\n const { startPoint, endPoint, width = 0.2, color = '#28FFD9', curve = 0.6, tiling = 1, duration = 1, loop = true, delay = 0 } = params\n this._startPoint = new Vector3().fromArray(startPoint)\n this._endPoint = new Vector3().fromArray(endPoint)\n this._width = width\n this._color = color\n this._curve = curve\n this._tiling = tiling\n this._duration = duration\n this._loop = loop\n this._delay = delay\n\n this._readyPromise = this.init()\n }\n\n private async init() {\n const curve = this.getCurve()\n\n const texture = await this.loadTexture(IMG)\n const tube = new TubeGeometry(curve, Math.floor(curve.getLength() * 200), this.width, 2, false)\n this._material = new MeshBasicMaterial({\n color: this.color,\n map: texture,\n side: DoubleSide,\n transparent: true, // 透明\n })\n this._mesh = new Mesh(tube, this._material)\n this._mesh.renderOrder = 10\n this.add(this._mesh)\n\n // 动画\n this.setupAnimation(texture)\n\n return true\n }\n\n private async loadTexture(path: string): Promise<Texture> {\n const textLoader = new TextureLoader()\n return new Promise((resolve) => {\n const texture = textLoader.load(path, () => {\n // 纹理加载完成后设置属性\n // texture.center.set(0.5, 0.5) // 设置旋转中心为纹理中心\n // texture.rotation = Math.PI / 2 // 旋转90度\n texture.repeat.set(this.tiling, 2)\n texture.offset.set(0, 0)\n texture.wrapS = RepeatWrapping\n texture.wrapT = ClampToEdgeWrapping\n resolve(texture)\n })\n })\n }\n\n private setupAnimation(texture: Texture) {\n let isAnimating = true\n let totalOffset = 0\n let lastTime = performance.now()\n let isDelaying = false\n let delayStartTime = 0\n\n this._cancelAnimation = use.useframe(() => {\n const currentTime = performance.now()\n // 处理延迟状态\n if (isDelaying) {\n // 检查是否延迟时间已结束\n if ((currentTime - delayStartTime) / 1000 >= this.delay) {\n isDelaying = false\n // 重置偏移量计数和动画状态\n totalOffset = 0\n isAnimating = true\n lastTime = currentTime\n }\n return // 在延迟期间不进行动画\n }\n\n // 如果不在动画中,直接返回\n if (!isAnimating)\n return\n\n const deltaTime = (currentTime - lastTime)\n lastTime = currentTime\n\n // 使用 deltaTime 进行动画计算\n const offsetPerFrame = (deltaTime / (this.duration / this.tiling * 1000))\n // 更新总偏移量\n totalOffset += offsetPerFrame\n\n // 更新纹理偏移\n texture.offset.x -= offsetPerFrame\n\n // 检查是否完成一次完整的UV移动\n if (totalOffset >= 1) {\n // 重置偏移量以确保精确的位置\n totalOffset = 0\n texture.offset.x = 0\n\n // 如果不循环,则结束动画\n if (!this.loop) {\n isAnimating = false\n }\n // 如果有延迟且需要循环,则开始延迟\n else if (this.delay > 0) {\n isDelaying = true\n delayStartTime = currentTime\n isAnimating = false // 在延迟期间暂停动画\n }\n }\n })\n }\n\n private getCurve() {\n // 计算起点和终点的中点\n const midPoint = new Vector3(\n (this._startPoint.x + this._endPoint.x) / 2,\n (this._startPoint.y + this._endPoint.y) / 2,\n (this._startPoint.z + this._endPoint.z) / 2,\n )\n\n // 计算起点和终点的方向向量\n const direction = new Vector3().subVectors(this._endPoint, this._startPoint)\n\n // 计算距离,用于确定弧的高度\n const distance = direction.length()\n\n // 使用arcFactor控制弧线的高度\n const height = distance * this.curve\n\n // 计算控制点 - 在中点上方\n const controlPoint = new Vector3()\n .copy(midPoint)\n .addScaledVector(new Vector3(0, 1, 0), height)\n\n // 创建曲线\n const curve = new QuadraticBezierCurve3(\n this._startPoint,\n controlPoint,\n this._endPoint,\n )\n return curve\n }\n\n destroy() {\n this._cancelAnimation && this._cancelAnimation()\n // 释放几何体资源\n if (this._mesh) {\n if (this._mesh.geometry)\n this._mesh.geometry.dispose()\n\n // 释放材质资源\n if (this._mesh.material) {\n // 释放材质\n if (Array.isArray(this._mesh.material))\n this._mesh.material.forEach(material => material.dispose())\n else\n this._mesh.material.dispose()\n }\n\n // 从场景中移除网格\n this.remove(this._mesh)\n this._mesh = null\n }\n }\n}\n\nexport default CurveLine"],"mappings":";+CACA,qJAAAA,mBAAA,YAAAA,oBAAA,WAAAC,CAAA,SAAAC,CAAA,EAAAD,CAAA,OAAAE,CAAA,GAAAC,MAAA,CAAAC,SAAA,EAAAC,CAAA,GAAAH,CAAA,CAAAI,cAAA,EAAAC,CAAA,GAAAJ,MAAA,CAAAK,cAAA,cAAAP,CAAA,EAAAD,CAAA,EAAAE,CAAA,IAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,CAAAO,KAAA,KAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAAC,CAAA,GAAAF,CAAA,CAAAG,QAAA,kBAAAC,CAAA,GAAAJ,CAAA,CAAAK,aAAA,uBAAAC,CAAA,GAAAN,CAAA,CAAAO,WAAA,8BAAAC,OAAAjB,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAC,MAAA,CAAAK,cAAA,CAAAP,CAAA,EAAAD,CAAA,IAAAS,KAAA,EAAAP,CAAA,EAAAiB,UAAA,MAAAC,YAAA,MAAAC,QAAA,SAAApB,CAAA,CAAAD,CAAA,WAAAkB,MAAA,mBAAAjB,CAAA,IAAAiB,MAAA,YAAAA,OAAAjB,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,gBAAAoB,KAAArB,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAG,CAAA,QAAAK,CAAA,GAAAV,CAAA,IAAAA,CAAA,CAAAI,SAAA,YAAAmB,SAAA,GAAAvB,CAAA,GAAAuB,SAAA,EAAAX,CAAA,GAAAT,MAAA,CAAAqB,MAAA,CAAAd,CAAA,CAAAN,SAAA,GAAAU,CAAA,OAAAW,OAAA,CAAApB,CAAA,gBAAAE,CAAA,CAAAK,CAAA,eAAAH,KAAA,EAAAiB,gBAAA,CAAAzB,CAAA,EAAAC,CAAA,EAAAY,CAAA,MAAAF,CAAA,aAAAe,SAAA1B,CAAA,EAAAD,CAAA,EAAAE,CAAA,mBAAA0B,IAAA,YAAAC,GAAA,EAAA5B,CAAA,CAAA6B,IAAA,CAAA9B,CAAA,EAAAE,CAAA,cAAAD,CAAA,aAAA2B,IAAA,WAAAC,GAAA,EAAA5B,CAAA,QAAAD,CAAA,CAAAsB,IAAA,GAAAA,IAAA,MAAAS,CAAA,qBAAAC,CAAA,qBAAAC,CAAA,gBAAAC,CAAA,gBAAAC,CAAA,gBAAAZ,UAAA,cAAAa,kBAAA,cAAAC,2BAAA,SAAAC,CAAA,OAAApB,MAAA,CAAAoB,CAAA,EAAA1B,CAAA,qCAAA2B,CAAA,GAAApC,MAAA,CAAAqC,cAAA,EAAAC,CAAA,GAAAF,CAAA,IAAAA,CAAA,CAAAA,CAAA,CAAAG,MAAA,QAAAD,CAAA,IAAAA,CAAA,KAAAvC,CAAA,IAAAG,CAAA,CAAAyB,IAAA,CAAAW,CAAA,EAAA7B,CAAA,MAAA0B,CAAA,GAAAG,CAAA,OAAAE,CAAA,GAAAN,0BAAA,CAAAjC,SAAA,GAAAmB,SAAA,CAAAnB,SAAA,GAAAD,MAAA,CAAAqB,MAAA,CAAAc,CAAA,YAAAM,sBAAA3C,CAAA,gCAAA4C,OAAA,WAAA7C,CAAA,IAAAkB,MAAA,CAAAjB,CAAA,EAAAD,CAAA,YAAAC,CAAA,gBAAA6C,OAAA,CAAA9C,CAAA,EAAAC,CAAA,sBAAA8C,cAAA9C,CAAA,EAAAD,CAAA,aAAAgD,OAAA9C,CAAA,EAAAK,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAa,QAAA,CAAA1B,CAAA,CAAAC,CAAA,GAAAD,CAAA,EAAAM,CAAA,mBAAAO,CAAA,CAAAc,IAAA,QAAAZ,CAAA,GAAAF,CAAA,CAAAe,GAAA,EAAAE,CAAA,GAAAf,CAAA,CAAAP,KAAA,SAAAsB,CAAA,gBAAAkB,OAAA,CAAAlB,CAAA,KAAA1B,CAAA,CAAAyB,IAAA,CAAAC,CAAA,eAAA/B,CAAA,CAAAkD,OAAA,CAAAnB,CAAA,CAAAoB,OAAA,EAAAC,IAAA,WAAAnD,CAAA,IAAA+C,MAAA,SAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,gBAAAX,CAAA,IAAA+C,MAAA,UAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,QAAAZ,CAAA,CAAAkD,OAAA,CAAAnB,CAAA,EAAAqB,IAAA,WAAAnD,CAAA,IAAAe,CAAA,CAAAP,KAAA,GAAAR,CAAA,EAAAS,CAAA,CAAAM,CAAA,gBAAAf,CAAA,WAAA+C,MAAA,UAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,SAAAA,CAAA,CAAAE,CAAA,CAAAe,GAAA,SAAA3B,CAAA,EAAAK,CAAA,oBAAAE,KAAA,WAAAA,MAAAR,CAAA,EAAAI,CAAA,aAAAgD,2BAAA,eAAArD,CAAA,WAAAA,CAAA,EAAAE,CAAA,IAAA8C,MAAA,CAAA/C,CAAA,EAAAI,CAAA,EAAAL,CAAA,EAAAE,CAAA,gBAAAA,CAAA,GAAAA,CAAA,GAAAA,CAAA,CAAAkD,IAAA,CAAAC,0BAAA,EAAAA,0BAAA,IAAAA,0BAAA,qBAAA3B,iBAAA1B,CAAA,EAAAE,CAAA,EAAAG,CAAA,QAAAE,CAAA,GAAAwB,CAAA,mBAAArB,CAAA,EAAAE,CAAA,QAAAL,CAAA,KAAA0B,CAAA,YAAAqB,KAAA,sCAAA/C,CAAA,KAAA2B,CAAA,oBAAAxB,CAAA,QAAAE,CAAA,WAAAH,KAAA,EAAAR,CAAA,EAAAsD,IAAA,eAAAlD,CAAA,CAAAmD,MAAA,GAAA9C,CAAA,EAAAL,CAAA,CAAAwB,GAAA,GAAAjB,CAAA,UAAAE,CAAA,GAAAT,CAAA,CAAAoD,QAAA,MAAA3C,CAAA,QAAAE,CAAA,GAAA0C,mBAAA,CAAA5C,CAAA,EAAAT,CAAA,OAAAW,CAAA,QAAAA,CAAA,KAAAmB,CAAA,mBAAAnB,CAAA,qBAAAX,CAAA,CAAAmD,MAAA,EAAAnD,CAAA,CAAAsD,IAAA,GAAAtD,CAAA,CAAAuD,KAAA,GAAAvD,CAAA,CAAAwB,GAAA,sBAAAxB,CAAA,CAAAmD,MAAA,QAAAjD,CAAA,KAAAwB,CAAA,QAAAxB,CAAA,GAAA2B,CAAA,EAAA7B,CAAA,CAAAwB,GAAA,EAAAxB,CAAA,CAAAwD,iBAAA,CAAAxD,CAAA,CAAAwB,GAAA,uBAAAxB,CAAA,CAAAmD,MAAA,IAAAnD,CAAA,CAAAyD,MAAA,WAAAzD,CAAA,CAAAwB,GAAA,GAAAtB,CAAA,GAAA0B,CAAA,MAAAK,CAAA,GAAAX,QAAA,CAAA3B,CAAA,EAAAE,CAAA,EAAAG,CAAA,oBAAAiC,CAAA,CAAAV,IAAA,QAAArB,CAAA,GAAAF,CAAA,CAAAkD,IAAA,GAAArB,CAAA,GAAAF,CAAA,EAAAM,CAAA,CAAAT,GAAA,KAAAM,CAAA,qBAAA1B,KAAA,EAAA6B,CAAA,CAAAT,GAAA,EAAA0B,IAAA,EAAAlD,CAAA,CAAAkD,IAAA,kBAAAjB,CAAA,CAAAV,IAAA,KAAArB,CAAA,GAAA2B,CAAA,EAAA7B,CAAA,CAAAmD,MAAA,YAAAnD,CAAA,CAAAwB,GAAA,GAAAS,CAAA,CAAAT,GAAA,mBAAA6B,oBAAA1D,CAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAH,CAAA,CAAAsD,MAAA,EAAAjD,CAAA,GAAAP,CAAA,CAAAa,QAAA,CAAAR,CAAA,OAAAE,CAAA,KAAAN,CAAA,SAAAC,CAAA,CAAAuD,QAAA,qBAAApD,CAAA,IAAAL,CAAA,CAAAa,QAAA,CAAAkD,MAAA,KAAA7D,CAAA,CAAAsD,MAAA,aAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,EAAAyD,mBAAA,CAAA1D,CAAA,EAAAE,CAAA,eAAAA,CAAA,CAAAsD,MAAA,kBAAAnD,CAAA,KAAAH,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,OAAAmC,SAAA,uCAAA3D,CAAA,iBAAA8B,CAAA,MAAAzB,CAAA,GAAAiB,QAAA,CAAApB,CAAA,EAAAP,CAAA,CAAAa,QAAA,EAAAX,CAAA,CAAA2B,GAAA,mBAAAnB,CAAA,CAAAkB,IAAA,SAAA1B,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,GAAAnB,CAAA,CAAAmB,GAAA,EAAA3B,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,MAAAvB,CAAA,GAAAF,CAAA,CAAAmB,GAAA,SAAAjB,CAAA,GAAAA,CAAA,CAAA2C,IAAA,IAAArD,CAAA,CAAAF,CAAA,CAAAiE,UAAA,IAAArD,CAAA,CAAAH,KAAA,EAAAP,CAAA,CAAAgE,IAAA,GAAAlE,CAAA,CAAAmE,OAAA,eAAAjE,CAAA,CAAAsD,MAAA,KAAAtD,CAAA,CAAAsD,MAAA,WAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,GAAAC,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,IAAAvB,CAAA,IAAAV,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,OAAAmC,SAAA,sCAAA9D,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,cAAAiC,aAAAnE,CAAA,QAAAD,CAAA,KAAAqE,MAAA,EAAApE,CAAA,YAAAA,CAAA,KAAAD,CAAA,CAAAsE,QAAA,GAAArE,CAAA,WAAAA,CAAA,KAAAD,CAAA,CAAAuE,UAAA,GAAAtE,CAAA,KAAAD,CAAA,CAAAwE,QAAA,GAAAvE,CAAA,WAAAwE,UAAA,CAAAC,IAAA,CAAA1E,CAAA,cAAA2E,cAAA1E,CAAA,QAAAD,CAAA,GAAAC,CAAA,CAAA2E,UAAA,QAAA5E,CAAA,CAAA4B,IAAA,oBAAA5B,CAAA,CAAA6B,GAAA,EAAA5B,CAAA,CAAA2E,UAAA,GAAA5E,CAAA,aAAAyB,QAAAxB,CAAA,SAAAwE,UAAA,MAAAJ,MAAA,aAAApE,CAAA,CAAA4C,OAAA,CAAAuB,YAAA,cAAAS,KAAA,iBAAAnC,OAAA1C,CAAA,QAAAA,CAAA,WAAAA,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAAY,CAAA,OAAAV,CAAA,SAAAA,CAAA,CAAA4B,IAAA,CAAA9B,CAAA,4BAAAA,CAAA,CAAAkE,IAAA,SAAAlE,CAAA,OAAA8E,KAAA,CAAA9E,CAAA,CAAA+E,MAAA,SAAAxE,CAAA,OAAAG,CAAA,YAAAwD,KAAA,aAAA3D,CAAA,GAAAP,CAAA,CAAA+E,MAAA,OAAA1E,CAAA,CAAAyB,IAAA,CAAA9B,CAAA,EAAAO,CAAA,UAAA2D,IAAA,CAAAzD,KAAA,GAAAT,CAAA,CAAAO,CAAA,GAAA2D,IAAA,CAAAX,IAAA,OAAAW,IAAA,SAAAA,IAAA,CAAAzD,KAAA,GAAAR,CAAA,EAAAiE,IAAA,CAAAX,IAAA,OAAAW,IAAA,YAAAxD,CAAA,CAAAwD,IAAA,GAAAxD,CAAA,gBAAAsD,SAAA,CAAAf,OAAA,CAAAjD,CAAA,kCAAAoC,iBAAA,CAAAhC,SAAA,GAAAiC,0BAAA,EAAA9B,CAAA,CAAAoC,CAAA,mBAAAlC,KAAA,EAAA4B,0BAAA,EAAAjB,YAAA,SAAAb,CAAA,CAAA8B,0BAAA,mBAAA5B,KAAA,EAAA2B,iBAAA,EAAAhB,YAAA,SAAAgB,iBAAA,CAAA4C,WAAA,GAAA9D,MAAA,CAAAmB,0BAAA,EAAArB,CAAA,wBAAAhB,CAAA,CAAAiF,mBAAA,aAAAhF,CAAA,QAAAD,CAAA,wBAAAC,CAAA,IAAAA,CAAA,CAAAiF,WAAA,WAAAlF,CAAA,KAAAA,CAAA,KAAAoC,iBAAA,6BAAApC,CAAA,CAAAgF,WAAA,IAAAhF,CAAA,CAAAmF,IAAA,OAAAnF,CAAA,CAAAoF,IAAA,aAAAnF,CAAA,WAAAE,MAAA,CAAAkF,cAAA,GAAAlF,MAAA,CAAAkF,cAAA,CAAApF,CAAA,EAAAoC,0BAAA,KAAApC,CAAA,CAAAqF,SAAA,GAAAjD,0BAAA,EAAAnB,MAAA,CAAAjB,CAAA,EAAAe,CAAA,yBAAAf,CAAA,CAAAG,SAAA,GAAAD,MAAA,CAAAqB,MAAA,CAAAmB,CAAA,GAAA1C,CAAA,KAAAD,CAAA,CAAAuF,KAAA,aAAAtF,CAAA,aAAAkD,OAAA,EAAAlD,CAAA,OAAA2C,qBAAA,CAAAG,aAAA,CAAA3C,SAAA,GAAAc,MAAA,CAAA6B,aAAA,CAAA3C,SAAA,EAAAU,CAAA,iCAAAd,CAAA,CAAA+C,aAAA,GAAAA,aAAA,EAAA/C,CAAA,CAAAwF,KAAA,aAAAvF,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAE,CAAA,EAAAG,CAAA,eAAAA,CAAA,KAAAA,CAAA,GAAA+E,OAAA,OAAA7E,CAAA,OAAAmC,aAAA,CAAAzB,IAAA,CAAArB,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAE,CAAA,GAAAG,CAAA,UAAAV,CAAA,CAAAiF,mBAAA,CAAA/E,CAAA,IAAAU,CAAA,GAAAA,CAAA,CAAAsD,IAAA,GAAAd,IAAA,WAAAnD,CAAA,WAAAA,CAAA,CAAAsD,IAAA,GAAAtD,CAAA,CAAAQ,KAAA,GAAAG,CAAA,CAAAsD,IAAA,WAAAtB,qBAAA,CAAAD,CAAA,GAAAzB,MAAA,CAAAyB,CAAA,EAAA3B,CAAA,gBAAAE,MAAA,CAAAyB,CAAA,EAAA/B,CAAA,iCAAAM,MAAA,CAAAyB,CAAA,6DAAA3C,CAAA,CAAA0F,IAAA,aAAAzF,CAAA,QAAAD,CAAA,GAAAG,MAAA,CAAAF,CAAA,GAAAC,CAAA,gBAAAG,CAAA,IAAAL,CAAA,EAAAE,CAAA,CAAAwE,IAAA,CAAArE,CAAA,UAAAH,CAAA,CAAAyF,OAAA,aAAAzB,KAAA,WAAAhE,CAAA,CAAA6E,MAAA,SAAA9E,CAAA,GAAAC,CAAA,CAAA0F,GAAA,QAAA3F,CAAA,IAAAD,CAAA,SAAAkE,IAAA,CAAAzD,KAAA,GAAAR,CAAA,EAAAiE,IAAA,CAAAX,IAAA,OAAAW,IAAA,WAAAA,IAAA,CAAAX,IAAA,OAAAW,IAAA,QAAAlE,CAAA,CAAA0C,MAAA,GAAAA,MAAA,EAAAjB,OAAA,CAAArB,SAAA,KAAA8E,WAAA,EAAAzD,OAAA,EAAAoD,KAAA,WAAAA,MAAA7E,CAAA,aAAA6F,IAAA,WAAA3B,IAAA,WAAAP,IAAA,QAAAC,KAAA,GAAA3D,CAAA,OAAAsD,IAAA,YAAAE,QAAA,cAAAD,MAAA,gBAAA3B,GAAA,GAAA5B,CAAA,OAAAwE,UAAA,CAAA5B,OAAA,CAAA8B,aAAA,IAAA3E,CAAA,WAAAE,CAAA,kBAAAA,CAAA,CAAA4F,MAAA,OAAAzF,CAAA,CAAAyB,IAAA,OAAA5B,CAAA,MAAA4E,KAAA,EAAA5E,CAAA,CAAA6F,KAAA,cAAA7F,CAAA,IAAAD,CAAA,MAAA+F,IAAA,WAAAA,KAAA,SAAAzC,IAAA,WAAAtD,CAAA,QAAAwE,UAAA,IAAAG,UAAA,kBAAA3E,CAAA,CAAA2B,IAAA,QAAA3B,CAAA,CAAA4B,GAAA,cAAAoE,IAAA,KAAApC,iBAAA,WAAAA,kBAAA7D,CAAA,aAAAuD,IAAA,QAAAvD,CAAA,MAAAE,CAAA,kBAAAgG,OAAA7F,CAAA,EAAAE,CAAA,WAAAK,CAAA,CAAAgB,IAAA,YAAAhB,CAAA,CAAAiB,GAAA,GAAA7B,CAAA,EAAAE,CAAA,CAAAgE,IAAA,GAAA7D,CAAA,EAAAE,CAAA,KAAAL,CAAA,CAAAsD,MAAA,WAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,KAAAM,CAAA,aAAAA,CAAA,QAAAkE,UAAA,CAAAM,MAAA,MAAAxE,CAAA,SAAAA,CAAA,QAAAG,CAAA,QAAA+D,UAAA,CAAAlE,CAAA,GAAAK,CAAA,GAAAF,CAAA,CAAAkE,UAAA,iBAAAlE,CAAA,CAAA2D,MAAA,SAAA6B,MAAA,aAAAxF,CAAA,CAAA2D,MAAA,SAAAwB,IAAA,QAAA/E,CAAA,GAAAT,CAAA,CAAAyB,IAAA,CAAApB,CAAA,eAAAM,CAAA,GAAAX,CAAA,CAAAyB,IAAA,CAAApB,CAAA,qBAAAI,CAAA,IAAAE,CAAA,aAAA6E,IAAA,GAAAnF,CAAA,CAAA4D,QAAA,SAAA4B,MAAA,CAAAxF,CAAA,CAAA4D,QAAA,gBAAAuB,IAAA,GAAAnF,CAAA,CAAA6D,UAAA,SAAA2B,MAAA,CAAAxF,CAAA,CAAA6D,UAAA,cAAAzD,CAAA,aAAA+E,IAAA,GAAAnF,CAAA,CAAA4D,QAAA,SAAA4B,MAAA,CAAAxF,CAAA,CAAA4D,QAAA,qBAAAtD,CAAA,YAAAsC,KAAA,qDAAAuC,IAAA,GAAAnF,CAAA,CAAA6D,UAAA,SAAA2B,MAAA,CAAAxF,CAAA,CAAA6D,UAAA,YAAAT,MAAA,WAAAA,OAAA7D,CAAA,EAAAD,CAAA,aAAAE,CAAA,QAAAuE,UAAA,CAAAM,MAAA,MAAA7E,CAAA,SAAAA,CAAA,QAAAK,CAAA,QAAAkE,UAAA,CAAAvE,CAAA,OAAAK,CAAA,CAAA8D,MAAA,SAAAwB,IAAA,IAAAxF,CAAA,CAAAyB,IAAA,CAAAvB,CAAA,wBAAAsF,IAAA,GAAAtF,CAAA,CAAAgE,UAAA,QAAA7D,CAAA,GAAAH,CAAA,aAAAG,CAAA,iBAAAT,CAAA,mBAAAA,CAAA,KAAAS,CAAA,CAAA2D,MAAA,IAAArE,CAAA,IAAAA,CAAA,IAAAU,CAAA,CAAA6D,UAAA,KAAA7D,CAAA,cAAAE,CAAA,GAAAF,CAAA,GAAAA,CAAA,CAAAkE,UAAA,cAAAhE,CAAA,CAAAgB,IAAA,GAAA3B,CAAA,EAAAW,CAAA,CAAAiB,GAAA,GAAA7B,CAAA,EAAAU,CAAA,SAAA8C,MAAA,gBAAAU,IAAA,GAAAxD,CAAA,CAAA6D,UAAA,EAAApC,CAAA,SAAAgE,QAAA,CAAAvF,CAAA,MAAAuF,QAAA,WAAAA,SAAAlG,CAAA,EAAAD,CAAA,oBAAAC,CAAA,CAAA2B,IAAA,QAAA3B,CAAA,CAAA4B,GAAA,qBAAA5B,CAAA,CAAA2B,IAAA,mBAAA3B,CAAA,CAAA2B,IAAA,QAAAsC,IAAA,GAAAjE,CAAA,CAAA4B,GAAA,gBAAA5B,CAAA,CAAA2B,IAAA,SAAAqE,IAAA,QAAApE,GAAA,GAAA5B,CAAA,CAAA4B,GAAA,OAAA2B,MAAA,kBAAAU,IAAA,yBAAAjE,CAAA,CAAA2B,IAAA,IAAA5B,CAAA,UAAAkE,IAAA,GAAAlE,CAAA,GAAAmC,CAAA,KAAAiE,MAAA,WAAAA,OAAAnG,CAAA,aAAAD,CAAA,QAAAyE,UAAA,CAAAM,MAAA,MAAA/E,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAuE,UAAA,CAAAzE,CAAA,OAAAE,CAAA,CAAAqE,UAAA,KAAAtE,CAAA,cAAAkG,QAAA,CAAAjG,CAAA,CAAA0E,UAAA,EAAA1E,CAAA,CAAAsE,QAAA,GAAAG,aAAA,CAAAzE,CAAA,GAAAiC,CAAA,OAAAkE,KAAA,WAAAC,OAAArG,CAAA,aAAAD,CAAA,QAAAyE,UAAA,CAAAM,MAAA,MAAA/E,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAuE,UAAA,CAAAzE,CAAA,OAAAE,CAAA,CAAAmE,MAAA,KAAApE,CAAA,QAAAI,CAAA,GAAAH,CAAA,CAAA0E,UAAA,kBAAAvE,CAAA,CAAAuB,IAAA,QAAArB,CAAA,GAAAF,CAAA,CAAAwB,GAAA,EAAA8C,aAAA,CAAAzE,CAAA,YAAAK,CAAA,gBAAA+C,KAAA,8BAAAiD,aAAA,WAAAA,cAAAvG,CAAA,EAAAE,CAAA,EAAAG,CAAA,gBAAAoD,QAAA,KAAA5C,QAAA,EAAA6B,MAAA,CAAA1C,CAAA,GAAAiE,UAAA,EAAA/D,CAAA,EAAAiE,OAAA,EAAA9D,CAAA,oBAAAmD,MAAA,UAAA3B,GAAA,GAAA5B,CAAA,GAAAkC,CAAA,OAAAnC,CAAA;AAAA,SAAAwG,mBAAAC,GAAA,EAAAvD,OAAA,EAAAwD,MAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,GAAA,EAAAhF,GAAA,cAAAiF,IAAA,GAAAL,GAAA,CAAAI,GAAA,EAAAhF,GAAA,OAAApB,KAAA,GAAAqG,IAAA,CAAArG,KAAA,WAAAsG,KAAA,IAAAL,MAAA,CAAAK,KAAA,iBAAAD,IAAA,CAAAvD,IAAA,IAAAL,OAAA,CAAAzC,KAAA,YAAAgF,OAAA,CAAAvC,OAAA,CAAAzC,KAAA,EAAA2C,IAAA,CAAAuD,KAAA,EAAAC,MAAA;AAAA,SAAAI,kBAAAC,EAAA,6BAAAC,IAAA,SAAAC,IAAA,GAAAC,SAAA,aAAA3B,OAAA,WAAAvC,OAAA,EAAAwD,MAAA,QAAAD,GAAA,GAAAQ,EAAA,CAAAI,KAAA,CAAAH,IAAA,EAAAC,IAAA,YAAAR,MAAAlG,KAAA,IAAA+F,kBAAA,CAAAC,GAAA,EAAAvD,OAAA,EAAAwD,MAAA,EAAAC,KAAA,EAAAC,MAAA,UAAAnG,KAAA,cAAAmG,OAAAU,GAAA,IAAAd,kBAAA,CAAAC,GAAA,EAAAvD,OAAA,EAAAwD,MAAA,EAAAC,KAAA,EAAAC,MAAA,WAAAU,GAAA,KAAAX,KAAA,CAAAY,SAAA;AAAA,SAAAC,gBAAAC,QAAA,EAAAC,WAAA,UAAAD,QAAA,YAAAC,WAAA,eAAA1D,SAAA;AAAA,SAAA2D,kBAAAC,MAAA,EAAAC,KAAA,aAAAnH,CAAA,MAAAA,CAAA,GAAAmH,KAAA,CAAA9C,MAAA,EAAArE,CAAA,UAAAoH,UAAA,GAAAD,KAAA,CAAAnH,CAAA,GAAAoH,UAAA,CAAA3G,UAAA,GAAA2G,UAAA,CAAA3G,UAAA,WAAA2G,UAAA,CAAA1G,YAAA,wBAAA0G,UAAA,EAAAA,UAAA,CAAAzG,QAAA,SAAAlB,MAAA,CAAAK,cAAA,CAAAoH,MAAA,EAAAG,cAAA,CAAAD,UAAA,CAAAjB,GAAA,GAAAiB,UAAA;AAAA,SAAAE,aAAAN,WAAA,EAAAO,UAAA,EAAAC,WAAA,QAAAD,UAAA,EAAAN,iBAAA,CAAAD,WAAA,CAAAtH,SAAA,EAAA6H,UAAA,OAAAC,WAAA,EAAAP,iBAAA,CAAAD,WAAA,EAAAQ,WAAA,GAAA/H,MAAA,CAAAK,cAAA,CAAAkH,WAAA,iBAAArG,QAAA,mBAAAqG,WAAA;AAAA,SAAAS,UAAAC,QAAA,EAAAC,UAAA,eAAAA,UAAA,mBAAAA,UAAA,uBAAArE,SAAA,0DAAAoE,QAAA,CAAAhI,SAAA,GAAAD,MAAA,CAAAqB,MAAA,CAAA6G,UAAA,IAAAA,UAAA,CAAAjI,SAAA,IAAA8E,WAAA,IAAAzE,KAAA,EAAA2H,QAAA,EAAA/G,QAAA,QAAAD,YAAA,aAAAjB,MAAA,CAAAK,cAAA,CAAA4H,QAAA,iBAAA/G,QAAA,gBAAAgH,UAAA,EAAAC,eAAA,CAAAF,QAAA,EAAAC,UAAA;AAAA,SAAAC,gBAAA/H,CAAA,EAAA+B,CAAA,IAAAgG,eAAA,GAAAnI,MAAA,CAAAkF,cAAA,GAAAlF,MAAA,CAAAkF,cAAA,CAAAkD,IAAA,cAAAD,gBAAA/H,CAAA,EAAA+B,CAAA,IAAA/B,CAAA,CAAA+E,SAAA,GAAAhD,CAAA,SAAA/B,CAAA,YAAA+H,eAAA,CAAA/H,CAAA,EAAA+B,CAAA;AAAA,SAAAkG,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,GAAAC,eAAA,CAAAL,OAAA,GAAAM,MAAA,MAAAL,yBAAA,QAAAM,SAAA,GAAAF,eAAA,OAAA5D,WAAA,EAAA6D,MAAA,GAAAE,OAAA,CAAAC,SAAA,CAAAL,KAAA,EAAAzB,SAAA,EAAA4B,SAAA,YAAAD,MAAA,GAAAF,KAAA,CAAAxB,KAAA,OAAAD,SAAA,YAAA+B,0BAAA,OAAAJ,MAAA;AAAA,SAAAI,2BAAAjC,IAAA,EAAApF,IAAA,QAAAA,IAAA,KAAAmB,OAAA,CAAAnB,IAAA,yBAAAA,IAAA,2BAAAA,IAAA,aAAAA,IAAA,yBAAAkC,SAAA,uEAAAoF,sBAAA,CAAAlC,IAAA;AAAA,SAAAkC,uBAAAlC,IAAA,QAAAA,IAAA,yBAAAmC,cAAA,wEAAAnC,IAAA;AAAA,SAAAyB,0BAAA,eAAAM,OAAA,qBAAAA,OAAA,CAAAC,SAAA,oBAAAD,OAAA,CAAAC,SAAA,CAAAI,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAApJ,SAAA,CAAAqJ,OAAA,CAAA3H,IAAA,CAAAmH,OAAA,CAAAC,SAAA,CAAAM,OAAA,8CAAAxJ,CAAA;AAAA,SAAA8I,gBAAAvI,CAAA,IAAAuI,eAAA,GAAA3I,MAAA,CAAAkF,cAAA,GAAAlF,MAAA,CAAAqC,cAAA,CAAA+F,IAAA,cAAAO,gBAAAvI,CAAA,WAAAA,CAAA,CAAA+E,SAAA,IAAAnF,MAAA,CAAAqC,cAAA,CAAAjC,CAAA,aAAAuI,eAAA,CAAAvI,CAAA;AAAA,SAAAmJ,gBAAAC,GAAA,EAAA9C,GAAA,EAAApG,KAAA,IAAAoG,GAAA,GAAAkB,cAAA,CAAAlB,GAAA,OAAAA,GAAA,IAAA8C,GAAA,IAAAxJ,MAAA,CAAAK,cAAA,CAAAmJ,GAAA,EAAA9C,GAAA,IAAApG,KAAA,EAAAA,KAAA,EAAAU,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAsI,GAAA,CAAA9C,GAAA,IAAApG,KAAA,WAAAkJ,GAAA;AAAA,SAAA5B,eAAA9H,CAAA,QAAAS,CAAA,GAAAkJ,YAAA,CAAA3J,CAAA,gCAAAgD,OAAA,CAAAvC,CAAA,IAAAA,CAAA,GAAAmJ,MAAA,CAAAnJ,CAAA;AAAA,SAAAkJ,aAAA3J,CAAA,EAAAC,CAAA,oBAAA+C,OAAA,CAAAhD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAU,MAAA,CAAAmJ,WAAA,kBAAA9J,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAA8B,IAAA,CAAA7B,CAAA,EAAAC,CAAA,gCAAA+C,OAAA,CAAAvC,CAAA,UAAAA,CAAA,YAAAsD,SAAA,yEAAA9D,CAAA,GAAA2J,MAAA,GAAAE,MAAA,EAAA9J,CAAA;AAAA,SAAS+J,mBAAmB,EAAEC,KAAK,EAAEC,UAAU,EAAEC,IAAI,EAAEC,iBAAiB,EAAEC,qBAAqB,EAAEC,cAAc,EAAEC,aAAa,EAAEC,YAAY,EAAEC,OAAO,EAAEC,GAAG,QAAQ,eAAe;AACjL,OAAOC,WAAW;AAElB,SAASC,GAAG;AAAiB,IAEvBC,SAAS,0BAAAC,YAAA;EAAA3C,SAAA,CAAA0C,SAAA,EAAAC,YAAA;EAAA,IAAAC,MAAA,GAAAvC,YAAA,CAAAqC,SAAA;EAyFb,SAAAA,UAAYG,MAAkB,EAAE;IAAA,IAAAC,KAAA;IAAAzD,eAAA,OAAAqD,SAAA;IAC9BI,KAAA,GAAAF,MAAA,CAAAjJ,IAAA;IAAO4H,eAAA,CAAAN,sBAAA,CAAA6B,KAAA;IAAAvB,eAAA,CAAAN,sBAAA,CAAA6B,KAAA;IAAAvB,eAAA,CAAAN,sBAAA,CAAA6B,KAAA;IAAAvB,eAAA,CAAAN,sBAAA,CAAA6B,KAAA;IAAAvB,eAAA,CAAAN,sBAAA,CAAA6B,KAAA;IAAAvB,eAAA,CAAAN,sBAAA,CAAA6B,KAAA;IAAAvB,eAAA,CAAAN,sBAAA,CAAA6B,KAAA;IAAAvB,eAAA,CAAAN,sBAAA,CAAA6B,KAAA;IAAAvB,eAAA,CAAAN,sBAAA,CAAA6B,KAAA;IAAAvB,eAAA,CAAAN,sBAAA,CAAA6B,KAAA;IAAAvB,eAAA,CAAAN,sBAAA,CAAA6B,KAAA;IAAAvB,eAAA,CAAAN,sBAAA,CAAA6B,KAAA;IAAAvB,eAAA,CAAAN,sBAAA,CAAA6B,KAAA;IACP,IAAQC,UAAU,GAA8GF,MAAM,CAA9HE,UAAU;MAAEC,QAAQ,GAAoGH,MAAM,CAAlHG,QAAQ;MAAAC,aAAA,GAAoGJ,MAAM,CAAxGK,KAAK;MAALA,KAAK,GAAAD,aAAA,cAAG,GAAG,GAAAA,aAAA;MAAAE,aAAA,GAAuFN,MAAM,CAA3FO,KAAK;MAALA,KAAK,GAAAD,aAAA,cAAG,SAAS,GAAAA,aAAA;MAAAE,aAAA,GAAoER,MAAM,CAAxES,KAAK;MAALA,KAAK,GAAAD,aAAA,cAAG,GAAG,GAAAA,aAAA;MAAAE,cAAA,GAAuDV,MAAM,CAA3DW,MAAM;MAANA,MAAM,GAAAD,cAAA,cAAG,CAAC,GAAAA,cAAA;MAAAE,gBAAA,GAA2CZ,MAAM,CAA/Ca,QAAQ;MAARA,QAAQ,GAAAD,gBAAA,cAAG,CAAC,GAAAA,gBAAA;MAAAE,YAAA,GAA6Bd,MAAM,CAAjCe,IAAI;MAAJA,IAAI,GAAAD,YAAA,cAAG,IAAI,GAAAA,YAAA;MAAAE,aAAA,GAAgBhB,MAAM,CAApBiB,KAAK;MAALA,KAAK,GAAAD,aAAA,cAAG,CAAC,GAAAA,aAAA;IAC3Hf,KAAA,CAAKiB,WAAW,GAAG,IAAIzB,OAAO,CAAC,CAAC,CAAC0B,SAAS,CAACjB,UAAU,CAAC;IACtDD,KAAA,CAAKmB,SAAS,GAAG,IAAI3B,OAAO,CAAC,CAAC,CAAC0B,SAAS,CAAChB,QAAQ,CAAC;IAClDF,KAAA,CAAKoB,MAAM,GAAGhB,KAAK;IACnBJ,KAAA,CAAKqB,MAAM,GAAGf,KAAK;IACnBN,KAAA,CAAKsB,MAAM,GAAGd,KAAK;IACnBR,KAAA,CAAKuB,OAAO,GAAGb,MAAM;IACrBV,KAAA,CAAKwB,SAAS,GAAGZ,QAAQ;IACzBZ,KAAA,CAAKyB,KAAK,GAAGX,IAAI;IACjBd,KAAA,CAAK0B,MAAM,GAAGV,KAAK;IAEnBhB,KAAA,CAAK2B,aAAa,GAAG3B,KAAA,CAAK4B,IAAI,CAAC,CAAC;IAAA,OAAA5B,KAAA;EAClC;EAACjD,YAAA,CAAA6C,SAAA;IAAAhE,GAAA;IAAAiG,GAAA,EAvFD,SAAAA,IAAA,EAA2B;MACzB,OAAO,IAAI,CAACT,MAAM;IACpB,CAAC;IAAAU,GAAA,EAED,SAAAA,IAAiBtM,KAAa,EAAE;MAC9B,IAAI,CAAC4L,MAAM,GAAG5L,KAAK;MACnB,IAAI,CAACuM,OAAO,CAAC,CAAC;MACd,IAAI,CAACH,IAAI,CAAC,CAAC;IACb;EAAC;IAAAhG,GAAA;IAAAiG,GAAA,EAED,SAAAA,IAAA,EAA2B;MACzB,OAAO,IAAI,CAACR,MAAM;IACpB,CAAC;IAAAS,GAAA,EAED,SAAAA,IAAiBtM,KAAa,EAAE;MAC9B,IAAI,CAAC6L,MAAM,GAAG7L,KAAK;MACnB,IAAI,CAACwM,SAAS,CAAC1B,KAAK,GAAG,IAAItB,KAAK,CAAC,IAAI,CAACqC,MAAM,CAAC;IAC/C;EAAC;IAAAzF,GAAA;IAAAiG,GAAA,EAED,SAAAA,IAAA,EAA2B;MACzB,OAAO,IAAI,CAACP,MAAM;IACpB,CAAC;IAAAQ,GAAA,EAED,SAAAA,IAAiBtM,KAAa,EAAE;MAC9B,IAAI,CAAC8L,MAAM,GAAG9L,KAAK;MACnB,IAAI,CAACuM,OAAO,CAAC,CAAC;MACd,IAAI,CAACH,IAAI,CAAC,CAAC;IACb;EAAC;IAAAhG,GAAA;IAAAiG,GAAA,EAED,SAAAA,IAAA,EAA8B;MAC5B,IAAI,IAAI,CAACL,SAAS,IAAI,CAAC,EACrB,OAAO,CAAC;MACV,OAAO,IAAI,CAACA,SAAS;IACvB,CAAC;IAAAM,GAAA,EAED,SAAAA,IAAoBtM,KAAa,EAAE;MACjC,IAAI,CAACgM,SAAS,GAAGhM,KAAK;IACxB;EAAC;IAAAoG,GAAA;IAAAiG,GAAA,EAED,SAAAA,IAAA,EAA4B;MAC1B,IAAI,IAAI,CAACN,OAAO,IAAI,CAAC,EACnB,OAAO,CAAC;MACV,OAAO,IAAI,CAACA,OAAO;IACrB,CAAC;IAAAO,GAAA,EAED,SAAAA,IAAkBtM,KAAa,EAAE;MAC/B,IAAI,CAAC+L,OAAO,GAAG/L,KAAK;IACtB;EAAC;IAAAoG,GAAA;IAAAiG,GAAA,EAED,SAAAA,IAAA,EAA2B;MACzB,OAAO,IAAI,CAACJ,KAAK;IACnB,CAAC;IAAAK,GAAA,EAED,SAAAA,IAAgBtM,KAAc,EAAE;MAC9B,IAAI,CAACiM,KAAK,GAAGjM,KAAK;IACpB;EAAC;IAAAoG,GAAA;IAAAiG,GAAA,EAED,SAAAA,IAAA,EAA2B;MACzB,OAAO,IAAI,CAACH,MAAM;IACpB,CAAC;IAAAI,GAAA,EAED,SAAAA,IAAiBtM,KAAa,EAAE;MAC9B,IAAI,CAACkM,MAAM,GAAGlM,KAAK;IACrB;EAAC;IAAAoG,GAAA;IAAAiG,GAAA,EAED,SAAAA,IAAA,EAA+B;MAC7B,OAAO,IAAI,CAACI,KAAK;IACnB;EAAC;IAAArG,GAAA;IAAAiG,GAAA,EAED,SAAAA,IAAA,EAAmB;MACjB,OAAO,IAAI,CAACF,aAAa;IAC3B;EAAC;IAAA/F,GAAA;IAAApG,KAAA;MAAA,IAAA0M,KAAA,GAAAnG,iBAAA,eAAAjH,mBAAA,GAAAqF,IAAA,CAkBD,SAAAgI,QAAA;QAAA,IAAA3B,KAAA,EAAA4B,OAAA,EAAAC,IAAA;QAAA,OAAAvN,mBAAA,GAAAuB,IAAA,UAAAiM,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAA3H,IAAA,GAAA2H,QAAA,CAAAtJ,IAAA;YAAA;cACQuH,KAAK,GAAG,IAAI,CAACgC,QAAQ,CAAC,CAAC;cAAAD,QAAA,CAAAtJ,IAAA;cAAA,OAEP,IAAI,CAACwJ,WAAW,CAAC9C,GAAG,CAAC;YAAA;cAArCyC,OAAO,GAAAG,QAAA,CAAA7J,IAAA;cACP2J,IAAI,GAAG,IAAI9C,YAAY,CAACiB,KAAK,EAAEkC,IAAI,CAACC,KAAK,CAACnC,KAAK,CAACoC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAACxC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC;cAC/F,IAAI,CAAC4B,SAAS,GAAG,IAAI7C,iBAAiB,CAAC;gBACrCmB,KAAK,EAAE,IAAI,CAACA,KAAK;gBACjBuC,GAAG,EAAET,OAAO;gBACZU,IAAI,EAAE7D,UAAU;gBAChB8D,WAAW,EAAE,IAAI,CAAE;cACrB,CAAC,CAAC;cACF,IAAI,CAACd,KAAK,GAAG,IAAI/C,IAAI,CAACmD,IAAI,EAAE,IAAI,CAACL,SAAS,CAAC;cAC3C,IAAI,CAACC,KAAK,CAACe,WAAW,GAAG,EAAE;cAC3B,IAAI,CAACC,GAAG,CAAC,IAAI,CAAChB,KAAK,CAAC;;cAEpB;cACA,IAAI,CAACiB,cAAc,CAACd,OAAO,CAAC;cAAA,OAAAG,QAAA,CAAA1J,MAAA,WAErB,IAAI;YAAA;YAAA;cAAA,OAAA0J,QAAA,CAAAxH,IAAA;UAAA;QAAA,GAAAoH,OAAA;MAAA,CACZ;MAAA,SAAAP,KAAA;QAAA,OAAAM,KAAA,CAAA9F,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAAyF,IAAA;IAAA;EAAA;IAAAhG,GAAA;IAAApG,KAAA;MAAA,IAAA2N,YAAA,GAAApH,iBAAA,eAAAjH,mBAAA,GAAAqF,IAAA,CAED,SAAAiJ,SAA0BC,IAAY;QAAA,IAAAC,MAAA;QAAA,IAAAC,UAAA;QAAA,OAAAzO,mBAAA,GAAAuB,IAAA,UAAAmN,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA7I,IAAA,GAAA6I,SAAA,CAAAxK,IAAA;YAAA;cAC9BsK,UAAU,GAAG,IAAIjE,aAAa,CAAC,CAAC;cAAA,OAAAmE,SAAA,CAAA5K,MAAA,WAC/B,IAAI2B,OAAO,CAAC,UAACvC,OAAO,EAAK;gBAC9B,IAAMmK,OAAO,GAAGmB,UAAU,CAACG,IAAI,CAACL,IAAI,EAAE,YAAM;kBAC1C;kBACA;kBACA;kBACAjB,OAAO,CAACuB,MAAM,CAAC7B,GAAG,CAACwB,MAAI,CAAC5C,MAAM,EAAE,CAAC,CAAC;kBAClC0B,OAAO,CAACwB,MAAM,CAAC9B,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;kBACxBM,OAAO,CAACyB,KAAK,GAAGxE,cAAc;kBAC9B+C,OAAO,CAAC0B,KAAK,GAAG/E,mBAAmB;kBACnC9G,OAAO,CAACmK,OAAO,CAAC;gBAClB,CAAC,CAAC;cACJ,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAqB,SAAA,CAAA1I,IAAA;UAAA;QAAA,GAAAqI,QAAA;MAAA,CACH;MAAA,SAAAX,YAAAsB,EAAA;QAAA,OAAAZ,YAAA,CAAA/G,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAAsG,WAAA;IAAA;EAAA;IAAA7G,GAAA;IAAApG,KAAA,EAED,SAAA0N,eAAuBd,OAAgB,EAAE;MAAA,IAAA4B,MAAA;MACvC,IAAIC,WAAW,GAAG,IAAI;MACtB,IAAIC,WAAW,GAAG,CAAC;MACnB,IAAIC,QAAQ,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;MAChC,IAAIC,UAAU,GAAG,KAAK;MACtB,IAAIC,cAAc,GAAG,CAAC;MAEtB,IAAI,CAACC,gBAAgB,GAAG/E,GAAG,CAACgF,QAAQ,CAAC,YAAM;QACzC,IAAMC,WAAW,GAAGN,WAAW,CAACC,GAAG,CAAC,CAAC;QACrC;QACA,IAAIC,UAAU,EAAE;UAChB;UACE,IAAI,CAACI,WAAW,GAAGH,cAAc,IAAI,IAAI,IAAIP,MAAI,CAAChD,KAAK,EAAE;YACvDsD,UAAU,GAAG,KAAK;YAClB;YACAJ,WAAW,GAAG,CAAC;YACfD,WAAW,GAAG,IAAI;YAClBE,QAAQ,GAAGO,WAAW;UACxB;UACA,OAAM,CAAC;QACT;;QAEA;QACA,IAAI,CAACT,WAAW,EACd;QAEF,IAAMU,SAAS,GAAID,WAAW,GAAGP,QAAS;QAC1CA,QAAQ,GAAGO,WAAW;;QAEtB;QACA,IAAME,cAAc,GAAID,SAAS,IAAIX,MAAI,CAACpD,QAAQ,GAAGoD,MAAI,CAACtD,MAAM,GAAG,IAAI,CAAE;QACzE;QACAwD,WAAW,IAAIU,cAAc;;QAE7B;QACAxC,OAAO,CAACwB,MAAM,CAACiB,CAAC,IAAID,cAAc;;QAElC;QACA,IAAIV,WAAW,IAAI,CAAC,EAAE;UACtB;UACEA,WAAW,GAAG,CAAC;UACf9B,OAAO,CAACwB,MAAM,CAACiB,CAAC,GAAG,CAAC;;UAEpB;UACA,IAAI,CAACb,MAAI,CAAClD,IAAI,EAAE;YACdmD,WAAW,GAAG,KAAK;UACrB;UACA;UAAA,KACK,IAAID,MAAI,CAAChD,KAAK,GAAG,CAAC,EAAE;YACvBsD,UAAU,GAAG,IAAI;YACjBC,cAAc,GAAGG,WAAW;YAC5BT,WAAW,GAAG,KAAK,EAAC;UACtB;QACF;MACF,CAAC,CAAC;IACJ;EAAC;IAAArI,GAAA;IAAApG,KAAA,EAED,SAAAgN,SAAA,EAAmB;MACjB;MACA,IAAMsC,QAAQ,GAAG,IAAItF,OAAO,CAC1B,CAAC,IAAI,CAACyB,WAAW,CAAC4D,CAAC,GAAG,IAAI,CAAC1D,SAAS,CAAC0D,CAAC,IAAI,CAAC,EAC3C,CAAC,IAAI,CAAC5D,WAAW,CAAC/J,CAAC,GAAG,IAAI,CAACiK,SAAS,CAACjK,CAAC,IAAI,CAAC,EAC3C,CAAC,IAAI,CAAC+J,WAAW,CAAC8D,CAAC,GAAG,IAAI,CAAC5D,SAAS,CAAC4D,CAAC,IAAI,CAC5C,CAAC;;MAED;MACA,IAAMC,SAAS,GAAG,IAAIxF,OAAO,CAAC,CAAC,CAACyF,UAAU,CAAC,IAAI,CAAC9D,SAAS,EAAE,IAAI,CAACF,WAAW,CAAC;;MAE5E;MACA,IAAMiE,QAAQ,GAAGF,SAAS,CAAClL,MAAM,CAAC,CAAC;;MAEnC;MACA,IAAMqL,MAAM,GAAGD,QAAQ,GAAG,IAAI,CAAC1E,KAAK;;MAEpC;MACA,IAAM4E,YAAY,GAAG,IAAI5F,OAAO,CAAC,CAAC,CAC/B6F,IAAI,CAACP,QAAQ,CAAC,CACdQ,eAAe,CAAC,IAAI9F,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE2F,MAAM,CAAC;;MAEhD;MACA,IAAM3E,KAAK,GAAG,IAAIpB,qBAAqB,CACrC,IAAI,CAAC6B,WAAW,EAChBmE,YAAY,EACZ,IAAI,CAACjE,SACP,CAAC;MACD,OAAOX,KAAK;IACd;EAAC;IAAA5E,GAAA;IAAApG,KAAA,EAED,SAAAuM,QAAA,EAAU;MACR,IAAI,CAACyC,gBAAgB,IAAI,IAAI,CAACA,gBAAgB,CAAC,CAAC;MAChD;MACA,IAAI,IAAI,CAACvC,KAAK,EAAE;QACd,IAAI,IAAI,CAACA,KAAK,CAACsD,QAAQ,EACrB,IAAI,CAACtD,KAAK,CAACsD,QAAQ,CAACC,OAAO,CAAC,CAAC;;QAE/B;QACA,IAAI,IAAI,CAACvD,KAAK,CAACwD,QAAQ,EAAE;UACvB;UACA,IAAIC,KAAK,CAACC,OAAO,CAAC,IAAI,CAAC1D,KAAK,CAACwD,QAAQ,CAAC,EACpC,IAAI,CAACxD,KAAK,CAACwD,QAAQ,CAAC7N,OAAO,CAAC,UAAA6N,QAAQ;YAAA,OAAIA,QAAQ,CAACD,OAAO,CAAC,CAAC;UAAA,EAAC,MAE3D,IAAI,CAACvD,KAAK,CAACwD,QAAQ,CAACD,OAAO,CAAC,CAAC;QACjC;;QAEA;QACA,IAAI,CAACI,MAAM,CAAC,IAAI,CAAC3D,KAAK,CAAC;QACvB,IAAI,CAACA,KAAK,GAAG,IAAI;MACnB;IACF;EAAC;EAAA,OAAArC,SAAA;AAAA,EA1PqBF,WAAW;AA6PnC,eAAeE,SAAS"}
|
|
1
|
+
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","ClampToEdgeWrapping","Color","DoubleSide","Mesh","MeshBasicMaterial","QuadraticBezierCurve3","RepeatWrapping","TextureLoader","TubeGeometry","Vector3","use","ObjectLayer","IMG","CurveLine","_ObjectLayer","_super","params","_this","startPoint","endPoint","_params$width","width","_params$color","color","_params$curve","curve","_params$tiling","tiling","_params$duration","duration","_params$loop","loop","_params$delay","delay","_startPoint","fromArray","_endPoint","_width","_color","_curve","_tiling","_duration","_loop","_delay","_readyPromise","init","get","set","destroy","_material","_mesh","_init","_callee","texture","tube","_callee$","_context","getCurve","loadTexture","Math","floor","getLength","map","side","transparent","renderOrder","add","setupAnimation","_loadTexture","_callee2","path","_this2","textLoader","_callee2$","_context2","load","repeat","offset","wrapS","wrapT","_x","_this3","isAnimating","totalOffset","lastTime","performance","now","isDelaying","delayStartTime","_cancelAnimation","useframe","currentTime","deltaTime","offsetPerFrame","x","midPoint","z","direction","subVectors","distance","height","controlPoint","copy","addScaledVector","geometry","dispose","material","Array","isArray","remove"],"sources":["../../../../src/business/Flyline/line/ArcLine.ts"],"sourcesContent":["import type { Texture } from '@anov/3d-core'\nimport { ClampToEdgeWrapping, Color, DoubleSide, Mesh, MeshBasicMaterial, QuadraticBezierCurve3, RepeatWrapping, TextureLoader, TubeGeometry, Vector3, use } from '@anov/3d-core'\nimport ObjectLayer from '../../Base/ObjectLayer'\nimport type { LineOption } from '../type'\nimport { IMG } from './index'\n\nclass CurveLine extends ObjectLayer {\n private _startPoint: Vector3\n private _endPoint: Vector3\n private _width: number\n private _color: string\n private _curve: number\n private _tiling: number\n private _duration: number\n private _loop: boolean\n private _delay: number\n\n private _material: MeshBasicMaterial\n private _mesh: Mesh\n private _readyPromise: Promise<boolean>\n private _cancelAnimation: Function\n\n public get width(): number {\n return this._width\n }\n\n public set width(value: number) {\n this._width = value\n this.destroy()\n this.init()\n }\n\n public get color(): string {\n return this._color\n }\n\n public set color(value: string) {\n this._color = value\n this._material.color = new Color(this._color)\n }\n\n public get curve(): number {\n return this._curve\n }\n\n public set curve(value: number) {\n this._curve = value\n this.destroy()\n this.init()\n }\n\n public get duration(): number {\n if (this._duration <= 0)\n return 1\n return this._duration\n }\n\n public set duration(value: number) {\n this._duration = value\n }\n\n public get tiling(): number {\n if (this._tiling <= 0)\n return 0\n return this._tiling\n }\n\n public set tiling(value: number) {\n this._tiling = value\n }\n\n public get loop(): boolean {\n return this._loop\n }\n\n public set loop(value: boolean) {\n this._loop = value\n }\n\n public get delay(): number {\n return this._delay\n }\n\n public set delay(value: number) {\n this._delay = value\n }\n\n public get mesh(): Mesh | null {\n return this._mesh\n }\n\n public get ready() {\n return this._readyPromise\n }\n\n constructor(params: LineOption) {\n super()\n const { startPoint, endPoint, width = 0.2, color = '#28FFD9', curve = 0.6, tiling = 1, duration = 1, loop = true, delay = 0 } = params\n this._startPoint = new Vector3().fromArray(startPoint)\n this._endPoint = new Vector3().fromArray(endPoint)\n this._width = width\n this._color = color\n this._curve = curve\n this._tiling = tiling\n this._duration = duration\n this._loop = loop\n this._delay = delay\n\n this._readyPromise = this.init()\n }\n\n private async init() {\n const curve = this.getCurve()\n\n const texture = await this.loadTexture(IMG)\n const tube = new TubeGeometry(curve, Math.floor(curve.getLength() * 200), this.width, 2, false)\n this._material = new MeshBasicMaterial({\n color: this.color,\n map: texture,\n side: DoubleSide,\n transparent: true, // 透明\n })\n this._mesh = new Mesh(tube, this._material)\n this._mesh.renderOrder = 10\n this.add(this._mesh)\n\n // 动画\n this.setupAnimation(texture)\n\n return true\n }\n\n private async loadTexture(path: string): Promise<Texture> {\n const textLoader = new TextureLoader()\n return new Promise((resolve) => {\n const texture = textLoader.load(path, () => {\n // 纹理加载完成后设置属性\n // texture.center.set(0.5, 0.5) // 设置旋转中心为纹理中心\n // texture.rotation = Math.PI / 2 // 旋转90度\n texture.repeat.set(this.tiling, 2)\n texture.offset.set(0, 0)\n texture.wrapS = RepeatWrapping\n texture.wrapT = ClampToEdgeWrapping\n resolve(texture)\n })\n })\n }\n\n private setupAnimation(texture: Texture) {\n let isAnimating = true\n let totalOffset = 0\n let lastTime = performance.now()\n let isDelaying = false\n let delayStartTime = 0\n\n this._cancelAnimation = use.useframe(() => {\n const currentTime = performance.now()\n // 处理延迟状态\n if (isDelaying) {\n // 检查是否延迟时间已结束\n if ((currentTime - delayStartTime) / 1000 >= this.delay) {\n isDelaying = false\n // 重置偏移量计数和动画状态\n totalOffset = 0\n isAnimating = true\n lastTime = currentTime\n }\n return // 在延迟期间不进行动画\n }\n\n // 如果不在动画中,直接返回\n if (!isAnimating)\n return\n\n const deltaTime = (currentTime - lastTime)\n lastTime = currentTime\n\n // 使用 deltaTime 进行动画计算\n const offsetPerFrame = (deltaTime / (this.duration / this.tiling * 1000))\n // 更新总偏移量\n totalOffset += offsetPerFrame\n\n // 更新纹理偏移\n texture.offset.x -= offsetPerFrame\n\n // 检查是否完成一次完整的UV移动\n if (totalOffset >= this.tiling) {\n // 重置偏移量以确保精确的位置\n totalOffset = 0\n texture.offset.x = 0\n\n // 如果不循环,则结束动画\n if (!this.loop) {\n isAnimating = false\n }\n // 如果有延迟且需要循环,则开始延迟\n else if (this.delay > 0) {\n isDelaying = true\n delayStartTime = currentTime\n isAnimating = false // 在延迟期间暂停动画\n }\n }\n })\n }\n\n private getCurve() {\n // 计算起点和终点的中点\n const midPoint = new Vector3(\n (this._startPoint.x + this._endPoint.x) / 2,\n (this._startPoint.y + this._endPoint.y) / 2,\n (this._startPoint.z + this._endPoint.z) / 2,\n )\n\n // 计算起点和终点的方向向量\n const direction = new Vector3().subVectors(this._endPoint, this._startPoint)\n\n // 计算距离,用于确定弧的高度\n const distance = direction.length()\n\n // 使用arcFactor控制弧线的高度\n const height = distance * this.curve\n\n // 计算控制点 - 在中点上方\n const controlPoint = new Vector3()\n .copy(midPoint)\n .addScaledVector(new Vector3(0, 1, 0), height)\n\n // 创建曲线\n const curve = new QuadraticBezierCurve3(\n this._startPoint,\n controlPoint,\n this._endPoint,\n )\n return curve\n }\n\n destroy() {\n this._cancelAnimation && this._cancelAnimation()\n // 释放几何体资源\n if (this._mesh) {\n if (this._mesh.geometry)\n this._mesh.geometry.dispose()\n\n // 释放材质资源\n if (this._mesh.material) {\n // 释放材质\n if (Array.isArray(this._mesh.material))\n this._mesh.material.forEach(material => material.dispose())\n else\n this._mesh.material.dispose()\n }\n\n // 从场景中移除网格\n this.remove(this._mesh)\n this._mesh = null\n }\n }\n}\n\nexport default CurveLine"],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
|
|
|
17
17
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
18
18
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
19
19
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
20
|
-
import { Box3, Color, Group, LoaderModule, MeshBasicMaterial, ShaderMaterial
|
|
20
|
+
import { Box3, Color, Group, LoaderModule, MeshBasicMaterial, ShaderMaterial } from '@anov/3d-core';
|
|
21
21
|
import _ from 'lodash';
|
|
22
22
|
import { StrategyManage as BubbleStrategy } from "../Poi/particle/index";
|
|
23
23
|
import ObjectLayer from "../Base/ObjectLayer";
|
|
@@ -176,13 +176,11 @@ var Mark = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
176
176
|
key: "loadModel",
|
|
177
177
|
value: function loadModel(uri) {
|
|
178
178
|
return new Promise(function (resolve, reject) {
|
|
179
|
-
var _utils$storeManagemen;
|
|
180
179
|
load.loadGLTF({
|
|
181
180
|
url: uri,
|
|
182
181
|
autoBackward: false,
|
|
183
182
|
isCache: true,
|
|
184
183
|
draco: true,
|
|
185
|
-
dracoPath: (_utils$storeManagemen = utils.storeManagement.get('decoderPath')) !== null && _utils$storeManagemen !== void 0 ? _utils$storeManagemen : './draco/',
|
|
186
184
|
onLoad: function onLoad(gltf) {
|
|
187
185
|
resolve(gltf.scene);
|
|
188
186
|
},
|