@anov/3d-ability 0.0.66 → 0.0.68
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/MaterialSwitch/MaterialSwitchSystem.d.ts +33 -0
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +216 -0
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -0
- package/dist/business/MaterialSwitch/fade.d.ts +11 -0
- package/dist/business/MaterialSwitch/fade.js +13 -0
- package/dist/business/MaterialSwitch/fade.js.map +1 -0
- package/dist/business/MaterialSwitch/finalFade.d.ts +7 -0
- package/dist/business/MaterialSwitch/finalFade.js +12 -0
- package/dist/business/MaterialSwitch/finalFade.js.map +1 -0
- package/dist/business/MaterialSwitch/index.d.ts +24 -0
- package/dist/business/MaterialSwitch/index.js +2 -0
- package/dist/business/MaterialSwitch/index.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 +2 -0
- package/dist/business/index.js +2 -0
- package/dist/business/index.js.map +1 -1
- package/dist/core/PostEffects/index.d.ts +1 -1
- package/dist/core/PostEffects/index.js +1 -0
- package/dist/core/PostEffects/index.js.map +1 -1
- package/dist/core/PostEffects/outlinePass.d.ts +15 -0
- package/dist/core/PostEffects/outlinePass.js +37 -1
- package/dist/core/PostEffects/outlinePass.js.map +1 -1
- package/dist/core/WeatherSystem/WeatherSystem.js +1 -0
- package/dist/core/WeatherSystem/WeatherSystem.js.map +1 -1
- package/dist/core/WeatherSystem/weather/index.d.ts +2 -2
- package/dist/core/WeatherSystem/weather/index.js +33 -39
- package/dist/core/WeatherSystem/weather/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -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":"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"}
|
|
@@ -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
|
+
}
|