@anov/3d-ability 0.0.166 → 0.0.168
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/Animation/motion/index.d.ts +2 -3
- package/dist/business/Animation/motion/index.js +1 -6
- package/dist/business/Animation/motion/index.js.map +1 -1
- package/dist/business/Area/Fence/FenceBase.d.ts +2 -2
- package/dist/business/Area/Fence/FenceBase.js +1 -1
- package/dist/business/Area/Fence/FenceBase.js.map +1 -1
- package/dist/business/Area/Fence/fence_base_01.js +1 -1
- package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_feeting_01.js +1 -1
- package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_roll_01.js +1 -1
- package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
- package/dist/business/Area/FillArea/FillAreaBase.d.ts +2 -2
- package/dist/business/Area/FillArea/FillAreaBase.js +1 -1
- package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
- package/dist/business/Area/index.d.ts +1 -2
- package/dist/business/Area/index.js +2 -2
- package/dist/business/Area/index.js.map +1 -1
- package/dist/business/Base/ObjectLayer.d.ts +2 -4
- package/dist/business/Base/ObjectLayer.js +11 -7
- package/dist/business/Base/ObjectLayer.js.map +1 -1
- package/dist/business/Batch/index.d.ts +1 -1
- package/dist/business/Batch/index.js +2 -2
- package/dist/business/Batch/index.js.map +1 -1
- package/dist/business/Box/index.d.ts +1 -1
- package/dist/business/Box/index.js +2 -2
- package/dist/business/Box/index.js.map +1 -1
- package/dist/business/Box/interface.js.map +1 -1
- package/dist/business/Box/types.js.map +1 -1
- package/dist/business/Cylinder/index.d.ts +1 -1
- package/dist/business/Cylinder/index.js +2 -2
- package/dist/business/Cylinder/index.js.map +1 -1
- package/dist/business/Cylinder/interface.d.ts +1 -1
- package/dist/business/Cylinder/interface.js.map +1 -1
- package/dist/business/Cylinder/types.js.map +1 -1
- package/dist/business/Flyline/index.d.ts +2 -2
- package/dist/business/Flyline/index.js +8 -8
- package/dist/business/Flyline/index.js.map +1 -1
- package/dist/business/Flyline/line/ArcLine.d.ts +1 -1
- package/dist/business/Flyline/line/ArcLine.js +3 -3
- package/dist/business/Flyline/line/ArcLine.js.map +1 -1
- package/dist/business/HeatMap/HeatMap.d.ts +59 -3
- package/dist/business/HeatMap/HeatMap.js +95 -7
- package/dist/business/HeatMap/HeatMap.js.map +1 -1
- package/dist/business/InfoPanel/index.d.ts +4 -3
- package/dist/business/InfoPanel/index.js +19 -13
- package/dist/business/InfoPanel/index.js.map +1 -1
- package/dist/business/InfoPanel/type.js.map +1 -1
- package/dist/business/Line/index.d.ts +3 -3
- package/dist/business/Line/index.js +7 -8
- package/dist/business/Line/index.js.map +1 -1
- package/dist/business/Line/interface.d.ts +4 -4
- package/dist/business/Line/interface.js.map +1 -1
- package/dist/business/Line/types.js.map +1 -1
- package/dist/business/Mark/index.d.ts +1 -2
- package/dist/business/Mark/index.js +3 -3
- package/dist/business/Mark/index.js.map +1 -1
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.d.ts +3 -5
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +10 -14
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
- package/dist/business/MaterialSwitch/index.js.map +1 -1
- package/dist/business/Plane/index.d.ts +2 -3
- package/dist/business/Plane/index.js +2 -2
- package/dist/business/Plane/index.js.map +1 -1
- package/dist/business/Plane/interface.d.ts +5 -5
- package/dist/business/Plane/interface.js.map +1 -1
- package/dist/business/Plane/types.js.map +1 -1
- package/dist/business/Poi/index.d.ts +3 -2
- package/dist/business/Poi/index.js +54 -25
- package/dist/business/Poi/index.js.map +1 -1
- package/dist/business/Poi/link/Cylinder.d.ts +1 -2
- package/dist/business/Poi/link/Cylinder.js +3 -3
- package/dist/business/Poi/link/Cylinder.js.map +1 -1
- package/dist/business/Poi/link/Pyramid.d.ts +1 -2
- package/dist/business/Poi/link/Pyramid.js +2 -2
- package/dist/business/Poi/link/Pyramid.js.map +1 -1
- package/dist/business/Poi/link/index.d.ts +3 -3
- package/dist/business/Poi/link/index.js +2 -2
- package/dist/business/Poi/link/index.js.map +1 -1
- package/dist/business/Poi/panel/index.d.ts +3 -3
- package/dist/business/Poi/panel/index.js +6 -7
- package/dist/business/Poi/panel/index.js.map +1 -1
- package/dist/business/Poi/panel/interfaces.js.map +1 -1
- package/dist/business/Poi/panel/utils.d.ts +1 -1
- package/dist/business/Poi/panel/utils.js +3 -3
- package/dist/business/Poi/panel/utils.js.map +1 -1
- package/dist/business/Poi/particle/DoubleCircle.d.ts +1 -2
- package/dist/business/Poi/particle/DoubleCircle.js +2 -3
- package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
- package/dist/business/Poi/particle/DynamicCircle.d.ts +1 -2
- package/dist/business/Poi/particle/DynamicCircle.js +2 -3
- package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
- package/dist/business/Poi/particle/SingleCircle.d.ts +1 -2
- package/dist/business/Poi/particle/SingleCircle.js +2 -3
- package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
- package/dist/business/Poi/particle/index.d.ts +2 -2
- package/dist/business/Poi/particle/index.js +2 -2
- package/dist/business/Poi/particle/index.js.map +1 -1
- package/dist/business/Poi/title/Border.d.ts +1 -2
- package/dist/business/Poi/title/Border.js +2 -2
- package/dist/business/Poi/title/Border.js.map +1 -1
- package/dist/business/Poi/title/Ellipse.d.ts +1 -2
- package/dist/business/Poi/title/Ellipse.js +2 -2
- package/dist/business/Poi/title/Ellipse.js.map +1 -1
- package/dist/business/Poi/title/index.d.ts +2 -3
- package/dist/business/Poi/title/index.js +2 -2
- package/dist/business/Poi/title/index.js.map +1 -1
- package/dist/business/Sphere/index.d.ts +2 -2
- package/dist/business/Sphere/index.js +2 -2
- package/dist/business/Sphere/index.js.map +1 -1
- package/dist/business/Sphere/interface.js.map +1 -1
- package/dist/business/Sphere/types.js.map +1 -1
- package/dist/business/Spline/index.d.ts +1 -2
- package/dist/business/Spline/index.js +28 -14
- package/dist/business/Spline/index.js.map +1 -1
- package/dist/business/SplitBuilding/index.d.ts +2 -2
- package/dist/business/SplitBuilding/index.js +2 -2
- package/dist/business/SplitBuilding/index.js.map +1 -1
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.d.ts +2 -2
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +5 -6
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.d.ts +2 -2
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +3 -3
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/base.d.ts +4 -4
- package/dist/business/TrafficComponents/base.js +6 -6
- package/dist/business/TrafficComponents/base.js.map +1 -1
- package/dist/business/TrafficComponents/index.d.ts +2 -4
- package/dist/business/TrafficComponents/index.js +2 -2
- package/dist/business/TrafficComponents/index.js.map +1 -1
- package/dist/business/Utils/defineProps.js +3 -3
- package/dist/business/Utils/defineProps.js.map +1 -1
- package/dist/business/VideoPanel/index.d.ts +4 -4
- package/dist/business/VideoPanel/index.js +13 -11
- package/dist/business/VideoPanel/index.js.map +1 -1
- package/dist/business/VideoPanel/type.d.ts +8 -8
- package/dist/business/VideoPanel/type.js.map +1 -1
- package/dist/business/Water/index.d.ts +1 -3
- package/dist/business/Water/index.js +5 -5
- package/dist/business/Water/index.js.map +1 -1
- package/dist/business/index.d.ts +18 -21
- package/dist/business/index.js +18 -18
- package/dist/business/index.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.d.ts +1 -1
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +4 -4
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
- package/dist/core/Camera/index.d.ts +1 -2
- package/dist/core/Camera/index.js +1 -1
- package/dist/core/Camera/index.js.map +1 -1
- package/dist/core/Controls/FirstViewControl/index.d.ts +2 -3
- package/dist/core/Controls/FirstViewControl/index.js +2 -4
- package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/index.d.ts +2 -3
- package/dist/core/Controls/ThirdViewControl/index.js +3 -6
- package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/camera.d.ts +2 -4
- package/dist/core/Controls/ThirdViewControl/player/camera.js +2 -5
- package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player.d.ts +2 -4
- package/dist/core/Controls/ThirdViewControl/player.js +2 -6
- package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
- package/dist/core/Controls/base.d.ts +3 -4
- package/dist/core/Controls/base.js +3 -5
- package/dist/core/Controls/base.js.map +1 -1
- package/dist/core/Curve/index.d.ts +1 -2
- package/dist/core/Curve/index.js +1 -1
- package/dist/core/Curve/index.js.map +1 -1
- package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
- package/dist/core/Material/index.d.ts +3 -5
- package/dist/core/Material/index.js +3 -3
- package/dist/core/Material/index.js.map +1 -1
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.d.ts +1 -2
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +4 -4
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
- package/dist/core/PostEffects/addBrightnessContrastPass.d.ts +1 -2
- package/dist/core/PostEffects/addBrightnessContrastPass.js +4 -4
- package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
- package/dist/core/PostEffects/bloomPass.d.ts +1 -2
- package/dist/core/PostEffects/bloomPass.js +5 -6
- package/dist/core/PostEffects/bloomPass.js.map +1 -1
- package/dist/core/PostEffects/bloomSelect.d.ts +2 -2
- package/dist/core/PostEffects/bloomSelect.js +6 -7
- package/dist/core/PostEffects/bloomSelect.js.map +1 -1
- package/dist/core/PostEffects/colorifyPass.d.ts +2 -2
- package/dist/core/PostEffects/colorifyPass.js +4 -4
- package/dist/core/PostEffects/colorifyPass.js.map +1 -1
- package/dist/core/PostEffects/index.d.ts +13 -4
- package/dist/core/PostEffects/index.js +20 -14
- package/dist/core/PostEffects/index.js.map +1 -1
- package/dist/core/PostEffects/outlinePass.d.ts +2 -2
- package/dist/core/PostEffects/outlinePass.js +5 -4
- package/dist/core/PostEffects/outlinePass.js.map +1 -1
- package/dist/core/PostEffects/postprocessing.d.ts +2 -2
- package/dist/core/PostEffects/postprocessing.js +2 -2
- package/dist/core/PostEffects/postprocessing.js.map +1 -1
- package/dist/core/PostEffects/saoPass.d.ts +1 -2
- package/dist/core/PostEffects/saoPass.js +5 -4
- package/dist/core/PostEffects/saoPass.js.map +1 -1
- package/dist/core/SceneEffect/grow/grow.d.ts +1 -3
- package/dist/core/SceneEffect/grow/grow.js +3 -5
- package/dist/core/SceneEffect/grow/grow.js.map +1 -1
- package/dist/core/WeatherSystem/DynamicWeatherSystem.d.ts +1 -3
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js +4 -6
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
- package/dist/core/WeatherSystem/color/index.d.ts +0 -3
- package/dist/core/WeatherSystem/color/index.js +14 -9
- package/dist/core/WeatherSystem/color/index.js.map +1 -1
- package/dist/core/WeatherSystem/controller/ColorController.d.ts +1 -3
- package/dist/core/WeatherSystem/controller/ColorController.js +3 -5
- package/dist/core/WeatherSystem/controller/ColorController.js.map +1 -1
- package/dist/core/WeatherSystem/controller/HDRController.d.ts +1 -3
- package/dist/core/WeatherSystem/controller/HDRController.js +3 -5
- package/dist/core/WeatherSystem/controller/HDRController.js.map +1 -1
- package/dist/core/WeatherSystem/controller/SkyController.d.ts +1 -3
- package/dist/core/WeatherSystem/controller/SkyController.js +2 -4
- package/dist/core/WeatherSystem/controller/SkyController.js.map +1 -1
- package/dist/core/WeatherSystem/hdr/index.d.ts +2 -4
- package/dist/core/WeatherSystem/hdr/index.js +11 -12
- package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
- package/dist/core/WeatherSystem/index.d.ts +2 -3
- package/dist/core/WeatherSystem/index.js +4 -7
- package/dist/core/WeatherSystem/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/index.d.ts +1 -2
- package/dist/core/WeatherSystem/objects/rain/index.js +3 -3
- package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/lineRain.d.ts +1 -3
- package/dist/core/WeatherSystem/objects/rain/lineRain.js +5 -7
- package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/plane.d.ts +1 -3
- package/dist/core/WeatherSystem/objects/rain/plane.js +4 -6
- package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/point.d.ts +1 -3
- package/dist/core/WeatherSystem/objects/rain/point.js +0 -3
- package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
- package/dist/core/WeatherSystem/sky/index.js.map +1 -1
- package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
- package/dist/core/WeatherSystem/weather/index.d.ts +2 -3
- package/dist/core/WeatherSystem/weather/index.js +5 -7
- package/dist/core/WeatherSystem/weather/index.js.map +1 -1
- package/dist/index.d.ts +8 -13
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Clock","Color","DoubleSide","MathUtils","Mesh","ShaderMaterial","TubeGeometry","Vector2","use","BaseTraffic","fragmentShader","vertexShader","StreamerTraffic","_BaseTraffic","_inherits","_super","_createSuper","params","sceneControl","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","path","_params$width","width","_params$divide","divide","_params$divideWidth","divideWidth","_params$num","num","_params$length","length","_params$baseColor","baseColor","_params$speed","speed","_params$corner","corner","_params$control","control","_path","_width","_divide","_divideWidth","_num","_baseColor","_speed","_corner","_length","_lanelineControl","generateLaneLines","generateStreamer","_createClass","key","get","set","w","value","_streamerArr","forEach","mesh","removeFromParent","i","lanelines","_this$_lanelineContro","_this$_lanelineContro2","geometry","Math","floor","getLength","material","side","transparent","uniforms","uColor","uTime","lerp","random","uFade","uNumLines","uOffset","uAlpha","uSpeed","ulength","uReverse","direction","road","renderOrder","add","run","push","clock","_control","useframe","getElapsedTime","parent","_get","_getPrototypeOf","prototype"],"sources":["../../../../src/business/TrafficComponents/StreamerTraffic/StreamerTraffic.ts"],"sourcesContent":["import { Clock, Color, type CurvePath, DoubleSide, MathUtils, Mesh, type SceneControl, ShaderMaterial, TubeGeometry, Vector2, type Vector3, use } from '@anov/3d-core'\nimport { BaseTraffic } from '../base'\nimport { fragmentShader } from './fragmentShader'\nimport { vertexShader } from './vertexShader'\nimport type { StreamerTrafficInterface } from '.'\n\ntype LanelineControl = {\n index: number\n direction?: number\n}\n\ntype StreamerTrafficParams = {\n path: CurvePath<Vector3>\n width?: number\n divide?: number\n divideWidth?: number\n num?: number\n length?: number\n baseColor?: string\n speed?: number\n control?: LanelineControl[]\n corner?: number\n}\n\n/**\n * 流光风格交通组件\n */\nexport class StreamerTraffic extends BaseTraffic implements StreamerTrafficInterface {\n /** 流光速度 */\n private _speed: number\n\n /** 流光数量 */\n private _num: number\n\n /** 流光颜色 */\n private _baseColor: string\n\n /** 流光宽度 */\n private _divideWidth: number\n\n /** 流光长度 */\n private _length: number\n\n private _streamerArr: Mesh[] = []\n\n private _lanelineControl: LanelineControl[] = []\n\n private _control = []\n\n public get speed() {\n return this._speed\n }\n\n public get num() {\n return this._num\n }\n\n public get baseColor() {\n return this._baseColor\n }\n\n public get divideWidth() {\n return this._divideWidth\n }\n\n public get width(): number {\n return this._width\n }\n\n public set width(w: number) {\n this._width = w\n\n this.generateLaneLines()\n this.generateStreamer()\n }\n\n public get divide(): number {\n return this._divide\n }\n\n public set divide(num: number) {\n this._divide = num\n\n this.generateLaneLines()\n this.generateStreamer()\n }\n\n constructor(params: StreamerTrafficParams, sceneControl: SceneControl) {\n super(params, sceneControl)\n\n const { path, width = 4, divide = 4, divideWidth = 1, num = 5, length = 0.25, baseColor = '#ff7700', speed = 100, corner = 10, control = [] } = params\n\n this._path = path\n this._width = width\n this._divide = divide\n this._divideWidth = divideWidth / 2\n this._num = num\n this._baseColor = baseColor\n this._speed = speed\n this._corner = corner\n this._length = length\n this._lanelineControl = control\n\n this.generateLaneLines()\n this.generateStreamer()\n }\n\n /**\n * generate streamer\n */\n private generateStreamer() {\n this._streamerArr.forEach((mesh) => {\n mesh.removeFromParent()\n })\n this._streamerArr = []\n\n for (let i = 0; i < this.lanelines.length; i++) {\n const geometry = new TubeGeometry(this.lanelines[i], Math.floor(this.lanelines[i].getLength()) * 10, this._divideWidth, 5, false)\n const material = new ShaderMaterial({\n side: DoubleSide,\n transparent: true,\n uniforms: {\n uColor: { value: new Color(this._baseColor) },\n uTime: { value: MathUtils.lerp(-1, 1, Math.random()) },\n uFade: { value: new Vector2(0, this._length + Math.random() * this._length - this._length / 2) },\n uNumLines: { value: this._num },\n uOffset: { value: Math.random() },\n uAlpha: { value: Math.random() },\n uSpeed: { value: this._speed + Math.random() * this._speed - this._speed / 2 },\n ulength: { value: Math.floor(this.lanelines[i].getLength()) },\n uReverse: { value: this._lanelineControl[i]?.direction ?? 1.0 },\n },\n vertexShader,\n fragmentShader,\n })\n\n const road = new Mesh(geometry, material)\n\n // 渲染顺序\n road.renderOrder = 1000\n\n this.add(road)\n this.run(material)\n this._streamerArr.push(road)\n }\n }\n\n /**\n * run\n * @param material\n */\n private run(material) {\n const clock = new Clock()\n\n this._control.push(\n use.useframe(this.sceneControl, () => {\n material.uniforms.uTime.value = clock.getElapsedTime()\n }),\n )\n }\n\n override removeFromParent(): this {\n // todo: 升级three.js后,父对象变化,会触发此函数,重组内部引起关系\n this.parent && this._control.forEach((control) => {\n control()\n })\n\n return super.removeFromParent()\n }\n}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Clock","Color","DoubleSide","MathUtils","Mesh","ShaderMaterial","TubeGeometry","Vector2","use","BaseTraffic","fragmentShader","vertexShader","StreamerTraffic","_BaseTraffic","_inherits","_super","_createSuper","params","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","path","_params$width","width","_params$divide","divide","_params$divideWidth","divideWidth","_params$num","num","_params$length","length","_params$baseColor","baseColor","_params$speed","speed","_params$corner","corner","_params$control","control","_path","_width","_divide","_divideWidth","_num","_baseColor","_speed","_corner","_length","_lanelineControl","generateLaneLines","generateStreamer","_createClass","key","get","set","w","value","_streamerArr","forEach","mesh","removeFromParent","i","lanelines","_this$_lanelineContro","_this$_lanelineContro2","geometry","Math","floor","getLength","material","side","transparent","uniforms","uColor","uTime","lerp","random","uFade","uNumLines","uOffset","uAlpha","uSpeed","ulength","uReverse","direction","road","renderOrder","add","run","push","clock","_control","useframe","getElapsedTime","parent","_get","_getPrototypeOf","prototype"],"sources":["../../../../src/business/TrafficComponents/StreamerTraffic/StreamerTraffic.ts"],"sourcesContent":["import { Clock, Color, type CurvePath, DoubleSide, MathUtils, Mesh, ShaderMaterial, TubeGeometry, Vector2, type Vector3, use } from '@anov/3d-core'\nimport { BaseTraffic } from '../base'\nimport { fragmentShader } from './fragmentShader'\nimport { vertexShader } from './vertexShader'\nimport type { StreamerTrafficInterface } from '.'\n\ntype LanelineControl = {\n index: number\n direction?: number\n}\n\ntype StreamerTrafficParams = {\n path: CurvePath<Vector3>\n width?: number\n divide?: number\n divideWidth?: number\n num?: number\n length?: number\n baseColor?: string\n speed?: number\n control?: LanelineControl[]\n corner?: number\n}\n\n/**\n * 流光风格交通组件\n */\nexport class StreamerTraffic extends BaseTraffic implements StreamerTrafficInterface {\n /** 流光速度 */\n private _speed: number\n\n /** 流光数量 */\n private _num: number\n\n /** 流光颜色 */\n private _baseColor: string\n\n /** 流光宽度 */\n private _divideWidth: number\n\n /** 流光长度 */\n private _length: number\n\n private _streamerArr: Mesh[] = []\n\n private _lanelineControl: LanelineControl[] = []\n\n private _control = []\n\n public get speed() {\n return this._speed\n }\n\n public get num() {\n return this._num\n }\n\n public get baseColor() {\n return this._baseColor\n }\n\n public get divideWidth() {\n return this._divideWidth\n }\n\n public get width(): number {\n return this._width\n }\n\n public set width(w: number) {\n this._width = w\n\n this.generateLaneLines()\n this.generateStreamer()\n }\n\n public get divide(): number {\n return this._divide\n }\n\n public set divide(num: number) {\n this._divide = num\n\n this.generateLaneLines()\n this.generateStreamer()\n }\n\n constructor(params: StreamerTrafficParams) {\n super(params)\n\n const { path, width = 4, divide = 4, divideWidth = 1, num = 5, length = 0.25, baseColor = '#ff7700', speed = 100, corner = 10, control = [] } = params\n\n this._path = path\n this._width = width\n this._divide = divide\n this._divideWidth = divideWidth / 2\n this._num = num\n this._baseColor = baseColor\n this._speed = speed\n this._corner = corner\n this._length = length\n this._lanelineControl = control\n\n this.generateLaneLines()\n this.generateStreamer()\n }\n\n /**\n * generate streamer\n */\n private generateStreamer() {\n this._streamerArr.forEach((mesh) => {\n mesh.removeFromParent()\n })\n this._streamerArr = []\n\n for (let i = 0; i < this.lanelines.length; i++) {\n const geometry = new TubeGeometry(this.lanelines[i], Math.floor(this.lanelines[i].getLength()) * 10, this._divideWidth, 5, false)\n const material = new ShaderMaterial({\n side: DoubleSide,\n transparent: true,\n uniforms: {\n uColor: { value: new Color(this._baseColor) },\n uTime: { value: MathUtils.lerp(-1, 1, Math.random()) },\n uFade: { value: new Vector2(0, this._length + Math.random() * this._length - this._length / 2) },\n uNumLines: { value: this._num },\n uOffset: { value: Math.random() },\n uAlpha: { value: Math.random() },\n uSpeed: { value: this._speed + Math.random() * this._speed - this._speed / 2 },\n ulength: { value: Math.floor(this.lanelines[i].getLength()) },\n uReverse: { value: this._lanelineControl[i]?.direction ?? 1.0 },\n },\n vertexShader,\n fragmentShader,\n })\n\n const road = new Mesh(geometry, material)\n\n // 渲染顺序\n road.renderOrder = 1000\n\n this.add(road)\n this.run(material)\n this._streamerArr.push(road)\n }\n }\n\n /**\n * run\n * @param material\n */\n private run(material) {\n const clock = new Clock()\n\n this._control.push(\n use.useframe(() => {\n material.uniforms.uTime.value = clock.getElapsedTime()\n }),\n )\n }\n\n override removeFromParent(): this {\n // todo: 升级three.js后,父对象变化,会触发此函数,重组内部引起关系\n this.parent && this._control.forEach((control) => {\n control()\n })\n\n return super.removeFromParent()\n }\n}"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { CurvePath,
|
|
2
|
-
import
|
|
1
|
+
import type { CurvePath, Vector3 } from '@anov/3d-core';
|
|
2
|
+
import { Object3D } from '@anov/3d-core';
|
|
3
3
|
type RealismTrafficParams = {
|
|
4
4
|
path: CurvePath<Vector3>;
|
|
5
5
|
width?: number;
|
|
6
6
|
divide?: number;
|
|
7
7
|
corner?: number;
|
|
8
8
|
};
|
|
9
|
-
export declare class BaseTraffic extends
|
|
9
|
+
export declare class BaseTraffic extends Object3D {
|
|
10
10
|
/** 路面宽度 */
|
|
11
11
|
protected _width: number;
|
|
12
12
|
/** 车道线数量 */
|
|
@@ -15,7 +15,7 @@ export declare class BaseTraffic extends ObjectLayer {
|
|
|
15
15
|
protected _corner: number;
|
|
16
16
|
/** 车道线 */
|
|
17
17
|
lanelines: CurvePath<Vector3>[];
|
|
18
|
-
constructor(params: RealismTrafficParams
|
|
18
|
+
constructor(params: RealismTrafficParams);
|
|
19
19
|
protected get baseLine(): import("../..").RoundedCornersCurve;
|
|
20
20
|
protected generateLaneLines(): void;
|
|
21
21
|
}
|
|
@@ -12,15 +12,15 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
|
|
|
12
12
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
13
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
14
14
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
15
|
-
import
|
|
15
|
+
import { Object3D } from '@anov/3d-core';
|
|
16
16
|
import { createOffsetPath } from "./utils";
|
|
17
|
-
export var BaseTraffic = /*#__PURE__*/function (
|
|
18
|
-
_inherits(BaseTraffic,
|
|
17
|
+
export var BaseTraffic = /*#__PURE__*/function (_Object3D) {
|
|
18
|
+
_inherits(BaseTraffic, _Object3D);
|
|
19
19
|
var _super = _createSuper(BaseTraffic);
|
|
20
|
-
function BaseTraffic(params
|
|
20
|
+
function BaseTraffic(params) {
|
|
21
21
|
var _this;
|
|
22
22
|
_classCallCheck(this, BaseTraffic);
|
|
23
|
-
_this = _super.call(this
|
|
23
|
+
_this = _super.call(this);
|
|
24
24
|
/** 路面宽度 */
|
|
25
25
|
_defineProperty(_assertThisInitialized(_this), "_width", void 0);
|
|
26
26
|
/** 车道线数量 */
|
|
@@ -60,5 +60,5 @@ export var BaseTraffic = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
60
60
|
}
|
|
61
61
|
}]);
|
|
62
62
|
return BaseTraffic;
|
|
63
|
-
}(
|
|
63
|
+
}(Object3D);
|
|
64
64
|
//# sourceMappingURL=base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["Object3D","createOffsetPath","BaseTraffic","_Object3D","_inherits","_super","_createSuper","params","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","path","_params$width","width","_params$divide","divide","_params$corner","corner","_path","_width","_divide","_corner","generateLaneLines","_createClass","key","get","value","lanelines","i","offset","line","baseLine","push"],"sources":["../../../src/business/TrafficComponents/base.ts"],"sourcesContent":["import type { CurvePath, Vector3 } from '@anov/3d-core'\nimport { Object3D } from '@anov/3d-core'\nimport { createOffsetPath } from './utils'\n\ntype RealismTrafficParams = {\n path: CurvePath<Vector3>\n width?: number\n divide?: number\n corner?: number\n}\n\nexport class BaseTraffic extends Object3D {\n /** 路面宽度 */\n protected _width: number\n\n /** 车道线数量 */\n protected _divide: number\n\n protected _path: CurvePath<Vector3>\n\n protected _corner = 10\n\n /** 车道线 */\n public lanelines: CurvePath<Vector3>[] = []\n\n constructor(params: RealismTrafficParams) {\n super()\n\n const { path, width = 2, divide = 1, corner = 10 } = params\n\n this._path = path\n this._width = width\n this._divide = divide\n this._corner = corner\n\n this.generateLaneLines()\n }\n\n protected get baseLine() {\n return createOffsetPath(this._path, -this._width / 2, 0)\n }\n\n protected generateLaneLines() {\n this.lanelines = []\n\n for (let i = 0; i < this._divide; i++) {\n const offset = this._width / this._divide\n const line = createOffsetPath(this.baseLine, offset * (i + 1), this._corner)\n\n this.lanelines.push(line)\n }\n }\n}"],"mappings":";;;;;;;;;;;;;;AACA,SAASA,QAAQ,QAAQ,eAAe;AACxC,SAASC,gBAAgB;AASzB,WAAaC,WAAW,0BAAAC,SAAA;EAAAC,SAAA,CAAAF,WAAA,EAAAC,SAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,WAAA;EActB,SAAAA,YAAYK,MAA4B,EAAE;IAAA,IAAAC,KAAA;IAAAC,eAAA,OAAAP,WAAA;IACxCM,KAAA,GAAAH,MAAA,CAAAK,IAAA;IAdF;IAAAC,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAGA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,cAKoB,EAAE;IAEtB;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,gBACyC,EAAE;IAKzC,IAAQK,IAAI,GAAyCN,MAAM,CAAnDM,IAAI;MAAAC,aAAA,GAAyCP,MAAM,CAA7CQ,KAAK;MAALA,KAAK,GAAAD,aAAA,cAAG,CAAC,GAAAA,aAAA;MAAAE,cAAA,GAA8BT,MAAM,CAAlCU,MAAM;MAANA,MAAM,GAAAD,cAAA,cAAG,CAAC,GAAAA,cAAA;MAAAE,cAAA,GAAkBX,MAAM,CAAtBY,MAAM;MAANA,MAAM,GAAAD,cAAA,cAAG,EAAE,GAAAA,cAAA;IAEhDV,KAAA,CAAKY,KAAK,GAAGP,IAAI;IACjBL,KAAA,CAAKa,MAAM,GAAGN,KAAK;IACnBP,KAAA,CAAKc,OAAO,GAAGL,MAAM;IACrBT,KAAA,CAAKe,OAAO,GAAGJ,MAAM;IAErBX,KAAA,CAAKgB,iBAAiB,CAAC,CAAC;IAAA,OAAAhB,KAAA;EAC1B;EAACiB,YAAA,CAAAvB,WAAA;IAAAwB,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAyB;MACvB,OAAO1B,gBAAgB,CAAC,IAAI,CAACmB,KAAK,EAAE,CAAC,IAAI,CAACC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1D;EAAC;IAAAK,GAAA;IAAAE,KAAA,EAED,SAAAJ,kBAAA,EAA8B;MAC5B,IAAI,CAACK,SAAS,GAAG,EAAE;MAEnB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACR,OAAO,EAAEQ,CAAC,EAAE,EAAE;QACrC,IAAMC,MAAM,GAAG,IAAI,CAACV,MAAM,GAAG,IAAI,CAACC,OAAO;QACzC,IAAMU,IAAI,GAAG/B,gBAAgB,CAAC,IAAI,CAACgC,QAAQ,EAAEF,MAAM,IAAID,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAACP,OAAO,CAAC;QAE5E,IAAI,CAACM,SAAS,CAACK,IAAI,CAACF,IAAI,CAAC;MAC3B;IACF;EAAC;EAAA,OAAA9B,WAAA;AAAA,EAxC8BF,QAAQ"}
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export { StreamerTraffic } from './StreamerTraffic';
|
|
4
|
-
export type { StreamerTrafficInterface } from './StreamerTraffic';
|
|
1
|
+
export * from './RealismTraffic';
|
|
2
|
+
export * from './StreamerTraffic';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
1
|
+
export * from "./RealismTraffic";
|
|
2
|
+
export * from "./StreamerTraffic";
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../src/business/TrafficComponents/index.ts"],"sourcesContent":["export * from './RealismTraffic'\nexport * from './StreamerTraffic'\n"],"mappings":"AAAA;AACA"}
|
|
@@ -3,13 +3,13 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
3
3
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
4
4
|
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); }
|
|
5
5
|
/*
|
|
6
|
-
* @Descripttion:
|
|
7
|
-
* @version:
|
|
6
|
+
* @Descripttion:
|
|
7
|
+
* @version:
|
|
8
8
|
* @Author: 周志国
|
|
9
9
|
* @Date: 2025-09-15 10:36:40
|
|
10
10
|
* @LastEditors: 周志国
|
|
11
11
|
* @LastEditTime: 2025-09-15 10:40:39
|
|
12
|
-
* @changeLog:
|
|
12
|
+
* @changeLog:
|
|
13
13
|
* @FilePath: /anov-3d-webgl/packages/anov-3d-ability/src/business/utils/defineProps.ts
|
|
14
14
|
*/
|
|
15
15
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defineProps","target","optionKeyList","materialKeyList","updateFnName","arguments","length","undefined","forEach","key","Object","defineProperty","get","currentOptions","set","value","_defineProperty","configurable","enumerable","_this$currentOptions$","material"],"sources":["../../../src/business/Utils/defineProps.ts"],"sourcesContent":["/*\n * @Descripttion
|
|
1
|
+
{"version":3,"names":["defineProps","target","optionKeyList","materialKeyList","updateFnName","arguments","length","undefined","forEach","key","Object","defineProperty","get","currentOptions","set","value","_defineProperty","configurable","enumerable","_this$currentOptions$","material"],"sources":["../../../src/business/Utils/defineProps.ts"],"sourcesContent":["/*\n * @Descripttion: \n * @version: \n * @Author: 周志国\n * @Date: 2025-09-15 10:36:40\n * @LastEditors: 周志国\n * @LastEditTime: 2025-09-15 10:40:39\n * @changeLog: \n * @FilePath: /anov-3d-webgl/packages/anov-3d-ability/src/business/utils/defineProps.ts\n */\n/**\n * 定义对象属性\n * @param target 目标对象\n * @param optionKeyList 选项属性列表\n * @param materialKeyList 材质属性列表\n * @param updateFnName 更新函数名称\n */\nexport function defineProps(\n target: any,\n optionKeyList: string[],\n materialKeyList: string[],\n updateFnName = 'updateBox'\n) {\n optionKeyList.forEach(key => {\n Object.defineProperty(target, key, {\n get() {\n return this.currentOptions[key]\n },\n set(value: any) {\n this[updateFnName]({ [key]: value })\n },\n configurable: true,\n enumerable: true,\n })\n })\n materialKeyList.forEach(key => {\n Object.defineProperty(target, key, {\n get() {\n return this.currentOptions.material?.[key]\n },\n set(value: any) {\n this[updateFnName]({ material: { [key]: value } })\n },\n configurable: true,\n enumerable: true,\n })\n })\n}\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,WAAWA,CACzBC,MAAW,EACXC,aAAuB,EACvBC,eAAyB,EAEzB;EAAA,IADAC,YAAY,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,WAAW;EAE1BH,aAAa,CAACM,OAAO,CAAC,UAAAC,GAAG,EAAI;IAC3BC,MAAM,CAACC,cAAc,CAACV,MAAM,EAAEQ,GAAG,EAAE;MACjCG,GAAG,WAAAA,IAAA,EAAG;QACJ,OAAO,IAAI,CAACC,cAAc,CAACJ,GAAG,CAAC;MACjC,CAAC;MACDK,GAAG,WAAAA,IAACC,KAAU,EAAE;QACd,IAAI,CAACX,YAAY,CAAC,CAAAY,eAAA,KAAIP,GAAG,EAAGM,KAAK,CAAE,CAAC;MACtC,CAAC;MACDE,YAAY,EAAE,IAAI;MAClBC,UAAU,EAAE;IACd,CAAC,CAAC;EACJ,CAAC,CAAC;EACFf,eAAe,CAACK,OAAO,CAAC,UAAAC,GAAG,EAAI;IAC7BC,MAAM,CAACC,cAAc,CAACV,MAAM,EAAEQ,GAAG,EAAE;MACjCG,GAAG,WAAAA,IAAA,EAAG;QAAA,IAAAO,qBAAA;QACJ,QAAAA,qBAAA,GAAO,IAAI,CAACN,cAAc,CAACO,QAAQ,cAAAD,qBAAA,uBAA5BA,qBAAA,CAA+BV,GAAG,CAAC;MAC5C,CAAC;MACDK,GAAG,WAAAA,IAACC,KAAU,EAAE;QACd,IAAI,CAACX,YAAY,CAAC,CAAC;UAAEgB,QAAQ,EAAAJ,eAAA,KAAKP,GAAG,EAAGM,KAAK;QAAG,CAAC,CAAC;MACpD,CAAC;MACDE,YAAY,EAAE,IAAI;MAClBC,UAAU,EAAE;IACd,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ"}
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* @createTime 2025-08-22
|
|
6
6
|
* @lastEditTime 2025-08-22
|
|
7
7
|
*/
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
8
|
+
import ObjectLayer from "../Base/ObjectLayer";
|
|
9
|
+
import type { Option } from './type';
|
|
10
|
+
import { IPanel } from './type';
|
|
11
11
|
declare class VideoPanel extends ObjectLayer implements IPanel {
|
|
12
12
|
private _title;
|
|
13
13
|
private _width;
|
|
@@ -33,7 +33,7 @@ declare class VideoPanel extends ObjectLayer implements IPanel {
|
|
|
33
33
|
private _videoWidth;
|
|
34
34
|
private _onClose;
|
|
35
35
|
visible: boolean;
|
|
36
|
-
constructor(option: Option
|
|
36
|
+
constructor(option: Option);
|
|
37
37
|
private init;
|
|
38
38
|
private createBox;
|
|
39
39
|
/** 创建背景 */
|
|
@@ -29,9 +29,9 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
29
29
|
* @lastEditTime 2025-08-22
|
|
30
30
|
*/
|
|
31
31
|
|
|
32
|
+
import ObjectLayer from "../Base/ObjectLayer";
|
|
32
33
|
import _ from 'lodash';
|
|
33
34
|
import { Group, Vector3, createLabel } from '@anov/3d-core';
|
|
34
|
-
import ObjectLayer from "../Base/ObjectLayer";
|
|
35
35
|
var DEFAULT_OPTION = {
|
|
36
36
|
position: [0, 0, 0],
|
|
37
37
|
width: 300,
|
|
@@ -52,10 +52,10 @@ var DEFAULT_OPTION = {
|
|
|
52
52
|
var VideoPanel = /*#__PURE__*/function (_ObjectLayer) {
|
|
53
53
|
_inherits(VideoPanel, _ObjectLayer);
|
|
54
54
|
var _super = _createSuper(VideoPanel);
|
|
55
|
-
function VideoPanel(option
|
|
55
|
+
function VideoPanel(option) {
|
|
56
56
|
var _this;
|
|
57
57
|
_classCallCheck(this, VideoPanel);
|
|
58
|
-
_this = _super.call(this
|
|
58
|
+
_this = _super.call(this);
|
|
59
59
|
_defineProperty(_assertThisInitialized(_this), "_title", void 0);
|
|
60
60
|
_defineProperty(_assertThisInitialized(_this), "_width", void 0);
|
|
61
61
|
_defineProperty(_assertThisInitialized(_this), "_height", void 0);
|
|
@@ -142,10 +142,10 @@ var VideoPanel = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
142
142
|
var _this$_title;
|
|
143
143
|
// 使用 DocumentFragment 减少重排
|
|
144
144
|
// const fragment = document.createDocumentFragment();
|
|
145
|
-
var bgDom = this.createBgDom();
|
|
145
|
+
var bgDom = this.createBgDom(); //创建容器盒子
|
|
146
146
|
var videoContainer = document.createElement('div');
|
|
147
147
|
if ((_this$_title = this._title) !== null && _this$_title !== void 0 && _this$_title.value || this._closeable) {
|
|
148
|
-
var headerDom = this.createHeaderDom();
|
|
148
|
+
var headerDom = this.createHeaderDom(); //创建头部盒子
|
|
149
149
|
bgDom.appendChild(headerDom);
|
|
150
150
|
}
|
|
151
151
|
videoContainer.appendChild(this._videoElement);
|
|
@@ -157,12 +157,11 @@ var VideoPanel = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
157
157
|
this.add(this._group);
|
|
158
158
|
this.applyPosition(); // 初始化自动定位
|
|
159
159
|
}
|
|
160
|
-
|
|
161
160
|
/** 创建背景 */
|
|
162
161
|
}, {
|
|
163
162
|
key: "createBgDom",
|
|
164
163
|
value: function createBgDom() {
|
|
165
|
-
|
|
164
|
+
//创建容器盒子
|
|
166
165
|
var bgDom = document.createElement('div');
|
|
167
166
|
Object.assign(bgDom.style, {
|
|
168
167
|
width: "".concat(this._width, "px"),
|
|
@@ -183,7 +182,6 @@ var VideoPanel = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
183
182
|
if (this._customStyle) Object.assign(bgDom.style, this._customStyle);
|
|
184
183
|
return bgDom;
|
|
185
184
|
}
|
|
186
|
-
|
|
187
185
|
/** 创建头部 */
|
|
188
186
|
}, {
|
|
189
187
|
key: "createHeaderDom",
|
|
@@ -206,7 +204,7 @@ var VideoPanel = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
206
204
|
titleValue = _this$_title3.value,
|
|
207
205
|
titleStyle = _objectWithoutProperties(_this$_title3, _excluded);
|
|
208
206
|
// 正确设置样式的方式
|
|
209
|
-
Object.assign(titleDom.style, titleStyle);
|
|
207
|
+
Object.assign(titleDom.style, titleStyle); //待测试
|
|
210
208
|
|
|
211
209
|
headerDom.appendChild(titleDom);
|
|
212
210
|
}
|
|
@@ -284,7 +282,9 @@ var VideoPanel = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
284
282
|
// child.element.style.display = 'none';
|
|
285
283
|
// }
|
|
286
284
|
// });
|
|
287
|
-
if (this._onClose)
|
|
285
|
+
if (this._onClose) {
|
|
286
|
+
this._onClose();
|
|
287
|
+
}
|
|
288
288
|
}
|
|
289
289
|
}, {
|
|
290
290
|
key: "update",
|
|
@@ -349,7 +349,9 @@ var VideoPanel = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
349
349
|
this.remove(this._group);
|
|
350
350
|
// 清理DOM引用
|
|
351
351
|
this._group.children.forEach(function (child) {
|
|
352
|
-
if (child.element && child.element.parentNode)
|
|
352
|
+
if (child.element && child.element.parentNode) {
|
|
353
|
+
child.element.parentNode.removeChild(child.element);
|
|
354
|
+
}
|
|
353
355
|
});
|
|
354
356
|
this._videoElement.pause();
|
|
355
357
|
this._videoElement.src = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_","Group","Vector3","createLabel","ObjectLayer","DEFAULT_OPTION","position","width","height","bgColor","borderRadius","closeable","padding","volume","src","autoplay","controls","loop","muted","poster","videoHeight","VideoPanel","_ObjectLayer","_inherits","_super","_createSuper","option","sceneControl","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","params","mergeWith","cloneDeep","_title","title","_width","_height","_bgColor","_position","_bgUrl","bgUrl","_className","className","_customStyle","customStyle","_borderRadius","_padding","_closeable","_autoplay","_controls","_loop","_muted","_poster","_volume","_src","_videoHeight","_videoWidth","videoWidth","_onClose","onClose","Object","assign","_videoElement","createVideoDom","_group","visible","init","_createClass","key","value","createBox","_this$_title","bgDom","createBgDom","videoContainer","document","createElement","headerDom","createHeaderDom","appendChild","bgObject","set","center","add","applyPosition","style","concat","overflow","backgroundColor","backgroundImage","backgroundSize","backgroundRepeat","boxSizing","display","_this$_title2","_this2","alignItems","justifyContent","titleDom","flex","textContent","_this$_title3","titleValue","titleStyle","_objectWithoutProperties","_excluded","_this$_title4","_this$_title5","closeDom","cursor","fontSize","color","pointerEvents","onclick","close","videoDom","objectFit","offset","arguments","length","undefined","Array","isArray","_this$_position","_slicedToArray","x","y","z","open","update","play","pause","setVolume","Math","max","min","seek","time","currentTime","toggleMute","get","duration","paused","ended","destroy","clear","remove","children","forEach","child","element","parentNode","removeChild","load"],"sources":["../../../src/business/VideoPanel/index.ts"],"sourcesContent":["/**\n * @file index.ts\n * @description 视频面板\n * @author xingwei\n * @createTime 2025-08-22\n * @lastEditTime 2025-08-22\n */\n\nimport _ from 'lodash'\nimport { Group, type SceneControl, Vector3, createLabel } from '@anov/3d-core'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport type { IPanel, Option, TitleOption } from './type'\n\nconst DEFAULT_OPTION = {\n position: [0, 0, 0],\n width: 300,\n height: 200,\n bgColor: '#fff',\n borderRadius: 8,\n closeable: true,\n padding: '10px',\n volume: 0.5,\n src: '',\n autoplay: false,\n controls: false,\n loop: false,\n muted: false,\n poster: '',\n videoHeight: 150,\n}\n\nclass VideoPanel extends ObjectLayer implements IPanel {\n private _title: TitleOption\n private _width: number\n private _height: number\n private _bgColor: string\n private _position: Array<number>\n private _borderRadius = 10\n private _bgUrl: string\n private _className: string\n private _customStyle: any\n private _closeable: boolean\n private _padding: string\n private _group: Group\n\n private _videoElement: HTMLVideoElement\n private _src: string\n private _autoplay: boolean\n private _controls: boolean\n private _loop: boolean\n private _muted: boolean\n private _poster?: string\n private _volume: number\n private _videoHeight: number\n private _videoWidth: number\n\n private _onClose: Function\n visible = false\n\n constructor(option: Option, sceneControl: SceneControl) {\n super(sceneControl)\n const params = _.mergeWith(_.cloneDeep(DEFAULT_OPTION), option)\n const {\n title: _title,\n width: _width,\n height: _height,\n bgColor: _bgColor,\n position: _position,\n bgUrl: _bgUrl,\n className: _className,\n customStyle: _customStyle,\n borderRadius: _borderRadius,\n padding: _padding,\n closeable: _closeable,\n autoplay: _autoplay,\n controls: _controls,\n loop: _loop,\n muted: _muted,\n poster: _poster,\n volume: _volume,\n src: _src,\n videoHeight: _videoHeight,\n videoWidth: _videoWidth,\n onClose: _onClose,\n } = params\n\n Object.assign(this, {\n _videoWidth,\n _videoHeight,\n _title,\n _autoplay,\n _loop,\n _muted,\n _volume,\n _poster,\n _controls,\n _src,\n _width,\n _height,\n _bgColor,\n _position,\n _bgUrl,\n _className,\n _customStyle,\n _borderRadius,\n _padding,\n _closeable,\n _onClose,\n })\n\n this._videoElement = this.createVideoDom()\n this._group = new Group()\n this._group.visible = this.visible\n this.init()\n }\n\n private init() {\n this.createBox()\n }\n\n private createBox() {\n // 使用 DocumentFragment 减少重排\n // const fragment = document.createDocumentFragment();\n const bgDom = this.createBgDom() // 创建容器盒子\n const videoContainer = document.createElement('div')\n\n if (this._title?.value || this._closeable) {\n const headerDom = this.createHeaderDom() // 创建头部盒子\n bgDom.appendChild(headerDom)\n }\n videoContainer.appendChild(this._videoElement)\n bgDom.appendChild(videoContainer)\n\n const bgObject = createLabel(bgDom)\n bgObject.position.set(0, 0, 0)\n bgObject.center.set(0.5, 0.5)\n\n this._group.add(bgObject)\n\n this.add(this._group)\n this.applyPosition() // 初始化自动定位\n }\n\n /** 创建背景 */\n private createBgDom() {\n // 创建容器盒子\n const bgDom = document.createElement('div')\n Object.assign(bgDom.style, {\n width: `${this._width}px`,\n height: `${this._height}px`,\n // left: `${this._position[0]}px`,\n // top: `${this._position[1]}px`,\n overflow: 'hidden',\n padding: this._padding,\n borderRadius: this._bgUrl ? '' : `${this._borderRadius}px`,\n backgroundColor: this._bgUrl ? '' : this._bgColor,\n backgroundImage: this._bgUrl ? `url(${this._bgUrl})` : '',\n backgroundSize: this._bgUrl ? 'contain' : '',\n backgroundRepeat: this._bgUrl ? 'no-repeat' : '',\n boxSizing: 'border-box',\n display: 'flex',\n\n })\n\n if (this._className)\n bgDom.className = this._className\n if (this._customStyle)\n Object.assign(bgDom.style, this._customStyle)\n return bgDom\n }\n\n /** 创建头部 */\n private createHeaderDom() {\n const headerDom = document.createElement('div')\n headerDom.className = 'video-panel-header'\n headerDom.style.display = 'flex'\n headerDom.style.alignItems = 'center'\n headerDom.style.justifyContent = 'flex-end'\n if (this._title?.value) {\n // 创建标题\n const titleDom = document.createElement('p')\n titleDom.className = 'panel-title'\n titleDom.style.display = 'flex'\n titleDom.style.flex = '1'\n titleDom.textContent = this._title.value\n const { value: titleValue, ...titleStyle } = this._title\n // 正确设置样式的方式\n Object.assign(titleDom.style, titleStyle) // 待测试\n\n headerDom.appendChild(titleDom)\n }\n\n // 创建关闭按钮\n if (this._closeable) {\n const closeDom = document.createElement('div')\n closeDom.className = 'panel-close'\n closeDom.style.cursor = 'pointer'\n closeDom.style.fontSize = this._title?.fontSize\n closeDom.style.color = this._title?.color\n closeDom.textContent = 'x'\n closeDom.style.pointerEvents = 'auto'\n closeDom.onclick = () => {\n this.close()\n }\n\n headerDom.appendChild(closeDom)\n }\n return headerDom\n }\n\n private createVideoDom() {\n const videoDom = document.createElement('video')\n videoDom.style.width = this._videoWidth ? `${this._videoWidth}px` : '100%'\n videoDom.style.height = this._videoHeight ? `${this._videoHeight}px` : '100%'\n videoDom.style.objectFit = 'cover'\n videoDom.src = this._src\n videoDom.autoplay = this._autoplay\n videoDom.controls = this._controls\n videoDom.loop = this._loop\n videoDom.muted = this._muted\n videoDom.volume = this._volume\n\n if (this._poster)\n videoDom.poster = this._poster\n return videoDom\n }\n\n /** 自动定位面板 */\n private applyPosition(offset: Vector3 = new Vector3(0, 0, 0)) {\n if (Array.isArray(this._position)) {\n // 如果是数组 [x, y]\n const [x, y, z] = this._position\n this._group.position.set(x, -y, z) // 注意y轴取反\n }\n }\n\n public open() {\n this.visible = true\n this._group.visible = true\n\n // 同步 DOM 节点显示\n // this._group.children.forEach((child: any) => {\n // if (child.element) {\n // child.element.style.display = 'block';\n // }\n // });\n }\n\n public close() {\n this.visible = false\n this._group.visible = false\n\n // 同步 DOM 节点隐藏\n // this._group.children.forEach((child: any) => {\n // if (child.element) {\n // child.element.style.display = 'none';\n // }\n // });\n if (this._onClose)\n this._onClose()\n }\n\n public update(option: Option) {\n if (option.src) {\n this._src = option.src\n this._videoElement.src = option.src\n }\n if (option.autoplay !== undefined)\n this._autoplay = option.autoplay\n if (option.controls !== undefined)\n this._videoElement.controls = option.controls\n if (option.loop !== undefined)\n this._videoElement.loop = option.loop\n if (option.muted !== undefined)\n this._videoElement.muted = option.muted\n if (option.volume !== undefined)\n this._videoElement.volume = option.volume\n if (option.poster)\n this._videoElement.poster = option.poster\n }\n\n // 视频控制方法\n public play(): void {\n this._videoElement.play()\n }\n\n public pause(): void {\n this._videoElement.pause()\n }\n\n public setVolume(volume: number): void {\n this._videoElement.volume = Math.max(0, Math.min(1, volume))\n }\n\n public seek(time: number): void {\n this._videoElement.currentTime = time\n }\n\n public toggleMute(): void {\n this._videoElement.muted = !this._videoElement.muted\n }\n\n public get duration(): number {\n return this._videoElement.duration\n }\n\n public get currentTime(): number {\n return this._videoElement.currentTime\n }\n\n public get isPlaying(): boolean {\n return !this._videoElement.paused && !this._videoElement.ended\n }\n\n destroy(): void {\n this._group.clear()\n this.remove(this._group)\n // 清理DOM引用\n this._group.children.forEach((child: any) => {\n if (child.element && child.element.parentNode)\n child.element.parentNode.removeChild(child.element)\n })\n this._videoElement.pause()\n this._videoElement.src = ''\n this._videoElement.load() // 清理视频资源\n }\n}\n\nexport { VideoPanel }"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["ObjectLayer","_","Group","Vector3","createLabel","DEFAULT_OPTION","position","width","height","bgColor","borderRadius","closeable","padding","volume","src","autoplay","controls","loop","muted","poster","videoHeight","VideoPanel","_ObjectLayer","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","params","mergeWith","cloneDeep","_title","title","_width","_height","_bgColor","_position","_bgUrl","bgUrl","_className","className","_customStyle","customStyle","_borderRadius","_padding","_closeable","_autoplay","_controls","_loop","_muted","_poster","_volume","_src","_videoHeight","_videoWidth","videoWidth","_onClose","onClose","Object","assign","_videoElement","createVideoDom","_group","visible","init","_createClass","key","value","createBox","_this$_title","bgDom","createBgDom","videoContainer","document","createElement","headerDom","createHeaderDom","appendChild","bgObject","set","center","add","applyPosition","style","concat","overflow","backgroundColor","backgroundImage","backgroundSize","backgroundRepeat","boxSizing","display","_this$_title2","_this2","alignItems","justifyContent","titleDom","flex","textContent","_this$_title3","titleValue","titleStyle","_objectWithoutProperties","_excluded","_this$_title4","_this$_title5","closeDom","cursor","fontSize","color","pointerEvents","onclick","close","videoDom","objectFit","offset","arguments","length","undefined","Array","isArray","_this$_position","_slicedToArray","x","y","z","open","update","play","pause","setVolume","Math","max","min","seek","time","currentTime","toggleMute","get","duration","paused","ended","destroy","clear","remove","children","forEach","child","element","parentNode","removeChild","load"],"sources":["../../../src/business/VideoPanel/index.ts"],"sourcesContent":["/**\n * @file index.ts\n * @description 视频面板\n * @author xingwei\n * @createTime 2025-08-22\n * @lastEditTime 2025-08-22\n */\n\nimport ObjectLayer from \"../Base/ObjectLayer\";\nimport _ from 'lodash'\nimport { Group, Vector3, createLabel, CSS2DRenderer} from '@anov/3d-core'\nimport type {Option, TitleOption} from './type'\nimport { IPanel } from './type'\n\nconst DEFAULT_OPTION = {\n position: [0, 0, 0],\n width: 300,\n height: 200,\n bgColor: '#fff',\n borderRadius: 8,\n closeable: true,\n padding: '10px',\n volume: 0.5,\n src: '',\n autoplay: false,\n controls: false,\n loop: false,\n muted: false,\n poster: '',\n videoHeight: 150\n}\n\nclass VideoPanel extends ObjectLayer implements IPanel{\n private _title: TitleOption\n private _width: number\n private _height: number\n private _bgColor: string\n private _position: Array<number>\n private _borderRadius: number = 10\n private _bgUrl: string\n private _className: string\n private _customStyle: any\n private _closeable: boolean\n private _padding: string \n private _group: Group\n\n private _videoElement: HTMLVideoElement;\n private _src: string;\n private _autoplay: boolean;\n private _controls: boolean;\n private _loop: boolean;\n private _muted: boolean;\n private _poster?: string;\n private _volume: number;\n private _videoHeight: number;\n private _videoWidth: number;\n\n private _onClose: Function\n visible: boolean = false;\n\n constructor(option: Option) {\n super();\n const params = _.mergeWith(_.cloneDeep(DEFAULT_OPTION), option)\n const {\n title: _title,\n width: _width,\n height: _height,\n bgColor: _bgColor,\n position: _position,\n bgUrl: _bgUrl,\n className: _className,\n customStyle: _customStyle,\n borderRadius: _borderRadius,\n padding: _padding,\n closeable: _closeable,\n autoplay: _autoplay,\n controls: _controls,\n loop: _loop,\n muted: _muted,\n poster: _poster,\n volume: _volume,\n src: _src,\n videoHeight: _videoHeight,\n videoWidth: _videoWidth,\n onClose: _onClose\n } = params;\n\n Object.assign(this, {\n _videoWidth, _videoHeight, _title, _autoplay, _loop, _muted, _volume, _poster, _controls, _src, _width, _height, _bgColor, _position,\n _bgUrl, _className, _customStyle, _borderRadius, _padding,_closeable, _onClose\n });\n \n this._videoElement = this.createVideoDom();\n this._group = new Group()\n this._group.visible = this.visible\n this.init()\n }\n private init(){\n this.createBox()\n }\n\n\n private createBox(){\n // 使用 DocumentFragment 减少重排\n // const fragment = document.createDocumentFragment();\n const bgDom = this.createBgDom() //创建容器盒子\n const videoContainer = document.createElement('div');\n \n if(this._title?.value || this._closeable){\n const headerDom = this.createHeaderDom() //创建头部盒子\n bgDom.appendChild(headerDom)\n }\n videoContainer.appendChild(this._videoElement)\n bgDom.appendChild(videoContainer)\n\n const bgObject = createLabel(bgDom);\n bgObject.position.set(0, 0, 0);\n bgObject.center.set(0.5, 0.5);\n\n this._group.add(bgObject);\n\n this.add(this._group)\n this.applyPosition(); // 初始化自动定位\n }\n /** 创建背景 */\n private createBgDom(){\n //创建容器盒子\n const bgDom = document.createElement('div');\n Object.assign(bgDom.style, {\n width: `${this._width}px`,\n height: `${this._height}px`,\n // left: `${this._position[0]}px`,\n // top: `${this._position[1]}px`,\n overflow: 'hidden',\n padding: this._padding,\n borderRadius: this._bgUrl ? '' : `${this._borderRadius}px`,\n backgroundColor: this._bgUrl ? '' : this._bgColor,\n backgroundImage: this._bgUrl ? `url(${this._bgUrl})` : '',\n backgroundSize: this._bgUrl ? 'contain' : '',\n backgroundRepeat: this._bgUrl ? 'no-repeat' : '',\n boxSizing: 'border-box',\n display: 'flex',\n \n });\n \n if (this._className) bgDom.className = this._className;\n if (this._customStyle) Object.assign(bgDom.style, this._customStyle);\n return bgDom;\n }\n /** 创建头部 */\n private createHeaderDom(){\n const headerDom = document.createElement('div')\n headerDom.className = 'video-panel-header'\n headerDom.style.display = 'flex'\n headerDom.style.alignItems = 'center'\n headerDom.style.justifyContent = 'flex-end'\n if(this._title?.value) {\n // 创建标题\n const titleDom = document.createElement('p')\n titleDom.className = 'panel-title'\n titleDom.style.display = 'flex'\n titleDom.style.flex = '1'\n titleDom.textContent = this._title.value\n const {value: titleValue, ...titleStyle} = this._title\n // 正确设置样式的方式\n Object.assign(titleDom.style, titleStyle) //待测试\n\n headerDom.appendChild(titleDom)\n }\n \n // 创建关闭按钮\n if(this._closeable){\n const closeDom = document.createElement('div')\n closeDom.className = 'panel-close'\n closeDom.style.cursor = 'pointer'\n closeDom.style.fontSize = this._title?.fontSize\n closeDom.style.color = this._title?.color\n closeDom.textContent = 'x'\n closeDom.style.pointerEvents = 'auto'\n closeDom.onclick = () => {\n this.close()\n }\n \n headerDom.appendChild(closeDom)\n }\n return headerDom\n }\n private createVideoDom(){\n \n const videoDom = document.createElement('video');\n videoDom.style.width = this._videoWidth ? `${this._videoWidth}px` : '100%';\n videoDom.style.height = this._videoHeight ? `${this._videoHeight}px` : '100%';\n videoDom.style.objectFit = 'cover';\n videoDom.src = this._src;\n videoDom.autoplay = this._autoplay;\n videoDom.controls = this._controls;\n videoDom.loop = this._loop;\n videoDom.muted = this._muted;\n videoDom.volume = this._volume;\n\n if(this._poster) videoDom.poster = this._poster;\n return videoDom;\n }\n\n /** 自动定位面板 */\n private applyPosition(offset: Vector3 = new Vector3(0, 0, 0)) {\n if (Array.isArray(this._position)) {\n // 如果是数组 [x, y]\n const [x, y, z] = this._position;\n this._group.position.set(x, -y, z); // 注意y轴取反\n }\n }\n\n public open(){\n this.visible = true\n this._group.visible = true;\n\n // 同步 DOM 节点显示\n // this._group.children.forEach((child: any) => {\n // if (child.element) {\n // child.element.style.display = 'block';\n // }\n // });\n }\n public close(){\n this.visible = false\n this._group.visible = false;\n\n // 同步 DOM 节点隐藏\n // this._group.children.forEach((child: any) => {\n // if (child.element) {\n // child.element.style.display = 'none';\n // }\n // });\n if(this._onClose){\n this._onClose()\n }\n }\n public update(option: Option){\n if (option.src) {\n this._src = option.src;\n this._videoElement.src = option.src;\n }\n if (option.autoplay !== undefined) this._autoplay = option.autoplay;\n if (option.controls !== undefined) this._videoElement.controls = option.controls;\n if (option.loop !== undefined) this._videoElement.loop = option.loop;\n if (option.muted !== undefined) this._videoElement.muted = option.muted;\n if (option.volume !== undefined) this._videoElement.volume = option.volume;\n if (option.poster) this._videoElement.poster = option.poster;\n }\n\n // 视频控制方法\n public play(): void {\n this._videoElement.play();\n }\n\n public pause(): void {\n this._videoElement.pause();\n }\n\n public setVolume(volume: number): void {\n this._videoElement.volume = Math.max(0, Math.min(1, volume));\n }\n\n public seek(time: number): void {\n this._videoElement.currentTime = time;\n }\n\n public toggleMute(): void {\n this._videoElement.muted = !this._videoElement.muted;\n }\n\n public get duration(): number {\n return this._videoElement.duration;\n }\n\n public get currentTime(): number {\n return this._videoElement.currentTime;\n }\n\n public get isPlaying(): boolean {\n return !this._videoElement.paused && !this._videoElement.ended;\n }\n\n destroy(): void {\n this._group.clear();\n this.remove(this._group)\n // 清理DOM引用\n this._group.children.forEach((child: any) => {\n if (child.element && child.element.parentNode) {\n child.element.parentNode.removeChild(child.element);\n }\n });\n this._videoElement.pause();\n this._videoElement.src = '';\n this._videoElement.load(); // 清理视频资源\n }\n}\n\nexport {VideoPanel}"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Vector3 } from '@anov/3d-core';
|
|
2
2
|
export interface IPanel {
|
|
3
3
|
/** 打开面板 */
|
|
4
4
|
open: () => void;
|
|
@@ -8,21 +8,21 @@ export interface IPanel {
|
|
|
8
8
|
update: (option: Option) => void;
|
|
9
9
|
/** 销毁面板 */
|
|
10
10
|
destroy: () => void;
|
|
11
|
-
|
|
11
|
+
/**播放 */
|
|
12
12
|
play: () => void;
|
|
13
|
-
|
|
13
|
+
/**暂停 */
|
|
14
14
|
pause: () => void;
|
|
15
|
-
|
|
15
|
+
/**设置音量 */
|
|
16
16
|
setVolume: (volume: number) => void;
|
|
17
|
-
|
|
17
|
+
/**跳转 */
|
|
18
18
|
seek: (time: number) => void;
|
|
19
19
|
/** 切换静音 */
|
|
20
20
|
toggleMute: () => void;
|
|
21
|
-
|
|
21
|
+
/**获取视频时长 */
|
|
22
22
|
get duration(): number;
|
|
23
|
-
|
|
23
|
+
/**获取当前播放时间 */
|
|
24
24
|
get currentTime(): number;
|
|
25
|
-
|
|
25
|
+
/**获取是否播放中 */
|
|
26
26
|
get isPlaying(): boolean;
|
|
27
27
|
}
|
|
28
28
|
export type Option = Partial<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../src/business/VideoPanel/type.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../src/business/VideoPanel/type.ts"],"sourcesContent":["\nimport { Vector3 } from '@anov/3d-core'\n\nexport interface IPanel {\n /** 打开面板 */\n open: () => void;\n /** 关闭面板 */\n close: () => void;\n /** 更新面板 */\n update: (option: Option) => void;\n /** 销毁面板 */\n destroy: () => void;\n /**播放 */\n play: () => void;\n /**暂停 */\n pause: () => void;\n /**设置音量 */\n setVolume: (volume: number) => void;\n /**跳转 */\n seek: (time: number) => void;\n /** 切换静音 */\n toggleMute: () => void;\n /**获取视频时长 */\n get duration(): number;\n /**获取当前播放时间 */\n get currentTime(): number;\n /**获取是否播放中 */\n get isPlaying(): boolean;\n}\n\n// 面板配置项\nexport type Option = Partial<{\n title: TitleOption; // 标题\n position: Vector3; // 位置\n width: number | string; // 宽度\n height: number | string; // 高度\n bgColor: string; // 背景颜色\n bgUrl: string; // 背景图片\n borderRadius: number; // 圆角\n padding: string; // 内边距\n closeable: boolean; // 是否显示关闭按钮\n className: string; // 自定义类名\n customStyle: object; // 自定义样式\n autoplay: boolean; // 是否自动播放\n loop: boolean; // 是否循环播放\n controls: boolean; // 是否显示控制按钮\n muted: boolean; // 是否静音\n src: string; // 视频地址\n volume: number; // 音量\n poster: string; // 视频封面\n videoWidth: number; // 视频宽度\n videoHeight: number; // 视频高度\n onClose: () => void; // 关闭回调\n}>\n\n// 标题\nexport type TitleOption = Partial<{\n value: string;\n fontSize: string;\n color: string;\n fontFamily: string;\n fontWeight: number;\n lineHeight: number | string;\n textAlign: string;\n padding: string;\n margin: string;\n icon: string;\n}>"],"mappings":""}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { SceneControl } from '@anov/3d-core';
|
|
2
1
|
import { Object3D } from '@anov/3d-core';
|
|
3
2
|
import type { IWater } from './types';
|
|
4
3
|
export interface IWaterOption {
|
|
@@ -12,8 +11,7 @@ declare class Water extends Object3D implements IWater {
|
|
|
12
11
|
private _option;
|
|
13
12
|
private _mesh;
|
|
14
13
|
private _disposeCallback;
|
|
15
|
-
|
|
16
|
-
constructor(option: IWaterOption, sceneControl: SceneControl);
|
|
14
|
+
constructor(option: IWaterOption);
|
|
17
15
|
init(): void;
|
|
18
16
|
setSize(size: number): void;
|
|
19
17
|
/**
|
|
@@ -24,20 +24,18 @@ var DEFAULT_OPTION = {
|
|
|
24
24
|
sunColor: 0xFFFFFF,
|
|
25
25
|
distortionScale: 1.5,
|
|
26
26
|
alpha: 1.0,
|
|
27
|
-
doubleSided: true
|
|
27
|
+
doubleSided: true // 是否双面渲染
|
|
28
28
|
};
|
|
29
29
|
var Water = /*#__PURE__*/function (_Object3D) {
|
|
30
30
|
_inherits(Water, _Object3D);
|
|
31
31
|
var _super = _createSuper(Water);
|
|
32
|
-
function Water(option
|
|
32
|
+
function Water(option) {
|
|
33
33
|
var _this;
|
|
34
34
|
_classCallCheck(this, Water);
|
|
35
35
|
_this = _super.call(this);
|
|
36
36
|
_defineProperty(_assertThisInitialized(_this), "_option", void 0);
|
|
37
37
|
_defineProperty(_assertThisInitialized(_this), "_mesh", void 0);
|
|
38
38
|
_defineProperty(_assertThisInitialized(_this), "_disposeCallback", void 0);
|
|
39
|
-
_defineProperty(_assertThisInitialized(_this), "sceneControl", void 0);
|
|
40
|
-
_this.sceneControl = sceneControl;
|
|
41
39
|
_this._option = _objectSpread(_objectSpread({}, DEFAULT_OPTION), option || {});
|
|
42
40
|
_this.init();
|
|
43
41
|
return _this;
|
|
@@ -113,10 +111,12 @@ var Water = /*#__PURE__*/function (_Object3D) {
|
|
|
113
111
|
key: "update",
|
|
114
112
|
value: function update() {
|
|
115
113
|
var _this2 = this;
|
|
116
|
-
this._disposeCallback = use.useframeAfter(
|
|
114
|
+
this._disposeCallback = use.useframeAfter(function () {
|
|
117
115
|
if (_this2._mesh) _this2._mesh.material.uniforms.time.value += 1.0 / 60.0;
|
|
118
116
|
});
|
|
119
117
|
}
|
|
118
|
+
|
|
119
|
+
// 销毁
|
|
120
120
|
}, {
|
|
121
121
|
key: "destroy",
|
|
122
122
|
value: function destroy() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DoubleSide","Object3D","PlaneGeometry","RepeatWrapping","TextureLoader","Water","ThreeWater","Vector3","use","WaterImg","DEFAULT_OPTION","size","height","waterColor","fog","sunColor","distortionScale","alpha","doubleSided","_Object3D","_inherits","_super","_createSuper","option","
|
|
1
|
+
{"version":3,"names":["DoubleSide","Object3D","PlaneGeometry","RepeatWrapping","TextureLoader","Water","ThreeWater","Vector3","use","WaterImg","DEFAULT_OPTION","size","height","waterColor","fog","sunColor","distortionScale","alpha","doubleSided","_Object3D","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","_option","_objectSpread","init","_createClass","key","value","_this$_option","waterGeometry","water","textureWidth","textureHeight","waterNormals","load","texture","wrapS","wrapT","sunDirection","rotation","x","Math","PI","name","material","side","position","y","add","_mesh","setSize","console","warn","geometry","dispose","setHeight","getHeight","_this$_mesh$position$","_this$_mesh","update","_this2","_disposeCallback","useframeAfter","uniforms","time","destroy","remove"],"sources":["../../../src/business/Water/index.ts"],"sourcesContent":["import { DoubleSide, Object3D, PlaneGeometry, RepeatWrapping, TextureLoader, Water as ThreeWater, Vector3, use } from '@anov/3d-core'\nimport { WaterImg } from './types'\nimport type { IWater } from './types'\n\nexport interface IWaterOption {\n size?: number\n height?: number\n waterColor?: number\n doubleSided?: boolean // 是否双面渲染\n [key: string]: any\n}\n\nconst DEFAULT_OPTION = {\n size: 1000,\n height: 0,\n waterColor: 0x001E0F,\n fog: false,\n sunColor: 0xFFFFFF,\n distortionScale: 1.5,\n alpha: 1.0,\n doubleSided: true, // 是否双面渲染\n}\n\nclass Water extends Object3D implements IWater {\n private _option: IWaterOption\n private _mesh: ThreeWater\n private _disposeCallback: Function | null\n constructor(option: IWaterOption) {\n super()\n this._option = { ...DEFAULT_OPTION, ...(option || {}) }\n this.init()\n }\n\n init() {\n const { size, alpha, height, sunColor, waterColor, distortionScale } = this._option\n const waterGeometry = new PlaneGeometry(size, size)\n const water = new ThreeWater(waterGeometry, {\n textureWidth: 512,\n textureHeight: 512,\n waterNormals: new TextureLoader().load(WaterImg, (texture) => {\n texture.wrapS = texture.wrapT = RepeatWrapping\n }),\n alpha,\n sunDirection: new Vector3(),\n sunColor,\n waterColor,\n distortionScale,\n })\n water.rotation.x = -Math.PI / 2\n water.name = 'SYS_WATER'\n water.material.side = DoubleSide\n water.position.y = height\n\n this.add(water)\n this._mesh = water\n }\n\n setSize(size: number) {\n if (!this._mesh) {\n console.warn('Water not created')\n return\n }\n if (this._option.size === size)\n return\n this._option.size = size\n const geometry = new PlaneGeometry(size, size)\n this._mesh.geometry.dispose()\n this._mesh.geometry = geometry\n }\n\n /**\n * 设置当前高度\n */\n setHeight(height: number): void {\n if (!this._mesh) {\n console.warn('Water not created')\n return\n }\n this._mesh.position.y = height\n this._option.height = height\n }\n\n /**\n * 获取当前高度\n */\n getHeight(): number {\n return this._mesh?.position.y ?? 0\n }\n\n update() {\n this._disposeCallback = use.useframeAfter(() => {\n if (this._mesh)\n this._mesh.material.uniforms.time.value += 1.0 / 60.0\n })\n }\n\n // 销毁\n destroy() {\n this._disposeCallback && this._disposeCallback()\n this.remove(this._mesh)\n }\n}\n\nexport { Water }"],"mappings":"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"}
|
package/dist/business/index.d.ts
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export
|
|
17
|
-
export
|
|
18
|
-
export
|
|
19
|
-
export { Cylinder } from './Cylinder';
|
|
20
|
-
export { Plane } from './Plane';
|
|
21
|
-
export { Water } from './Water';
|
|
1
|
+
export * from './Poi';
|
|
2
|
+
export * from './Spline';
|
|
3
|
+
export * from './Area';
|
|
4
|
+
export * from './TrafficComponents';
|
|
5
|
+
export * from './Batch';
|
|
6
|
+
export * from './MaterialSwitch';
|
|
7
|
+
export * from './Flyline';
|
|
8
|
+
export * from './HeatMap';
|
|
9
|
+
export * from './Mark';
|
|
10
|
+
export * from './SplitBuilding';
|
|
11
|
+
export * from './InfoPanel';
|
|
12
|
+
export * from './VideoPanel';
|
|
13
|
+
export * from './Box';
|
|
14
|
+
export * from './Sphere';
|
|
15
|
+
export * from './Line';
|
|
16
|
+
export * from './Cylinder';
|
|
17
|
+
export * from './Plane';
|
|
18
|
+
export * from './Water';
|