@anov/3d-ability 0.0.66 → 0.0.67
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/BaseClass.js +2 -0
- package/dist/business/Area/BaseClass.js.map +1 -1
- package/dist/business/Area/Fence/FenceBase.d.ts +3 -1
- package/dist/business/Area/Fence/FenceBase.js +10 -1
- package/dist/business/Area/Fence/FenceBase.js.map +1 -1
- package/dist/business/Area/Fence/fence_feeting_01.d.ts +3 -1
- package/dist/business/Area/Fence/fence_feeting_01.js +37 -13
- package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
- package/dist/business/Area/FillArea/FillAreaBase.d.ts +3 -1
- package/dist/business/Area/FillArea/FillAreaBase.js +10 -1
- package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
- package/dist/business/Batch/index.d.ts +23 -0
- package/dist/business/Batch/index.js +127 -0
- package/dist/business/Batch/index.js.map +1 -0
- package/dist/business/Batch/type.d.ts +12 -0
- package/dist/business/Batch/type.js +2 -0
- package/dist/business/Batch/type.js.map +1 -0
- package/dist/business/Poi/Plane/index.js +1 -1
- package/dist/business/Poi/Plane/index.js.map +1 -1
- package/dist/business/index.d.ts +1 -0
- package/dist/business/index.js +1 -0
- package/dist/business/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -73,6 +73,7 @@ var Base = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
73
73
|
_this.group = new Group();
|
|
74
74
|
// 属性赋值
|
|
75
75
|
_this.setValues(_.mergeWith({}, defaultOption, option));
|
|
76
|
+
_this.style = option.style;
|
|
76
77
|
return _this;
|
|
77
78
|
}
|
|
78
79
|
|
|
@@ -116,6 +117,7 @@ var Base = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
116
117
|
currentFenceStyle = this.fenceStyle;
|
|
117
118
|
currentFillAreaStyle = this._fillAreaStyle;
|
|
118
119
|
} else {
|
|
120
|
+
// [currentFenceStyle, currentFillAreaStyle] = STYLE_DATA.area_base_01
|
|
119
121
|
var _STYLE_DATA$this$styl = _slicedToArray(STYLE_DATA[this.style], 2);
|
|
120
122
|
currentFenceStyle = _STYLE_DATA$this$styl[0];
|
|
121
123
|
currentFillAreaStyle = _STYLE_DATA$this$styl[1];
|
|
@@ -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","Group","Vector3","_","ObjectLayer","StrategyManage","STYLE_DATA","area_base_01","area_feeting_01","area_roll_01","defaultOption","style","fenceStyle","fenceVisible","fenceHeight","fenceAlpha","fenceColor","fillAreaStyle","fillAreaVisible","fillAreaAlpha","fillAreaColor","fillAreaPos","surfaceSnap","Base","_ObjectLayer","_super","option","_this","group","setValues","mergeWith","_registerStrategy","_callee","strategyClass","_callee$","_context","concat","registerStrategy","_x","getCurrentStyle","currentFenceStyle","currentFillAreaStyle","_fillAreaStyle","_STYLE_DATA$this$styl","_slicedToArray","_create","_callee2","_this$getCurrentStyle","_callee2$","_context2","createFence","points","corner","close","fenceMesh","visible","add","createFillArea","fillAreaMesh","_createFence","_callee3","height","color","alpha","Strategy","_callee3$","_context3","_x2","_x3","_x4","_x5","_x6","_x7","_x8","_createFillArea","_callee4","pos","mesh","_callee4$","_context4","position","_x9","_x10","_x11","_x12","_x13","_x14","_x15","_resetFence","_callee5","_this$getCurrentStyle2","_callee5$","_context5","remove","resetFence","_resetFillArea","_callee6","_this$getCurrentStyle3","_callee6$","_context6","resetFillArea","get","_fenceStyle","set","newValue","_fenceVisible","_fenceHeight","_fenceAlpha","_fenceColor","_fillAreaVisible","_fillAreaAlpha","_fillAreaColor","_fillAreaPos","_surfaceSnap","_path","Array","isArray","map","console"],"sources":["../../../src/business/Area/BaseClass.ts"],"sourcesContent":["import { Group, Vector3 } from '@anov/3d-core'\nimport _ from 'lodash'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport { StrategyManage } from './strategy'\nimport type { Option } from './type'\n\nimport type FenceBase from './Fence/FenceBase'\nimport type FillAreaBase from './FillArea/FillAreaBase'\n\nconst STYLE_DATA = {\n area_base_01: ['base', ''],\n area_feeting_01: ['feeting', ''],\n area_roll_01: ['roll', ''],\n}\nconst defaultOption = {\n style: 'area_dynamic_mode',\n fenceStyle: 'base',\n fenceVisible: true,\n fenceHeight: 50,\n fenceAlpha: 1,\n fenceColor: '#00FFB5',\n fillAreaStyle: 'face',\n fillAreaVisible: false,\n fillAreaAlpha: 1,\n fillAreaColor: '#00FFB5',\n fillAreaPos: 'bottom',\n surfaceSnap: false,\n}\n\nclass Base extends ObjectLayer {\n public group!: Group\n public fenceMesh!: FenceBase\n public style: string\n public fillAreaMesh!: FillAreaBase\n private _fenceStyle: string\n private _fenceVisible: boolean\n private _fenceHeight: number\n private _fenceAlpha: number\n private _fenceColor: string\n private _fillAreaStyle: string\n private _fillAreaVisible: boolean\n private _fillAreaAlpha: number\n private _fillAreaColor: string\n private _fillAreaPos: string\n private _surfaceSnap: boolean\n private _path: Option['path']\n public points!: Vector3[]\n public corner: number\n public close: boolean\n\n constructor(option: Option) {\n super()\n this.group = new Group()\n // 属性赋值\n this.setValues(_.mergeWith({}, defaultOption, option))\n }\n\n // 注册样式\n async registerStrategy(style) {\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 getCurrentStyle() {\n let currentFenceStyle = ''\n let currentFillAreaStyle = ''\n if (this.style === 'area_dynamic_mode') {\n currentFenceStyle = this.fenceStyle\n currentFillAreaStyle = this._fillAreaStyle\n }\n else {\n [currentFenceStyle, currentFillAreaStyle] = STYLE_DATA[this.style]\n }\n return { currentFenceStyle, currentFillAreaStyle }\n }\n\n async create() {\n const { currentFenceStyle, currentFillAreaStyle } = this.getCurrentStyle()\n if (currentFenceStyle) {\n // 创建围栏\n this.fenceMesh = await this.createFence(this.points, currentFenceStyle, this.corner, this.close, this.fenceHeight, this.fenceColor, this.fenceAlpha)\n this.fenceMesh.visible = this.fenceVisible\n this.group.add(this.fenceMesh)\n }\n if (currentFillAreaStyle) {\n // 创建底座\n this.fillAreaMesh = await this.createFillArea(this.points, currentFillAreaStyle, this.corner, this.close, this.fillAreaColor, this.fillAreaAlpha, this.fillAreaPos)\n this.fillAreaMesh.visible = this.fillAreaVisible\n this.group.add(this.fillAreaMesh)\n }\n this.add(this.group)\n }\n\n // 创建围栏\n async createFence(points: Vector3[], style: string, corner: number, close: boolean, height: number, color: string, alpha: number) {\n const Strategy = await this.registerStrategy(style)\n const option = {\n points,\n height,\n corner,\n close,\n color,\n alpha,\n }\n return new Strategy(option)\n }\n\n // 创建封底\n async createFillArea(points: Vector3[], style: string, corner: number, close: boolean, color: string, alpha: number, pos: string) {\n const Strategy = await this.registerStrategy(style)\n const option = {\n points,\n color,\n alpha,\n corner,\n close,\n }\n const mesh = new Strategy(option)\n mesh.position.y = pos === 'bottom' ? 0 : this.fenceHeight\n return mesh\n }\n\n // 重置围栏\n async resetFence() {\n if (this.fenceMesh) {\n this.group.remove(this.fenceMesh)\n const { currentFenceStyle } = this.getCurrentStyle()\n this.fenceMesh = await this.createFence(this.points, currentFenceStyle, this.corner, this.close, this.fenceHeight, this.fenceColor, this.fenceAlpha)\n this.group.add(this.fenceMesh)\n }\n }\n\n // 重置封底\n async resetFillArea() {\n if (this.fillAreaMesh) {\n this.group.remove(this.fillAreaMesh)\n const { currentFillAreaStyle } = this.getCurrentStyle()\n this.fillAreaMesh = await this.createFillArea(this.points, currentFillAreaStyle, this.corner, this.close, this.fillAreaColor, this.fillAreaAlpha, this.fillAreaPos)\n this.group.add(this.fillAreaMesh)\n }\n }\n\n // Getter and Setter for fenceStyle property\n\n get fenceStyle(): string {\n return this._fenceStyle\n }\n\n set fenceStyle(newValue: string) {\n if (this._fenceStyle === newValue)\n return\n\n this._fenceStyle = newValue\n this.resetFence()\n }\n\n get fenceVisible(): boolean {\n return this._fenceVisible\n }\n\n set fenceVisible(newValue: boolean) {\n if (this.fenceVisible === newValue)\n return\n\n this._fenceVisible = newValue\n // 此处应该修改fence的Visible\n if (this.fenceMesh)\n this.fenceMesh.visible = newValue\n }\n\n // Getter and Setter for fenceHeight property\n get fenceHeight(): number {\n return this._fenceHeight\n }\n\n set fenceHeight(newValue: number) {\n if (this._fenceHeight === newValue)\n return\n\n this._fenceHeight = newValue\n this.resetFence()\n }\n\n // Getter and Setter for fenceAlpha property\n get fenceAlpha(): number {\n return this._fenceAlpha\n }\n\n set fenceAlpha(newValue: number) {\n if (this._fenceAlpha === newValue)\n return\n\n this._fenceAlpha = newValue\n if (this.fenceMesh)\n this.fenceMesh.alpha = newValue\n }\n\n // Getter and Setter for fenceColor property\n get fenceColor(): string {\n return this._fenceColor\n }\n\n set fenceColor(newValue: string) {\n if (this._fenceColor === newValue)\n return\n\n this._fenceColor = newValue\n if (this.fenceMesh)\n this.fenceMesh.color = newValue\n }\n\n // Getter and Setter for fillAreaStyle property\n get fillAreaStyle(): string {\n return this._fillAreaStyle\n }\n\n set fillAreaStyle(newValue: string) {\n if (this._fillAreaStyle === newValue)\n return\n\n this._fillAreaStyle = newValue\n this.resetFillArea()\n }\n\n get fillAreaVisible(): boolean {\n return this._fillAreaVisible\n }\n\n set fillAreaVisible(newValue: boolean) {\n if (this._fillAreaVisible === newValue)\n return\n\n this._fillAreaVisible = newValue\n if (this.fillAreaMesh)\n this.fillAreaMesh.visible = newValue\n\n // this.resetFillArea()\n }\n\n // Getter and Setter for fillAreaAlpha property\n get fillAreaAlpha(): number {\n return this._fillAreaAlpha\n }\n\n set fillAreaAlpha(newValue: number) {\n if (this._fillAreaAlpha === newValue)\n return\n this._fillAreaAlpha = newValue\n\n if (this.fillAreaMesh)\n this.fillAreaMesh.alpha = newValue\n }\n\n // Getter and Setter for fillAreaColor property\n get fillAreaColor(): string {\n return this._fillAreaColor\n }\n\n set fillAreaColor(newValue: string) {\n if (this._fillAreaColor === newValue)\n return\n\n this._fillAreaColor = newValue\n if (this.fillAreaMesh)\n this.fillAreaMesh.color = newValue\n }\n\n // Getter and Setter for fillAreaPos property\n get fillAreaPos(): string {\n return this._fillAreaPos\n }\n\n set fillAreaPos(newValue: string) {\n if (this._fillAreaPos === newValue)\n return\n\n this._fillAreaPos = newValue\n this.resetFillArea()\n }\n\n // Getter and Setter for surfaceSnap property\n get surfaceSnap(): boolean {\n return this._surfaceSnap\n }\n\n set surfaceSnap(newValue: boolean) {\n if (this._surfaceSnap === newValue)\n return\n\n this._surfaceSnap = newValue\n }\n\n // Getter and Setter for path property\n get path(): Option['path'] {\n return this._path\n }\n\n set path(newValue: Option['path']) {\n if (this._path === newValue)\n return\n\n // 确保 newValue 符合预期结构\n if (newValue && Array.isArray(newValue.points) && newValue.points.length >= 3) {\n const { points, corner, close } = newValue\n\n this._path = newValue // 更新 _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 this.resetFence() // 调用重置围栏方法\n this.resetFillArea() // 调用重置底座方法\n }\n else {\n console.error('Invalid path data: Ensure points has at least 3 elements')\n }\n }\n}\n\nexport default Base"],"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","_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","Group","Vector3","_","ObjectLayer","StrategyManage","STYLE_DATA","area_base_01","area_feeting_01","area_roll_01","defaultOption","style","fenceStyle","fenceVisible","fenceHeight","fenceAlpha","fenceColor","fillAreaStyle","fillAreaVisible","fillAreaAlpha","fillAreaColor","fillAreaPos","surfaceSnap","Base","_ObjectLayer","_super","option","_this","group","setValues","mergeWith","_registerStrategy","_callee","strategyClass","_callee$","_context","concat","registerStrategy","_x","getCurrentStyle","currentFenceStyle","currentFillAreaStyle","_fillAreaStyle","_STYLE_DATA$this$styl","_slicedToArray","_create","_callee2","_this$getCurrentStyle","_callee2$","_context2","createFence","points","corner","close","fenceMesh","visible","add","createFillArea","fillAreaMesh","_createFence","_callee3","height","color","alpha","Strategy","_callee3$","_context3","_x2","_x3","_x4","_x5","_x6","_x7","_x8","_createFillArea","_callee4","pos","mesh","_callee4$","_context4","position","_x9","_x10","_x11","_x12","_x13","_x14","_x15","_resetFence","_callee5","_this$getCurrentStyle2","_callee5$","_context5","remove","resetFence","_resetFillArea","_callee6","_this$getCurrentStyle3","_callee6$","_context6","resetFillArea","get","_fenceStyle","set","newValue","_fenceVisible","_fenceHeight","_fenceAlpha","_fenceColor","_fillAreaVisible","_fillAreaAlpha","_fillAreaColor","_fillAreaPos","_surfaceSnap","_path","Array","isArray","map","console"],"sources":["../../../src/business/Area/BaseClass.ts"],"sourcesContent":["import { Group, Vector3 } from '@anov/3d-core'\nimport _ from 'lodash'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport { StrategyManage } from './strategy'\nimport type { Option } from './type'\n\nimport type FenceBase from './Fence/FenceBase'\nimport type FillAreaBase from './FillArea/FillAreaBase'\n\nconst STYLE_DATA = {\n area_base_01: ['base', ''],\n area_feeting_01: ['feeting', ''],\n area_roll_01: ['roll', ''],\n}\nconst defaultOption = {\n style: 'area_dynamic_mode',\n fenceStyle: 'base',\n fenceVisible: true,\n fenceHeight: 50,\n fenceAlpha: 1,\n fenceColor: '#00FFB5',\n fillAreaStyle: 'face',\n fillAreaVisible: false,\n fillAreaAlpha: 1,\n fillAreaColor: '#00FFB5',\n fillAreaPos: 'bottom',\n surfaceSnap: false,\n}\n\nclass Base extends ObjectLayer {\n public group!: Group\n public fenceMesh!: FenceBase\n public style: string\n public fillAreaMesh!: FillAreaBase\n private _fenceStyle: string\n private _fenceVisible: boolean\n private _fenceHeight: number\n private _fenceAlpha: number\n private _fenceColor: string\n private _fillAreaStyle: string\n private _fillAreaVisible: boolean\n private _fillAreaAlpha: number\n private _fillAreaColor: string\n private _fillAreaPos: string\n private _surfaceSnap: boolean\n private _path: Option['path']\n public points!: Vector3[]\n public corner: number\n public close: boolean\n\n constructor(option: Option) {\n super()\n this.group = new Group()\n // 属性赋值\n this.setValues(_.mergeWith({}, defaultOption, option))\n this.style = option.style\n }\n\n // 注册样式\n async registerStrategy(style) {\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 getCurrentStyle() {\n let currentFenceStyle = ''\n let currentFillAreaStyle = ''\n if (this.style === 'area_dynamic_mode') {\n currentFenceStyle = this.fenceStyle\n currentFillAreaStyle = this._fillAreaStyle\n }\n else {\n [currentFenceStyle, currentFillAreaStyle] = STYLE_DATA[this.style]\n // [currentFenceStyle, currentFillAreaStyle] = STYLE_DATA.area_base_01\n }\n return { currentFenceStyle, currentFillAreaStyle }\n }\n\n async create() {\n const { currentFenceStyle, currentFillAreaStyle } = this.getCurrentStyle()\n if (currentFenceStyle) {\n // 创建围栏\n this.fenceMesh = await this.createFence(this.points, currentFenceStyle, this.corner, this.close, this.fenceHeight, this.fenceColor, this.fenceAlpha)\n this.fenceMesh.visible = this.fenceVisible\n this.group.add(this.fenceMesh)\n }\n if (currentFillAreaStyle) {\n // 创建底座\n this.fillAreaMesh = await this.createFillArea(this.points, currentFillAreaStyle, this.corner, this.close, this.fillAreaColor, this.fillAreaAlpha, this.fillAreaPos)\n this.fillAreaMesh.visible = this.fillAreaVisible\n this.group.add(this.fillAreaMesh)\n }\n this.add(this.group)\n }\n\n // 创建围栏\n async createFence(points: Vector3[], style: string, corner: number, close: boolean, height: number, color: string, alpha: number) {\n const Strategy = await this.registerStrategy(style)\n const option = {\n points,\n height,\n corner,\n close,\n color,\n alpha,\n }\n return new Strategy(option)\n }\n\n // 创建封底\n async createFillArea(points: Vector3[], style: string, corner: number, close: boolean, color: string, alpha: number, pos: string) {\n const Strategy = await this.registerStrategy(style)\n const option = {\n points,\n color,\n alpha,\n corner,\n close,\n }\n const mesh = new Strategy(option)\n mesh.position.y = pos === 'bottom' ? 0 : this.fenceHeight\n return mesh\n }\n\n // 重置围栏\n async resetFence() {\n if (this.fenceMesh) {\n this.group.remove(this.fenceMesh)\n const { currentFenceStyle } = this.getCurrentStyle()\n this.fenceMesh = await this.createFence(this.points, currentFenceStyle, this.corner, this.close, this.fenceHeight, this.fenceColor, this.fenceAlpha)\n this.group.add(this.fenceMesh)\n }\n }\n\n // 重置封底\n async resetFillArea() {\n if (this.fillAreaMesh) {\n this.group.remove(this.fillAreaMesh)\n const { currentFillAreaStyle } = this.getCurrentStyle()\n this.fillAreaMesh = await this.createFillArea(this.points, currentFillAreaStyle, this.corner, this.close, this.fillAreaColor, this.fillAreaAlpha, this.fillAreaPos)\n this.group.add(this.fillAreaMesh)\n }\n }\n\n // Getter and Setter for fenceStyle property\n\n get fenceStyle(): string {\n return this._fenceStyle\n }\n\n set fenceStyle(newValue: string) {\n if (this._fenceStyle === newValue)\n return\n\n this._fenceStyle = newValue\n this.resetFence()\n }\n\n get fenceVisible(): boolean {\n return this._fenceVisible\n }\n\n set fenceVisible(newValue: boolean) {\n if (this.fenceVisible === newValue)\n return\n\n this._fenceVisible = newValue\n // 此处应该修改fence的Visible\n if (this.fenceMesh)\n this.fenceMesh.visible = newValue\n }\n\n // Getter and Setter for fenceHeight property\n get fenceHeight(): number {\n return this._fenceHeight\n }\n\n set fenceHeight(newValue: number) {\n if (this._fenceHeight === newValue)\n return\n\n this._fenceHeight = newValue\n this.resetFence()\n }\n\n // Getter and Setter for fenceAlpha property\n get fenceAlpha(): number {\n return this._fenceAlpha\n }\n\n set fenceAlpha(newValue: number) {\n if (this._fenceAlpha === newValue)\n return\n\n this._fenceAlpha = newValue\n if (this.fenceMesh)\n this.fenceMesh.alpha = newValue\n }\n\n // Getter and Setter for fenceColor property\n get fenceColor(): string {\n return this._fenceColor\n }\n\n set fenceColor(newValue: string) {\n if (this._fenceColor === newValue)\n return\n\n this._fenceColor = newValue\n if (this.fenceMesh)\n this.fenceMesh.color = newValue\n }\n\n // Getter and Setter for fillAreaStyle property\n get fillAreaStyle(): string {\n return this._fillAreaStyle\n }\n\n set fillAreaStyle(newValue: string) {\n if (this._fillAreaStyle === newValue)\n return\n\n this._fillAreaStyle = newValue\n this.resetFillArea()\n }\n\n get fillAreaVisible(): boolean {\n return this._fillAreaVisible\n }\n\n set fillAreaVisible(newValue: boolean) {\n if (this._fillAreaVisible === newValue)\n return\n\n this._fillAreaVisible = newValue\n if (this.fillAreaMesh)\n this.fillAreaMesh.visible = newValue\n\n // this.resetFillArea()\n }\n\n // Getter and Setter for fillAreaAlpha property\n get fillAreaAlpha(): number {\n return this._fillAreaAlpha\n }\n\n set fillAreaAlpha(newValue: number) {\n if (this._fillAreaAlpha === newValue)\n return\n this._fillAreaAlpha = newValue\n\n if (this.fillAreaMesh)\n this.fillAreaMesh.alpha = newValue\n }\n\n // Getter and Setter for fillAreaColor property\n get fillAreaColor(): string {\n return this._fillAreaColor\n }\n\n set fillAreaColor(newValue: string) {\n if (this._fillAreaColor === newValue)\n return\n\n this._fillAreaColor = newValue\n if (this.fillAreaMesh)\n this.fillAreaMesh.color = newValue\n }\n\n // Getter and Setter for fillAreaPos property\n get fillAreaPos(): string {\n return this._fillAreaPos\n }\n\n set fillAreaPos(newValue: string) {\n if (this._fillAreaPos === newValue)\n return\n\n this._fillAreaPos = newValue\n this.resetFillArea()\n }\n\n // Getter and Setter for surfaceSnap property\n get surfaceSnap(): boolean {\n return this._surfaceSnap\n }\n\n set surfaceSnap(newValue: boolean) {\n if (this._surfaceSnap === newValue)\n return\n\n this._surfaceSnap = newValue\n }\n\n // Getter and Setter for path property\n get path(): Option['path'] {\n return this._path\n }\n\n set path(newValue: Option['path']) {\n if (this._path === newValue)\n return\n\n // 确保 newValue 符合预期结构\n if (newValue && Array.isArray(newValue.points) && newValue.points.length >= 3) {\n const { points, corner, close } = newValue\n\n this._path = newValue // 更新 _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 this.resetFence() // 调用重置围栏方法\n this.resetFillArea() // 调用重置底座方法\n }\n else {\n console.error('Invalid path data: Ensure points has at least 3 elements')\n }\n }\n}\n\nexport default Base"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ declare class FenceBase extends ObjectLayer {
|
|
|
8
8
|
_color: string;
|
|
9
9
|
_corner: number;
|
|
10
10
|
_close: boolean;
|
|
11
|
-
|
|
11
|
+
_points: Vector3[];
|
|
12
12
|
constructor(option: fenceOption);
|
|
13
13
|
get height(): number;
|
|
14
14
|
set height(newValue: number);
|
|
@@ -20,5 +20,7 @@ declare class FenceBase extends ObjectLayer {
|
|
|
20
20
|
set corner(newValue: number);
|
|
21
21
|
get close(): boolean;
|
|
22
22
|
set close(newValue: boolean);
|
|
23
|
+
get points(): Vector3[];
|
|
24
|
+
set points(newValue: Vector3[]);
|
|
23
25
|
}
|
|
24
26
|
export default FenceBase;
|
|
@@ -35,7 +35,7 @@ var FenceBase = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
35
35
|
_defineProperty(_assertThisInitialized(_this), "_color", void 0);
|
|
36
36
|
_defineProperty(_assertThisInitialized(_this), "_corner", void 0);
|
|
37
37
|
_defineProperty(_assertThisInitialized(_this), "_close", void 0);
|
|
38
|
-
_defineProperty(_assertThisInitialized(_this), "
|
|
38
|
+
_defineProperty(_assertThisInitialized(_this), "_points", void 0);
|
|
39
39
|
_this.setValues(_.mergeWith({}, defaultOption, option));
|
|
40
40
|
return _this;
|
|
41
41
|
}
|
|
@@ -90,6 +90,15 @@ var FenceBase = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
90
90
|
if (this._close === newValue) return;
|
|
91
91
|
this._close = newValue;
|
|
92
92
|
}
|
|
93
|
+
}, {
|
|
94
|
+
key: "points",
|
|
95
|
+
get: function get() {
|
|
96
|
+
return this._points;
|
|
97
|
+
},
|
|
98
|
+
set: function set(newValue) {
|
|
99
|
+
if (this._points === newValue) return;
|
|
100
|
+
this._points = newValue;
|
|
101
|
+
}
|
|
93
102
|
}]);
|
|
94
103
|
return FenceBase;
|
|
95
104
|
}(ObjectLayer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_","ObjectLayer","defaultOption","height","alpha","color","corner","close","FenceBase","_ObjectLayer","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","setValues","mergeWith","_createClass","key","get","_height","set","newValue","_color","_alpha","_corner","_close"],"sources":["../../../../src/business/Area/Fence/FenceBase.ts"],"sourcesContent":["import type { Mesh, Vector3 } from '@anov/3d-core'\nimport _ from 'lodash'\nimport ObjectLayer from '../../Base/ObjectLayer'\nimport type { fenceOption } from '../type'\n\nconst defaultOption = {\n height: 50,\n alpha: 1,\n color: '#00FFB5',\n corner: 0,\n close: true,\n}\n\nclass FenceBase extends ObjectLayer {\n public mesh!: Mesh\n public _height: number\n public _alpha: number\n public _color: string\n public _corner: number\n public _close: boolean\n public
|
|
1
|
+
{"version":3,"names":["_","ObjectLayer","defaultOption","height","alpha","color","corner","close","FenceBase","_ObjectLayer","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","setValues","mergeWith","_createClass","key","get","_height","set","newValue","_color","_alpha","_corner","_close","_points"],"sources":["../../../../src/business/Area/Fence/FenceBase.ts"],"sourcesContent":["import type { Mesh, Vector3 } from '@anov/3d-core'\nimport _ from 'lodash'\nimport ObjectLayer from '../../Base/ObjectLayer'\nimport type { fenceOption } from '../type'\n\nconst defaultOption = {\n height: 50,\n alpha: 1,\n color: '#00FFB5',\n corner: 0,\n close: true,\n}\n\nclass FenceBase extends ObjectLayer {\n public mesh!: Mesh\n public _height: number\n public _alpha: number\n public _color: string\n public _corner: number\n public _close: boolean\n public _points!: Vector3[]\n\n constructor(option: fenceOption) {\n super()\n // 属性赋值\n this.setValues(_.mergeWith({}, defaultOption, option))\n }\n\n // Getter and Setter for fenceHeight property\n get height(): number {\n return this._height\n }\n\n set height(newValue: number) {\n if (this._height === newValue)\n return\n\n this._height = newValue\n }\n\n // Getter and Setter for fenceColor property\n get color(): string {\n return this._color\n }\n\n set color(newValue: string) {\n if (this._color === newValue)\n return\n\n this._color = newValue\n }\n\n // Getter and Setter for fenceAlpha property\n get alpha(): number {\n return this._alpha\n }\n\n set alpha(newValue: number) {\n if (this._alpha === newValue)\n return\n\n this._alpha = newValue\n }\n\n get corner(): number {\n return this._corner\n }\n\n set corner(newValue: number) {\n if (this._corner === newValue)\n return\n\n this._corner = newValue\n }\n\n get close(): boolean {\n return this._close\n }\n\n set close(newValue: boolean) {\n if (this._close === newValue)\n return\n\n this._close = newValue\n }\n\n get points(): Vector3[] {\n return this._points\n }\n\n set points(newValue: Vector3[]) {\n if (this._points === newValue)\n return\n\n this._points = newValue\n }\n}\n\nexport default FenceBase\n"],"mappings":"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"}
|
|
@@ -6,10 +6,12 @@ declare class Fence_Feeting_01 extends FenceBase {
|
|
|
6
6
|
constructor(option: fenceOption);
|
|
7
7
|
create(): void;
|
|
8
8
|
createFenceMesh(points: Vector3[], radius: number, close: boolean, height: number, color: string, alpha: number): any;
|
|
9
|
-
createFenceMaterial(color: string, alpha: number): ShaderMaterial;
|
|
9
|
+
createFenceMaterial(height: number, color: string, alpha: number): ShaderMaterial;
|
|
10
10
|
get color(): string;
|
|
11
11
|
set color(newValue: string);
|
|
12
12
|
get alpha(): number;
|
|
13
13
|
set alpha(newValue: number);
|
|
14
|
+
get height(): number;
|
|
15
|
+
set height(newValue: number);
|
|
14
16
|
}
|
|
15
17
|
export default Fence_Feeting_01;
|
|
@@ -11,7 +11,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
|
|
|
11
11
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
12
12
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
13
13
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
14
|
-
import { Color, ShaderMaterial } from '@anov/3d-core';
|
|
14
|
+
import { Color, ShaderMaterial, use } from '@anov/3d-core';
|
|
15
15
|
import { createRoundLineWallMesh } from "../../Utils/round-curve";
|
|
16
16
|
import FenceBase from "./FenceBase";
|
|
17
17
|
var Fence_Feeting_01 = /*#__PURE__*/function (_FenceBase) {
|
|
@@ -43,42 +43,48 @@ var Fence_Feeting_01 = /*#__PURE__*/function (_FenceBase) {
|
|
|
43
43
|
if (!points) return;
|
|
44
44
|
|
|
45
45
|
// 创建围栏使用的材质,调用createFenceMaterial方法生成ShaderMaterial类型的材质
|
|
46
|
-
var material = this.createFenceMaterial(color, alpha);
|
|
46
|
+
var material = this.createFenceMaterial(height, color, alpha);
|
|
47
47
|
// 使用createRoundLineWallMesh函数创建围栏的网格物体,传入点数组、半径、高度、是否闭合等参数以及创建好的材质
|
|
48
48
|
var mesh = createRoundLineWallMesh(points, {
|
|
49
49
|
radius: radius,
|
|
50
50
|
height: height,
|
|
51
51
|
close: close
|
|
52
52
|
}, material);
|
|
53
|
+
use.useframe(function () {
|
|
54
|
+
mesh.children.forEach(function (item, index) {
|
|
55
|
+
var uniforms = item.material.uniforms;
|
|
56
|
+
uniforms.iTime.value += 0.002;
|
|
57
|
+
});
|
|
58
|
+
});
|
|
53
59
|
return mesh;
|
|
54
60
|
}
|
|
55
61
|
|
|
56
62
|
// 创建围栏材质
|
|
57
63
|
}, {
|
|
58
64
|
key: "createFenceMaterial",
|
|
59
|
-
value: function createFenceMaterial(color, alpha) {
|
|
65
|
+
value: function createFenceMaterial(height, color, alpha) {
|
|
60
66
|
// 创建一个ShaderMaterial实例,用于自定义围栏的渲染效果
|
|
61
67
|
var material = new ShaderMaterial({
|
|
62
68
|
uniforms: {
|
|
63
|
-
opacityBottom: {
|
|
64
|
-
value: 0.3
|
|
65
|
-
},
|
|
66
|
-
opacityTop: {
|
|
67
|
-
value: 0.0
|
|
68
|
-
},
|
|
69
69
|
// 材质颜色
|
|
70
70
|
color1: {
|
|
71
71
|
value: new Color(color)
|
|
72
72
|
},
|
|
73
73
|
// 材质颜色2,用于渐变
|
|
74
|
-
|
|
75
|
-
value:
|
|
74
|
+
_alpha: {
|
|
75
|
+
value: alpha
|
|
76
|
+
},
|
|
77
|
+
_height: {
|
|
78
|
+
value: height
|
|
79
|
+
},
|
|
80
|
+
iTime: {
|
|
81
|
+
value: 0.0
|
|
76
82
|
}
|
|
77
83
|
},
|
|
78
84
|
// 顶点着色器
|
|
79
|
-
vertexShader: "\n varying vec3 vNormal; // \u7528\u4E8E\u4F20\u9012\u6CD5\u7EBF\u65B9\u5411\n
|
|
85
|
+
vertexShader: "\n #include <common>\n #include <logdepthbuf_pars_vertex>\n varying vec3 vNormal; // \u7528\u4E8E\u4F20\u9012\u6CD5\u7EBF\u65B9\u5411\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n void main() {\n #include <logdepthbuf_vertex>\n // gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vUv = uv;\n vNormal = normalize(mat3(modelMatrix) * normal); // \u4F7F\u7528\u6A21\u578B\u77E9\u9635\u65CB\u8F6C\u6CD5\u7EBF\n vec4 modelPosition = modelMatrix * vec4(position, 1.0);\n vWorldPosition = modelPosition.xyz;\n gl_Position = projectionMatrix * viewMatrix * modelPosition;\t \n }\n ",
|
|
80
86
|
// 片元着色器
|
|
81
|
-
fragmentShader: "\n varying vec3 vNormal; // \u7528\u4E8E\u4F20\u9012\u6CD5\u7EBF\u65B9\u5411\n
|
|
87
|
+
fragmentShader: "\n #include <logdepthbuf_pars_fragment>\n varying vec3 vNormal; // \u7528\u4E8E\u4F20\u9012\u6CD5\u7EBF\u65B9\u5411\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n \n uniform float _alpha;\n uniform float _height;\n uniform vec3 color1;\n uniform float iTime;\n \n\n\nconst int largeBlockCount = 80;\nconst int smallBlockCount = 20;\nconst int layerBlockCount = 10; // \u6DFB\u52A0\u7684\u4E24\u5C42\u65B9\u5757\n\nconst float largeBlockSpeed = .10;\nconst float smallBlockSpeed = .20;\nconst float layerBlockSpeed = .15; // \u5C42\u7684\u6D6E\u52A8\u901F\u5EA6\n\nconst float largeBlockSizeMin = 0.002;\nconst float largeBlockSizeMax = 0.03;\nconst float smallBlockSizeMin = 0.003;\nconst float smallBlockSizeMax = 0.008;\nconst float layerBlockSizeMin = 0.005;\nconst float layerBlockSizeMax = 0.01; // \u4E24\u5C42\u65B9\u5757\u7684\u5927\u5C0F\u8303\u56F4\n\nconst vec3 largeBlockColor = vec3(0.3, 0.2, 0.3);\nconst vec3 smallBlockColor = vec3(0.7, 0.6, 0.9);\nconst vec3 layerBlockColor = vec3(0.9, 0.7, 0.5); // \u65B0\u589E\u5C42\u7684\u989C\u8272\n\nfloat hash11(float p) {\nreturn fract(sin(p) * 43758.5453);\n}\n\nvec4 mainImage( vec2 uv) {\n// vec2 uv = fragCoord.xy / iResolution.xy;\nvec3 color = vec3(0.0, 0.0, 0.0); // Background color\n\n// Large blocks\nfor (int i = 0; i < largeBlockCount; ++i) {\n float id = float(i);\n vec2 randomPos = vec2(hash11(id + 0.1), hash11(id + 0.2));\n randomPos = fract(randomPos + vec2(0.,iTime * largeBlockSpeed)); // Float upwards with time\n\n float blockSize = mix(largeBlockSizeMin, largeBlockSizeMax, hash11(id));\n\n vec2 dist = abs(uv - randomPos);\n float inside = step(dist.x, blockSize) * step(dist.y, blockSize);\n color = mix(color, largeBlockColor, inside);\n}\n\n// Small blocks\nfor (int i = 0; i < smallBlockCount; ++i) {\n float id = float(i + largeBlockCount); // Offset for unique small block IDs\n vec2 randomPos = vec2(hash11(id + 0.1), hash11(id + 0.2));\n randomPos = fract(randomPos + vec2(0.,iTime * smallBlockSpeed)); // Float upwards with time\n\n float blockSize = mix(smallBlockSizeMin, smallBlockSizeMax, hash11(id));\n\n vec2 dist = abs(uv - randomPos);\n float inside = step(dist.x, blockSize) * step(dist.y, blockSize+hash11(id )*0.01);\n color = mix(color, smallBlockColor, inside);\n}\n\n// Layer blocks\nfor (int i = 0; i < layerBlockCount; ++i) {\n float id = float(i + largeBlockCount + smallBlockCount); // Offset for unique layer block IDs\n vec2 randomPos = vec2(hash11(id + 0.1), hash11(id + 0.2));\n randomPos = fract(randomPos + vec2(0.,iTime * layerBlockSpeed)); // Float upwards with time\n\n // Randomize the size with a slight stretch for length/width variation\n float blockSizeX = mix(layerBlockSizeMin, layerBlockSizeMax, hash11(id));\n float blockSizeY = blockSizeX * (0.8 + 0.4 * hash11(id + 0.3)); // Randomize aspect ratio\n\n vec2 dist = abs(uv - randomPos);\n float inside = step(dist.x, blockSizeX+hash11(id )*0.02) * step(dist.y, blockSizeY);\n color = mix(color, layerBlockColor, inside);\n}\n return vec4(color, 1.0);\n\n}\n\n void main() {\n #include <logdepthbuf_fragment>\n // float height = 50.;\n float button = 0.;\n vec3 myWp=(vWorldPosition-button)/_height; \n gl_FragColor = vec4(color1,pow(1.-clamp(myWp.y,0.,1.),2.)) *step(button,myWp.y);///0.6,0.1,0.01\n \n if (abs(vNormal.x) > 0.99) { \n gl_FragColor =mix(gl_FragColor,vec4(color1+vec3(0.2,0.7,0.2),1.*myWp.y) ,mainImage(fract(myWp.zy)).x *pow(gl_FragColor.a,.1) ); /////vec4(0.9,0.8,0.3,1.)\n }\n if (abs(vNormal.z) > 0.99) { \n gl_FragColor =mix(gl_FragColor,vec4(color1+vec3(0.2,0.7,0.2),1.*myWp.y) ,mainImage(fract(myWp.xy)).x *pow(gl_FragColor.a,.1) ); \n }\n gl_FragColor.a *= _alpha;\n\n }\n ",
|
|
82
88
|
// 设置材质为透明
|
|
83
89
|
transparent: true,
|
|
84
90
|
// 设置材质双面渲染,确保从正反两面都能正确显示
|
|
@@ -127,6 +133,24 @@ var Fence_Feeting_01 = /*#__PURE__*/function (_FenceBase) {
|
|
|
127
133
|
});
|
|
128
134
|
}
|
|
129
135
|
}
|
|
136
|
+
|
|
137
|
+
// Getter and Setter for fenceAlpha property
|
|
138
|
+
}, {
|
|
139
|
+
key: "height",
|
|
140
|
+
get: function get() {
|
|
141
|
+
return this._height;
|
|
142
|
+
},
|
|
143
|
+
set: function set(newValue) {
|
|
144
|
+
if (this._height === newValue) return;
|
|
145
|
+
this._height = newValue;
|
|
146
|
+
if (this.mesh) {
|
|
147
|
+
var childrens = this.mesh.children;
|
|
148
|
+
childrens.forEach(function (item, index) {
|
|
149
|
+
var uniforms = item.material.uniforms;
|
|
150
|
+
if (uniforms.height) uniforms.height.value = newValue;
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
130
154
|
}]);
|
|
131
155
|
return Fence_Feeting_01;
|
|
132
156
|
}(FenceBase);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Color","ShaderMaterial","createRoundLineWallMesh","FenceBase","Fence_Feeting_01","_FenceBase","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","create","_createClass","key","value","mesh","createFenceMesh","points","corner","close","height","color","alpha","add","radius","arguments","length","undefined","material","createFenceMaterial","uniforms","opacityBottom","opacityTop","color1","color2","vertexShader","fragmentShader","transparent","side","depthTest","get","_color","set","newValue","childrens","children","forEach","item","index","_alpha"],"sources":["../../../../src/business/Area/Fence/fence_feeting_01.ts"],"sourcesContent":["import type { Mesh, Vector3 } from '@anov/3d-core'\nimport { Color, ShaderMaterial } from '@anov/3d-core'\nimport { createRoundLineWallMesh } from '../../Utils/round-curve'\nimport type { fenceOption } from '../type'\nimport FenceBase from './FenceBase'\n\nclass Fence_Feeting_01 extends FenceBase {\n constructor(option: fenceOption) {\n super(option)\n this.create()\n }\n\n create() {\n this.mesh = this.createFenceMesh(\n this.points,\n this.corner,\n this.close,\n this.height,\n this.color,\n this.alpha,\n )\n this.mesh && this.add(this.mesh)\n }\n\n // 创建围栏网格对象\n createFenceMesh(points: Vector3[], radius = 0, close = true, height: number, color: string, alpha: number) {\n if (!points)\n return\n\n // 创建围栏使用的材质,调用createFenceMaterial方法生成ShaderMaterial类型的材质\n const material = this.createFenceMaterial(color, alpha)\n // 使用createRoundLineWallMesh函数创建围栏的网格物体,传入点数组、半径、高度、是否闭合等参数以及创建好的材质\n const mesh = createRoundLineWallMesh(\n points,\n {\n radius,\n height,\n close,\n },\n material,\n )\n return mesh\n }\n\n // 创建围栏材质\n createFenceMaterial(color: string, alpha: number): ShaderMaterial {\n // 创建一个ShaderMaterial实例,用于自定义围栏的渲染效果\n const material = new ShaderMaterial({\n uniforms: {\n opacityBottom: { value: 0.3 },\n opacityTop: { value: 0.0 },\n // 材质颜色\n color1: {\n value: new Color(color),\n },\n // 材质颜色2,用于渐变\n color2: {\n value: new Color(color),\n },\n },\n // 顶点着色器\n vertexShader: `\n varying vec3 vNormal; // 用于传递法线方向\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n void main() {\n // gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vUv = uv;\n vNormal = normalize(mat3(modelMatrix) * normal); // 使用模型矩阵旋转法线\n vec4 modelPosition = modelMatrix * vec4(position, 1.0);\n vWorldPosition = modelPosition.xyz;\n gl_Position = projectionMatrix * viewMatrix * modelPosition;\n }\n `,\n // 片元着色器\n fragmentShader: `\n varying vec3 vNormal; // 用于传递法线方向\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n uniform vec3 color1;\n uniform vec3 color2;\n uniform float opacityBottom;\n uniform float opacityTop;\n \n void main() {\n vec3 myWp=vWorldPosition*0.01;\n \n gl_FragColor = vec4(myWp.y);\n \n }\n `,\n // 设置材质为透明\n transparent: true,\n // 设置材质双面渲染,确保从正反两面都能正确显示\n side: 2,\n // 关闭深度测试\n depthTest: false,\n })\n return material\n }\n\n // Getter and Setter for fenceColor property\n get color(): string {\n return this._color\n }\n\n set color(newValue: string) {\n if (this._color === newValue)\n return\n\n this._color = newValue\n if (this.mesh) {\n const childrens = this.mesh.children\n childrens.forEach((item, index) => {\n const uniforms = ((item as Mesh).material as ShaderMaterial).uniforms\n if (uniforms.color1) {\n uniforms.color1.value = new Color(newValue)\n uniforms.color2.value = new Color(newValue)\n }\n })\n }\n }\n\n // Getter and Setter for fenceAlpha property\n get alpha(): number {\n return this._alpha\n }\n\n set alpha(newValue: number) {\n if (this._alpha === newValue)\n return\n\n this._alpha = newValue\n if (this.mesh) {\n const childrens = this.mesh.children\n childrens.forEach((item, index) => {\n const uniforms = ((item as Mesh).material as ShaderMaterial).uniforms\n if (uniforms.alpha)\n uniforms.alpha.value = newValue\n })\n }\n }\n}\n\nexport default Fence_Feeting_01\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Color","ShaderMaterial","use","createRoundLineWallMesh","FenceBase","Fence_Feeting_01","_FenceBase","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","create","_createClass","key","value","mesh","createFenceMesh","points","corner","close","height","color","alpha","add","radius","arguments","length","undefined","material","createFenceMaterial","useframe","children","forEach","item","index","uniforms","iTime","color1","_alpha","_height","vertexShader","fragmentShader","transparent","side","depthTest","get","_color","set","newValue","childrens","color2"],"sources":["../../../../src/business/Area/Fence/fence_feeting_01.ts"],"sourcesContent":["import type { Mesh, Vector3 } from '@anov/3d-core'\nimport { Color, ShaderMaterial, use } from '@anov/3d-core'\nimport { createRoundLineWallMesh } from '../../Utils/round-curve'\nimport type { fenceOption } from '../type'\nimport FenceBase from './FenceBase'\n\nclass Fence_Feeting_01 extends FenceBase {\n constructor(option: fenceOption) {\n super(option)\n this.create()\n }\n\n create() {\n this.mesh = this.createFenceMesh(\n this.points,\n this.corner,\n this.close,\n this.height,\n this.color,\n this.alpha,\n )\n this.mesh && this.add(this.mesh)\n }\n\n // 创建围栏网格对象\n createFenceMesh(points: Vector3[], radius = 0, close = true, height: number, color: string, alpha: number) {\n if (!points)\n return\n\n // 创建围栏使用的材质,调用createFenceMaterial方法生成ShaderMaterial类型的材质\n const material = this.createFenceMaterial(height,color, alpha)\n // 使用createRoundLineWallMesh函数创建围栏的网格物体,传入点数组、半径、高度、是否闭合等参数以及创建好的材质\n const mesh = createRoundLineWallMesh(\n points,\n {\n radius,\n height,\n close,\n },\n material,\n )\n use.useframe(() => {\n mesh.children.forEach((item, index) => {\n const uniforms = ((item as Mesh).material as ShaderMaterial).uniforms\n uniforms.iTime.value += 0.002\n })\n })\n return mesh\n }\n\n // 创建围栏材质\n createFenceMaterial(height: number,color: string, alpha: number): ShaderMaterial {\n // 创建一个ShaderMaterial实例,用于自定义围栏的渲染效果\n const material = new ShaderMaterial({\n uniforms: {\n // 材质颜色\n color1: {\n value: new Color(color),\n },// 材质颜色2,用于渐变\n _alpha: { value: alpha },\n _height: { value: height },\n iTime: { value: 0.0 },\n },\n // 顶点着色器\n vertexShader: `\n #include <common>\n #include <logdepthbuf_pars_vertex>\n varying vec3 vNormal; // 用于传递法线方向\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n void main() {\n #include <logdepthbuf_vertex>\n // gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vUv = uv;\n vNormal = normalize(mat3(modelMatrix) * normal); // 使用模型矩阵旋转法线\n vec4 modelPosition = modelMatrix * vec4(position, 1.0);\n vWorldPosition = modelPosition.xyz;\n gl_Position = projectionMatrix * viewMatrix * modelPosition;\t \n }\n `,\n // 片元着色器\n fragmentShader: `\n #include <logdepthbuf_pars_fragment>\n varying vec3 vNormal; // 用于传递法线方向\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n \n uniform float _alpha;\n uniform float _height;\n uniform vec3 color1;\n uniform float iTime;\n \n\n\nconst int largeBlockCount = 80;\nconst int smallBlockCount = 20;\nconst int layerBlockCount = 10; // 添加的两层方块\n\nconst float largeBlockSpeed = .10;\nconst float smallBlockSpeed = .20;\nconst float layerBlockSpeed = .15; // 层的浮动速度\n\nconst float largeBlockSizeMin = 0.002;\nconst float largeBlockSizeMax = 0.03;\nconst float smallBlockSizeMin = 0.003;\nconst float smallBlockSizeMax = 0.008;\nconst float layerBlockSizeMin = 0.005;\nconst float layerBlockSizeMax = 0.01; // 两层方块的大小范围\n\nconst vec3 largeBlockColor = vec3(0.3, 0.2, 0.3);\nconst vec3 smallBlockColor = vec3(0.7, 0.6, 0.9);\nconst vec3 layerBlockColor = vec3(0.9, 0.7, 0.5); // 新增层的颜色\n\nfloat hash11(float p) {\nreturn fract(sin(p) * 43758.5453);\n}\n\nvec4 mainImage( vec2 uv) {\n// vec2 uv = fragCoord.xy / iResolution.xy;\nvec3 color = vec3(0.0, 0.0, 0.0); // Background color\n\n// Large blocks\nfor (int i = 0; i < largeBlockCount; ++i) {\n float id = float(i);\n vec2 randomPos = vec2(hash11(id + 0.1), hash11(id + 0.2));\n randomPos = fract(randomPos + vec2(0.,iTime * largeBlockSpeed)); // Float upwards with time\n\n float blockSize = mix(largeBlockSizeMin, largeBlockSizeMax, hash11(id));\n\n vec2 dist = abs(uv - randomPos);\n float inside = step(dist.x, blockSize) * step(dist.y, blockSize);\n color = mix(color, largeBlockColor, inside);\n}\n\n// Small blocks\nfor (int i = 0; i < smallBlockCount; ++i) {\n float id = float(i + largeBlockCount); // Offset for unique small block IDs\n vec2 randomPos = vec2(hash11(id + 0.1), hash11(id + 0.2));\n randomPos = fract(randomPos + vec2(0.,iTime * smallBlockSpeed)); // Float upwards with time\n\n float blockSize = mix(smallBlockSizeMin, smallBlockSizeMax, hash11(id));\n\n vec2 dist = abs(uv - randomPos);\n float inside = step(dist.x, blockSize) * step(dist.y, blockSize+hash11(id )*0.01);\n color = mix(color, smallBlockColor, inside);\n}\n\n// Layer blocks\nfor (int i = 0; i < layerBlockCount; ++i) {\n float id = float(i + largeBlockCount + smallBlockCount); // Offset for unique layer block IDs\n vec2 randomPos = vec2(hash11(id + 0.1), hash11(id + 0.2));\n randomPos = fract(randomPos + vec2(0.,iTime * layerBlockSpeed)); // Float upwards with time\n\n // Randomize the size with a slight stretch for length/width variation\n float blockSizeX = mix(layerBlockSizeMin, layerBlockSizeMax, hash11(id));\n float blockSizeY = blockSizeX * (0.8 + 0.4 * hash11(id + 0.3)); // Randomize aspect ratio\n\n vec2 dist = abs(uv - randomPos);\n float inside = step(dist.x, blockSizeX+hash11(id )*0.02) * step(dist.y, blockSizeY);\n color = mix(color, layerBlockColor, inside);\n}\n return vec4(color, 1.0);\n\n}\n\n void main() {\n #include <logdepthbuf_fragment>\n // float height = 50.;\n float button = 0.;\n vec3 myWp=(vWorldPosition-button)/_height; \n gl_FragColor = vec4(color1,pow(1.-clamp(myWp.y,0.,1.),2.)) *step(button,myWp.y);///0.6,0.1,0.01\n \n if (abs(vNormal.x) > 0.99) { \n gl_FragColor =mix(gl_FragColor,vec4(color1+vec3(0.2,0.7,0.2),1.*myWp.y) ,mainImage(fract(myWp.zy)).x *pow(gl_FragColor.a,.1) ); /////vec4(0.9,0.8,0.3,1.)\n }\n if (abs(vNormal.z) > 0.99) { \n gl_FragColor =mix(gl_FragColor,vec4(color1+vec3(0.2,0.7,0.2),1.*myWp.y) ,mainImage(fract(myWp.xy)).x *pow(gl_FragColor.a,.1) ); \n }\n gl_FragColor.a *= _alpha;\n\n }\n `,\n // 设置材质为透明\n transparent: true,\n // 设置材质双面渲染,确保从正反两面都能正确显示\n side: 2,\n // 关闭深度测试\n depthTest: false,\n })\n return material\n }\n\n // Getter and Setter for fenceColor property\n get color(): string {\n return this._color\n }\n\n set color(newValue: string) {\n if (this._color === newValue)\n return\n\n this._color = newValue\n if (this.mesh) {\n const childrens = this.mesh.children\n childrens.forEach((item, index) => {\n const uniforms = ((item as Mesh).material as ShaderMaterial).uniforms\n if (uniforms.color1) {\n uniforms.color1.value = new Color(newValue)\n uniforms.color2.value = new Color(newValue)\n }\n })\n }\n }\n\n // Getter and Setter for fenceAlpha property\n get alpha(): number {\n return this._alpha\n }\n\n set alpha(newValue: number) {\n if (this._alpha === newValue)\n return\n\n this._alpha = newValue\n if (this.mesh) {\n const childrens = this.mesh.children\n childrens.forEach((item, index) => {\n const uniforms = ((item as Mesh).material as ShaderMaterial).uniforms\n if (uniforms.alpha)\n uniforms.alpha.value = newValue\n })\n }\n }\n\n // Getter and Setter for fenceAlpha property\n get height(): number {\n return this._height\n }\n\n set height(newValue: number) {\n if (this._height === newValue)\n return\n\n this._height = newValue\n if (this.mesh) {\n const childrens = this.mesh.children\n childrens.forEach((item, index) => {\n const uniforms = ((item as Mesh).material as ShaderMaterial).uniforms\n if (uniforms.height)\n uniforms.height.value = newValue\n })\n }\n }\n}\n\nexport default Fence_Feeting_01\n"],"mappings":";;;;;;;;;;;;;AACA,SAASA,KAAK,EAAEC,cAAc,EAAEC,GAAG,QAAQ,eAAe;AAC1D,SAASC,uBAAuB;AAEhC,OAAOC,SAAS;AAAmB,IAE7BC,gBAAgB,0BAAAC,UAAA;EAAAC,SAAA,CAAAF,gBAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,gBAAA;EACpB,SAAAA,iBAAYK,MAAmB,EAAE;IAAA,IAAAC,KAAA;IAAAC,eAAA,OAAAP,gBAAA;IAC/BM,KAAA,GAAAH,MAAA,CAAAK,IAAA,OAAMH,MAAM;IACZC,KAAA,CAAKG,MAAM,CAAC,CAAC;IAAA,OAAAH,KAAA;EACf;EAACI,YAAA,CAAAV,gBAAA;IAAAW,GAAA;IAAAC,KAAA,EAED,SAAAH,OAAA,EAAS;MACP,IAAI,CAACI,IAAI,GAAG,IAAI,CAACC,eAAe,CAC9B,IAAI,CAACC,MAAM,EACX,IAAI,CAACC,MAAM,EACX,IAAI,CAACC,KAAK,EACV,IAAI,CAACC,MAAM,EACX,IAAI,CAACC,KAAK,EACV,IAAI,CAACC,KACP,CAAC;MACD,IAAI,CAACP,IAAI,IAAI,IAAI,CAACQ,GAAG,CAAC,IAAI,CAACR,IAAI,CAAC;IAClC;;IAEA;EAAA;IAAAF,GAAA;IAAAC,KAAA,EACA,SAAAE,gBAAgBC,MAAiB,EAA0E;MAAA,IAAxEO,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;MAAA,IAAEN,KAAK,GAAAM,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;MAAA,IAAEL,MAAc,GAAAK,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;MAAA,IAAEN,KAAa,GAAAI,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;MAAA,IAAEL,KAAa,GAAAG,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;MACvG,IAAI,CAACV,MAAM,EACT;;MAEF;MACA,IAAMW,QAAQ,GAAG,IAAI,CAACC,mBAAmB,CAACT,MAAM,EAACC,KAAK,EAAEC,KAAK,CAAC;MAC9D;MACA,IAAMP,IAAI,GAAGf,uBAAuB,CAClCiB,MAAM,EACN;QACEO,MAAM,EAANA,MAAM;QACNJ,MAAM,EAANA,MAAM;QACND,KAAK,EAALA;MACF,CAAC,EACDS,QACF,CAAC;MACD7B,GAAG,CAAC+B,QAAQ,CAAC,YAAM;QACjBf,IAAI,CAACgB,QAAQ,CAACC,OAAO,CAAC,UAACC,IAAI,EAAEC,KAAK,EAAK;UACrC,IAAMC,QAAQ,GAAKF,IAAI,CAAUL,QAAQ,CAAoBO,QAAQ;UACrEA,QAAQ,CAACC,KAAK,CAACtB,KAAK,IAAI,KAAK;QAC/B,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,OAAOC,IAAI;IACb;;IAEA;EAAA;IAAAF,GAAA;IAAAC,KAAA,EACA,SAAAe,oBAAoBT,MAAc,EAACC,KAAa,EAAEC,KAAa,EAAkB;MAC/E;MACA,IAAMM,QAAQ,GAAG,IAAI9B,cAAc,CAAC;QAClCqC,QAAQ,EAAE;UACR;UACAE,MAAM,EAAE;YACNvB,KAAK,EAAE,IAAIjB,KAAK,CAACwB,KAAK;UACxB,CAAC;UAAC;UACFiB,MAAM,EAAE;YAAExB,KAAK,EAAEQ;UAAM,CAAC;UACxBiB,OAAO,EAAE;YAAEzB,KAAK,EAAEM;UAAO,CAAC;UAC1BgB,KAAK,EAAE;YAAEtB,KAAK,EAAE;UAAI;QACtB,CAAC;QACD;QACA0B,YAAY,2uBAeX;QACD;QACAC,cAAc,2yHAoGb;QACD;QACAC,WAAW,EAAE,IAAI;QACjB;QACAC,IAAI,EAAE,CAAC;QACP;QACAC,SAAS,EAAE;MACb,CAAC,CAAC;MACF,OAAOhB,QAAQ;IACjB;;IAEA;EAAA;IAAAf,GAAA;IAAAgC,GAAA,EACA,SAAAA,IAAA,EAAoB;MAClB,OAAO,IAAI,CAACC,MAAM;IACpB,CAAC;IAAAC,GAAA,EAED,SAAAA,IAAUC,QAAgB,EAAE;MAC1B,IAAI,IAAI,CAACF,MAAM,KAAKE,QAAQ,EAC1B;MAEF,IAAI,CAACF,MAAM,GAAGE,QAAQ;MACtB,IAAI,IAAI,CAACjC,IAAI,EAAE;QACb,IAAMkC,SAAS,GAAG,IAAI,CAAClC,IAAI,CAACgB,QAAQ;QACpCkB,SAAS,CAACjB,OAAO,CAAC,UAACC,IAAI,EAAEC,KAAK,EAAK;UACjC,IAAMC,QAAQ,GAAKF,IAAI,CAAUL,QAAQ,CAAoBO,QAAQ;UACrE,IAAIA,QAAQ,CAACE,MAAM,EAAE;YACnBF,QAAQ,CAACE,MAAM,CAACvB,KAAK,GAAG,IAAIjB,KAAK,CAACmD,QAAQ,CAAC;YAC3Cb,QAAQ,CAACe,MAAM,CAACpC,KAAK,GAAG,IAAIjB,KAAK,CAACmD,QAAQ,CAAC;UAC7C;QACF,CAAC,CAAC;MACJ;IACF;;IAEA;EAAA;IAAAnC,GAAA;IAAAgC,GAAA,EACA,SAAAA,IAAA,EAAoB;MAClB,OAAO,IAAI,CAACP,MAAM;IACpB,CAAC;IAAAS,GAAA,EAED,SAAAA,IAAUC,QAAgB,EAAE;MAC1B,IAAI,IAAI,CAACV,MAAM,KAAKU,QAAQ,EAC1B;MAEF,IAAI,CAACV,MAAM,GAAGU,QAAQ;MACtB,IAAI,IAAI,CAACjC,IAAI,EAAE;QACb,IAAMkC,SAAS,GAAG,IAAI,CAAClC,IAAI,CAACgB,QAAQ;QACpCkB,SAAS,CAACjB,OAAO,CAAC,UAACC,IAAI,EAAEC,KAAK,EAAK;UACjC,IAAMC,QAAQ,GAAKF,IAAI,CAAUL,QAAQ,CAAoBO,QAAQ;UACrE,IAAIA,QAAQ,CAACb,KAAK,EAChBa,QAAQ,CAACb,KAAK,CAACR,KAAK,GAAGkC,QAAQ;QACnC,CAAC,CAAC;MACJ;IACF;;IAEC;EAAA;IAAAnC,GAAA;IAAAgC,GAAA,EACA,SAAAA,IAAA,EAAqB;MACpB,OAAO,IAAI,CAACN,OAAO;IACrB,CAAC;IAAAQ,GAAA,EAED,SAAAA,IAAWC,QAAgB,EAAE;MAC3B,IAAI,IAAI,CAACT,OAAO,KAAKS,QAAQ,EAC3B;MAEF,IAAI,CAACT,OAAO,GAAGS,QAAQ;MACvB,IAAI,IAAI,CAACjC,IAAI,EAAE;QACb,IAAMkC,SAAS,GAAG,IAAI,CAAClC,IAAI,CAACgB,QAAQ;QACpCkB,SAAS,CAACjB,OAAO,CAAC,UAACC,IAAI,EAAEC,KAAK,EAAK;UACjC,IAAMC,QAAQ,GAAKF,IAAI,CAAUL,QAAQ,CAAoBO,QAAQ;UACrE,IAAIA,QAAQ,CAACf,MAAM,EACjBe,QAAQ,CAACf,MAAM,CAACN,KAAK,GAAGkC,QAAQ;QACpC,CAAC,CAAC;MACJ;IACF;EAAC;EAAA,OAAA9C,gBAAA;AAAA,EAtP4BD,SAAS;AAyPxC,eAAeC,gBAAgB"}
|
|
@@ -6,7 +6,7 @@ declare class FillAreaBase extends ObjectLayer {
|
|
|
6
6
|
_color: string;
|
|
7
7
|
_corner: number;
|
|
8
8
|
_close: boolean;
|
|
9
|
-
|
|
9
|
+
_points: Vector3[];
|
|
10
10
|
constructor(option: fillAreaOption);
|
|
11
11
|
get alpha(): number;
|
|
12
12
|
set alpha(newValue: number);
|
|
@@ -16,5 +16,7 @@ declare class FillAreaBase extends ObjectLayer {
|
|
|
16
16
|
set corner(newValue: number);
|
|
17
17
|
get close(): boolean;
|
|
18
18
|
set close(newValue: boolean);
|
|
19
|
+
get points(): Vector3[];
|
|
20
|
+
set points(newValue: Vector3[]);
|
|
19
21
|
}
|
|
20
22
|
export default FillAreaBase;
|
|
@@ -32,7 +32,7 @@ var FillAreaBase = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
32
32
|
_defineProperty(_assertThisInitialized(_this), "_color", void 0);
|
|
33
33
|
_defineProperty(_assertThisInitialized(_this), "_corner", void 0);
|
|
34
34
|
_defineProperty(_assertThisInitialized(_this), "_close", void 0);
|
|
35
|
-
_defineProperty(_assertThisInitialized(_this), "
|
|
35
|
+
_defineProperty(_assertThisInitialized(_this), "_points", void 0);
|
|
36
36
|
_this.setValues(_.mergeWith({}, defaultOption, option));
|
|
37
37
|
return _this;
|
|
38
38
|
}
|
|
@@ -76,6 +76,15 @@ var FillAreaBase = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
76
76
|
if (this._close === newValue) return;
|
|
77
77
|
this._close = newValue;
|
|
78
78
|
}
|
|
79
|
+
}, {
|
|
80
|
+
key: "points",
|
|
81
|
+
get: function get() {
|
|
82
|
+
return this._points;
|
|
83
|
+
},
|
|
84
|
+
set: function set(newValue) {
|
|
85
|
+
if (this._points === newValue) return;
|
|
86
|
+
this._points = newValue;
|
|
87
|
+
}
|
|
79
88
|
}]);
|
|
80
89
|
return FillAreaBase;
|
|
81
90
|
}(ObjectLayer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_","ObjectLayer","defaultOption","alpha","color","corner","close","FillAreaBase","_ObjectLayer","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","setValues","mergeWith","_createClass","key","get","_alpha","set","newValue","_color","_corner","_close"],"sources":["../../../../src/business/Area/FillArea/FillAreaBase.ts"],"sourcesContent":["import type { Vector3 } from '@anov/3d-core'\nimport _ from 'lodash'\nimport ObjectLayer from '../../Base/ObjectLayer'\nimport type { fillAreaOption } from '../type'\n\nconst defaultOption = {\n alpha: 1,\n color: '#00FFB5',\n corner: 0,\n close: true,\n}\nclass FillAreaBase extends ObjectLayer {\n public _alpha: number\n public _color: string\n public _corner: number\n public _close: boolean\n public
|
|
1
|
+
{"version":3,"names":["_","ObjectLayer","defaultOption","alpha","color","corner","close","FillAreaBase","_ObjectLayer","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","setValues","mergeWith","_createClass","key","get","_alpha","set","newValue","_color","_corner","_close","_points"],"sources":["../../../../src/business/Area/FillArea/FillAreaBase.ts"],"sourcesContent":["import type { Vector3 } from '@anov/3d-core'\nimport _ from 'lodash'\nimport ObjectLayer from '../../Base/ObjectLayer'\nimport type { fillAreaOption } from '../type'\n\nconst defaultOption = {\n alpha: 1,\n color: '#00FFB5',\n corner: 0,\n close: true,\n}\nclass FillAreaBase extends ObjectLayer {\n public _alpha: number\n public _color: string\n public _corner: number\n public _close: boolean\n public _points!: Vector3[]\n\n constructor(option: fillAreaOption) {\n super()\n // 属性赋值\n this.setValues(_.mergeWith({}, defaultOption, option))\n }\n\n // Getter and Setter for alpha property\n get alpha(): number {\n return this._alpha\n }\n\n set alpha(newValue: number) {\n if (this._alpha === newValue)\n return\n\n this._alpha = newValue\n }\n\n // Getter and Setter for color property\n get color(): string {\n return this._color\n }\n\n set color(newValue: string) {\n if (this._color === newValue)\n return\n\n this._color = newValue\n }\n\n get corner(): number {\n return this._corner\n }\n\n set corner(newValue: number) {\n if (this._corner === newValue)\n return\n\n this._corner = newValue\n }\n\n get close(): boolean {\n return this._close\n }\n\n set close(newValue: boolean) {\n if (this._close === newValue)\n return\n\n this._close = newValue\n }\n\n get points(): Vector3[] {\n return this._points\n }\n\n set points(newValue: Vector3[]) {\n if (this._points === newValue)\n return\n\n this._points = newValue\n }\n}\n\nexport default FillAreaBase"],"mappings":";;;;;;;;;;;;;;AACA,OAAOA,CAAC,MAAM,QAAQ;AACtB,OAAOC,WAAW;AAGlB,IAAMC,aAAa,GAAG;EACpBC,KAAK,EAAE,CAAC;EACRC,KAAK,EAAE,SAAS;EAChBC,MAAM,EAAE,CAAC;EACTC,KAAK,EAAE;AACT,CAAC;AAAA,IACKC,YAAY,0BAAAC,YAAA;EAAAC,SAAA,CAAAF,YAAA,EAAAC,YAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,YAAA;EAOhB,SAAAA,aAAYK,MAAsB,EAAE;IAAA,IAAAC,KAAA;IAAAC,eAAA,OAAAP,YAAA;IAClCM,KAAA,GAAAH,MAAA,CAAAK,IAAA;IACA;IAAAC,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IACAA,KAAA,CAAKK,SAAS,CAAClB,CAAC,CAACmB,SAAS,CAAC,CAAC,CAAC,EAAEjB,aAAa,EAAEU,MAAM,CAAC,CAAC;IAAA,OAAAC,KAAA;EACxD;;EAEA;EAAAO,YAAA,CAAAb,YAAA;IAAAc,GAAA;IAAAC,GAAA,EACA,SAAAA,IAAA,EAAoB;MAClB,OAAO,IAAI,CAACC,MAAM;IACpB,CAAC;IAAAC,GAAA,EAED,SAAAA,IAAUC,QAAgB,EAAE;MAC1B,IAAI,IAAI,CAACF,MAAM,KAAKE,QAAQ,EAC1B;MAEF,IAAI,CAACF,MAAM,GAAGE,QAAQ;IACxB;;IAEA;EAAA;IAAAJ,GAAA;IAAAC,GAAA,EACA,SAAAA,IAAA,EAAoB;MAClB,OAAO,IAAI,CAACI,MAAM;IACpB,CAAC;IAAAF,GAAA,EAED,SAAAA,IAAUC,QAAgB,EAAE;MAC1B,IAAI,IAAI,CAACC,MAAM,KAAKD,QAAQ,EAC1B;MAEF,IAAI,CAACC,MAAM,GAAGD,QAAQ;IACxB;EAAC;IAAAJ,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAqB;MACnB,OAAO,IAAI,CAACK,OAAO;IACrB,CAAC;IAAAH,GAAA,EAED,SAAAA,IAAWC,QAAgB,EAAE;MAC3B,IAAI,IAAI,CAACE,OAAO,KAAKF,QAAQ,EAC3B;MAEF,IAAI,CAACE,OAAO,GAAGF,QAAQ;IACzB;EAAC;IAAAJ,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAqB;MACnB,OAAO,IAAI,CAACM,MAAM;IACpB,CAAC;IAAAJ,GAAA,EAED,SAAAA,IAAUC,QAAiB,EAAE;MAC3B,IAAI,IAAI,CAACG,MAAM,KAAKH,QAAQ,EAC1B;MAEF,IAAI,CAACG,MAAM,GAAGH,QAAQ;IACxB;EAAC;IAAAJ,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAwB;MACtB,OAAO,IAAI,CAACO,OAAO;IACrB,CAAC;IAAAL,GAAA,EAED,SAAAA,IAAWC,QAAmB,EAAE;MAC9B,IAAI,IAAI,CAACI,OAAO,KAAKJ,QAAQ,EAC3B;MAEF,IAAI,CAACI,OAAO,GAAGJ,QAAQ;IACzB;EAAC;EAAA,OAAAlB,YAAA;AAAA,EApEwBN,WAAW;AAuEtC,eAAeM,YAAY"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Group } from '@anov/3d-core';
|
|
2
|
+
import type { CurvePath, Object3D, Vector3 } from '@anov/3d-core';
|
|
3
|
+
import ObjectLayer from '../Base/ObjectLayer';
|
|
4
|
+
import type { BatchInterface, Option } from './type';
|
|
5
|
+
export declare class Batch extends ObjectLayer implements BatchInterface {
|
|
6
|
+
_mesh: Group;
|
|
7
|
+
_path: CurvePath<Vector3>;
|
|
8
|
+
_number: number;
|
|
9
|
+
_span: number;
|
|
10
|
+
_entity: Object3D;
|
|
11
|
+
get mesh(): Group;
|
|
12
|
+
get path(): CurvePath<Vector3>;
|
|
13
|
+
set path(newValue: CurvePath<Vector3>);
|
|
14
|
+
get number(): number;
|
|
15
|
+
set number(newValue: number);
|
|
16
|
+
get span(): number;
|
|
17
|
+
set span(newValue: number);
|
|
18
|
+
constructor(option: Option);
|
|
19
|
+
private _regenerateMesh;
|
|
20
|
+
private _handlePropertyUpdate;
|
|
21
|
+
private _clearScene;
|
|
22
|
+
dispose(): void;
|
|
23
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
3
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
4
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
5
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
6
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
7
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
8
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
9
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
10
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
11
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
12
|
+
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; }
|
|
13
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
14
|
+
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); }
|
|
15
|
+
import { Group, Mesh } from '@anov/3d-core';
|
|
16
|
+
import ObjectLayer from "../Base/ObjectLayer";
|
|
17
|
+
export var Batch = /*#__PURE__*/function (_ObjectLayer) {
|
|
18
|
+
_inherits(Batch, _ObjectLayer);
|
|
19
|
+
var _super = _createSuper(Batch);
|
|
20
|
+
function Batch(option) {
|
|
21
|
+
var _this;
|
|
22
|
+
_classCallCheck(this, Batch);
|
|
23
|
+
_this = _super.call(this);
|
|
24
|
+
_defineProperty(_assertThisInitialized(_this), "_mesh", void 0);
|
|
25
|
+
_defineProperty(_assertThisInitialized(_this), "_path", void 0);
|
|
26
|
+
_defineProperty(_assertThisInitialized(_this), "_number", void 0);
|
|
27
|
+
_defineProperty(_assertThisInitialized(_this), "_span", void 0);
|
|
28
|
+
_defineProperty(_assertThisInitialized(_this), "_entity", void 0);
|
|
29
|
+
var path = option.path,
|
|
30
|
+
number = option.number,
|
|
31
|
+
span = option.span,
|
|
32
|
+
entity = option.entity;
|
|
33
|
+
_this._path = path;
|
|
34
|
+
_this._number = number;
|
|
35
|
+
_this._span = span;
|
|
36
|
+
_this._entity = entity;
|
|
37
|
+
_this._regenerateMesh();
|
|
38
|
+
return _this;
|
|
39
|
+
}
|
|
40
|
+
_createClass(Batch, [{
|
|
41
|
+
key: "mesh",
|
|
42
|
+
get: function get() {
|
|
43
|
+
return this._mesh;
|
|
44
|
+
}
|
|
45
|
+
}, {
|
|
46
|
+
key: "path",
|
|
47
|
+
get: function get() {
|
|
48
|
+
return this._path;
|
|
49
|
+
},
|
|
50
|
+
set: function set(newValue) {
|
|
51
|
+
if (newValue === this._path) return;
|
|
52
|
+
this._path = newValue;
|
|
53
|
+
this._handlePropertyUpdate();
|
|
54
|
+
}
|
|
55
|
+
}, {
|
|
56
|
+
key: "number",
|
|
57
|
+
get: function get() {
|
|
58
|
+
return this._number;
|
|
59
|
+
},
|
|
60
|
+
set: function set(newValue) {
|
|
61
|
+
if (newValue === this._number) return;
|
|
62
|
+
this._number = Math.max(1, newValue);
|
|
63
|
+
this._handlePropertyUpdate();
|
|
64
|
+
}
|
|
65
|
+
}, {
|
|
66
|
+
key: "span",
|
|
67
|
+
get: function get() {
|
|
68
|
+
return this._span;
|
|
69
|
+
},
|
|
70
|
+
set: function set(newValue) {
|
|
71
|
+
if (newValue === this._span) return;
|
|
72
|
+
this._span = newValue > 0 ? newValue : 10;
|
|
73
|
+
this._handlePropertyUpdate();
|
|
74
|
+
}
|
|
75
|
+
}, {
|
|
76
|
+
key: "_regenerateMesh",
|
|
77
|
+
value: function _regenerateMesh() {
|
|
78
|
+
var _this2 = this;
|
|
79
|
+
var count = 10;
|
|
80
|
+
if (this._number > 0) count = this._number;
|
|
81
|
+
if (this._span && this._span > 0) count = Math.max(1, Math.floor(this._path.getLength() / this._span));
|
|
82
|
+
var points = this._path.getSpacedPoints(count - 1);
|
|
83
|
+
this._mesh = new Group();
|
|
84
|
+
var entity;
|
|
85
|
+
points === null || points === void 0 || points.forEach(function (point) {
|
|
86
|
+
entity = _this2._entity.clone(true);
|
|
87
|
+
entity.visible = true;
|
|
88
|
+
entity.position.copy(point);
|
|
89
|
+
_this2._mesh.add(entity);
|
|
90
|
+
});
|
|
91
|
+
this.add(this._mesh);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// 统一属性更新入口
|
|
95
|
+
}, {
|
|
96
|
+
key: "_handlePropertyUpdate",
|
|
97
|
+
value: function _handlePropertyUpdate() {
|
|
98
|
+
this._clearScene();
|
|
99
|
+
this._regenerateMesh();
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// 内存安全清理
|
|
103
|
+
}, {
|
|
104
|
+
key: "_clearScene",
|
|
105
|
+
value: function _clearScene() {
|
|
106
|
+
this._mesh.traverse(function (child) {
|
|
107
|
+
if (child instanceof Mesh) {
|
|
108
|
+
var _child$geometry, _child$material;
|
|
109
|
+
(_child$geometry = child.geometry) === null || _child$geometry === void 0 || _child$geometry.dispose();
|
|
110
|
+
Array.isArray(child.material) ? child.material.forEach(function (m) {
|
|
111
|
+
return m.dispose();
|
|
112
|
+
}) : (_child$material = child.material) === null || _child$material === void 0 ? void 0 : _child$material.dispose();
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
this.remove(this._mesh);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// 显式销毁方法
|
|
119
|
+
}, {
|
|
120
|
+
key: "dispose",
|
|
121
|
+
value: function dispose() {
|
|
122
|
+
this._clearScene();
|
|
123
|
+
}
|
|
124
|
+
}]);
|
|
125
|
+
return Batch;
|
|
126
|
+
}(ObjectLayer);
|
|
127
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Group","Mesh","ObjectLayer","Batch","_ObjectLayer","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","path","number","span","entity","_path","_number","_span","_entity","_regenerateMesh","_createClass","key","get","_mesh","set","newValue","_handlePropertyUpdate","Math","max","value","_this2","count","floor","getLength","points","getSpacedPoints","forEach","point","clone","visible","position","copy","add","_clearScene","traverse","child","_child$geometry","_child$material","geometry","dispose","Array","isArray","material","m","remove"],"sources":["../../../src/business/Batch/index.ts"],"sourcesContent":["import { Group, Mesh } from '@anov/3d-core'\nimport type { CurvePath, Object3D, Vector3 } 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 _entity: Object3D\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 constructor(option: Option) {\n super()\n\n const { path, number, span, entity } = option\n this._path = path\n this._number = number\n this._span = span\n this._entity = entity\n\n this._regenerateMesh()\n }\n\n private _regenerateMesh() {\n let count = 10\n if (this._number > 0)\n count = this._number\n if (this._span && this._span > 0)\n count = Math.max(1, Math.floor(this._path.getLength() / this._span))\n\n const points = this._path.getSpacedPoints(count - 1)\n\n this._mesh = new Group()\n let entity\n points?.forEach((point: Vector3) => {\n entity = this._entity.clone(true)\n entity.visible = true\n entity.position.copy(point)\n this._mesh.add(entity)\n })\n\n this.add(this._mesh)\n }\n\n // 统一属性更新入口\n private _handlePropertyUpdate() {\n this._clearScene()\n this._regenerateMesh()\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":";;;;;;;;;;;;;;AAAA,SAASA,KAAK,EAAEC,IAAI,QAAQ,eAAe;AAE3C,OAAOC,WAAW;AAGlB,WAAaC,KAAK,0BAAAC,YAAA;EAAAC,SAAA,CAAAF,KAAA,EAAAC,YAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,KAAA;EA4ChB,SAAAA,MAAYK,MAAc,EAAE;IAAA,IAAAC,KAAA;IAAAC,eAAA,OAAAP,KAAA;IAC1BM,KAAA,GAAAH,MAAA,CAAAK,IAAA;IAAOC,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAEP,IAAQK,IAAI,GAA2BN,MAAM,CAArCM,IAAI;MAAEC,MAAM,GAAmBP,MAAM,CAA/BO,MAAM;MAAEC,IAAI,GAAaR,MAAM,CAAvBQ,IAAI;MAAEC,MAAM,GAAKT,MAAM,CAAjBS,MAAM;IAClCR,KAAA,CAAKS,KAAK,GAAGJ,IAAI;IACjBL,KAAA,CAAKU,OAAO,GAAGJ,MAAM;IACrBN,KAAA,CAAKW,KAAK,GAAGJ,IAAI;IACjBP,KAAA,CAAKY,OAAO,GAAGJ,MAAM;IAErBR,KAAA,CAAKa,eAAe,CAAC,CAAC;IAAA,OAAAb,KAAA;EACxB;EAACc,YAAA,CAAApB,KAAA;IAAAqB,GAAA;IAAAC,GAAA,EA/CD,SAAAA,IAAA,EAAkB;MAChB,OAAO,IAAI,CAACC,KAAK;IACnB;EAAC;IAAAF,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAsC;MACpC,OAAO,IAAI,CAACP,KAAK;IACnB,CAAC;IAAAS,GAAA,EAED,SAAAA,IAAgBC,QAA4B,EAAE;MAC5C,IAAIA,QAAQ,KAAK,IAAI,CAACV,KAAK,EACzB;MACF,IAAI,CAACA,KAAK,GAAGU,QAAQ;MACrB,IAAI,CAACC,qBAAqB,CAAC,CAAC;IAC9B;EAAC;IAAAL,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAA4B;MAC1B,OAAO,IAAI,CAACN,OAAO;IACrB,CAAC;IAAAQ,GAAA,EAED,SAAAA,IAAkBC,QAAgB,EAAE;MAClC,IAAIA,QAAQ,KAAK,IAAI,CAACT,OAAO,EAC3B;MACF,IAAI,CAACA,OAAO,GAAGW,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,QAAQ,CAAC;MACpC,IAAI,CAACC,qBAAqB,CAAC,CAAC;IAC9B;EAAC;IAAAL,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAA0B;MACxB,OAAO,IAAI,CAACL,KAAK;IACnB,CAAC;IAAAO,GAAA,EAED,SAAAA,IAAgBC,QAAgB,EAAE;MAChC,IAAIA,QAAQ,KAAK,IAAI,CAACR,KAAK,EACzB;MACF,IAAI,CAACA,KAAK,GAAGQ,QAAQ,GAAG,CAAC,GAAGA,QAAQ,GAAG,EAAE;MACzC,IAAI,CAACC,qBAAqB,CAAC,CAAC;IAC9B;EAAC;IAAAL,GAAA;IAAAQ,KAAA,EAcD,SAAAV,gBAAA,EAA0B;MAAA,IAAAW,MAAA;MACxB,IAAIC,KAAK,GAAG,EAAE;MACd,IAAI,IAAI,CAACf,OAAO,GAAG,CAAC,EAClBe,KAAK,GAAG,IAAI,CAACf,OAAO;MACtB,IAAI,IAAI,CAACC,KAAK,IAAI,IAAI,CAACA,KAAK,GAAG,CAAC,EAC9Bc,KAAK,GAAGJ,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACK,KAAK,CAAC,IAAI,CAACjB,KAAK,CAACkB,SAAS,CAAC,CAAC,GAAG,IAAI,CAAChB,KAAK,CAAC,CAAC;MAEtE,IAAMiB,MAAM,GAAG,IAAI,CAACnB,KAAK,CAACoB,eAAe,CAACJ,KAAK,GAAG,CAAC,CAAC;MAEpD,IAAI,CAACR,KAAK,GAAG,IAAI1B,KAAK,CAAC,CAAC;MACxB,IAAIiB,MAAM;MACVoB,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEE,OAAO,CAAC,UAACC,KAAc,EAAK;QAClCvB,MAAM,GAAGgB,MAAI,CAACZ,OAAO,CAACoB,KAAK,CAAC,IAAI,CAAC;QACjCxB,MAAM,CAACyB,OAAO,GAAG,IAAI;QACrBzB,MAAM,CAAC0B,QAAQ,CAACC,IAAI,CAACJ,KAAK,CAAC;QAC3BP,MAAI,CAACP,KAAK,CAACmB,GAAG,CAAC5B,MAAM,CAAC;MACxB,CAAC,CAAC;MAEF,IAAI,CAAC4B,GAAG,CAAC,IAAI,CAACnB,KAAK,CAAC;IACtB;;IAEA;EAAA;IAAAF,GAAA;IAAAQ,KAAA,EACA,SAAAH,sBAAA,EAAgC;MAC9B,IAAI,CAACiB,WAAW,CAAC,CAAC;MAClB,IAAI,CAACxB,eAAe,CAAC,CAAC;IACxB;;IAEA;EAAA;IAAAE,GAAA;IAAAQ,KAAA,EACA,SAAAc,YAAA,EAAsB;MACpB,IAAI,CAACpB,KAAK,CAACqB,QAAQ,CAAC,UAACC,KAAK,EAAK;QAC7B,IAAIA,KAAK,YAAY/C,IAAI,EAAE;UAAA,IAAAgD,eAAA,EAAAC,eAAA;UACzB,CAAAD,eAAA,GAAAD,KAAK,CAACG,QAAQ,cAAAF,eAAA,eAAdA,eAAA,CAAgBG,OAAO,CAAC,CAAC;UACzBC,KAAK,CAACC,OAAO,CAACN,KAAK,CAACO,QAAQ,CAAC,GACzBP,KAAK,CAACO,QAAQ,CAAChB,OAAO,CAAC,UAAAiB,CAAC;YAAA,OAAIA,CAAC,CAACJ,OAAO,CAAC,CAAC;UAAA,EAAC,IAAAF,eAAA,GACxCF,KAAK,CAACO,QAAQ,cAAAL,eAAA,uBAAdA,eAAA,CAAgBE,OAAO,CAAC,CAAC;QAC/B;MACF,CAAC,CAAC;MACF,IAAI,CAACK,MAAM,CAAC,IAAI,CAAC/B,KAAK,CAAC;IACzB;;IAEA;EAAA;IAAAF,GAAA;IAAAQ,KAAA,EACA,SAAAoB,QAAA,EAAU;MACR,IAAI,CAACN,WAAW,CAAC,CAAC;IACpB;EAAC;EAAA,OAAA3C,KAAA;AAAA,EAnGwBD,WAAW"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CurvePath, Object3D, Vector3 } from '@anov/3d-core';
|
|
2
|
+
export interface BatchInterface {
|
|
3
|
+
path: CurvePath<Vector3>;
|
|
4
|
+
number: number;
|
|
5
|
+
span: number;
|
|
6
|
+
}
|
|
7
|
+
export type Option = {
|
|
8
|
+
path: CurvePath<Vector3>;
|
|
9
|
+
number?: number;
|
|
10
|
+
span?: number;
|
|
11
|
+
entity: Object3D;
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../src/business/Batch/type.ts"],"sourcesContent":["import type { CurvePath, Group, Object3D, Vector3 } from '@anov/3d-core'\n\nexport interface BatchInterface {\n path: CurvePath<Vector3>\n number: number\n span: number\n}\n\nexport type Option = {\n path: CurvePath<Vector3>\n number?: number\n span?: number\n entity: Object3D\n}"],"mappings":""}
|
|
@@ -289,7 +289,7 @@ var PlanePoi = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
289
289
|
_scene$orbitControls;
|
|
290
290
|
var updateTransform = function updateTransform() {
|
|
291
291
|
_this2._option.facingCamera !== false && _this2._updateViewDirection();
|
|
292
|
-
_this2._option.autoScale
|
|
292
|
+
_this2._option.autoScale === true && _this2._updateScale();
|
|
293
293
|
};
|
|
294
294
|
var scene = use.useScene();
|
|
295
295
|
var callback = function callback() {
|
|
@@ -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","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","toString","Array","from","test","len","arr2","isArray","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","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","obj","_toPrimitive","String","toPrimitive","Number","Box3","Group","Vector3","use","_","ObjectLayer","StrategyManage","LinkStrategy","ParticleStrategy","TitleStrategy","DEFAULT_OPTION","style","facingCamera","autoScale","text","fontSize","color","fontWeight","offset","bgUrl","model","visible","scale","particle","STYLE_DATA","poi_border_01","poi_ellipse_01","PlanePoi","_ObjectLayer","_super","option","_this","_initParam","_initializeMesh","get","_mesh","_style","_autoScale","set","newValue","_facingCamera","_text","_model","_particle","dispose","_disposeCallbacks","remove","_handleReload","console","log","_option","mergeWith","cloneDeep","_arrayMergeCustomizer","_this$_option","_initializeMesh2","_callee","_this$_linkMesh","group","_this$_option2","_STYLE_DATA$style","titleStyle","linkStyle","particleStyle","_yield$Promise$all","_yield$Promise$all2","TitleClass","LinkClass","ParticleClass","_callee$","_context","all","_titleMesh","addReloadListener","_linkMesh","_particleMesh","ready","add","updateWorldMatrix","_calculateLayout","_setupBoundingBox","setupAnimation","_setupEventListeners","createProxy","titleSize","_getBoxSize","linkSize","baseY","height","vspace","position","setY","mesh","_Box3$setFromObject","setFromObject","max","min","width","x","box","size","center","getSize","getCenter","bottomCenter","z","children","sub","objValue","srcValue","_updateViewDirection","_use$useScene","useScene","camera","rotation","_updateScale","_use$useScene2","distanceTo","_this2","_scene$orbitControls","updateTransform","scene","callback","orbitControls","addEventListener","_scene$orbitControls2","removeEventListener"],"sources":["../../../../src/business/Poi/Plane/index.ts"],"sourcesContent":["import type { Mesh, Object3D } from '@anov/3d-core'\nimport { Box3, Group, Vector3, use } from '@anov/3d-core'\nimport _ from 'lodash'\nimport ObjectLayer from '../../Base/ObjectLayer'\nimport type { IPlanePoi, ModelOption, Option, ParticleOption, TextOption } from './types'\nimport { StrategyManage as LinkStrategy } from './link'\nimport { StrategyManage as ParticleStrategy } from './particle'\nimport { StrategyManage as TitleStrategy } from './title'\n\nconst DEFAULT_OPTION = {\n style: 'poi_border_01',\n facingCamera: true,\n autoScale: true,\n text: {\n value: '标题文字',\n fontSize: 16,\n color: '#ffffff',\n fontWeight: 'normal',\n offset: [0, 0],\n bgUrl: '',\n style: '',\n },\n model: {\n visible: true,\n style: '',\n color: '',\n offset: [0, 0],\n scale: [1, 1, 1],\n },\n particle: {\n visible: true,\n style: '',\n offset: [0, 0],\n scale: [1, 1, 1],\n },\n}\n\nconst STYLE_DATA = {\n poi_border_01: ['Border', 'Pyramid', 'SingleCircle'],\n poi_ellipse_01: ['Ellipse', 'Cylinder', 'SingleCircle'],\n}\n\nclass PlanePoi extends ObjectLayer implements IPlanePoi {\n private _mesh!: Group\n private _option: Option\n\n private _titleMesh: Mesh & any\n private _linkMesh: Mesh | Group & any\n private _particleMesh: Mesh & any\n private _disposeCallbacks: Function[] = []\n\n private _style: string\n private _autoScale: boolean\n private _facingCamera: boolean\n private _text: TextOption\n private _model: ModelOption\n private _particle: ParticleOption\n\n constructor(option: Option) {\n super()\n this._initParam(option)\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 autoScale(): boolean {\n return this._autoScale\n }\n\n set autoScale(newValue: boolean) {\n this._autoScale = newValue\n }\n\n get facingCamera(): boolean {\n return this._facingCamera\n }\n\n set facingCamera(newValue: boolean) {\n this._facingCamera = newValue\n }\n\n get text(): TextOption {\n return this._text\n }\n\n get model(): ModelOption {\n return this._model\n }\n\n get particle(): ParticleOption {\n return this._particle\n }\n\n // 销毁\n dispose() {\n this._disposeCallbacks.forEach(fn => fn())\n this._disposeCallbacks = []\n this.remove(this._mesh)\n }\n\n private _handleReload() {\n console.log('handleReloadChange')\n }\n\n private _initParam(option: Option) {\n this._option = _.mergeWith(\n _.cloneDeep(DEFAULT_OPTION),\n option,\n this._arrayMergeCustomizer,\n )\n\n const { text, model, particle } = this._option\n this._text = text\n this._model = model\n this._particle = particle\n }\n\n private async _initializeMesh() {\n const group = new Group()\n const { style, text } = this._option\n const [titleStyle, linkStyle, particleStyle] = STYLE_DATA[style]\n\n // 并行加载所有资源\n const [TitleClass, LinkClass, ParticleClass] = await Promise.all([\n TitleStrategy[titleStyle](),\n LinkStrategy[linkStyle](),\n ParticleStrategy[particleStyle](),\n ])\n\n // 初始化组件\n this._titleMesh = new TitleClass({ ...text })\n this._titleMesh.addReloadListener(this._handleReload)\n this._linkMesh = new LinkClass({})\n this._particleMesh = new ParticleClass({})\n\n // 并行等待资源就绪\n await Promise.all([\n this._titleMesh.ready,\n this._linkMesh.ready,\n this._particleMesh.ready,\n ])\n\n // 组件组装\n group.add(this._titleMesh)\n group.add(this._linkMesh, this._particleMesh)\n\n // 统一更新矩阵\n group.updateWorldMatrix(true, true)\n\n this._mesh = group\n // 布局计算\n this._calculateLayout()\n\n // 边界盒处理\n this._setupBoundingBox(group)\n\n // 动画和事件\n this._linkMesh?.setupAnimation()\n this._setupEventListeners()\n\n this.add(group)\n\n this._text = this.createProxy(this._text, this._titleMesh)\n this._model = this.createProxy(this._model, this._linkMesh)\n this._particle = this.createProxy(this._particle, this._particleMesh)\n }\n\n /** 精确布局计算 */\n private _calculateLayout() {\n if (!this._linkMesh)\n return\n\n const titleSize = this._getBoxSize(this._titleMesh)\n const linkSize = this._getBoxSize(this._linkMesh)\n\n // 三维空间布局计算\n const baseY = -(titleSize.height / 2 + this._linkMesh.vspace[0])\n this._linkMesh.position.setY(baseY - linkSize.height / 2)\n this._particleMesh.position.setY(baseY - linkSize.height)\n }\n\n private _getBoxSize(mesh) {\n // mesh.updateWorldMatrix(true, true)\n const { max, min } = new Box3().setFromObject(mesh)\n return { width: max.x - min.x, height: max.y - min.y }\n }\n\n private _setupBoundingBox(mesh: Object3D) {\n // 计算Group的边界盒\n const box = new Box3().setFromObject(mesh)\n const size = new Vector3()\n const center = new Vector3()\n box.getSize(size)\n box.getCenter(center)\n\n // 计算底部中心位置\n const bottomCenter = new Vector3(center.x, box.min.y, center.z)\n // 平移所有Mesh,使底部中心对齐到控制点\n mesh.children.forEach((mesh) => {\n mesh.position.sub(bottomCenter)\n })\n }\n\n private _arrayMergeCustomizer(objValue, srcValue) {\n if (_.isArray(objValue) && srcValue)\n return srcValue\n }\n\n private _updateViewDirection() {\n const { camera } = use.useScene()\n // camera && this._mesh.quaternion.copy(camera.quaternion)\n this._mesh.rotation.y = camera.rotation.y\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n private _updateScale() {\n const { camera } = use.useScene()\n // Make the signboard face the camera\n // this._mesh.lookAt(camera.position);\n // 计算相机和物体之间的距离\n const scale = camera?.position.distanceTo(this._mesh.position) / 20 || 1\n this._mesh.scale.set(scale, scale, scale)\n }\n\n private _setupEventListeners() {\n const updateTransform = () => {\n this._option.facingCamera !== false && this._updateViewDirection()\n this._option.autoScale !== true && this._updateScale()\n }\n\n const scene = use.useScene()\n const callback = () => updateTransform()\n updateTransform()\n scene.orbitControls?.addEventListener('change', callback)\n this._disposeCallbacks.push(() => {\n scene.orbitControls?.removeEventListener('change', callback)\n })\n }\n}\n\nexport default PlanePoi"],"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","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","toString","Array","from","test","len","arr2","isArray","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","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","obj","_toPrimitive","String","toPrimitive","Number","Box3","Group","Vector3","use","_","ObjectLayer","StrategyManage","LinkStrategy","ParticleStrategy","TitleStrategy","DEFAULT_OPTION","style","facingCamera","autoScale","text","fontSize","color","fontWeight","offset","bgUrl","model","visible","scale","particle","STYLE_DATA","poi_border_01","poi_ellipse_01","PlanePoi","_ObjectLayer","_super","option","_this","_initParam","_initializeMesh","get","_mesh","_style","_autoScale","set","newValue","_facingCamera","_text","_model","_particle","dispose","_disposeCallbacks","remove","_handleReload","console","log","_option","mergeWith","cloneDeep","_arrayMergeCustomizer","_this$_option","_initializeMesh2","_callee","_this$_linkMesh","group","_this$_option2","_STYLE_DATA$style","titleStyle","linkStyle","particleStyle","_yield$Promise$all","_yield$Promise$all2","TitleClass","LinkClass","ParticleClass","_callee$","_context","all","_titleMesh","addReloadListener","_linkMesh","_particleMesh","ready","add","updateWorldMatrix","_calculateLayout","_setupBoundingBox","setupAnimation","_setupEventListeners","createProxy","titleSize","_getBoxSize","linkSize","baseY","height","vspace","position","setY","mesh","_Box3$setFromObject","setFromObject","max","min","width","x","box","size","center","getSize","getCenter","bottomCenter","z","children","sub","objValue","srcValue","_updateViewDirection","_use$useScene","useScene","camera","rotation","_updateScale","_use$useScene2","distanceTo","_this2","_scene$orbitControls","updateTransform","scene","callback","orbitControls","addEventListener","_scene$orbitControls2","removeEventListener"],"sources":["../../../../src/business/Poi/Plane/index.ts"],"sourcesContent":["import type { Mesh, Object3D } from '@anov/3d-core'\nimport { Box3, Group, Vector3, use } from '@anov/3d-core'\nimport _ from 'lodash'\nimport ObjectLayer from '../../Base/ObjectLayer'\nimport type { IPlanePoi, ModelOption, Option, ParticleOption, TextOption } from './types'\nimport { StrategyManage as LinkStrategy } from './link'\nimport { StrategyManage as ParticleStrategy } from './particle'\nimport { StrategyManage as TitleStrategy } from './title'\n\nconst DEFAULT_OPTION = {\n style: 'poi_border_01',\n facingCamera: true,\n autoScale: true,\n text: {\n value: '标题文字',\n fontSize: 16,\n color: '#ffffff',\n fontWeight: 'normal',\n offset: [0, 0],\n bgUrl: '',\n style: '',\n },\n model: {\n visible: true,\n style: '',\n color: '',\n offset: [0, 0],\n scale: [1, 1, 1],\n },\n particle: {\n visible: true,\n style: '',\n offset: [0, 0],\n scale: [1, 1, 1],\n },\n}\n\nconst STYLE_DATA = {\n poi_border_01: ['Border', 'Pyramid', 'SingleCircle'],\n poi_ellipse_01: ['Ellipse', 'Cylinder', 'SingleCircle'],\n}\n\nclass PlanePoi extends ObjectLayer implements IPlanePoi {\n private _mesh!: Group\n private _option: Option\n\n private _titleMesh: Mesh & any\n private _linkMesh: Mesh | Group & any\n private _particleMesh: Mesh & any\n private _disposeCallbacks: Function[] = []\n\n private _style: string\n private _autoScale: boolean\n private _facingCamera: boolean\n private _text: TextOption\n private _model: ModelOption\n private _particle: ParticleOption\n\n constructor(option: Option) {\n super()\n this._initParam(option)\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 autoScale(): boolean {\n return this._autoScale\n }\n\n set autoScale(newValue: boolean) {\n this._autoScale = newValue\n }\n\n get facingCamera(): boolean {\n return this._facingCamera\n }\n\n set facingCamera(newValue: boolean) {\n this._facingCamera = newValue\n }\n\n get text(): TextOption {\n return this._text\n }\n\n get model(): ModelOption {\n return this._model\n }\n\n get particle(): ParticleOption {\n return this._particle\n }\n\n // 销毁\n dispose() {\n this._disposeCallbacks.forEach(fn => fn())\n this._disposeCallbacks = []\n this.remove(this._mesh)\n }\n\n private _handleReload() {\n console.log('handleReloadChange')\n }\n\n private _initParam(option: Option) {\n this._option = _.mergeWith(\n _.cloneDeep(DEFAULT_OPTION),\n option,\n this._arrayMergeCustomizer,\n )\n\n const { text, model, particle } = this._option\n this._text = text\n this._model = model\n this._particle = particle\n }\n\n private async _initializeMesh() {\n const group = new Group()\n const { style, text } = this._option\n const [titleStyle, linkStyle, particleStyle] = STYLE_DATA[style]\n\n // 并行加载所有资源\n const [TitleClass, LinkClass, ParticleClass] = await Promise.all([\n TitleStrategy[titleStyle](),\n LinkStrategy[linkStyle](),\n ParticleStrategy[particleStyle](),\n ])\n\n // 初始化组件\n this._titleMesh = new TitleClass({ ...text })\n this._titleMesh.addReloadListener(this._handleReload)\n this._linkMesh = new LinkClass({})\n this._particleMesh = new ParticleClass({})\n\n // 并行等待资源就绪\n await Promise.all([\n this._titleMesh.ready,\n this._linkMesh.ready,\n this._particleMesh.ready,\n ])\n\n // 组件组装\n group.add(this._titleMesh)\n group.add(this._linkMesh, this._particleMesh)\n\n // 统一更新矩阵\n group.updateWorldMatrix(true, true)\n\n this._mesh = group\n // 布局计算\n this._calculateLayout()\n\n // 边界盒处理\n this._setupBoundingBox(group)\n\n // 动画和事件\n this._linkMesh?.setupAnimation()\n this._setupEventListeners()\n\n this.add(group)\n\n this._text = this.createProxy(this._text, this._titleMesh)\n this._model = this.createProxy(this._model, this._linkMesh)\n this._particle = this.createProxy(this._particle, this._particleMesh)\n }\n\n /** 精确布局计算 */\n private _calculateLayout() {\n if (!this._linkMesh)\n return\n\n const titleSize = this._getBoxSize(this._titleMesh)\n const linkSize = this._getBoxSize(this._linkMesh)\n\n // 三维空间布局计算\n const baseY = -(titleSize.height / 2 + this._linkMesh.vspace[0])\n this._linkMesh.position.setY(baseY - linkSize.height / 2)\n this._particleMesh.position.setY(baseY - linkSize.height)\n }\n\n private _getBoxSize(mesh) {\n // mesh.updateWorldMatrix(true, true)\n const { max, min } = new Box3().setFromObject(mesh)\n return { width: max.x - min.x, height: max.y - min.y }\n }\n\n private _setupBoundingBox(mesh: Object3D) {\n // 计算Group的边界盒\n const box = new Box3().setFromObject(mesh)\n const size = new Vector3()\n const center = new Vector3()\n box.getSize(size)\n box.getCenter(center)\n\n // 计算底部中心位置\n const bottomCenter = new Vector3(center.x, box.min.y, center.z)\n // 平移所有Mesh,使底部中心对齐到控制点\n mesh.children.forEach((mesh) => {\n mesh.position.sub(bottomCenter)\n })\n }\n\n private _arrayMergeCustomizer(objValue, srcValue) {\n if (_.isArray(objValue) && srcValue)\n return srcValue\n }\n\n private _updateViewDirection() {\n const { camera } = use.useScene()\n // camera && this._mesh.quaternion.copy(camera.quaternion)\n this._mesh.rotation.y = camera.rotation.y\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n private _updateScale() {\n const { camera } = use.useScene()\n // Make the signboard face the camera\n // this._mesh.lookAt(camera.position);\n // 计算相机和物体之间的距离\n const scale = camera?.position.distanceTo(this._mesh.position) / 20 || 1\n this._mesh.scale.set(scale, scale, scale)\n }\n\n private _setupEventListeners() {\n const updateTransform = () => {\n this._option.facingCamera !== false && this._updateViewDirection()\n this._option.autoScale === true && this._updateScale()\n }\n\n const scene = use.useScene()\n const callback = () => updateTransform()\n updateTransform()\n scene.orbitControls?.addEventListener('change', callback)\n this._disposeCallbacks.push(() => {\n scene.orbitControls?.removeEventListener('change', callback)\n })\n }\n}\n\nexport default PlanePoi"],"mappings":"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"}
|
package/dist/business/index.d.ts
CHANGED
package/dist/business/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../src/business/index.ts"],"sourcesContent":["export * from './Poi'\nexport * from './Spline'\nexport * from './Area'\nexport * from './TrafficComponents'\n"],"mappings":"AAAA;AACA;AACA;AACA"}
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/business/index.ts"],"sourcesContent":["export * from './Poi'\nexport * from './Spline'\nexport * from './Area'\nexport * from './TrafficComponents'\nexport * from './Batch'\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA"}
|