@anov/3d-ability 0.0.165 → 0.0.166
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 +3 -2
- package/dist/business/Animation/motion/index.js +6 -1
- 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 +2 -1
- package/dist/business/Area/index.js +2 -2
- package/dist/business/Area/index.js.map +1 -1
- package/dist/business/Base/ObjectLayer.d.ts +4 -2
- package/dist/business/Base/ObjectLayer.js +7 -11
- 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 +3 -59
- package/dist/business/HeatMap/HeatMap.js +7 -95
- package/dist/business/HeatMap/HeatMap.js.map +1 -1
- package/dist/business/InfoPanel/index.d.ts +3 -4
- package/dist/business/InfoPanel/index.js +13 -19
- 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 +8 -7
- 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 +2 -1
- package/dist/business/Mark/index.js +3 -3
- package/dist/business/Mark/index.js.map +1 -1
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.d.ts +5 -3
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +14 -10
- 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 +3 -2
- 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 +2 -3
- package/dist/business/Poi/index.js +25 -54
- package/dist/business/Poi/index.js.map +1 -1
- package/dist/business/Poi/link/Cylinder.d.ts +2 -1
- 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 +2 -1
- 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 +2 -2
- 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 +7 -6
- 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 +2 -1
- package/dist/business/Poi/particle/DoubleCircle.js +3 -2
- package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
- package/dist/business/Poi/particle/DynamicCircle.d.ts +2 -1
- package/dist/business/Poi/particle/DynamicCircle.js +3 -2
- package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
- package/dist/business/Poi/particle/SingleCircle.d.ts +2 -1
- package/dist/business/Poi/particle/SingleCircle.js +3 -2
- 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 +2 -1
- 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 +2 -1
- 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 -1
- 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 +2 -1
- package/dist/business/Spline/index.js +14 -28
- 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 +6 -5
- 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 +4 -2
- 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 +11 -13
- 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 +3 -1
- package/dist/business/Water/index.js +5 -5
- package/dist/business/Water/index.js.map +1 -1
- package/dist/business/index.d.ts +21 -18
- 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 +2 -1
- 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 +3 -2
- package/dist/core/Controls/FirstViewControl/index.js +4 -2
- package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/index.d.ts +3 -2
- package/dist/core/Controls/ThirdViewControl/index.js +6 -3
- package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/camera.d.ts +4 -2
- package/dist/core/Controls/ThirdViewControl/player/camera.js +5 -2
- package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player.d.ts +4 -2
- package/dist/core/Controls/ThirdViewControl/player.js +6 -2
- package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
- package/dist/core/Controls/base.d.ts +4 -3
- package/dist/core/Controls/base.js +5 -3
- package/dist/core/Controls/base.js.map +1 -1
- package/dist/core/Curve/index.d.ts +2 -1
- 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 +5 -3
- package/dist/core/Material/index.js +3 -3
- package/dist/core/Material/index.js.map +1 -1
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.d.ts +2 -1
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +4 -4
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
- package/dist/core/PostEffects/addBrightnessContrastPass.d.ts +2 -1
- package/dist/core/PostEffects/addBrightnessContrastPass.js +4 -4
- package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
- package/dist/core/PostEffects/bloomPass.d.ts +2 -1
- package/dist/core/PostEffects/bloomPass.js +6 -5
- package/dist/core/PostEffects/bloomPass.js.map +1 -1
- package/dist/core/PostEffects/bloomSelect.d.ts +2 -2
- package/dist/core/PostEffects/bloomSelect.js +7 -6
- 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 +4 -13
- package/dist/core/PostEffects/index.js +14 -20
- package/dist/core/PostEffects/index.js.map +1 -1
- package/dist/core/PostEffects/outlinePass.d.ts +2 -2
- package/dist/core/PostEffects/outlinePass.js +4 -5
- 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 +2 -1
- package/dist/core/PostEffects/saoPass.js +4 -5
- package/dist/core/PostEffects/saoPass.js.map +1 -1
- package/dist/core/SceneEffect/grow/grow.d.ts +3 -1
- package/dist/core/SceneEffect/grow/grow.js +5 -3
- package/dist/core/SceneEffect/grow/grow.js.map +1 -1
- package/dist/core/WeatherSystem/DynamicWeatherSystem.d.ts +3 -1
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js +6 -4
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
- package/dist/core/WeatherSystem/color/index.d.ts +3 -0
- package/dist/core/WeatherSystem/color/index.js +9 -14
- package/dist/core/WeatherSystem/color/index.js.map +1 -1
- package/dist/core/WeatherSystem/controller/ColorController.d.ts +3 -1
- package/dist/core/WeatherSystem/controller/ColorController.js +5 -3
- package/dist/core/WeatherSystem/controller/ColorController.js.map +1 -1
- package/dist/core/WeatherSystem/controller/HDRController.d.ts +3 -1
- package/dist/core/WeatherSystem/controller/HDRController.js +5 -3
- package/dist/core/WeatherSystem/controller/HDRController.js.map +1 -1
- package/dist/core/WeatherSystem/controller/SkyController.d.ts +3 -1
- package/dist/core/WeatherSystem/controller/SkyController.js +4 -2
- package/dist/core/WeatherSystem/controller/SkyController.js.map +1 -1
- package/dist/core/WeatherSystem/hdr/index.d.ts +4 -2
- package/dist/core/WeatherSystem/hdr/index.js +12 -11
- package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
- package/dist/core/WeatherSystem/index.d.ts +3 -2
- package/dist/core/WeatherSystem/index.js +7 -4
- package/dist/core/WeatherSystem/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/index.d.ts +2 -1
- 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 +3 -1
- package/dist/core/WeatherSystem/objects/rain/lineRain.js +7 -5
- package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/plane.d.ts +3 -1
- package/dist/core/WeatherSystem/objects/rain/plane.js +6 -4
- package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/point.d.ts +3 -1
- package/dist/core/WeatherSystem/objects/rain/point.js +3 -0
- 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 +3 -2
- package/dist/core/WeatherSystem/weather/index.js +7 -5
- package/dist/core/WeatherSystem/weather/index.js.map +1 -1
- package/dist/index.d.ts +13 -8
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Curve, Object3D } from '@anov/3d-core';
|
|
1
|
+
import type { Curve, Object3D, SceneControl } from '@anov/3d-core';
|
|
2
2
|
import { CurvePath, Vector3 } from '@anov/3d-core';
|
|
3
3
|
type Option = Partial<{
|
|
4
4
|
speed: number;
|
|
@@ -12,7 +12,8 @@ type Points = [number, number, number];
|
|
|
12
12
|
type Path = Points[] | Curve<Vector3>;
|
|
13
13
|
declare class AnimationMotion {
|
|
14
14
|
moveManage: any;
|
|
15
|
-
|
|
15
|
+
private sceneControl;
|
|
16
|
+
constructor(object: Object3D, path: Path, option: Option, sceneControl: SceneControl);
|
|
16
17
|
getPath(points?: Points[]): CurvePath<Vector3>;
|
|
17
18
|
setSpeed(speed: Number): void;
|
|
18
19
|
play(): void;
|
|
@@ -24,11 +24,16 @@ var defaultOption = {
|
|
|
24
24
|
var AnimationMotion = /*#__PURE__*/function () {
|
|
25
25
|
function AnimationMotion(object, path) {
|
|
26
26
|
var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
27
|
+
var sceneControl = arguments.length > 3 ? arguments[3] : undefined;
|
|
27
28
|
_classCallCheck(this, AnimationMotion);
|
|
28
29
|
_defineProperty(this, "moveManage", void 0);
|
|
30
|
+
_defineProperty(this, "sceneControl", void 0);
|
|
31
|
+
this.sceneControl = sceneControl;
|
|
29
32
|
var curvePath;
|
|
30
33
|
if (Array.isArray(path)) curvePath = this.getPath(path);else curvePath = path;
|
|
31
|
-
this.moveManage = utils.moveWithLine(object, curvePath, _objectSpread(_objectSpread({}, defaultOption), option)
|
|
34
|
+
this.moveManage = utils.moveWithLine(object, curvePath, _objectSpread(_objectSpread(_objectSpread({}, defaultOption), option), {}, {
|
|
35
|
+
sceneControl: sceneControl
|
|
36
|
+
}));
|
|
32
37
|
}
|
|
33
38
|
_createClass(AnimationMotion, [{
|
|
34
39
|
key: "getPath",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CurvePath","LineCurve3","Vector3","utils","defaultOption","speed","duration","paused","repeat","yoyo","ease","AnimationMotion","object","path","option","arguments","length","undefined","_classCallCheck","_defineProperty","curvePath","Array","isArray","getPath","moveManage","moveWithLine","_objectSpread","_createClass","key","value","points","forEach","point","index","nextIndex","startPoint","fromArray","endPoint","line","add","setSpeed","play","continue","pause","stop","restart","_delete","remove"],"sources":["../../../../src/business/Animation/motion/index.ts"],"sourcesContent":["import type { Curve, Object3D } from '@anov/3d-core'\nimport { CurvePath, LineCurve3, Vector3, utils } from '@anov/3d-core'\n\ntype Option = Partial<{\n speed: number\n duration: number\n paused: boolean\n repeat: number\n yoyo: boolean\n ease: string\n}>\n\ntype Points = [number, number, number]\n\ntype Path = Points[] | Curve<Vector3>\n\n/**\n * 默认参数值\n * speed: 运行速度\n * duration: 运行总时长,当存在总时长时,优先总时长,忽略speed值\n */\nconst defaultOption: Option = {\n speed: 2,\n duration: null,\n paused: false,\n repeat: -1,\n yoyo: false,\n ease: 'power1.out',\n}\n\nclass AnimationMotion {\n moveManage: any\n constructor(object: Object3D, path: Path, option: Option = {}) {\n let curvePath\n if (Array.isArray(path))\n curvePath = this.getPath(path as Points[])\n else\n curvePath = path as Curve<Vector3>\n\n this.moveManage = utils.moveWithLine(object, curvePath, { ...defaultOption, ...option })\n }\n\n getPath(points: Points[] = []) {\n const curvePath = new CurvePath<Vector3>()\n if (points.length < 2) {\n // 如果点数少于两个,返回空的 CurvePath\n return curvePath\n }\n\n points.forEach((point, index) => {\n const nextIndex = (index + 1) % points.length\n const startPoint = new Vector3().fromArray(point)\n const endPoint = new Vector3().fromArray(points[nextIndex])\n const line = new LineCurve3(startPoint, endPoint)\n curvePath.add(line)\n })\n return curvePath\n }\n\n setSpeed(speed: Number) {\n this.moveManage.setSpeed(speed)\n }\n\n play() {\n this.moveManage.continue()\n }\n\n pause() {\n this.moveManage.stop()\n }\n\n restart() {\n this.moveManage.restart()\n }\n\n delete() {\n this.moveManage.remove()\n }\n}\n\nexport default AnimationMotion"],"mappings":";;;;;;;;;AACA,SAASA,SAAS,EAAEC,UAAU,EAAEC,OAAO,EAAEC,KAAK,QAAQ,eAAe;AAerE;AACA;AACA;AACA;AACA;AACA,IAAMC,aAAqB,GAAG;EAC5BC,KAAK,EAAE,CAAC;EACRC,QAAQ,EAAE,IAAI;EACdC,MAAM,EAAE,KAAK;EACbC,MAAM,EAAE,CAAC,CAAC;EACVC,IAAI,EAAE,KAAK;EACXC,IAAI,EAAE;AACR,CAAC;AAAA,IAEKC,eAAe;
|
|
1
|
+
{"version":3,"names":["CurvePath","LineCurve3","Vector3","utils","defaultOption","speed","duration","paused","repeat","yoyo","ease","AnimationMotion","object","path","option","arguments","length","undefined","sceneControl","_classCallCheck","_defineProperty","curvePath","Array","isArray","getPath","moveManage","moveWithLine","_objectSpread","_createClass","key","value","points","forEach","point","index","nextIndex","startPoint","fromArray","endPoint","line","add","setSpeed","play","continue","pause","stop","restart","_delete","remove"],"sources":["../../../../src/business/Animation/motion/index.ts"],"sourcesContent":["import type { Curve, Object3D, SceneControl } from '@anov/3d-core'\nimport { CurvePath, LineCurve3, Vector3, utils } from '@anov/3d-core'\n\ntype Option = Partial<{\n speed: number\n duration: number\n paused: boolean\n repeat: number\n yoyo: boolean\n ease: string\n}>\n\ntype Points = [number, number, number]\n\ntype Path = Points[] | Curve<Vector3>\n\n/**\n * 默认参数值\n * speed: 运行速度\n * duration: 运行总时长,当存在总时长时,优先总时长,忽略speed值\n */\nconst defaultOption: Option = {\n speed: 2,\n duration: null,\n paused: false,\n repeat: -1,\n yoyo: false,\n ease: 'power1.out',\n}\n\nclass AnimationMotion {\n moveManage: any\n private sceneControl: SceneControl\n\n constructor(object: Object3D, path: Path, option: Option = {}, sceneControl: SceneControl) {\n this.sceneControl = sceneControl\n let curvePath\n if (Array.isArray(path))\n curvePath = this.getPath(path as Points[])\n else\n curvePath = path as Curve<Vector3>\n\n this.moveManage = utils.moveWithLine(object, curvePath, { ...defaultOption, ...option, sceneControl })\n }\n\n getPath(points: Points[] = []) {\n const curvePath = new CurvePath<Vector3>()\n if (points.length < 2) {\n // 如果点数少于两个,返回空的 CurvePath\n return curvePath\n }\n\n points.forEach((point, index) => {\n const nextIndex = (index + 1) % points.length\n const startPoint = new Vector3().fromArray(point)\n const endPoint = new Vector3().fromArray(points[nextIndex])\n const line = new LineCurve3(startPoint, endPoint)\n curvePath.add(line)\n })\n return curvePath\n }\n\n setSpeed(speed: Number) {\n this.moveManage.setSpeed(speed)\n }\n\n play() {\n this.moveManage.continue()\n }\n\n pause() {\n this.moveManage.stop()\n }\n\n restart() {\n this.moveManage.restart()\n }\n\n delete() {\n this.moveManage.remove()\n }\n}\n\nexport default AnimationMotion"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Mesh,
|
|
1
|
+
import type { Mesh, Vector3 } from '@anov/3d-core';
|
|
2
2
|
import ObjectLayer from '../../Base/ObjectLayer';
|
|
3
3
|
import type { FenceOption } from '../type';
|
|
4
4
|
declare class FenceBase extends ObjectLayer {
|
|
@@ -13,7 +13,7 @@ declare class FenceBase extends ObjectLayer {
|
|
|
13
13
|
_option: FenceOption;
|
|
14
14
|
_listeners: Set<unknown>;
|
|
15
15
|
private _areaInstance;
|
|
16
|
-
constructor(option: FenceOption, _areaInstance:
|
|
16
|
+
constructor(option: FenceOption, _areaInstance: any);
|
|
17
17
|
get mesh(): Mesh<import("@anov/3d-core").BufferGeometry<import("@anov/3d-core").NormalBufferAttributes>, import("@anov/3d-core").Material | import("@anov/3d-core").Material[], import("@anov/3d-core").Object3DEventMap>;
|
|
18
18
|
get uri(): string;
|
|
19
19
|
set uri(value: string);
|
|
@@ -20,7 +20,7 @@ var FenceBase = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
20
20
|
function FenceBase(option, _areaInstance) {
|
|
21
21
|
var _this;
|
|
22
22
|
_classCallCheck(this, FenceBase);
|
|
23
|
-
_this = _super.call(this);
|
|
23
|
+
_this = _super.call(this, _areaInstance.sceneControl);
|
|
24
24
|
_defineProperty(_assertThisInitialized(_this), "_mesh", void 0);
|
|
25
25
|
_defineProperty(_assertThisInitialized(_this), "_height", void 0);
|
|
26
26
|
_defineProperty(_assertThisInitialized(_this), "_alpha", void 0);
|
|
@@ -1 +1 @@
|
|
|
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","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 // 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 // childrens.forEach((item, index) => {\n const uniforms = ((this._mesh 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 // childrens.forEach((item, index) => {\n const uniforms = ((this._mesh 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":"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"}
|
|
1
|
+
{"version":3,"names":["ObjectLayer","hexToRGBA","parseRGBA","FenceBase","_ObjectLayer","_inherits","_super","_createSuper","option","_areaInstance","_this","_classCallCheck","call","sceneControl","_defineProperty","_assertThisInitialized","Set","_option","_initParams","_createClass","key","get","_mesh","_uri","set","value","_this2","_listeners","forEach","cb","_height","newValue","_this3","_color","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: any\n constructor(option: FenceOption, _areaInstance: any) {\n super(_areaInstance.sceneControl)\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 // 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 // childrens.forEach((item, index) => {\n const uniforms = ((this._mesh 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 // childrens.forEach((item, index) => {\n const uniforms = ((this._mesh 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":"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"}
|
|
@@ -61,7 +61,7 @@ var Fence_Base_01 = /*#__PURE__*/function (_FenceBase) {
|
|
|
61
61
|
// },
|
|
62
62
|
// material,
|
|
63
63
|
// )
|
|
64
|
-
use.useframe(function () {
|
|
64
|
+
use.useframe(this.sceneControl, function () {
|
|
65
65
|
// mesh.children.forEach((item, index) => {
|
|
66
66
|
// const uniforms = ((item as Mesh).material as ShaderMaterial).uniforms
|
|
67
67
|
// uniforms.iTime.value += 0.01
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ShaderMaterial","use","createRoundedClosedWallMesh","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","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 {
|
|
1
|
+
{"version":3,"names":["ShaderMaterial","use","createRoundedClosedWallMesh","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","sceneControl","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 { ShaderMaterial, use } from '@anov/3d-core'\nimport { createRoundLineWallMesh, createRoundedClosedWallMesh } from '../../Utils/round-curve'\n\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 = createRoundedClosedWallMesh(\n points,\n {\n radius,\n height,\n close,\n },\n material,\n )\n // const mesh = createRoundLineWallMesh(\n // points,\n // {\n // radius,\n // height,\n // close,\n // },\n // material,\n // )\n use.useframe(this.sceneControl, () => {\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 const uniforms = ((mesh as Mesh).material as ShaderMaterial).uniforms\n uniforms.iTime.value += 0.01\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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"}
|
|
@@ -60,7 +60,7 @@ var Fence_Feeting_01 = /*#__PURE__*/function (_FenceBase) {
|
|
|
60
60
|
// },
|
|
61
61
|
// material,
|
|
62
62
|
// )
|
|
63
|
-
use.useframe(function () {
|
|
63
|
+
use.useframe(this.sceneControl, function () {
|
|
64
64
|
// mesh.children.forEach((item, index) => {
|
|
65
65
|
// const uniforms = ((item as Mesh).material as ShaderMaterial).uniforms
|
|
66
66
|
// uniforms.iTime.value += 0.01
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ShaderMaterial","use","createRoundedClosedWallMesh","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","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, createRoundedClosedWallMesh } 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 // 创建围栏使用的材质,调用createFenceMaterial方法生成ShaderMaterial类型的材质\n const material = this.createFenceMaterial(height, color, alpha)\n\n // 使用createRoundLineWallMesh函数创建围栏的网格物体,传入点数组、半径、高度、是否闭合等参数以及创建好的材质\n const mesh = createRoundedClosedWallMesh(\n points,\n {\n radius,\n height,\n close,\n },\n material,\n )\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 const uniforms = ((mesh as Mesh).material as ShaderMaterial).uniforms\n uniforms.iTime.value += 0.002\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
|
+
{"version":3,"names":["ShaderMaterial","use","createRoundedClosedWallMesh","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","sceneControl","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, createRoundedClosedWallMesh } 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 // 创建围栏使用的材质,调用createFenceMaterial方法生成ShaderMaterial类型的材质\n const material = this.createFenceMaterial(height, color, alpha)\n\n // 使用createRoundLineWallMesh函数创建围栏的网格物体,传入点数组、半径、高度、是否闭合等参数以及创建好的材质\n const mesh = createRoundedClosedWallMesh(\n points,\n {\n radius,\n height,\n close,\n },\n material,\n )\n // const mesh = createRoundLineWallMesh(\n // points,\n // {\n // radius,\n // height,\n // close,\n // },\n // material,\n // )\n use.useframe(this.sceneControl, () => {\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 const uniforms = ((mesh as Mesh).material as ShaderMaterial).uniforms\n uniforms.iTime.value += 0.002\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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"}
|
|
@@ -60,7 +60,7 @@ var Fence_Roll_01 = /*#__PURE__*/function (_FenceBase) {
|
|
|
60
60
|
// },
|
|
61
61
|
// material,
|
|
62
62
|
// )
|
|
63
|
-
use.useframe(function () {
|
|
63
|
+
use.useframe(this.sceneControl, function () {
|
|
64
64
|
// mesh.children.forEach((item, index) => {
|
|
65
65
|
// const uniforms = ((item as Mesh).material as ShaderMaterial).uniforms
|
|
66
66
|
// uniforms.iTime.value += 0.01
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ShaderMaterial","use","createRoundedClosedWallMesh","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","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, createRoundedClosedWallMesh } 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 // 创建围栏使用的材质,调用createFenceMaterial方法生成ShaderMaterial类型的材质\n const material = this.createFenceMaterial(height, color, alpha)\n\n // 使用createRoundLineWallMesh函数创建围栏的网格物体,传入点数组、半径、高度、是否闭合等参数以及创建好的材质\n const mesh = createRoundedClosedWallMesh(\n points,\n {\n radius,\n height,\n close,\n },\n material,\n )\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 const uniforms = ((mesh as Mesh).material as ShaderMaterial).uniforms\n uniforms.iTime.value += 0.002\n })\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":";;;;;;;;;;;;;AACA,SAAgBA,cAAc,EAAEC,GAAG,QAAQ,eAAe;AAC1D,SAAkCC,2BAA2B;AAE7D,SAASC,SAAS,EAAEC,SAAS;AAC7B,OAAOC,SAAS;AAAmB,IAE7BC,aAAa,0BAAAC,UAAA;EAAAC,SAAA,CAAAF,aAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,aAAA;EACjB,SAAAA,cAAYK,MAAmB,EAAEC,YAAsB,EAAE;IAAA,IAAAC,KAAA;IAAAC,eAAA,OAAAR,aAAA;IACvDO,KAAA,GAAAJ,MAAA,CAAAM,IAAA,OAAMJ,MAAM,EAAEC,YAAY;IAC1BC,KAAA,CAAKG,MAAM,CAAC,CAAC;IAAA,OAAAH,KAAA;EACf;EAACI,YAAA,CAAAX,aAAA;IAAAY,GAAA;IAAAC,KAAA,EAED,SAAAH,OAAA,EAAS;MACP,IAAI,CAACI,KAAK,GAAG,IAAI,CAACC,eAAe,CAC/B,IAAI,CAACC,OAAO,EACZ,IAAI,CAACC,OAAO,EACZ,IAAI,CAACC,MAAM,EACX,IAAI,CAACC,OAAO,EACZ,IAAI,CAACC,MAAM,EACX,IAAI,CAACC,MACP,CAAC;MACD,IAAI,CAACP,KAAK,IAAI,IAAI,CAACQ,GAAG,CAAC,IAAI,CAACR,KAAK,CAAC;IACpC;;IAEA;EAAA;IAAAF,GAAA;IAAAC,KAAA,EACA,SAAAE,gBAAgBQ,MAAiB,EAA0E;MAAA,IAAxEC,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;MAAA,IAAEG,KAAK,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;MAAA,IAAEI,MAAc,GAAAJ,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;MAAA,IAAEG,KAAa,GAAAL,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;MAAA,IAAEI,KAAa,GAAAN,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;MACvG,IAAI,CAACJ,MAAM,EACT;MACF;MACA,IAAMS,QAAQ,GAAG,IAAI,CAACC,mBAAmB,CAACJ,MAAM,EAAEC,KAAK,EAAEC,KAAK,CAAC;;MAE/D;MACA,IAAMG,IAAI,GAAGtC,2BAA2B,CACtC2B,MAAM,EACN;QACEC,MAAM,EAANA,MAAM;QACNK,MAAM,EAANA,MAAM;QACND,KAAK,EAALA;MACF,CAAC,EACDI,QACF,CAAC;MACD;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACArC,GAAG,CAACwC,QAAQ,CAAC,YAAM;
|
|
1
|
+
{"version":3,"names":["ShaderMaterial","use","createRoundedClosedWallMesh","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","sceneControl","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, createRoundedClosedWallMesh } 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 // 创建围栏使用的材质,调用createFenceMaterial方法生成ShaderMaterial类型的材质\n const material = this.createFenceMaterial(height, color, alpha)\n\n // 使用createRoundLineWallMesh函数创建围栏的网格物体,传入点数组、半径、高度、是否闭合等参数以及创建好的材质\n const mesh = createRoundedClosedWallMesh(\n points,\n {\n radius,\n height,\n close,\n },\n material,\n )\n // const mesh = createRoundLineWallMesh(\n // points,\n // {\n // radius,\n // height,\n // close,\n // },\n // material,\n // )\n use.useframe(this.sceneControl, () => {\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 const uniforms = ((mesh as Mesh).material as ShaderMaterial).uniforms\n uniforms.iTime.value += 0.002\n })\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,4 +1,4 @@
|
|
|
1
|
-
import type { Line2, Mesh,
|
|
1
|
+
import type { Line2, Mesh, Vector3 } from '@anov/3d-core';
|
|
2
2
|
import ObjectLayer from '../../Base/ObjectLayer';
|
|
3
3
|
import type { FillAreaOption } from '../type';
|
|
4
4
|
declare class FillAreaBase extends ObjectLayer {
|
|
@@ -12,7 +12,7 @@ declare class FillAreaBase extends ObjectLayer {
|
|
|
12
12
|
_option: FillAreaOption;
|
|
13
13
|
_listeners: Set<unknown>;
|
|
14
14
|
private _areaInstance;
|
|
15
|
-
constructor(option: FillAreaOption, areaInstance:
|
|
15
|
+
constructor(option: FillAreaOption, areaInstance: any);
|
|
16
16
|
get mesh(): Mesh<import("@anov/3d-core").BufferGeometry<import("@anov/3d-core").NormalBufferAttributes>, import("@anov/3d-core").Material | import("@anov/3d-core").Material[], import("@anov/3d-core").Object3DEventMap> | Line2;
|
|
17
17
|
get uri(): string;
|
|
18
18
|
set uri(value: string);
|
|
@@ -20,7 +20,7 @@ var FillAreaBase = /*#__PURE__*/function (_ObjectLayer) {
|
|
|
20
20
|
function FillAreaBase(option, areaInstance) {
|
|
21
21
|
var _this;
|
|
22
22
|
_classCallCheck(this, FillAreaBase);
|
|
23
|
-
_this = _super.call(this);
|
|
23
|
+
_this = _super.call(this, areaInstance.sceneControl);
|
|
24
24
|
_defineProperty(_assertThisInitialized(_this), "_mesh", void 0);
|
|
25
25
|
_defineProperty(_assertThisInitialized(_this), "_alpha", void 0);
|
|
26
26
|
_defineProperty(_assertThisInitialized(_this), "_color", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Color","ObjectLayer","FillAreaBase","_ObjectLayer","_inherits","_super","_createSuper","option","areaInstance","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","Set","_option","_initParams","_areaInstance","_createClass","key","get","_mesh","_uri","set","value","_this2","_listeners","forEach","cb","_alpha","newValue","material","opacity","_color","color","_corner","_close","alpha","close","corner","_points","points","uri","_delete","remove","removeFromParent","dispose","delete","clear","addReloadListener","callback","add"],"sources":["../../../../src/business/Area/FillArea/FillAreaBase.ts"],"sourcesContent":["import type { Line2, Mesh, MeshBasicMaterial, Object3D, Vector3 } from '@anov/3d-core'\nimport { Color } from '@anov/3d-core'\n\nimport _ from 'lodash'\nimport ObjectLayer from '../../Base/ObjectLayer'\nimport type { FillAreaOption } from '../type'\n\nclass FillAreaBase extends ObjectLayer {\n public _mesh!: Mesh | Line2\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: FillAreaOption\n public _listeners = new Set()\n\n private _areaInstance: Object3D\n\n constructor(option: FillAreaOption, areaInstance:
|
|
1
|
+
{"version":3,"names":["Color","ObjectLayer","FillAreaBase","_ObjectLayer","_inherits","_super","_createSuper","option","areaInstance","_this","_classCallCheck","call","sceneControl","_defineProperty","_assertThisInitialized","Set","_option","_initParams","_areaInstance","_createClass","key","get","_mesh","_uri","set","value","_this2","_listeners","forEach","cb","_alpha","newValue","material","opacity","_color","color","_corner","_close","alpha","close","corner","_points","points","uri","_delete","remove","removeFromParent","dispose","delete","clear","addReloadListener","callback","add"],"sources":["../../../../src/business/Area/FillArea/FillAreaBase.ts"],"sourcesContent":["import type { Line2, Mesh, MeshBasicMaterial, Object3D, Vector3 } from '@anov/3d-core'\nimport { Color } from '@anov/3d-core'\n\nimport _ from 'lodash'\nimport ObjectLayer from '../../Base/ObjectLayer'\nimport type { FillAreaOption } from '../type'\nimport { Area } from '..'\n\nclass FillAreaBase extends ObjectLayer {\n public _mesh!: Mesh | Line2\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: FillAreaOption\n public _listeners = new Set()\n\n private _areaInstance: Object3D\n\n constructor(option: FillAreaOption, areaInstance: any) {\n super(areaInstance.sceneControl)\n this._option = option\n // 属性赋值\n this._initParams(option)\n this._areaInstance = areaInstance\n // 属性赋值\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 alpha property\n get alpha(): number {\n return this._alpha\n }\n\n set alpha(newValue: number) {\n if (this._alpha === newValue)\n return\n\n this._alpha = newValue\n if (this._mesh)\n (this._mesh.material as MeshBasicMaterial).opacity = newValue\n }\n\n // Getter and Setter for color property\n get color(): string {\n return this._color\n }\n\n set color(newValue: string) {\n if (this._color === newValue)\n return\n\n this._color = newValue\n if (this._mesh)\n (this._mesh.material as MeshBasicMaterial).color = new Color(newValue)\n }\n\n get corner(): number {\n return this._corner\n }\n\n set corner(newValue: number) {\n if (this._corner === newValue)\n return\n\n this._corner = newValue\n }\n\n get close(): boolean {\n return this._close\n }\n\n set close(newValue: boolean) {\n if (this._close === newValue)\n return\n\n this._close = newValue\n }\n\n _initParams(option: FillAreaOption) {\n this._alpha = option.alpha\n this._color = option.color\n this._close = option.close\n this._corner = option.corner\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 FillAreaBase"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SceneControl } from '@anov/3d-core';
|
|
1
2
|
import { Group } from '@anov/3d-core';
|
|
2
3
|
import ObjectLayer from '../Base/ObjectLayer';
|
|
3
4
|
import type { FenceOption, FillAreaOption, Option } from './type';
|
|
@@ -18,7 +19,7 @@ declare class Area extends ObjectLayer {
|
|
|
18
19
|
private _points;
|
|
19
20
|
private _corner;
|
|
20
21
|
private _close;
|
|
21
|
-
constructor(option: Option);
|
|
22
|
+
constructor(option: Option, sceneControl: SceneControl);
|
|
22
23
|
get mesh(): Group<import("@anov/3d-core").Object3DEventMap>;
|
|
23
24
|
get style(): string;
|
|
24
25
|
get fence(): FenceOption;
|
|
@@ -172,10 +172,10 @@ var STYLE_DATA = {
|
|
|
172
172
|
var Area = /*#__PURE__*/function (_ObjectLayer) {
|
|
173
173
|
_inherits(Area, _ObjectLayer);
|
|
174
174
|
var _super = _createSuper(Area);
|
|
175
|
-
function Area(option) {
|
|
175
|
+
function Area(option, sceneControl) {
|
|
176
176
|
var _this;
|
|
177
177
|
_classCallCheck(this, Area);
|
|
178
|
-
_this = _super.call(this);
|
|
178
|
+
_this = _super.call(this, sceneControl);
|
|
179
179
|
_defineProperty(_assertThisInitialized(_this), "_mesh", void 0);
|
|
180
180
|
_defineProperty(_assertThisInitialized(_this), "_option", void 0);
|
|
181
181
|
_defineProperty(_assertThisInitialized(_this), "_fenceMesh", void 0);
|