@anov/3d-ability 0.0.115 → 0.0.117
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/business/Area/{Fence → fence}/FenceBase.js +38 -22
- package/dist/business/Area/fence/FenceBase.js.map +1 -0
- package/dist/business/Area/{Fence → fence}/fence_base_01.d.ts +2 -2
- package/dist/business/Area/{Fence → fence}/fence_base_01.js +18 -6
- package/dist/business/Area/fence/fence_base_01.js.map +1 -0
- package/dist/business/Area/{Fence → fence}/fence_feeting_01.d.ts +2 -2
- package/dist/business/Area/{Fence → fence}/fence_feeting_01.js +37 -7
- package/dist/business/Area/fence/fence_feeting_01.js.map +1 -0
- package/dist/business/Area/{Fence → fence}/fence_roll_01.d.ts +2 -2
- package/dist/business/Area/{Fence → fence}/fence_roll_01.js +38 -7
- package/dist/business/Area/fence/fence_roll_01.js.map +1 -0
- package/dist/business/Area/{FillArea → fillArea}/FillAreaBase.js.map +1 -1
- package/dist/business/Area/{FillArea → fillArea}/fillArea_face_01.d.ts +2 -3
- package/dist/business/Area/{FillArea → fillArea}/fillArea_face_01.js +7 -8
- package/dist/business/Area/fillArea/fillArea_face_01.js.map +1 -0
- package/dist/business/Area/{FillArea → fillArea}/fillArea_line_01.js +16 -8
- package/dist/business/Area/fillArea/fillArea_line_01.js.map +1 -0
- package/dist/business/Area/index.js +5 -5
- package/dist/business/Area/index.js.map +1 -1
- package/dist/business/Batch/index.d.ts +8 -0
- package/dist/business/Batch/index.js +80 -6
- package/dist/business/Batch/index.js.map +1 -1
- package/dist/business/Flyline/line/ArcLine.js +1 -1
- package/dist/business/Flyline/line/ArcLine.js.map +1 -1
- package/dist/business/HeatMap/HeatMap.js +1 -1
- package/dist/business/HeatMap/HeatMap.js.map +1 -1
- package/dist/business/Mark/index.js +2 -4
- package/dist/business/Mark/index.js.map +1 -1
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.d.ts +2 -1
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +81 -49
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
- package/dist/business/MaterialSwitch/inject.d.ts +17 -6
- package/dist/business/MaterialSwitch/inject.js +160 -114
- package/dist/business/MaterialSwitch/inject.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.d.ts +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.js +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
- package/dist/business/Poi/index.js +4 -1
- package/dist/business/Poi/index.js.map +1 -1
- package/dist/business/Poi/link/Pyramid.d.ts +2 -0
- package/dist/business/Poi/link/Pyramid.js +53 -23
- package/dist/business/Poi/link/Pyramid.js.map +1 -1
- package/dist/business/Poi/particle/DoubleCircle.js +1 -1
- package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
- package/dist/business/Poi/particle/DynamicCircle.js +2 -2
- package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
- package/dist/business/Poi/particle/SingleCircle.js +1 -1
- package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
- package/dist/business/Poi/shader/circle.js +1 -1
- package/dist/business/Poi/shader/circle.js.map +1 -1
- package/dist/business/Poi/shader/doubleCircle.js +1 -1
- package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
- package/dist/business/Spline/index.d.ts +25 -10
- package/dist/business/Spline/index.js +222 -40
- package/dist/business/Spline/index.js.map +1 -1
- package/dist/business/Spline/types.d.ts +14 -8
- package/dist/business/Spline/types.js.map +1 -1
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +10 -1
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.d.ts +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
- package/dist/business/Utils/constant.js +2 -2
- package/dist/business/Utils/constant.js.map +1 -1
- package/dist/business/Utils/round-curve.d.ts +4 -2
- package/dist/business/Utils/round-curve.js +131 -2
- package/dist/business/Utils/round-curve.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +1 -1
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.d.ts +12 -2
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +107 -59
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
- package/dist/core/Material/SurfaceMaterial/index.d.ts +7 -7
- package/dist/core/Material/SurfaceMaterial/index.js +16 -14
- package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
- package/dist/core/PostEffects/outlinePass.js +5 -1
- package/dist/core/PostEffects/outlinePass.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/plane.js +7 -2
- package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/sky.js +1 -1
- package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
- package/dist/core/WeatherSystem/sky/index.js +27 -20
- package/dist/core/WeatherSystem/sky/index.js.map +1 -1
- package/dist/utils/index.js.map +1 -0
- package/package.json +3 -3
- package/dist/business/Area/Fence/FenceBase.js.map +0 -1
- package/dist/business/Area/Fence/fence_base_01.js.map +0 -1
- package/dist/business/Area/Fence/fence_feeting_01.js.map +0 -1
- package/dist/business/Area/Fence/fence_roll_01.js.map +0 -1
- package/dist/business/Area/FillArea/fillArea_face_01.js.map +0 -1
- package/dist/business/Area/FillArea/fillArea_line_01.js.map +0 -1
- package/dist/business/Utils/constant.d.ts +0 -1
- package/dist/core/Utils/index.js.map +0 -1
- /package/dist/business/Area/{Fence → fence}/FenceBase.d.ts +0 -0
- /package/dist/business/Area/{FillArea → fillArea}/FillAreaBase.d.ts +0 -0
- /package/dist/business/Area/{FillArea → fillArea}/FillAreaBase.js +0 -0
- /package/dist/business/Area/{FillArea → fillArea}/fillArea_line_01.d.ts +0 -0
- /package/dist/{core/Utils → utils}/index.d.ts +0 -0
- /package/dist/{core/Utils → utils}/index.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Group","Mesh","PlaneGeometry","RepeatWrapping","ShaderMaterial","TextureLoader","use","RainShader","Rain_Panel","Snow_panle","textureLoader","_defaultOption","texture1","load","texture2rain","size","snowT1density","rainT1density","snowSpeed","cameraPos","rainSpeed","rainAngle","RainMesh","_Mesh","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","group","width","height","wrapS","wrapT","setUniforms","_objectSpread","iTime","createPlane","x","y","z","rotationX","rotationY","rotationZ","suiji","Math","random","geometry","material","uniforms","vertexShader","vertexShaderFar","fragmentShader","fragmentShaderFar","side","blending","transparent","depthWrite","plane","position","set","rotation","createNearPlane","vertexShaderNear","fragmentShaderNear","count","distance","j","add","PI","material2d","vertexShader2d","fragmentShader2d","rain2dGeometry","rain2d","_createClass","key","value","_this2","Object","assign","keys","forEach","setSize","setSpeed","speed","setRain","scale","setSnow","setEffect","ops","_this3","update","_use$useScene","useScene","camera","_this$uniforms","_delete","remove","removeFromParent"],"sources":["../../../../../src/core/WeatherSystem/objects/rain/plane.ts"],"sourcesContent":["import { Group, Mesh, PlaneGeometry, RepeatWrapping, ShaderMaterial, TextureLoader, use } from '@anov/3d-core'\nimport RainShader from '../../shaders/rain'\nimport type { IRainOption } from '../../utils/constant'\nimport { Rain_Panel, Snow_panle } from '../../utils/constant'\n\nconst textureLoader = new TextureLoader()\n\nconst _defaultOption: IRainOption = {\n texture1: textureLoader.load(Snow_panle),\n texture2rain: textureLoader.load(Rain_Panel),\n size: 5.0,\n snowT1density: 0.1,\n rainT1density: 0.1,\n snowSpeed: 1.0,\n cameraPos: [0, 500.0, 0],\n rainSpeed: 3.0,\n rainAngle: 0.0,\n}\n\nclass RainMesh extends Mesh {\n option: IRainOption = _defaultOption\n uniforms: any = {}\n loaded!: Promise<Boolean>\n\n constructor(option: { width: number; height: number; segment: number }) {\n super()\n\n const group = new Group()\n const { width, height } = option\n\n if (this.option.texture1)\n this.option.texture1.wrapS = this.option.texture1.wrapT = RepeatWrapping\n if (this.option.texture2rain)\n this.option.texture2rain.wrapS = this.option.texture2rain.wrapT = RepeatWrapping\n this.setUniforms({\n ...this.option,\n iTime: 0,\n })\n\n const createPlane = (x: number, y: number, z: number, rotationX: number, rotationY: number, rotationZ: number) => {\n const suiji = Math.random() * (width / 3)\n const geometry = new PlaneGeometry(width + suiji, height + suiji)\n const material = new ShaderMaterial({\n uniforms: this.uniforms,\n vertexShader: RainShader.vertexShaderFar,\n fragmentShader: RainShader.fragmentShaderFar,\n side: 2,\n blending: 2,\n transparent: true,\n depthWrite: false,\n })\n\n const plane = new Mesh(geometry, material)\n plane.position.set(x, y, z)\n plane.rotation.set(rotationX, rotationY, rotationZ)\n return plane\n }\n\n const createNearPlane = (x: number, y: number, z: number, rotationX: number, rotationY: number, rotationZ: number) => {\n const suiji = Math.random() * (width / 1)\n const geometry = new PlaneGeometry(width / 2 + suiji, height / 2 + suiji)\n const material = new ShaderMaterial({\n uniforms: this.uniforms,\n vertexShader: RainShader.vertexShaderNear,\n fragmentShader: RainShader.fragmentShaderNear,\n side: 2,\n blending: 2,\n transparent: true,\n depthWrite: false,\n })\n\n const plane = new Mesh(geometry, material)\n\n plane.position.set(x, y, z)\n plane.rotation.set(rotationX, rotationY, rotationZ)\n return plane\n }\n\n const count = 6\n const distance = 150\n for (let j = -count; j <= count; j++) {\n const plane = createPlane(0, 0, j * distance, 0, 0, 0)\n group.add(plane)\n }\n for (let j = -count; j <= count; j++) {\n const plane = createPlane(j * distance, 0, 0, 0, Math.PI / 2, 0)\n group.add(plane)\n }\n\n for (let j = -15; j <= 15; j++) {\n const plane = createNearPlane(0, 0, j * j * j * 1, 0, 0, 0)\n group.add(plane)\n }\n for (let j = -15; j <= 15; j++) {\n const plane = createNearPlane(j * j * j * 1, 0, 0, 0, Math.PI / 2, 0)\n group.add(plane)\n }\n\n const material2d = new ShaderMaterial({\n uniforms: this.uniforms,\n vertexShader: RainShader.vertexShader2d,\n fragmentShader: RainShader.fragmentShader2d,\n side: 2,\n transparent: true,\n depthWrite: false,\n })\n\n const rain2dGeometry = new PlaneGeometry(100, 100)\n const rain2d = new Mesh(rain2dGeometry, material2d)\n group.add(rain2d)\n\n this.add(group)\n }\n\n private setUniforms(option: IRainOption) {\n Object.assign(this.option, option)\n\n Object.keys(option).forEach((key: string) => {\n this.uniforms[key] = { value: option[key] }\n })\n }\n\n public setSize(size: number) {\n this.setUniforms({ size })\n }\n\n public setSpeed(speed: number) {\n this.setUniforms({ snowSpeed: speed })\n }\n\n public setRain(scale: number) {\n this.setUniforms({ rainT1density: scale })\n }\n\n public setSnow(scale: number) {\n this.setUniforms({ snowT1density: scale })\n }\n\n public setEffect(ops: IRainOption) {\n const { size, snowT1density, rainT1density, snowSpeed } = ops\n Object.keys(ops).forEach((key: string) => {\n switch (key) {\n case 'size':\n this.setSize(size!)\n break\n case 'snowT1density':\n this.setSpeed(snowSpeed!)\n break\n case 'rainT1density':\n this.setRain(rainT1density!)\n break\n case 'snowSpeed':\n this.setSnow(snowT1density!)\n break\n }\n })\n }\n\n public update() {\n const { camera } = use.useScene()\n const { iTime, cameraPos } = this.uniforms\n iTime.value += 0.1\n cameraPos.value = [camera.position.x, camera.position.y, camera.position.z]\n }\n\n delete() {\n this.remove()\n this.removeFromParent()\n }\n}\n\nexport default RainMesh"],"mappings":";;;;;;;;;;;;;;;;AAAA,SAASA,KAAK,EAAEC,IAAI,EAAEC,aAAa,EAAEC,cAAc,EAAEC,cAAc,EAAEC,aAAa,EAAEC,GAAG,QAAQ,eAAe;AAC9G,OAAOC,UAAU;AAEjB,SAASC,UAAU,EAAEC,UAAU;AAE/B,IAAMC,aAAa,GAAG,IAAIL,aAAa,CAAC,CAAC;AAEzC,IAAMM,cAA2B,GAAG;EAClCC,QAAQ,EAAEF,aAAa,CAACG,IAAI,CAACJ,UAAU,CAAC;EACxCK,YAAY,EAAEJ,aAAa,CAACG,IAAI,CAACL,UAAU,CAAC;EAC5CO,IAAI,EAAE,GAAG;EACTC,aAAa,EAAE,GAAG;EAClBC,aAAa,EAAE,GAAG;EAClBC,SAAS,EAAE,GAAG;EACdC,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;EACxBC,SAAS,EAAE,GAAG;EACdC,SAAS,EAAE;AACb,CAAC;AAAA,IAEKC,QAAQ,0BAAAC,KAAA;EAAAC,SAAA,CAAAF,QAAA,EAAAC,KAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,QAAA;EAKZ,SAAAA,SAAYK,MAA0D,EAAE;IAAA,IAAAC,KAAA;IAAAC,eAAA,OAAAP,QAAA;IACtEM,KAAA,GAAAH,MAAA,CAAAK,IAAA;IAAOC,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,aALajB,cAAc;IAAAoB,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,eACpB,CAAC,CAAC;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAMhB,IAAMK,KAAK,GAAG,IAAIjC,KAAK,CAAC,CAAC;IACzB,IAAQkC,KAAK,GAAaP,MAAM,CAAxBO,KAAK;MAAEC,MAAM,GAAKR,MAAM,CAAjBQ,MAAM;IAErB,IAAIP,KAAA,CAAKD,MAAM,CAACf,QAAQ,EACtBgB,KAAA,CAAKD,MAAM,CAACf,QAAQ,CAACwB,KAAK,GAAGR,KAAA,CAAKD,MAAM,CAACf,QAAQ,CAACyB,KAAK,GAAGlC,cAAc;IAC1E,IAAIyB,KAAA,CAAKD,MAAM,CAACb,YAAY,EAC1Bc,KAAA,CAAKD,MAAM,CAACb,YAAY,CAACsB,KAAK,GAAGR,KAAA,CAAKD,MAAM,CAACb,YAAY,CAACuB,KAAK,GAAGlC,cAAc;IAClFyB,KAAA,CAAKU,WAAW,CAAAC,aAAA,CAAAA,aAAA,KACXX,KAAA,CAAKD,MAAM;MACda,KAAK,EAAE;IAAC,EACT,CAAC;IAEF,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,CAAS,EAAEC,CAAS,EAAEC,CAAS,EAAEC,SAAiB,EAAEC,SAAiB,EAAEC,SAAiB,EAAK;MAChH,IAAMC,KAAK,GAAGC,IAAI,CAACC,MAAM,CAAC,CAAC,IAAIhB,KAAK,GAAG,CAAC,CAAC;MACzC,IAAMiB,QAAQ,GAAG,IAAIjD,aAAa,CAACgC,KAAK,GAAGc,KAAK,EAAEb,MAAM,GAAGa,KAAK,CAAC;MACjE,IAAMI,QAAQ,GAAG,IAAIhD,cAAc,CAAC;QAClCiD,QAAQ,EAAEzB,KAAA,CAAKyB,QAAQ;QACvBC,YAAY,EAAE/C,UAAU,CAACgD,eAAe;QACxCC,cAAc,EAAEjD,UAAU,CAACkD,iBAAiB;QAC5CC,IAAI,EAAE,CAAC;QACPC,QAAQ,EAAE,CAAC;QACXC,WAAW,EAAE,IAAI;QACjBC,UAAU,EAAE;MACd,CAAC,CAAC;MAEF,IAAMC,KAAK,GAAG,IAAI7D,IAAI,CAACkD,QAAQ,EAAEC,QAAQ,CAAC;MAC1CU,KAAK,CAACC,QAAQ,CAACC,GAAG,CAACtB,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC;MAC3BkB,KAAK,CAACG,QAAQ,CAACD,GAAG,CAACnB,SAAS,EAAEC,SAAS,EAAEC,SAAS,CAAC;MACnD,OAAOe,KAAK;IACd,CAAC;IAED,IAAMI,eAAe,GAAG,SAAlBA,eAAeA,CAAIxB,CAAS,EAAEC,CAAS,EAAEC,CAAS,EAAEC,SAAiB,EAAEC,SAAiB,EAAEC,SAAiB,EAAK;MACpH,IAAMC,KAAK,GAAGC,IAAI,CAACC,MAAM,CAAC,CAAC,IAAIhB,KAAK,GAAG,CAAC,CAAC;MACzC,IAAMiB,QAAQ,GAAG,IAAIjD,aAAa,CAACgC,KAAK,GAAG,CAAC,GAAGc,KAAK,EAAEb,MAAM,GAAG,CAAC,GAAGa,KAAK,CAAC;MACzE,IAAMI,QAAQ,GAAG,IAAIhD,cAAc,CAAC;QAClCiD,QAAQ,EAAEzB,KAAA,CAAKyB,QAAQ;QACvBC,YAAY,EAAE/C,UAAU,CAAC4D,gBAAgB;QACzCX,cAAc,EAAEjD,UAAU,CAAC6D,kBAAkB;QAC7CV,IAAI,EAAE,CAAC;QACPC,QAAQ,EAAE,CAAC;QACXC,WAAW,EAAE,IAAI;QACjBC,UAAU,EAAE;MACd,CAAC,CAAC;MAEF,IAAMC,KAAK,GAAG,IAAI7D,IAAI,CAACkD,QAAQ,EAAEC,QAAQ,CAAC;MAE1CU,KAAK,CAACC,QAAQ,CAACC,GAAG,CAACtB,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC;MAC3BkB,KAAK,CAACG,QAAQ,CAACD,GAAG,CAACnB,SAAS,EAAEC,SAAS,EAAEC,SAAS,CAAC;MACnD,OAAOe,KAAK;IACd,CAAC;IAED,IAAMO,KAAK,GAAG,CAAC;IACf,IAAMC,QAAQ,GAAG,GAAG;IACpB,KAAK,IAAIC,CAAC,GAAG,CAACF,KAAK,EAAEE,CAAC,IAAIF,KAAK,EAAEE,CAAC,EAAE,EAAE;MACpC,IAAMT,KAAK,GAAGrB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE8B,CAAC,GAAGD,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MACtDrC,KAAK,CAACuC,GAAG,CAACV,KAAK,CAAC;IAClB;IACA,KAAK,IAAIS,EAAC,GAAG,CAACF,KAAK,EAAEE,EAAC,IAAIF,KAAK,EAAEE,EAAC,EAAE,EAAE;MACpC,IAAMT,MAAK,GAAGrB,WAAW,CAAC8B,EAAC,GAAGD,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAErB,IAAI,CAACwB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;MAChExC,KAAK,CAACuC,GAAG,CAACV,MAAK,CAAC;IAClB;IAEA,KAAK,IAAIS,GAAC,GAAG,CAAC,EAAE,EAAEA,GAAC,IAAI,EAAE,EAAEA,GAAC,EAAE,EAAE;MAC9B,IAAMT,OAAK,GAAGI,eAAe,CAAC,CAAC,EAAE,CAAC,EAAEK,GAAC,GAAGA,GAAC,GAAGA,GAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC3DtC,KAAK,CAACuC,GAAG,CAACV,OAAK,CAAC;IAClB;IACA,KAAK,IAAIS,GAAC,GAAG,CAAC,EAAE,EAAEA,GAAC,IAAI,EAAE,EAAEA,GAAC,EAAE,EAAE;MAC9B,IAAMT,OAAK,GAAGI,eAAe,CAACK,GAAC,GAAGA,GAAC,GAAGA,GAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAEtB,IAAI,CAACwB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;MACrExC,KAAK,CAACuC,GAAG,CAACV,OAAK,CAAC;IAClB;IAEA,IAAMY,UAAU,GAAG,IAAItE,cAAc,CAAC;MACpCiD,QAAQ,EAAEzB,KAAA,CAAKyB,QAAQ;MACvBC,YAAY,EAAE/C,UAAU,CAACoE,cAAc;MACvCnB,cAAc,EAAEjD,UAAU,CAACqE,gBAAgB;MAC3ClB,IAAI,EAAE,CAAC;MACPE,WAAW,EAAE,IAAI;MACjBC,UAAU,EAAE;IACd,CAAC,CAAC;IAEF,IAAMgB,cAAc,GAAG,IAAI3E,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;IAClD,IAAM4E,MAAM,GAAG,IAAI7E,IAAI,CAAC4E,cAAc,EAAEH,UAAU,CAAC;IACnDzC,KAAK,CAACuC,GAAG,CAACM,MAAM,CAAC;IAEjBlD,KAAA,CAAK4C,GAAG,CAACvC,KAAK,CAAC;IAAA,OAAAL,KAAA;EACjB;EAACmD,YAAA,CAAAzD,QAAA;IAAA0D,GAAA;IAAAC,KAAA,EAED,SAAA3C,YAAoBX,MAAmB,EAAE;MAAA,IAAAuD,MAAA;MACvCC,MAAM,CAACC,MAAM,CAAC,IAAI,CAACzD,MAAM,EAAEA,MAAM,CAAC;MAElCwD,MAAM,CAACE,IAAI,CAAC1D,MAAM,CAAC,CAAC2D,OAAO,CAAC,UAACN,GAAW,EAAK;QAC3CE,MAAI,CAAC7B,QAAQ,CAAC2B,GAAG,CAAC,GAAG;UAAEC,KAAK,EAAEtD,MAAM,CAACqD,GAAG;QAAE,CAAC;MAC7C,CAAC,CAAC;IACJ;EAAC;IAAAA,GAAA;IAAAC,KAAA,EAED,SAAAM,QAAexE,IAAY,EAAE;MAC3B,IAAI,CAACuB,WAAW,CAAC;QAAEvB,IAAI,EAAJA;MAAK,CAAC,CAAC;IAC5B;EAAC;IAAAiE,GAAA;IAAAC,KAAA,EAED,SAAAO,SAAgBC,KAAa,EAAE;MAC7B,IAAI,CAACnD,WAAW,CAAC;QAAEpB,SAAS,EAAEuE;MAAM,CAAC,CAAC;IACxC;EAAC;IAAAT,GAAA;IAAAC,KAAA,EAED,SAAAS,QAAeC,KAAa,EAAE;MAC5B,IAAI,CAACrD,WAAW,CAAC;QAAErB,aAAa,EAAE0E;MAAM,CAAC,CAAC;IAC5C;EAAC;IAAAX,GAAA;IAAAC,KAAA,EAED,SAAAW,QAAeD,KAAa,EAAE;MAC5B,IAAI,CAACrD,WAAW,CAAC;QAAEtB,aAAa,EAAE2E;MAAM,CAAC,CAAC;IAC5C;EAAC;IAAAX,GAAA;IAAAC,KAAA,EAED,SAAAY,UAAiBC,GAAgB,EAAE;MAAA,IAAAC,MAAA;MACjC,IAAQhF,IAAI,GAA8C+E,GAAG,CAArD/E,IAAI;QAAEC,aAAa,GAA+B8E,GAAG,CAA/C9E,aAAa;QAAEC,aAAa,GAAgB6E,GAAG,CAAhC7E,aAAa;QAAEC,SAAS,GAAK4E,GAAG,CAAjB5E,SAAS;MACrDiE,MAAM,CAACE,IAAI,CAACS,GAAG,CAAC,CAACR,OAAO,CAAC,UAACN,GAAW,EAAK;QACxC,QAAQA,GAAG;UACT,KAAK,MAAM;YACTe,MAAI,CAACR,OAAO,CAACxE,IAAK,CAAC;YACnB;UACF,KAAK,eAAe;YAClBgF,MAAI,CAACP,QAAQ,CAACtE,SAAU,CAAC;YACzB;UACF,KAAK,eAAe;YAClB6E,MAAI,CAACL,OAAO,CAACzE,aAAc,CAAC;YAC5B;UACF,KAAK,WAAW;YACd8E,MAAI,CAACH,OAAO,CAAC5E,aAAc,CAAC;YAC5B;QACJ;MACF,CAAC,CAAC;IACJ;EAAC;IAAAgE,GAAA;IAAAC,KAAA,EAED,SAAAe,OAAA,EAAgB;MACd,IAAAC,aAAA,GAAmB3F,GAAG,CAAC4F,QAAQ,CAAC,CAAC;QAAzBC,MAAM,GAAAF,aAAA,CAANE,MAAM;MACd,IAAAC,cAAA,GAA6B,IAAI,CAAC/C,QAAQ;QAAlCb,KAAK,GAAA4D,cAAA,CAAL5D,KAAK;QAAErB,SAAS,GAAAiF,cAAA,CAATjF,SAAS;MACxBqB,KAAK,CAACyC,KAAK,IAAI,GAAG;MAClB9D,SAAS,CAAC8D,KAAK,GAAG,CAACkB,MAAM,CAACpC,QAAQ,CAACrB,CAAC,EAAEyD,MAAM,CAACpC,QAAQ,CAACpB,CAAC,EAAEwD,MAAM,CAACpC,QAAQ,CAACnB,CAAC,CAAC;IAC7E;EAAC;IAAAoC,GAAA;IAAAC,KAAA,EAED,SAAAoB,QAAA,EAAS;MACP,IAAI,CAACC,MAAM,CAAC,CAAC;MACb,IAAI,CAACC,gBAAgB,CAAC,CAAC;IACzB;EAAC;EAAA,OAAAjF,QAAA;AAAA,EArJoBrB,IAAI;AAwJ3B,eAAeqB,QAAQ"}
|
|
1
|
+
{"version":3,"names":["Group","Mesh","PlaneGeometry","RepeatWrapping","ShaderMaterial","TextureLoader","use","RainShader","Rain_Panel","Snow_panle","textureLoader","_defaultOption","texture1","load","texture2rain","size","snowT1density","rainT1density","snowSpeed","cameraPos","rainSpeed","rainAngle","RainMesh","_Mesh","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","group","width","height","wrapS","wrapT","setUniforms","_objectSpread","iTime","createPlane","x","y","z","rotationX","rotationY","rotationZ","suiji","Math","random","geometry","material","uniforms","vertexShader","vertexShaderFar","fragmentShader","fragmentShaderFar","side","blending","transparent","depthWrite","depthTest","plane","renderOrder","position","set","rotation","createNearPlane","vertexShaderNear","fragmentShaderNear","count","distance","j","add","PI","material2d","vertexShader2d","fragmentShader2d","rain2dGeometry","rain2d","_createClass","key","value","_this2","Object","assign","keys","forEach","setSize","setSpeed","speed","setRain","scale","setSnow","setEffect","ops","_this3","update","_use$useScene","useScene","camera","_this$uniforms","_delete","remove","removeFromParent"],"sources":["../../../../../src/core/WeatherSystem/objects/rain/plane.ts"],"sourcesContent":["import { Group, Mesh, PlaneGeometry, RepeatWrapping, ShaderMaterial, TextureLoader, use } from '@anov/3d-core'\nimport RainShader from '../../shaders/rain'\nimport type { IRainOption } from '../../utils/constant'\nimport { Rain_Panel, Snow_panle } from '../../utils/constant'\n\nconst textureLoader = new TextureLoader()\n\nconst _defaultOption: IRainOption = {\n texture1: textureLoader.load(Snow_panle),\n texture2rain: textureLoader.load(Rain_Panel),\n size: 5.0,\n snowT1density: 0.1,\n rainT1density: 0.1,\n snowSpeed: 1.0,\n cameraPos: [0, 500.0, 0],\n rainSpeed: 3.0,\n rainAngle: 0.0,\n}\n\nclass RainMesh extends Mesh {\n option: IRainOption = _defaultOption\n uniforms: any = {}\n loaded!: Promise<Boolean>\n\n constructor(option: { width: number; height: number; segment: number }) {\n super()\n\n const group = new Group()\n const { width, height } = option\n\n if (this.option.texture1)\n this.option.texture1.wrapS = this.option.texture1.wrapT = RepeatWrapping\n if (this.option.texture2rain)\n this.option.texture2rain.wrapS = this.option.texture2rain.wrapT = RepeatWrapping\n this.setUniforms({\n ...this.option,\n iTime: 0,\n })\n\n const createPlane = (x: number, y: number, z: number, rotationX: number, rotationY: number, rotationZ: number) => {\n const suiji = Math.random() * (width / 3)\n const geometry = new PlaneGeometry(width + suiji, height + suiji)\n const material = new ShaderMaterial({\n uniforms: this.uniforms,\n vertexShader: RainShader.vertexShaderFar,\n fragmentShader: RainShader.fragmentShaderFar,\n side: 2,\n blending: 2,\n transparent: true,\n depthWrite: false,\n depthTest: true,\n })\n\n const plane = new Mesh(geometry, material)\n plane.renderOrder = 10\n plane.position.set(x, y, z)\n plane.rotation.set(rotationX, rotationY, rotationZ)\n return plane\n }\n\n const createNearPlane = (x: number, y: number, z: number, rotationX: number, rotationY: number, rotationZ: number) => {\n const suiji = Math.random() * (width / 1)\n const geometry = new PlaneGeometry(width / 2 + suiji, height / 2 + suiji)\n const material = new ShaderMaterial({\n uniforms: this.uniforms,\n vertexShader: RainShader.vertexShaderNear,\n fragmentShader: RainShader.fragmentShaderNear,\n side: 2,\n blending: 2,\n transparent: true,\n depthWrite: true,\n depthTest: true,\n })\n\n const plane = new Mesh(geometry, material)\n plane.renderOrder = 10\n plane.position.set(x, y, z)\n plane.rotation.set(rotationX, rotationY, rotationZ)\n return plane\n }\n\n const count = 6\n const distance = 150\n for (let j = -count; j <= count; j++) {\n const plane = createPlane(0, 0, j * distance, 0, 0, 0)\n group.add(plane)\n }\n for (let j = -count; j <= count; j++) {\n const plane = createPlane(j * distance, 0, 0, 0, Math.PI / 2, 0)\n group.add(plane)\n }\n\n for (let j = -15; j <= 15; j++) {\n const plane = createNearPlane(0, 0, j * j * j * 1, 0, 0, 0)\n group.add(plane)\n }\n for (let j = -15; j <= 15; j++) {\n const plane = createNearPlane(j * j * j * 1, 0, 0, 0, Math.PI / 2, 0)\n group.add(plane)\n }\n\n const material2d = new ShaderMaterial({\n uniforms: this.uniforms,\n vertexShader: RainShader.vertexShader2d,\n fragmentShader: RainShader.fragmentShader2d,\n side: 2,\n transparent: true,\n depthWrite: false,\n })\n\n const rain2dGeometry = new PlaneGeometry(100, 100)\n const rain2d = new Mesh(rain2dGeometry, material2d)\n rain2d.renderOrder = 10\n group.add(rain2d)\n\n this.add(group)\n }\n\n private setUniforms(option: IRainOption) {\n Object.assign(this.option, option)\n\n Object.keys(option).forEach((key: string) => {\n this.uniforms[key] = { value: option[key] }\n })\n }\n\n public setSize(size: number) {\n this.setUniforms({ size })\n }\n\n public setSpeed(speed: number) {\n this.setUniforms({ snowSpeed: speed })\n }\n\n public setRain(scale: number) {\n this.setUniforms({ rainT1density: scale })\n }\n\n public setSnow(scale: number) {\n this.setUniforms({ snowT1density: scale })\n }\n\n public setEffect(ops: IRainOption) {\n const { size, snowT1density, rainT1density, snowSpeed } = ops\n Object.keys(ops).forEach((key: string) => {\n switch (key) {\n case 'size':\n this.setSize(size!)\n break\n case 'snowT1density':\n this.setSpeed(snowSpeed!)\n break\n case 'rainT1density':\n this.setRain(rainT1density!)\n break\n case 'snowSpeed':\n this.setSnow(snowT1density!)\n break\n }\n })\n }\n\n public update() {\n const { camera } = use.useScene()\n const { iTime, cameraPos } = this.uniforms\n iTime.value += 0.1\n cameraPos.value = [camera.position.x, camera.position.y, camera.position.z]\n }\n\n delete() {\n this.remove()\n this.removeFromParent()\n }\n}\n\nexport default RainMesh"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ var SkyShader = {
|
|
|
8
8
|
}
|
|
9
9
|
},
|
|
10
10
|
vertexShader: "varying highp vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }",
|
|
11
|
-
fragmentShader: "\n uniform float skyTime;\n uniform float skyOpacity;\n\n varying vec2 vUv;\n \n vec4 midnightColor = vec4(0.
|
|
11
|
+
fragmentShader: "\n uniform float skyTime;\n uniform float skyOpacity;\n\n varying vec2 vUv;\n \n vec4 midnightColor = vec4(0.0602, 0.0919, 0.2500, 0.6); // \u5348\u591C0.05, 0.05, 0.15\n vec4 dawnColor = vec4(0.4005, 0.5432, 0.8510, 0.8); // \u51CC\u66680.3, 0.4, 0.6\n vec4 morningColor = vec4(0.4416, 0.7050, 1.0000, 0.7); // \u65E9\u66680.5, 0.7, 1.0\n vec4 noonColor = vec4(0.5842, 0.7033, 1.0000, 0.6); // \u4E2D\u53480.3, 0.6, 1.0\n vec4 afternoonColor = vec4(0.3844, 0.6402, 1.0000, 0.6); // \u4E0B\u5348\n vec4 duskColor = vec4(0.7050, 0.4721, 0.5914, 0.6); // \u9EC4\u660F\n vec4 eveningColor = vec4(0.5983, 0.3761, 0.4871, 0.7); // \u508D\u665A\n vec4 nightColor = vec4(0.0947, 0.0947, 0.1500, 0.6); // \u591C\u665A\n \n vec4 getSkyColor(float time) {\n vec4 timeColor;\n if (time < 3.0) {\n // \u5348\u591C\u5230\u51CC\u6668\n timeColor = mix(midnightColor, dawnColor, time / 3.0);\n } else if (time < 6.0) {\n // \u51CC\u6668\u5230\u65E9\u6668\n timeColor = mix(dawnColor, morningColor, (time - 3.0) / 3.0);\n } else if (time < 9.0) {\n // \u65E9\u6668\u5230\u4E2D\u5348\n timeColor = mix(morningColor, noonColor, (time - 6.0) / 3.0);\n } else if (time < 15.0) {\n // \u4E2D\u5348\u5230\u4E0B\u5348\n timeColor = mix(noonColor, afternoonColor, (time - 9.0) / 6.0);\n } else if (time < 18.0) {\n // \u4E0B\u5348\u5230\u9EC4\u660F\n timeColor = mix(afternoonColor, duskColor, (time - 15.0) / 3.0);\n } else if (time < 19.5) {\n // \u9EC4\u660F\u5230\u508D\u665A\n timeColor = mix(duskColor, eveningColor, (time - 18.0) / 1.5);\n } else if (time < 21.0) {\n // \u508D\u665A\u5230\u591C\u665A\n timeColor = mix(eveningColor, nightColor, (time - 19.5) / 1.5);\n } else {\n // \u591C\u665A\u5230\u5348\u591C\n timeColor = mix(nightColor, midnightColor, (time - 21.0) / 3.0);\n }\n return timeColor;\n }\n\n float distanceTo(vec2 src, vec2 dst) {\n float dx = src.x - dst.x;\n float dy = src.y - dst.y;\n float dv = dx * dx + dy * dy;\n return sqrt(dv);\n }\n void mainImage(out vec4 fragColor, in vec2 fragCoord) {\n // vec4 skyColor1 = vec4(.086, .298, .458, 1.);///2d5a7c,.176,.352,.486,,164c75\n // vec4 skyColor2 = vec4(.711, .849, .903, 1.);///9cbfcd,.611,.749,.803\n vec4 skyColor1 = vec4(0., 0., 0., 1.);///2d5a7c,.176,.352,.486,,164c75\n vec4 skyColor2 = vec4(.95, .95, .95, 1.);///9cbfcd,.611,.749,.803\n \n float sphere1 = pow(distanceTo(vec2(0.5, 0.5), vUv), 1.02) * 1.8;\n \n fragColor = skyColor1;\n vec4 timeColor = getSkyColor(skyTime);\n // vec4 color = mix(skyColor1, skyColor2, sphere1)*timeColor;\n float sphere1_clamp = clamp(sphere1, 0.0, 1.0);\n vec3 color = vec3(sphere1)*timeColor.rgb;\n\n // fragColor=vec4(color,timeColor.a) ;\n fragColor=vec4(color,0.97) ;\n \n }\n \n void main() {\n vec2 fragCoord = gl_FragCoord.xy;\n mainImage(gl_FragColor, fragCoord);\n }"
|
|
12
12
|
};
|
|
13
13
|
export default SkyShader;
|
|
14
14
|
//# sourceMappingURL=sky.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SkyShader","uniforms","skyTime","value","skyOpacity","vertexShader","fragmentShader"],"sources":["../../../../src/core/WeatherSystem/shaders/sky.ts"],"sourcesContent":["const SkyShader = {\n uniforms: {\n skyTime: { value: 7.0 },\n skyOpacity: { value: 1.0 },\n },\n vertexShader: `varying highp vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }`,\n fragmentShader: `\n uniform float skyTime;\n uniform float skyOpacity;\n\n varying vec2 vUv;\n \n vec4 midnightColor = vec4(0.
|
|
1
|
+
{"version":3,"names":["SkyShader","uniforms","skyTime","value","skyOpacity","vertexShader","fragmentShader"],"sources":["../../../../src/core/WeatherSystem/shaders/sky.ts"],"sourcesContent":["const SkyShader = {\n uniforms: {\n skyTime: { value: 7.0 },\n skyOpacity: { value: 1.0 },\n },\n vertexShader: `varying highp vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }`,\n fragmentShader: `\n uniform float skyTime;\n uniform float skyOpacity;\n\n varying vec2 vUv;\n \n vec4 midnightColor = vec4(0.0602, 0.0919, 0.2500, 0.6); // 午夜0.05, 0.05, 0.15\n vec4 dawnColor = vec4(0.4005, 0.5432, 0.8510, 0.8); // 凌晨0.3, 0.4, 0.6\n vec4 morningColor = vec4(0.4416, 0.7050, 1.0000, 0.7); // 早晨0.5, 0.7, 1.0\n vec4 noonColor = vec4(0.5842, 0.7033, 1.0000, 0.6); // 中午0.3, 0.6, 1.0\n vec4 afternoonColor = vec4(0.3844, 0.6402, 1.0000, 0.6); // 下午\n vec4 duskColor = vec4(0.7050, 0.4721, 0.5914, 0.6); // 黄昏\n vec4 eveningColor = vec4(0.5983, 0.3761, 0.4871, 0.7); // 傍晚\n vec4 nightColor = vec4(0.0947, 0.0947, 0.1500, 0.6); // 夜晚\n \n vec4 getSkyColor(float time) {\n vec4 timeColor;\n if (time < 3.0) {\n // 午夜到凌晨\n timeColor = mix(midnightColor, dawnColor, time / 3.0);\n } else if (time < 6.0) {\n // 凌晨到早晨\n timeColor = mix(dawnColor, morningColor, (time - 3.0) / 3.0);\n } else if (time < 9.0) {\n // 早晨到中午\n timeColor = mix(morningColor, noonColor, (time - 6.0) / 3.0);\n } else if (time < 15.0) {\n // 中午到下午\n timeColor = mix(noonColor, afternoonColor, (time - 9.0) / 6.0);\n } else if (time < 18.0) {\n // 下午到黄昏\n timeColor = mix(afternoonColor, duskColor, (time - 15.0) / 3.0);\n } else if (time < 19.5) {\n // 黄昏到傍晚\n timeColor = mix(duskColor, eveningColor, (time - 18.0) / 1.5);\n } else if (time < 21.0) {\n // 傍晚到夜晚\n timeColor = mix(eveningColor, nightColor, (time - 19.5) / 1.5);\n } else {\n // 夜晚到午夜\n timeColor = mix(nightColor, midnightColor, (time - 21.0) / 3.0);\n }\n return timeColor;\n }\n\n float distanceTo(vec2 src, vec2 dst) {\n float dx = src.x - dst.x;\n float dy = src.y - dst.y;\n float dv = dx * dx + dy * dy;\n return sqrt(dv);\n }\n void mainImage(out vec4 fragColor, in vec2 fragCoord) {\n // vec4 skyColor1 = vec4(.086, .298, .458, 1.);///2d5a7c,.176,.352,.486,,164c75\n // vec4 skyColor2 = vec4(.711, .849, .903, 1.);///9cbfcd,.611,.749,.803\n vec4 skyColor1 = vec4(0., 0., 0., 1.);///2d5a7c,.176,.352,.486,,164c75\n vec4 skyColor2 = vec4(.95, .95, .95, 1.);///9cbfcd,.611,.749,.803\n \n float sphere1 = pow(distanceTo(vec2(0.5, 0.5), vUv), 1.02) * 1.8;\n \n fragColor = skyColor1;\n vec4 timeColor = getSkyColor(skyTime);\n // vec4 color = mix(skyColor1, skyColor2, sphere1)*timeColor;\n float sphere1_clamp = clamp(sphere1, 0.0, 1.0);\n vec3 color = vec3(sphere1)*timeColor.rgb;\n\n // fragColor=vec4(color,timeColor.a) ;\n fragColor=vec4(color,0.97) ;\n \n }\n \n void main() {\n vec2 fragCoord = gl_FragCoord.xy;\n mainImage(gl_FragColor, fragCoord);\n }`,\n}\n\nexport default SkyShader"],"mappings":"AAAA,IAAMA,SAAS,GAAG;EAChBC,QAAQ,EAAE;IACRC,OAAO,EAAE;MAAEC,KAAK,EAAE;IAAI,CAAC;IACvBC,UAAU,EAAE;MAAED,KAAK,EAAE;IAAI;EAC3B,CAAC;EACDE,YAAY,iJAIV;EACFC,cAAc;AA0EhB,CAAC;AAED,eAAeN,SAAS"}
|
|
@@ -14,7 +14,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
|
|
|
14
14
|
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; }
|
|
15
15
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
16
16
|
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); }
|
|
17
|
-
import {
|
|
17
|
+
import { DirectionalLight, MathUtils, Object3D, Vector3, lib } from '@anov/3d-core';
|
|
18
18
|
import { getSunPosition } from "../utils/math";
|
|
19
19
|
var Sky = lib.Sky;
|
|
20
20
|
var effectController = {
|
|
@@ -42,7 +42,7 @@ export var SkySystem = /*#__PURE__*/function (_Object3D) {
|
|
|
42
42
|
_defineProperty(_assertThisInitialized(_this), "_effectController", effectController);
|
|
43
43
|
_defineProperty(_assertThisInitialized(_this), "_latitude", 40);
|
|
44
44
|
_defineProperty(_assertThisInitialized(_this), "_longitude", 116);
|
|
45
|
-
_defineProperty(_assertThisInitialized(_this), "_sunHeight",
|
|
45
|
+
_defineProperty(_assertThisInitialized(_this), "_sunHeight", 500);
|
|
46
46
|
_defineProperty(_assertThisInitialized(_this), "_sun", void 0);
|
|
47
47
|
_this._effectController = _objectSpread(_objectSpread({}, effectController), options !== null && options !== void 0 ? options : {});
|
|
48
48
|
_this.createSky();
|
|
@@ -97,25 +97,20 @@ export var SkySystem = /*#__PURE__*/function (_Object3D) {
|
|
|
97
97
|
}, {
|
|
98
98
|
key: "createSun",
|
|
99
99
|
value: function createSun() {
|
|
100
|
-
var sunLight = new DirectionalLight('white',
|
|
100
|
+
var sunLight = new DirectionalLight('white', 5);
|
|
101
101
|
sunLight.castShadow = true;
|
|
102
102
|
this._sun = sunLight;
|
|
103
|
-
var light = new AmbientLight('white', 0.01);
|
|
104
103
|
|
|
105
|
-
//
|
|
104
|
+
// 添加帮助
|
|
105
|
+
// const helper = new DirectionalLightHelper(sunLight, 200)
|
|
106
|
+
// this.add(helper)
|
|
106
107
|
|
|
107
108
|
return sunLight;
|
|
108
109
|
}
|
|
109
110
|
}, {
|
|
110
111
|
key: "combination",
|
|
111
112
|
value: function combination() {
|
|
112
|
-
|
|
113
|
-
altitude = _getSunPosition.altitude,
|
|
114
|
-
azimuth = _getSunPosition.azimuth;
|
|
115
|
-
var x = this._sunHeight * Math.cos(altitude) * Math.cos(azimuth);
|
|
116
|
-
var z = this._sunHeight * Math.cos(altitude) * Math.sin(azimuth);
|
|
117
|
-
var y = this._sunHeight * Math.sin(altitude);
|
|
118
|
-
this._sun.position.copy(new Vector3(x, y, z));
|
|
113
|
+
this.setTime(new Date());
|
|
119
114
|
this.add(this._sky);
|
|
120
115
|
this.add(this._sun);
|
|
121
116
|
}
|
|
@@ -138,15 +133,27 @@ export var SkySystem = /*#__PURE__*/function (_Object3D) {
|
|
|
138
133
|
}, {
|
|
139
134
|
key: "setTime",
|
|
140
135
|
value: function setTime(currentDate) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
136
|
+
// 根据时间、经纬度获取太阳的高度角(altitude)、方位角(azimuth)
|
|
137
|
+
var _getSunPosition = getSunPosition(currentDate, this._latitude, this._longitude),
|
|
138
|
+
altitude = _getSunPosition.altitude,
|
|
139
|
+
azimuth = _getSunPosition.azimuth;
|
|
144
140
|
var uniforms = this._sky.material.uniforms;
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
var
|
|
148
|
-
var
|
|
149
|
-
|
|
141
|
+
|
|
142
|
+
// 转换为 Three.js setFromSphericalCoords 参数
|
|
143
|
+
var phi = Math.PI / 2 - altitude; // SunCalc的高度角转换为Three.js的phi
|
|
144
|
+
var theta = azimuth + Math.PI; // SunCalc的方位角转换为Three.js的theta
|
|
145
|
+
var sunPosition = new Vector3().setFromSphericalCoords(1, phi, theta);
|
|
146
|
+
uniforms.sunPosition.value.copy(sunPosition);
|
|
147
|
+
|
|
148
|
+
// 缩放向量使光源足够远但不超出场景有效范围
|
|
149
|
+
var scaledPosition = sunPosition.clone().multiplyScalar(this._sunHeight);
|
|
150
|
+
this._sun.position.copy(scaledPosition);
|
|
151
|
+
|
|
152
|
+
// uniforms.sunPosition.value.copy(new Vector3().setFromSphericalCoords(this._sunHeight, MathUtils.degToRad(90 - MathUtils.radToDeg(altitude)), azimuth))
|
|
153
|
+
// const x = this._sunHeight * (Math.cos(altitude)) * (Math.cos(azimuth))
|
|
154
|
+
// const z = this._sunHeight * (Math.cos(altitude)) * (Math.sin(azimuth))
|
|
155
|
+
// const y = this._sunHeight * (Math.sin(altitude))
|
|
156
|
+
// this._sun.position.copy(new Vector3(x, y, z))
|
|
150
157
|
}
|
|
151
158
|
}]);
|
|
152
159
|
return SkySystem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["DirectionalLight","MathUtils","Object3D","Vector3","lib","getSunPosition","Sky","effectController","turbidity","rayleigh","mieCoefficient","mieDirectionalG","elevation","azimuth","exposure","SkySystem","_Object3D","_inherits","_super","_createSuper","options","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","_effectController","_objectSpread","createSky","createSun","combination","_createClass","key","get","size","set","_size","_sky","scale","setScalar","_sunHeight","height","value","position","uniforms","material","phi","degToRad","theta","setFromSphericalCoords","sunPosition","copy","sunLight","castShadow","_sun","setTime","Date","add","setSunPositin","currentDate","_getSunPosition","_latitude","_longitude","altitude","Math","PI","scaledPosition","clone","multiplyScalar"],"sources":["../../../../src/core/WeatherSystem/sky/index.ts"],"sourcesContent":["import type { Light } from '@anov/3d-core'\nimport { AmbientLight, DirectionalLight, DirectionalLightHelper, MathUtils, Object3D, Vector3, lib } from '@anov/3d-core'\nimport { getSunPosition } from '../utils/math'\n\nconst { Sky } = lib\n\ntype SkySystemOption = {\n scalarCoefficient?: number\n turbidity?: number\n rayleigh?: number\n mieCoefficient?: number\n mieDirectionalG?: number\n elevation?: number\n azimuth?: number\n exposure?: number\n}\n\nconst effectController: SkySystemOption = {\n turbidity: 10,\n rayleigh: 3,\n mieCoefficient: 0.005,\n mieDirectionalG: 0.7,\n elevation: 2,\n azimuth: 180,\n exposure: 0.1,\n}\n\n/**\n * 天空——时间系统\n */\nexport class SkySystem extends Object3D {\n private _size = 450000\n private _sky: lib.Sky\n private _effectController: SkySystemOption = effectController\n private _latitude = 40\n private _longitude = 116\n private _sunHeight = 500\n private _sun: Light\n\n public get size() {\n return this.size\n }\n\n public set size(size: number) {\n this._size = size\n this._sky.scale.setScalar(this._size)\n }\n\n public get sunHeight() {\n return this._sunHeight\n }\n\n public set sunHeight(height: number) {\n this._sunHeight = height\n }\n\n constructor(options?: SkySystemOption) {\n super()\n\n this._effectController = {\n ...effectController,\n ...options ?? {},\n }\n\n this.createSky()\n this.createSun()\n this.combination()\n }\n\n /**\n * create sky\n * @returns\n */\n private createSky() {\n this._sky = new Sky()\n this._sky.scale.setScalar(this._size)\n\n const position = new Vector3()\n const uniforms = (this._sky.material as any).uniforms\n const phi = MathUtils.degToRad(90 - this._effectController.elevation)\n const theta = MathUtils.degToRad(this._effectController.azimuth)\n\n uniforms.turbidity.value = this._effectController.turbidity\n uniforms.rayleigh.value = this._effectController.rayleigh\n uniforms.mieCoefficient.value = this._effectController.mieCoefficient\n uniforms.mieDirectionalG.value = this._effectController.mieDirectionalG\n\n position.setFromSphericalCoords(1, phi, theta)\n uniforms.sunPosition.value.copy(position)\n\n return this._sky\n }\n\n /**\n * create sun\n * @returns\n */\n private createSun() {\n const sunLight = new DirectionalLight('white', 5)\n sunLight.castShadow = true\n this._sun = sunLight\n\n // 添加帮助\n // const helper = new DirectionalLightHelper(sunLight, 200)\n // this.add(helper)\n\n return sunLight\n }\n\n private combination() {\n this.setTime(new Date())\n this.add(this._sky)\n this.add(this._sun)\n }\n\n /**\n * 设置天空中的太阳位置\n * @param position\n */\n setSunPositin(position: Vector3) {\n const uniforms = (this._sky.material as any).uniforms\n uniforms.sunPosition.value.copy(position)\n }\n\n /**\n * 设置时间\n * @param currentDate\n */\n setTime(currentDate?: Date) {\n // 根据时间、经纬度获取太阳的高度角(altitude)、方位角(azimuth)\n const { altitude, azimuth } = getSunPosition(currentDate, this._latitude, this._longitude)\n const uniforms = (this._sky.material as any).uniforms\n\n // 转换为 Three.js setFromSphericalCoords 参数\n const phi = Math.PI / 2 - altitude // SunCalc的高度角转换为Three.js的phi\n const theta = azimuth + Math.PI // SunCalc的方位角转换为Three.js的theta\n const sunPosition = new Vector3().setFromSphericalCoords(1, phi, theta)\n uniforms.sunPosition.value.copy(sunPosition)\n\n // 缩放向量使光源足够远但不超出场景有效范围\n const scaledPosition = sunPosition.clone().multiplyScalar(this._sunHeight)\n this._sun.position.copy(scaledPosition)\n\n // uniforms.sunPosition.value.copy(new Vector3().setFromSphericalCoords(this._sunHeight, MathUtils.degToRad(90 - MathUtils.radToDeg(altitude)), azimuth))\n // const x = this._sunHeight * (Math.cos(altitude)) * (Math.cos(azimuth))\n // const z = this._sunHeight * (Math.cos(altitude)) * (Math.sin(azimuth))\n // const y = this._sunHeight * (Math.sin(altitude))\n // this._sun.position.copy(new Vector3(x, y, z))\n }\n}"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getLastValue","optsValue","value"],"sources":["../../src/utils/index.ts"],"sourcesContent":["export const getLastValue = <T>(optsValue: T | undefined | null, value: T): T => {\n return optsValue ?? value\n}"],"mappings":"AAAA,OAAO,IAAMA,YAAY,GAAG,SAAfA,YAAYA,CAAOC,SAA+B,EAAEC,KAAQ,EAAQ;EAC/E,OAAOD,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIC,KAAK;AAC3B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anov/3d-ability",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.117",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "MIT",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"package.json"
|
|
17
17
|
],
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"@anov/3d-core": "^0.0.
|
|
19
|
+
"@anov/3d-core": "^0.0.65"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@rengr/heatmap.js": "^2.0.10",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@types/lodash": "^4.14.196",
|
|
37
37
|
"@types/suncalc": "^1.9.2",
|
|
38
38
|
"@types/supercluster": "^7.1.3",
|
|
39
|
-
"@anov/3d-core": "^0.0.
|
|
39
|
+
"@anov/3d-core": "^0.0.65"
|
|
40
40
|
},
|
|
41
41
|
"scripts": {
|
|
42
42
|
"build": "father build",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["ObjectLayer","hexToRGBA","parseRGBA","FenceBase","_ObjectLayer","_inherits","_super","_createSuper","option","_areaInstance","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","Set","_option","_initParams","_createClass","key","get","_mesh","_uri","set","value","_this2","_listeners","forEach","cb","_height","newValue","_this3","_color","childrens","children","item","index","uniforms","material","color1","_parseRGBA","r","g","b","colorTemp","Number","toFixed","_alpha","alpha","_corner","_close","corner","close","height","color","_points","points","uri","_delete","remove","removeFromParent","dispose","delete","clear","addReloadListener","callback","add"],"sources":["../../../../src/business/Area/Fence/FenceBase.ts"],"sourcesContent":["import type { Group, Mesh, Object3D, ShaderMaterial, Vector3 } from '@anov/3d-core'\nimport _ from 'lodash'\nimport { Color, use } from '@anov/3d-core'\nimport ObjectLayer from '../../Base/ObjectLayer'\nimport type { FenceOption } from '../type'\nimport { hexToRGBA, parseRGBA } from '../tool'\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 public _uri: string\n public _option: FenceOption\n public _listeners = new Set()\n\n private _areaInstance: Object3D\n constructor(option: FenceOption, _areaInstance: Object3D) {\n super()\n this._option = option\n // 属性赋值\n this._initParams(option)\n this._areaInstance = _areaInstance\n // this.setValues(_.mergeWith({}, defaultOption, option))\n }\n\n public get mesh() {\n return this._mesh\n }\n\n public get uri() {\n return this._uri\n }\n\n public set uri(value: string) {\n if (this._uri === value)\n return\n this._uri = value\n // eslint-disable-next-line max-statements-per-line\n this._listeners.forEach((cb: Function) => { cb.call(this._areaInstance) })\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 // eslint-disable-next-line max-statements-per-line\n this._listeners.forEach((cb: Function) => { cb.call(this._areaInstance) })\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 // 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 const { r, g, b } = parseRGBA(hexToRGBA(newValue))\n const colorTemp = { r: Number((Number(r) / 255).toFixed(4)), g: Number((Number(g) / 255).toFixed(4)), b: Number((Number(b) / 255).toFixed(4)) }\n uniforms.color1.value = colorTemp\n }\n\n // uniforms.color2.value = new Color(newValue)\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 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 _initParams(option: FenceOption) {\n this._alpha = option.alpha\n this._corner = option.corner\n this._close = option.close\n this._height = option.height\n this._color = option.color\n this._points = option.points as unknown as Vector3[]\n this._uri = option.uri\n }\n\n public delete() {\n this._mesh.remove()\n this._mesh.removeFromParent()\n }\n\n // 销毁\n public dispose() {\n this.delete()\n this._listeners.clear()\n }\n\n // 注册监听\n public addReloadListener(callback: Function) {\n this._listeners.add(callback)\n }\n}\n\nexport default FenceBase\n"],"mappings":";;;;;;;;;;;;;;AAGA,OAAOA,WAAW;AAElB,SAASC,SAAS,EAAEC,SAAS;AAAiB,IAExCC,SAAS,0BAAAC,YAAA;EAAAC,SAAA,CAAAF,SAAA,EAAAC,YAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,SAAA;EAab,SAAAA,UAAYK,MAAmB,EAAEC,aAAuB,EAAE;IAAA,IAAAC,KAAA;IAAAC,eAAA,OAAAR,SAAA;IACxDO,KAAA,GAAAJ,MAAA,CAAAM,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;IAAAG,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,iBAJW,IAAIK,GAAG,CAAC,CAAC;IAAAF,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAK3BA,KAAA,CAAKM,OAAO,GAAGR,MAAM;IACrB;IACAE,KAAA,CAAKO,WAAW,CAACT,MAAM,CAAC;IACxBE,KAAA,CAAKD,aAAa,GAAGA,aAAa;IAClC;IAAA,OAAAC,KAAA;EACF;EAACQ,YAAA,CAAAf,SAAA;IAAAgB,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAkB;MAChB,OAAO,IAAI,CAACC,KAAK;IACnB;EAAC;IAAAF,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAiB;MACf,OAAO,IAAI,CAACE,IAAI;IAClB,CAAC;IAAAC,GAAA,EAED,SAAAA,IAAeC,KAAa,EAAE;MAAA,IAAAC,MAAA;MAC5B,IAAI,IAAI,CAACH,IAAI,KAAKE,KAAK,EACrB;MACF,IAAI,CAACF,IAAI,GAAGE,KAAK;MACjB;MACA,IAAI,CAACE,UAAU,CAACC,OAAO,CAAC,UAACC,EAAY,EAAK;QAAEA,EAAE,CAAChB,IAAI,CAACa,MAAI,CAAChB,aAAa,CAAC;MAAC,CAAC,CAAC;IAC5E;;IAEA;EAAA;IAAAU,GAAA;IAAAC,GAAA,EACA,SAAAA,IAAA,EAAqB;MACnB,OAAO,IAAI,CAACS,OAAO;IACrB,CAAC;IAAAN,GAAA,EAED,SAAAA,IAAWO,QAAgB,EAAE;MAAA,IAAAC,MAAA;MAC3B,IAAI,IAAI,CAACF,OAAO,KAAKC,QAAQ,EAC3B;MAEF,IAAI,CAACD,OAAO,GAAGC,QAAQ;;MAEvB;MACA,IAAI,CAACJ,UAAU,CAACC,OAAO,CAAC,UAACC,EAAY,EAAK;QAAEA,EAAE,CAAChB,IAAI,CAACmB,MAAI,CAACtB,aAAa,CAAC;MAAC,CAAC,CAAC;MAC1E;MACA;MACA;MACA;MACA;MACA;MACA;MACA;IACF;;IAEA;EAAA;IAAAU,GAAA;IAAAC,GAAA,EACA,SAAAA,IAAA,EAAoB;MAClB,OAAO,IAAI,CAACY,MAAM;IACpB,CAAC;IAAAT,GAAA,EAED,SAAAA,IAAUO,QAAgB,EAAE;MAC1B,IAAI,IAAI,CAACE,MAAM,KAAKF,QAAQ,EAC1B;MAEF,IAAI,CAACE,MAAM,GAAGF,QAAQ;MACtB,IAAI,IAAI,CAACT,KAAK,EAAE;QACd,IAAMY,SAAS,GAAG,IAAI,CAACZ,KAAK,CAACa,QAAQ;QACrCD,SAAS,CAACN,OAAO,CAAC,UAACQ,IAAI,EAAEC,KAAK,EAAK;UACjC,IAAMC,QAAQ,GAAKF,IAAI,CAAUG,QAAQ,CAAoBD,QAAQ;UACrE,IAAIA,QAAQ,CAACE,MAAM,EAAE;YACnB,IAAAC,UAAA,GAAoBtC,SAAS,CAACD,SAAS,CAAC6B,QAAQ,CAAC,CAAC;cAA1CW,CAAC,GAAAD,UAAA,CAADC,CAAC;cAAEC,CAAC,GAAAF,UAAA,CAADE,CAAC;cAAEC,CAAC,GAAAH,UAAA,CAADG,CAAC;YACf,IAAMC,SAAS,GAAG;cAAEH,CAAC,EAAEI,MAAM,CAAC,CAACA,MAAM,CAACJ,CAAC,CAAC,GAAG,GAAG,EAAEK,OAAO,CAAC,CAAC,CAAC,CAAC;cAAEJ,CAAC,EAAEG,MAAM,CAAC,CAACA,MAAM,CAACH,CAAC,CAAC,GAAG,GAAG,EAAEI,OAAO,CAAC,CAAC,CAAC,CAAC;cAAEH,CAAC,EAAEE,MAAM,CAAC,CAACA,MAAM,CAACF,CAAC,CAAC,GAAG,GAAG,EAAEG,OAAO,CAAC,CAAC,CAAC;YAAE,CAAC;YAC/IT,QAAQ,CAACE,MAAM,CAACf,KAAK,GAAGoB,SAAS;UACnC;;UAEA;QACF,CAAC,CAAC;MACJ;IACF;;IAEA;EAAA;IAAAzB,GAAA;IAAAC,GAAA,EACA,SAAAA,IAAA,EAAoB;MAClB,OAAO,IAAI,CAAC2B,MAAM;IACpB,CAAC;IAAAxB,GAAA,EAED,SAAAA,IAAUO,QAAgB,EAAE;MAC1B,IAAI,IAAI,CAACiB,MAAM,KAAKjB,QAAQ,EAC1B;MAEF,IAAI,CAACiB,MAAM,GAAGjB,QAAQ;MACtB,IAAI,IAAI,CAACT,KAAK,EAAE;QACd,IAAMY,SAAS,GAAG,IAAI,CAACZ,KAAK,CAACa,QAAQ;QACrCD,SAAS,CAACN,OAAO,CAAC,UAACQ,IAAI,EAAEC,KAAK,EAAK;UACjC,IAAMC,QAAQ,GAAKF,IAAI,CAAUG,QAAQ,CAAoBD,QAAQ;UACrE,IAAIA,QAAQ,CAACW,KAAK,EAChBX,QAAQ,CAACW,KAAK,CAACxB,KAAK,GAAGM,QAAQ;QACnC,CAAC,CAAC;MACJ;IACF;EAAC;IAAAX,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAqB;MACnB,OAAO,IAAI,CAAC6B,OAAO;IACrB,CAAC;IAAA1B,GAAA,EAED,SAAAA,IAAWO,QAAgB,EAAE;MAC3B,IAAI,IAAI,CAACmB,OAAO,KAAKnB,QAAQ,EAC3B;MAEF,IAAI,CAACmB,OAAO,GAAGnB,QAAQ;IACzB;EAAC;IAAAX,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAqB;MACnB,OAAO,IAAI,CAAC8B,MAAM;IACpB,CAAC;IAAA3B,GAAA,EAED,SAAAA,IAAUO,QAAiB,EAAE;MAC3B,IAAI,IAAI,CAACoB,MAAM,KAAKpB,QAAQ,EAC1B;MAEF,IAAI,CAACoB,MAAM,GAAGpB,QAAQ;IACxB;EAAC;IAAAX,GAAA;IAAAK,KAAA,EAED,SAAAP,YAAYT,MAAmB,EAAE;MAC/B,IAAI,CAACuC,MAAM,GAAGvC,MAAM,CAACwC,KAAK;MAC1B,IAAI,CAACC,OAAO,GAAGzC,MAAM,CAAC2C,MAAM;MAC5B,IAAI,CAACD,MAAM,GAAG1C,MAAM,CAAC4C,KAAK;MAC1B,IAAI,CAACvB,OAAO,GAAGrB,MAAM,CAAC6C,MAAM;MAC5B,IAAI,CAACrB,MAAM,GAAGxB,MAAM,CAAC8C,KAAK;MAC1B,IAAI,CAACC,OAAO,GAAG/C,MAAM,CAACgD,MAA8B;MACpD,IAAI,CAAClC,IAAI,GAAGd,MAAM,CAACiD,GAAG;IACxB;EAAC;IAAAtC,GAAA;IAAAK,KAAA,EAED,SAAAkC,QAAA,EAAgB;MACd,IAAI,CAACrC,KAAK,CAACsC,MAAM,CAAC,CAAC;MACnB,IAAI,CAACtC,KAAK,CAACuC,gBAAgB,CAAC,CAAC;IAC/B;;IAEA;EAAA;IAAAzC,GAAA;IAAAK,KAAA,EACA,SAAAqC,QAAA,EAAiB;MACf,IAAI,CAACC,MAAM,CAAC,CAAC;MACb,IAAI,CAACpC,UAAU,CAACqC,KAAK,CAAC,CAAC;IACzB;;IAEA;EAAA;IAAA5C,GAAA;IAAAK,KAAA,EACA,SAAAwC,kBAAyBC,QAAkB,EAAE;MAC3C,IAAI,CAACvC,UAAU,CAACwC,GAAG,CAACD,QAAQ,CAAC;IAC/B;EAAC;EAAA,OAAA9D,SAAA;AAAA,EAxJqBH,WAAW;AA2JnC,eAAeG,SAAS"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["ShaderMaterial","use","createRoundLineWallMesh","hexToRGBA","parseRGBA","FenceBase","Fence_Base_01","_FenceBase","_inherits","_super","_createSuper","option","areaInstance","_this","_classCallCheck","call","create","_createClass","key","value","_mesh","createFenceMesh","_points","_corner","_close","_height","_color","_alpha","add","points","radius","arguments","length","undefined","close","height","color","alpha","material","createFenceMaterial","mesh","useframe","children","forEach","item","index","uniforms","iTime","_parseRGBA","r","g","b","colorTemp","Number","toFixed","color1","vertexShader","fragmentShader","transparent","side","depthTest","depthWrite"],"sources":["../../../../src/business/Area/Fence/fence_base_01.ts"],"sourcesContent":["import type { Mesh, Object3D, 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 { hexToRGBA, parseRGBA } from '../tool'\nimport FenceBase from './FenceBase'\n\nclass Fence_Base_01 extends FenceBase {\n constructor(option: FenceOption, areaInstance: Object3D) {\n super(option, areaInstance)\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\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.01\n })\n })\n return mesh\n }\n\n // 创建围栏材质\n createFenceMaterial(height: number, color: string, alpha: number): ShaderMaterial {\n const { r, g, b } = parseRGBA(hexToRGBA(color))\n const colorTemp = { r: Number((Number(r) / 255).toFixed(4)), g: Number((Number(g) / 255).toFixed(4)), b: Number((Number(b) / 255).toFixed(4)) }\n // 创建一个ShaderMaterial实例,用于自定义围栏的渲染效果\n const material = new ShaderMaterial({\n uniforms: {\n // 材质颜色\n color1: {\n value: colorTemp,\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 <begin_vertex>\n #include <project_vertex>\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;\n }\n `,\n // 片元着色器\n fragmentShader: `\n #include <common>\n #include <logdepthbuf_pars_fragment>\n varying vec3 vNormal; //\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n // uniform float button;\n uniform float _height;\n uniform float iTime;\n uniform float _alpha;\n uniform vec3 color1;\n \n void main() {\n vec3 color2=vec3(0.,0.4235,0.749);\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.))*_alpha *step(button,myWp.y);\n \n }\n `,\n // 设置材质为透明\n transparent: true,\n // 设置材质双面渲染,确保从正反两面都能正确显示\n side: 2,\n // 关闭深度测试\n depthTest: true,\n depthWrite: false,\n })\n\n return material\n }\n}\n\nexport default Fence_Base_01\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["ShaderMaterial","use","createRoundLineWallMesh","hexToRGBA","parseRGBA","FenceBase","Fence_Feeting_01","_FenceBase","_inherits","_super","_createSuper","option","areaInstance","_this","_classCallCheck","call","create","_createClass","key","value","_mesh","createFenceMesh","_points","_corner","_close","_height","_color","_alpha","add","points","radius","arguments","length","undefined","close","height","color","alpha","material","createFenceMaterial","mesh","useframe","children","forEach","item","index","uniforms","iTime","_parseRGBA","r","g","b","colorTemp","Number","toFixed","color1","vertexShader","fragmentShader","transparent","side","depthTest","depthWrite"],"sources":["../../../../src/business/Area/Fence/fence_feeting_01.ts"],"sourcesContent":["import type { Mesh, Object3D, Vector3 } from '@anov/3d-core'\nimport { Color, ShaderMaterial, use } from '@anov/3d-core'\n\nimport { createRoundLineWallMesh } from '../../Utils/round-curve'\nimport type { FenceOption } from '../type'\nimport { hexToRGBA, parseRGBA } from '../tool'\nimport FenceBase from './FenceBase'\n\nclass Fence_Feeting_01 extends FenceBase {\n constructor(option: FenceOption, areaInstance: Object3D) {\n super(option, areaInstance)\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 const { r, g, b } = parseRGBA(hexToRGBA(color))\n const colorTemp = { r: Number((Number(r) / 255).toFixed(4)), g: Number((Number(g) / 255).toFixed(4)), b: Number((Number(b) / 255).toFixed(4)) }\n // 创建一个ShaderMaterial实例,用于自定义围栏的渲染效果\n const material = new ShaderMaterial({\n uniforms: {\n // 材质颜色\n color1: {\n value: colorTemp,\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 \t#include <begin_vertex>\n #include <project_vertex>\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;\n }\n `,\n // 片元着色器\n fragmentShader: `\n #include <common>\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: true,\n depthWrite: false,\n })\n return material\n }\n}\n\nexport default Fence_Feeting_01\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["ShaderMaterial","use","createRoundLineWallMesh","hexToRGBA","parseRGBA","FenceBase","Fence_Roll_01","_FenceBase","_inherits","_super","_createSuper","option","areaInstance","_this","_classCallCheck","call","create","_createClass","key","value","_mesh","createFenceMesh","_points","_corner","_close","_height","_color","_alpha","add","points","radius","arguments","length","undefined","close","height","color","alpha","material","createFenceMaterial","mesh","useframe","children","forEach","item","index","uniforms","iTime","_parseRGBA","r","g","b","colorTemp","Number","toFixed","color1","vertexShader","fragmentShader","transparent","side","depthTest","depthWrite"],"sources":["../../../../src/business/Area/Fence/fence_roll_01.ts"],"sourcesContent":["import type { Mesh, Object3D, 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 { hexToRGBA, parseRGBA } from '../tool'\nimport FenceBase from './FenceBase'\n\nclass Fence_Roll_01 extends FenceBase {\n constructor(option: FenceOption, areaInstance: Object3D) {\n super(option, areaInstance)\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 const { r, g, b } = parseRGBA(hexToRGBA(color))\n const colorTemp = { r: Number((Number(r) / 255).toFixed(4)), g: Number((Number(g) / 255).toFixed(4)), b: Number((Number(b) / 255).toFixed(4)) }\n // 创建一个ShaderMaterial实例,用于自定义围栏的渲染效果\n const material = new ShaderMaterial({\n uniforms: {\n // 材质颜色\n color1: {\n value: colorTemp,\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 \t#include <begin_vertex>\n #include <project_vertex>\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;\n }\n `,\n // 片元着色器\n fragmentShader: `\n #include <common>\n #include <logdepthbuf_pars_fragment>\n varying vec3 vNormal; //\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n // uniform float button;\n uniform float _height;\n uniform float iTime;\n uniform float _alpha;\n uniform vec3 color1;\n \n void main() {\n #include <logdepthbuf_fragment>\n // float height = 50.;\n float button = 0.;\n vec3 myWp=(vWorldPosition-button)/_height; \n vec3 myWp_s=(vWorldPosition-button)*3./_height; \n float Grandient= pow(1.-clamp(myWp.y,0.,1.),1.5); \n float Grandient_s= pow(1.-fract(myWp_s.y-iTime),0.4); \n gl_FragColor = vec4(color1,Grandient*Grandient_s*(0.8+sin(iTime*5.0)*0.3) ) *_alpha *step(button,myWp.y);\n \n }\n `,\n // 设置材质为透明\n transparent: true,\n // 设置材质双面渲染,确保从正反两面都能正确显示\n side: 2,\n // 关闭深度测试\n depthTest: true,\n depthWrite: false,\n })\n return material\n }\n}\n\nexport default Fence_Roll_01\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Color","ExtrudeGeometry","Mesh","MeshBasicMaterial","Shape","Vector2","RoundLineGeometry","FillAreaBase","FillArea_Face_01","_FillAreaBase","_inherits","_super","_createSuper","option","areaInstance","_this","_classCallCheck","call","create","_createClass","key","value","_mesh","createMesh","_points","_color","_alpha","add","points","color","alpha","material","transparent","opacity","side","roundLineGeometry","radius","_corner","close","_close","curve","currentPoints","getPoints","points2D","map","p","x","z","shape","extrudeSettings","steps","bevelEnabled","depth","extrudePath","undefined","geometry","mesh","rotateX","Math","PI"],"sources":["../../../../src/business/Area/FillArea/fillArea_face_01.ts"],"sourcesContent":["import type { Object3D, Vector3 } from '@anov/3d-core'\nimport { Color, ExtrudeGeometry, Mesh, MeshBasicMaterial, Shape, Vector2 } from '@anov/3d-core'\nimport * as THREE from '@anov/3d-core'\nimport type { FillAreaOption } from '../type'\nimport { RoundLineGeometry } from '../../Utils/round-curve'\nimport FillAreaBase from './FillAreaBase'\n\nclass FillArea_Face_01 extends FillAreaBase {\n constructor(option: FillAreaOption, areaInstance: Object3D) {\n super(option, areaInstance)\n this.create()\n }\n\n create() {\n this._mesh = this.createMesh(this._points, this._color, this._alpha)\n this._mesh && this.add(this._mesh)\n }\n\n createMesh(points: Vector3[], color: string, alpha: number) {\n if (!points)\n return\n\n // 创建材质\n const material = new MeshBasicMaterial({ color: new Color(color), transparent: true, opacity: alpha, side: 2 })\n // // 创建一个Shape对象,用于定义填充区域的平面形状\n // const shape = new Shape()\n // // 将第一个点的x、z坐标作为Shape的起始位置\n // shape.moveTo(points[0].x, points[0].z)\n\n // // 遍历剩余的点,依次将它们的x、z坐标连接起来,构成封闭的平面形状\n // for (let i = 1; i < points.length; i++)\n // shape.lineTo(points[i].x, points[i].z)\n // // 闭合形状路径,确保形状是封闭的,以便后续挤出操作生成正确的几何体\n // shape.closePath()\n const roundLineGeometry = new RoundLineGeometry(points, { radius: this._corner, close: this._close })\n const curve = roundLineGeometry.curve\n const currentPoints = curve.getPoints(1000)\n const points2D = currentPoints.map((p: any) => new Vector2(p.x, p.z))\n // 创建一个Shape并添加封闭路径\n const shape = new Shape(points2D)\n // 定义挤出几何体的基本设置,包括步数、是否启用斜角、挤出深度以及挤出路径等\n const extrudeSettings = {\n steps: 100,\n bevelEnabled: false,\n depth: 1,\n extrudePath: undefined,\n }\n\n // 生成填充区域的几何体\n const geometry = new ExtrudeGeometry(shape, extrudeSettings)\n // 生成填充区域的网格物体\n const mesh = new Mesh(geometry, material)\n // 将填充区域的网格物体绕x轴旋转90度\n mesh.rotateX(Math.PI / 2)\n\n return mesh\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 // (this.mesh.material as MeshBasicMaterial).color = new 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 // if (this.mesh)\n // (this.mesh.material as MeshBasicMaterial).opacity = newValue\n // }\n}\n\nexport default FillArea_Face_01"],"mappings":";;;;;;;;;;;;;AACA,SAASA,KAAK,EAAEC,eAAe,EAAEC,IAAI,EAAEC,iBAAiB,EAAEC,KAAK,EAAEC,OAAO,QAAQ,eAAe;AAG/F,SAASC,iBAAiB;AAC1B,OAAOC,YAAY;AAAsB,IAEnCC,gBAAgB,0BAAAC,aAAA;EAAAC,SAAA,CAAAF,gBAAA,EAAAC,aAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,gBAAA;EACpB,SAAAA,iBAAYK,MAAsB,EAAEC,YAAsB,EAAE;IAAA,IAAAC,KAAA;IAAAC,eAAA,OAAAR,gBAAA;IAC1DO,KAAA,GAAAJ,MAAA,CAAAM,IAAA,OAAMJ,MAAM,EAAEC,YAAY;IAC1BC,KAAA,CAAKG,MAAM,CAAC,CAAC;IAAA,OAAAH,KAAA;EACf;EAACI,YAAA,CAAAX,gBAAA;IAAAY,GAAA;IAAAC,KAAA,EAED,SAAAH,OAAA,EAAS;MACP,IAAI,CAACI,KAAK,GAAG,IAAI,CAACC,UAAU,CAAC,IAAI,CAACC,OAAO,EAAE,IAAI,CAACC,MAAM,EAAE,IAAI,CAACC,MAAM,CAAC;MACpE,IAAI,CAACJ,KAAK,IAAI,IAAI,CAACK,GAAG,CAAC,IAAI,CAACL,KAAK,CAAC;IACpC;EAAC;IAAAF,GAAA;IAAAC,KAAA,EAED,SAAAE,WAAWK,MAAiB,EAAEC,KAAa,EAAEC,KAAa,EAAE;MAC1D,IAAI,CAACF,MAAM,EACT;;MAEF;MACA,IAAMG,QAAQ,GAAG,IAAI5B,iBAAiB,CAAC;QAAE0B,KAAK,EAAE,IAAI7B,KAAK,CAAC6B,KAAK,CAAC;QAAEG,WAAW,EAAE,IAAI;QAAEC,OAAO,EAAEH,KAAK;QAAEI,IAAI,EAAE;MAAE,CAAC,CAAC;MAC/G;MACA;MACA;MACA;;MAEA;MACA;MACA;MACA;MACA;MACA,IAAMC,iBAAiB,GAAG,IAAI7B,iBAAiB,CAACsB,MAAM,EAAE;QAAEQ,MAAM,EAAE,IAAI,CAACC,OAAO;QAAEC,KAAK,EAAE,IAAI,CAACC;MAAO,CAAC,CAAC;MACrG,IAAMC,KAAK,GAAGL,iBAAiB,CAACK,KAAK;MACrC,IAAMC,aAAa,GAAGD,KAAK,CAACE,SAAS,CAAC,IAAI,CAAC;MAC3C,IAAMC,QAAQ,GAAGF,aAAa,CAACG,GAAG,CAAC,UAACC,CAAM;QAAA,OAAK,IAAIxC,OAAO,CAACwC,CAAC,CAACC,CAAC,EAAED,CAAC,CAACE,CAAC,CAAC;MAAA,EAAC;MACrE;MACA,IAAMC,KAAK,GAAG,IAAI5C,KAAK,CAACuC,QAAQ,CAAC;MACjC;MACA,IAAMM,eAAe,GAAG;QACtBC,KAAK,EAAE,GAAG;QACVC,YAAY,EAAE,KAAK;QACnBC,KAAK,EAAE,CAAC;QACRC,WAAW,EAAEC;MACf,CAAC;;MAED;MACA,IAAMC,QAAQ,GAAG,IAAItD,eAAe,CAAC+C,KAAK,EAAEC,eAAe,CAAC;MAC5D;MACA,IAAMO,IAAI,GAAG,IAAItD,IAAI,CAACqD,QAAQ,EAAExB,QAAQ,CAAC;MACzC;MACAyB,IAAI,CAACC,OAAO,CAACC,IAAI,CAACC,EAAE,GAAG,CAAC,CAAC;MAEzB,OAAOH,IAAI;IACb;;IAEA;IACA;IACA;IACA;;IAEA;IACA;IACA;;IAEA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;;IAEA;IACA;IACA;;IAEA;IACA;IACA;IACA;EAAA;EAAA,OAAAhD,gBAAA;AAAA,EA7E6BD,YAAY;AAgF3C,eAAeC,gBAAgB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Color","Line2","LineGeometry","LineMaterial","Vector2","Vector3","THREE","RoundLineGeometry","FillAreaBase","FillArea_Line_01","_FillAreaBase","_inherits","_super","_createSuper","option","areaInstance","_this","_classCallCheck","call","create","_createClass","key","value","_mesh","createMesh","_points","_color","_alpha","add","points","color","alpha","material","getHex","transparent","opacity","blending","NormalBlending","depthTest","alphaTest","linewidth","resolution","window","innerWidth","innerHeight","roundLineGeometry","radius","_corner","close","_close","curve","currentPoints","getPoints","points3D","map","p","x","z","geometry","setPositions","flatMap","mesh"],"sources":["../../../../src/business/Area/FillArea/fillArea_line_01.ts"],"sourcesContent":["import { Color, Line, Line2, LineGeometry, LineMaterial, Mesh, Vector2, Vector3 } from '@anov/3d-core'\nimport * as THREE from '@anov/3d-core'\nimport type { FillAreaOption } from '../type'\nimport { RoundLineGeometry } from '../../Utils/round-curve'\nimport FillAreaBase from './FillAreaBase'\n\ninterface Point {\n x: number\n y: number\n z: number\n}\nclass FillArea_Line_01 extends FillAreaBase {\n constructor(option: FillAreaOption, areaInstance: THREE.Object3D) {\n super(option, areaInstance)\n this.create()\n }\n\n create() {\n this._mesh = this.createMesh(this._points, this._color, this._alpha)\n this._mesh && this.add(this._mesh)\n }\n\n createMesh(points: Vector3[], color: string, alpha: number) {\n if (!points)\n return\n // 创建材质,这里设置为线的材质,比如LineMaterial\n const material = new LineMaterial({\n color: new Color(color).getHex(),\n transparent: true,\n opacity: alpha,\n blending: THREE.NormalBlending, // 启用混合模式以使透明度生效\n depthTest: false,\n alphaTest: 0.01,\n linewidth: 15,\n resolution: new Vector2(window.innerWidth, window.innerHeight),\n })\n const roundLineGeometry = new RoundLineGeometry(points, { radius: this._corner, close: this._close })\n const curve = roundLineGeometry.curve\n const currentPoints = curve.getPoints(1000)\n // 将点转换为二维坐标(只保留x和y)\n const points3D = currentPoints.map((p: Point) => new Vector3(p.x, 0, p.z))\n const geometry = new LineGeometry()\n geometry.setPositions(points3D.flatMap((p: Point) => [p.x, 0, p.z])) // 将二维坐标转换为一维数组\n // 创建一个线的网格物体(区别于原来的面的网格物体)\n const mesh = new Line2(geometry, material)\n\n return mesh\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 // this.mesh.material.color = new 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 // if (this.mesh)\n // this.mesh.material.opacity = newValue\n // }\n}\n\nexport default FillArea_Line_01"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const SOURCE_BASE_PATH = "http://192.168.11.164:9000/anov-test/resources/3d/atomicResouce";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["getLastValue","optsValue","value"],"sources":["../../../src/core/Utils/index.ts"],"sourcesContent":["export const getLastValue = <T>(optsValue: T | undefined | null, value: T): T => {\n return optsValue ?? value\n}"],"mappings":"AAAA,OAAO,IAAMA,YAAY,GAAG,SAAfA,YAAYA,CAAOC,SAA+B,EAAEC,KAAQ,EAAQ;EAC/E,OAAOD,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIC,KAAK;AAC3B,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|