@anov/3d-ability 0.0.63 → 0.0.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/business/Area/BaseClass.d.ts +62 -0
  2. package/dist/business/Area/BaseClass.js +457 -0
  3. package/dist/business/Area/BaseClass.js.map +1 -0
  4. package/dist/business/Area/Fence/FenceBase.d.ts +26 -0
  5. package/dist/business/Area/Fence/FenceBase.js +106 -0
  6. package/dist/business/Area/Fence/FenceBase.js.map +1 -0
  7. package/dist/business/Area/Fence/fence_base_01.d.ts +17 -0
  8. package/dist/business/Area/Fence/fence_base_01.js +159 -0
  9. package/dist/business/Area/Fence/fence_base_01.js.map +1 -0
  10. package/dist/business/Area/Fence/fence_feeting_01.d.ts +17 -0
  11. package/dist/business/Area/Fence/fence_feeting_01.js +158 -0
  12. package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -0
  13. package/dist/business/Area/Fence/fence_roll_01.d.ts +17 -0
  14. package/dist/business/Area/Fence/fence_roll_01.js +158 -0
  15. package/dist/business/Area/Fence/fence_roll_01.js.map +1 -0
  16. package/dist/business/Area/FillArea/FillAreaBase.d.ts +22 -0
  17. package/dist/business/Area/FillArea/FillAreaBase.js +92 -0
  18. package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -0
  19. package/dist/business/Area/FillArea/fillArea_face_01.d.ts +16 -0
  20. package/dist/business/Area/FillArea/fillArea_face_01.js +112 -0
  21. package/dist/business/Area/FillArea/fillArea_face_01.js.map +1 -0
  22. package/dist/business/Area/FillArea/fillArea_line_01.d.ts +14 -0
  23. package/dist/business/Area/FillArea/fillArea_line_01.js +98 -0
  24. package/dist/business/Area/FillArea/fillArea_line_01.js.map +1 -0
  25. package/dist/business/Area/index.d.ts +6 -0
  26. package/dist/business/Area/index.js +28 -0
  27. package/dist/business/Area/index.js.map +1 -0
  28. package/dist/business/Area/strategy.d.ts +7 -0
  29. package/dist/business/Area/strategy.js +107 -0
  30. package/dist/business/Area/strategy.js.map +1 -0
  31. package/dist/business/Area/type.d.ts +41 -0
  32. package/dist/business/Area/type.js +2 -0
  33. package/dist/business/Area/type.js.map +1 -0
  34. package/dist/business/Base/ObjectLayer.d.ts +1 -0
  35. package/dist/business/Base/ObjectLayer.js +14 -0
  36. package/dist/business/Base/ObjectLayer.js.map +1 -1
  37. package/dist/business/Batch/index.d.ts +23 -0
  38. package/dist/business/Batch/index.js +127 -0
  39. package/dist/business/Batch/index.js.map +1 -0
  40. package/dist/business/Batch/type.d.ts +12 -0
  41. package/dist/business/Batch/type.js +2 -0
  42. package/dist/business/Batch/type.js.map +1 -0
  43. package/dist/business/Poi/Plane/index.d.ts +15 -2
  44. package/dist/business/Poi/Plane/index.js +85 -20
  45. package/dist/business/Poi/Plane/index.js.map +1 -1
  46. package/dist/business/Poi/Plane/link/Cylinder.d.ts +1 -1
  47. package/dist/business/Poi/Plane/link/Cylinder.js +1 -1
  48. package/dist/business/Poi/Plane/link/Cylinder.js.map +1 -1
  49. package/dist/business/Poi/Plane/link/Pyramid.d.ts +1 -1
  50. package/dist/business/Poi/Plane/link/Pyramid.js +4 -2
  51. package/dist/business/Poi/Plane/link/Pyramid.js.map +1 -1
  52. package/dist/business/Poi/Plane/particle/SingleCircle.js +4 -5
  53. package/dist/business/Poi/Plane/particle/SingleCircle.js.map +1 -1
  54. package/dist/business/Poi/Plane/title/Border.js +1 -1
  55. package/dist/business/Poi/Plane/title/Border.js.map +1 -1
  56. package/dist/business/Poi/Plane/title/Ellipse.js +1 -1
  57. package/dist/business/Poi/Plane/title/Ellipse.js.map +1 -1
  58. package/dist/business/Poi/Plane/title/index.d.ts +14 -0
  59. package/dist/business/Poi/Plane/title/index.js +59 -3
  60. package/dist/business/Poi/Plane/title/index.js.map +1 -1
  61. package/dist/business/Poi/Plane/types.d.ts +17 -14
  62. package/dist/business/Poi/Plane/types.js.map +1 -1
  63. package/dist/business/Poi/Utils/tools.js +3 -2
  64. package/dist/business/Poi/Utils/tools.js.map +1 -1
  65. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.d.ts +3 -13
  66. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +23 -36
  67. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
  68. package/dist/business/TrafficComponents/RealismTraffic/index.d.ts +0 -1
  69. package/dist/business/TrafficComponents/RealismTraffic/index.js +0 -1
  70. package/dist/business/TrafficComponents/RealismTraffic/index.js.map +1 -1
  71. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.d.ts +57 -0
  72. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +197 -0
  73. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -0
  74. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.d.ts +1 -0
  75. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +2 -0
  76. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -0
  77. package/dist/business/TrafficComponents/StreamerTraffic/index.d.ts +11 -0
  78. package/dist/business/TrafficComponents/StreamerTraffic/index.js +2 -0
  79. package/dist/business/TrafficComponents/StreamerTraffic/index.js.map +1 -0
  80. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.d.ts +1 -0
  81. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +2 -0
  82. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -0
  83. package/dist/business/TrafficComponents/base.d.ts +22 -0
  84. package/dist/business/TrafficComponents/base.js +64 -0
  85. package/dist/business/TrafficComponents/base.js.map +1 -0
  86. package/dist/business/TrafficComponents/index.d.ts +1 -0
  87. package/dist/business/TrafficComponents/index.js +1 -0
  88. package/dist/business/TrafficComponents/index.js.map +1 -1
  89. package/dist/business/TrafficComponents/{RealismTraffic/utils.d.ts → utils.d.ts} +1 -1
  90. package/dist/business/TrafficComponents/{RealismTraffic/utils.js → utils.js} +1 -1
  91. package/dist/business/TrafficComponents/utils.js.map +1 -0
  92. package/dist/business/index.d.ts +2 -0
  93. package/dist/business/index.js +2 -0
  94. package/dist/business/index.js.map +1 -1
  95. package/dist/core/Light/PointLight/PointLightExt.d.ts +5 -0
  96. package/dist/core/Light/PointLight/PointLightExt.js +25 -0
  97. package/dist/core/Light/PointLight/PointLightExt.js.map +1 -0
  98. package/dist/core/Light/PointLight/index.d.ts +2 -0
  99. package/dist/core/Light/PointLight/index.js +2 -0
  100. package/dist/core/Light/PointLight/index.js.map +1 -0
  101. package/dist/core/Light/index.d.ts +0 -0
  102. package/dist/core/Light/index.js +2 -0
  103. package/dist/core/Light/index.js.map +1 -0
  104. package/dist/core/PostEffects/outlinePass.d.ts +7 -16
  105. package/dist/core/PostEffects/outlinePass.js +42 -52
  106. package/dist/core/PostEffects/outlinePass.js.map +1 -1
  107. package/dist/core/WeatherSystem/sky/index.js +6 -2
  108. package/dist/core/WeatherSystem/sky/index.js.map +1 -1
  109. package/package.json +3 -3
  110. package/dist/business/TrafficComponents/RealismTraffic/utils.js.map +0 -1
@@ -0,0 +1 @@
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","depthTest","road","add","run","push","clock","_control","useframe","getElapsedTime","_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 depthTest: false,\n })\n\n const road = new Mesh(geometry, material)\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 this._control.forEach((control) => {\n control()\n })\n\n return super.removeFromParent()\n }\n}"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const fragmentShader = "\nvarying vec2 vUv;\nuniform float uSpeed;\nuniform float uTime;\nuniform vec2 uFade;\nuniform vec3 uColor;\nuniform int uNumLines;\nuniform float uOffset;\nuniform float ulength;\nuniform float uReverse;\n\nvoid main() {\n vec3 color = uColor;\n float s = 0.0;\n float v = 0.0;\n float alpha = 0.0;\n\n s = (-uTime * uSpeed) / ulength;\n s = mod(s, 1.0);\n\n float direction = (uReverse == 1.0) ? -1.0 : 1.0;\n\n for (int i = 0; i < uNumLines; i++) {\n float start = float(i) / float(uNumLines);\n start += uOffset;\n v = vUv.x * direction + start;\n\n float d = mod((v + s), 1.0);\n float widthFactor = smoothstep(0.1, 0.5, abs(vUv.y - 0.5));\n if (d <= uFade.y) {\n float tempAlpha = smoothstep(uFade.x, uFade.y, d);\n alpha = max(alpha, tempAlpha);\n }\n\n alpha *= widthFactor;\n }\n\n if (alpha < 0.0001) {\n discard;\n }\n\n gl_FragColor = vec4(color, alpha);\n}\n ";
@@ -0,0 +1,2 @@
1
+ export var fragmentShader = /* glsl */"\nvarying vec2 vUv;\nuniform float uSpeed;\nuniform float uTime;\nuniform vec2 uFade;\nuniform vec3 uColor;\nuniform int uNumLines;\nuniform float uOffset;\nuniform float ulength;\nuniform float uReverse;\n\nvoid main() {\n vec3 color = uColor;\n float s = 0.0;\n float v = 0.0;\n float alpha = 0.0;\n\n s = (-uTime * uSpeed) / ulength;\n s = mod(s, 1.0);\n\n float direction = (uReverse == 1.0) ? -1.0 : 1.0;\n\n for (int i = 0; i < uNumLines; i++) {\n float start = float(i) / float(uNumLines);\n start += uOffset;\n v = vUv.x * direction + start;\n\n float d = mod((v + s), 1.0);\n float widthFactor = smoothstep(0.1, 0.5, abs(vUv.y - 0.5));\n if (d <= uFade.y) {\n float tempAlpha = smoothstep(uFade.x, uFade.y, d);\n alpha = max(alpha, tempAlpha);\n }\n\n alpha *= widthFactor;\n }\n\n if (alpha < 0.0001) {\n discard;\n }\n\n gl_FragColor = vec4(color, alpha);\n}\n ";
2
+ //# sourceMappingURL=fragmentShader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fragmentShader"],"sources":["../../../../src/business/TrafficComponents/StreamerTraffic/fragmentShader.ts"],"sourcesContent":["export const fragmentShader =/* glsl */ `\nvarying vec2 vUv;\nuniform float uSpeed;\nuniform float uTime;\nuniform vec2 uFade;\nuniform vec3 uColor;\nuniform int uNumLines;\nuniform float uOffset;\nuniform float ulength;\nuniform float uReverse;\n\nvoid main() {\n vec3 color = uColor;\n float s = 0.0;\n float v = 0.0;\n float alpha = 0.0;\n\n s = (-uTime * uSpeed) / ulength;\n s = mod(s, 1.0);\n\n float direction = (uReverse == 1.0) ? -1.0 : 1.0;\n\n for (int i = 0; i < uNumLines; i++) {\n float start = float(i) / float(uNumLines);\n start += uOffset;\n v = vUv.x * direction + start;\n\n float d = mod((v + s), 1.0);\n float widthFactor = smoothstep(0.1, 0.5, abs(vUv.y - 0.5));\n if (d <= uFade.y) {\n float tempAlpha = smoothstep(uFade.x, uFade.y, d);\n alpha = max(alpha, tempAlpha);\n }\n\n alpha *= widthFactor;\n }\n\n if (alpha < 0.0001) {\n discard;\n }\n\n gl_FragColor = vec4(color, alpha);\n}\n `"],"mappings":"AAAA,OAAO,IAAMA,cAAc,GAAE,++BA2CzB"}
@@ -0,0 +1,11 @@
1
+ import type { CurvePath, Vector3 } from '@anov/3d-core';
2
+ export { StreamerTraffic } from './StreamerTraffic';
3
+ export interface StreamerTrafficInterface {
4
+ width: number;
5
+ divide: number;
6
+ speed: number;
7
+ lanelines: CurvePath<Vector3>[];
8
+ num: number;
9
+ baseColor: string;
10
+ divideWidth: number;
11
+ }
@@ -0,0 +1,2 @@
1
+ export { StreamerTraffic } from "./StreamerTraffic";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StreamerTraffic"],"sources":["../../../../src/business/TrafficComponents/StreamerTraffic/index.ts"],"sourcesContent":["import type { CurvePath, Vector3 } from '@anov/3d-core'\n\nexport { StreamerTraffic } from './StreamerTraffic'\n\nexport interface StreamerTrafficInterface {\n\n width: number\n\n divide: number\n\n speed: number\n\n lanelines: CurvePath<Vector3>[]\n\n num: number\n\n baseColor: string\n\n divideWidth: number\n\n}"],"mappings":"AAEA,SAASA,eAAe"}
@@ -0,0 +1 @@
1
+ export declare const vertexShader = "\n varying vec2 vUv;\n void main(void) {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}";
@@ -0,0 +1,2 @@
1
+ export var vertexShader = /* glsl */"\n varying vec2 vUv;\n void main(void) {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}";
2
+ //# sourceMappingURL=vertexShader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["vertexShader"],"sources":["../../../../src/business/TrafficComponents/StreamerTraffic/vertexShader.ts"],"sourcesContent":["export const vertexShader = /* glsl */`\n varying vec2 vUv;\n void main(void) {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}`"],"mappings":"AAAA,OAAO,IAAMA,YAAY,GAAG,6JAK1B"}
@@ -0,0 +1,22 @@
1
+ import type { CurvePath, Vector3 } from '@anov/3d-core';
2
+ import { Object3D } from '@anov/3d-core';
3
+ type RealismTrafficParams = {
4
+ path: CurvePath<Vector3>;
5
+ width?: number;
6
+ divide?: number;
7
+ corner?: number;
8
+ };
9
+ export declare class BaseTraffic extends Object3D {
10
+ /** 路面宽度 */
11
+ protected _width: number;
12
+ /** 车道线数量 */
13
+ protected _divide: number;
14
+ protected _path: CurvePath<Vector3>;
15
+ protected _corner: number;
16
+ /** 车道线 */
17
+ lanelines: CurvePath<Vector3>[];
18
+ constructor(params: RealismTrafficParams);
19
+ protected get baseLine(): import("../..").RoundedCornersCurve;
20
+ protected generateLaneLines(): void;
21
+ }
22
+ export {};
@@ -0,0 +1,64 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
4
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
6
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
7
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
8
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
9
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
10
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
11
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
12
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
14
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
+ import { Object3D } from '@anov/3d-core';
16
+ import { createOffsetPath } from "./utils";
17
+ export var BaseTraffic = /*#__PURE__*/function (_Object3D) {
18
+ _inherits(BaseTraffic, _Object3D);
19
+ var _super = _createSuper(BaseTraffic);
20
+ function BaseTraffic(params) {
21
+ var _this;
22
+ _classCallCheck(this, BaseTraffic);
23
+ _this = _super.call(this);
24
+ /** 路面宽度 */
25
+ _defineProperty(_assertThisInitialized(_this), "_width", void 0);
26
+ /** 车道线数量 */
27
+ _defineProperty(_assertThisInitialized(_this), "_divide", void 0);
28
+ _defineProperty(_assertThisInitialized(_this), "_path", void 0);
29
+ _defineProperty(_assertThisInitialized(_this), "_corner", 10);
30
+ /** 车道线 */
31
+ _defineProperty(_assertThisInitialized(_this), "lanelines", []);
32
+ var path = params.path,
33
+ _params$width = params.width,
34
+ width = _params$width === void 0 ? 2 : _params$width,
35
+ _params$divide = params.divide,
36
+ divide = _params$divide === void 0 ? 1 : _params$divide,
37
+ _params$corner = params.corner,
38
+ corner = _params$corner === void 0 ? 10 : _params$corner;
39
+ _this._path = path;
40
+ _this._width = width;
41
+ _this._divide = divide;
42
+ _this._corner = corner;
43
+ _this.generateLaneLines();
44
+ return _this;
45
+ }
46
+ _createClass(BaseTraffic, [{
47
+ key: "baseLine",
48
+ get: function get() {
49
+ return createOffsetPath(this._path, -this._width / 2, 0);
50
+ }
51
+ }, {
52
+ key: "generateLaneLines",
53
+ value: function generateLaneLines() {
54
+ this.lanelines = [];
55
+ for (var i = 0; i < this._divide; i++) {
56
+ var offset = this._width / this._divide;
57
+ var line = createOffsetPath(this.baseLine, offset * (i + 1), this._corner);
58
+ this.lanelines.push(line);
59
+ }
60
+ }
61
+ }]);
62
+ return BaseTraffic;
63
+ }(Object3D);
64
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
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 +1,2 @@
1
1
  export * from './RealismTraffic';
2
+ export * from './StreamerTraffic';
@@ -1,2 +1,3 @@
1
1
  export * from "./RealismTraffic";
2
+ export * from "./StreamerTraffic";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/business/TrafficComponents/index.ts"],"sourcesContent":["export * from './RealismTraffic'"],"mappings":"AAAA"}
1
+ {"version":3,"names":[],"sources":["../../../src/business/TrafficComponents/index.ts"],"sourcesContent":["export * from './RealismTraffic'\nexport * from './StreamerTraffic'\n"],"mappings":"AAAA;AACA"}
@@ -1,6 +1,6 @@
1
1
  import type { CurvePath } from '@anov/3d-core';
2
2
  import { Vector3 } from '@anov/3d-core';
3
- import { RoundedCornersCurve } from '../../../index';
3
+ import { RoundedCornersCurve } from '../../index';
4
4
  /**
5
5
  * offset path
6
6
  * @param originalPath
@@ -1,5 +1,5 @@
1
1
  import { Vector3 } from '@anov/3d-core';
2
- import { RoundedCornersCurve } from "../../../index";
2
+ import { RoundedCornersCurve } from "../../index";
3
3
  var closure = function closure(curves) {
4
4
  if (curves.length <= 1) return false;
5
5
  var _ref = curves[0].type === 'LineCurve3' ? curves[0].v1 : curves[0].v0,
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Vector3","RoundedCornersCurve","closure","curves","length","_ref","type","v1","v0","x1","x","y1","y","z1","z","_v","v2","x2","y2","z2","createOffsetPath","originalPath","offsetDistance","corner","arguments","undefined","newPoints","isClosure","firstNormal","nextPoint","i","clone","direction","subVectors","normalize","normal","crossVectors","copy","offset","multiplyScalar","newV1","add","newV2","push"],"sources":["../../../src/business/TrafficComponents/utils.ts"],"sourcesContent":["import type { Curve, CurvePath, LineCurve3, QuadraticBezierCurve3 } from '@anov/3d-core'\nimport { Vector3 } from '@anov/3d-core'\nimport { RoundedCornersCurve } from '../../index'\n\nconst closure = (curves: Curve<Vector3>[]) => {\n if (curves.length <= 1)\n return false\n\n const { x: x1, y: y1, z: z1 } = curves[0].type === 'LineCurve3' ? (curves[0] as LineCurve3).v1 : (curves[0] as QuadraticBezierCurve3).v0\n const { x: x2, y: y2, z: z2 } = (curves[curves.length - 1] as LineCurve3).v2\n\n return x1 === x2 && y1 === y2 && z1 === z2\n}\n\n/**\n * offset path\n * @param originalPath\n * @param offsetDistance\n * @returns\n */\nexport const createOffsetPath = (originalPath: CurvePath<Vector3>, offsetDistance: number, corner = 10) => {\n const curves = originalPath.curves\n const newPoints = []\n\n const isClosure = closure(curves)\n const firstNormal = new Vector3()\n let nextPoint = (curves[0] as LineCurve3).v1\n\n for (let i = 0; i < curves.length; i++) {\n if (curves[i].type === 'LineCurve3') {\n const v1 = nextPoint.clone()\n const v2 = (curves[i] as LineCurve3).v2\n\n const direction = new Vector3().subVectors(v2, v1).normalize()\n const normal = new Vector3().crossVectors(direction, new Vector3(0, 1, 0)).normalize()\n\n i === 0 && firstNormal.copy(normal)\n\n const offset = normal.multiplyScalar(offsetDistance)\n const newV1 = v1.clone().add(offset.clone())\n const newV2 = v2.clone().add(offset.clone())\n\n newPoints.push(newV1)\n nextPoint = newV2\n }\n\n if (i === curves.length - 1) {\n if (isClosure)\n newPoints[0] = nextPoint.clone().add(firstNormal.multiplyScalar(offsetDistance))\n else\n newPoints.push(nextPoint)\n }\n }\n\n return new RoundedCornersCurve(newPoints, corner, isClosure)\n}\n"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
1
  export * from './Poi';
2
2
  export * from './Spline';
3
+ export * from './Area';
3
4
  export * from './TrafficComponents';
5
+ export * from './Batch';
@@ -1,4 +1,6 @@
1
1
  export * from "./Poi";
2
2
  export * from "./Spline";
3
+ export * from "./Area";
3
4
  export * from "./TrafficComponents";
5
+ export * from "./Batch";
4
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../src/business/index.ts"],"sourcesContent":["export * from './Poi'\nexport * from './Spline'\nexport * from './TrafficComponents'\n"],"mappings":"AAAA;AACA;AACA"}
1
+ {"version":3,"names":[],"sources":["../../src/business/index.ts"],"sourcesContent":["export * from './Poi'\nexport * from './Spline'\nexport * from './Area'\nexport * from './TrafficComponents'\nexport * from './Batch'\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA"}
@@ -0,0 +1,5 @@
1
+ import { PointLight } from '@anov/3d-core';
2
+ declare class PointLightExt extends PointLight {
3
+ constructor();
4
+ }
5
+ export default PointLightExt;
@@ -0,0 +1,25 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
3
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
4
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
5
+ 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); }
6
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
8
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
9
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
11
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
12
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
13
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
14
+ import { PointLight } from '@anov/3d-core';
15
+ var PointLightExt = /*#__PURE__*/function (_PointLight) {
16
+ _inherits(PointLightExt, _PointLight);
17
+ var _super = _createSuper(PointLightExt);
18
+ function PointLightExt() {
19
+ _classCallCheck(this, PointLightExt);
20
+ return _super.call(this);
21
+ }
22
+ return _createClass(PointLightExt);
23
+ }(PointLight);
24
+ export default PointLightExt;
25
+ //# sourceMappingURL=PointLightExt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PointLight","PointLightExt","_PointLight","_inherits","_super","_createSuper","_classCallCheck","call","_createClass"],"sources":["../../../../src/core/Light/PointLight/PointLightExt.ts"],"sourcesContent":["import { PointLight } from '@anov/3d-core'\n\nclass PointLightExt extends PointLight {\n constructor() {\n super()\n }\n}\n\nexport default PointLightExt"],"mappings":";;;;;;;;;;;;;AAAA,SAASA,UAAU,QAAQ,eAAe;AAAA,IAEpCC,aAAa,0BAAAC,WAAA;EAAAC,SAAA,CAAAF,aAAA,EAAAC,WAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,aAAA;EACjB,SAAAA,cAAA,EAAc;IAAAK,eAAA,OAAAL,aAAA;IAAA,OAAAG,MAAA,CAAAG,IAAA;EAEd;EAAC,OAAAC,YAAA,CAAAP,aAAA;AAAA,EAHyBD,UAAU;AAMtC,eAAeC,aAAa"}
@@ -0,0 +1,2 @@
1
+ export interface PointLightExt {
2
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../src/core/Light/PointLight/index.ts"],"sourcesContent":["export interface PointLightExt {\n\n}"],"mappings":""}
File without changes
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/core/Light/index.ts"],"sourcesContent":[""],"mappings":""}
@@ -1,16 +1,7 @@
1
- import type { Object3D } from '@anov/3d-core';
2
- type HighParamsType = {
3
- edgeStrength?: number;
4
- edgeGlow?: number;
5
- edgeThickness?: number;
6
- pulsePeriod?: number;
7
- visibleEdgeColor?: string;
8
- hiddenEdgeColor?: string;
9
- };
10
- /**
11
- *
12
- * @param highParams
13
- * @returns
14
- */
15
- declare const createHighSelectedTool: (highParams?: HighParamsType) => (object3dArray: Object3D[]) => void;
16
- export default createHighSelectedTool;
1
+ import type { Camera, Object3D, Scene } from '@anov/3d-core';
2
+ import { EffectPass } from 'postprocessing';
3
+ export declare class OutlinePass extends EffectPass {
4
+ private outlinePass;
5
+ constructor(scene: Scene, camera: Camera);
6
+ selectedObjects(object3dArray: Object3D[]): void;
7
+ }
@@ -1,58 +1,48 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
4
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
6
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
7
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
8
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
9
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
10
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
11
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
4
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; }
5
13
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
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); }
7
- import { OutlinePassExtend, Vector2, lib, use, utils } from '@anov/3d-core';
8
- var storeManagement = utils.storeManagement;
9
- var ShaderPass = lib.ShaderPass,
10
- FXAAShader = lib.FXAAShader,
11
- GammaCorrectionShader = lib.GammaCorrectionShader;
12
- var useScene = use.useScene;
13
-
14
- /**
15
- *
16
- * @param highParams
17
- * @returns
18
- */
19
- var createHighSelectedTool = function createHighSelectedTool(highParams) {
20
- var baseHighParams = {
21
- edgeStrength: 10,
22
- edgeGlow: 1,
23
- edgeThickness: 3,
24
- visibleEdgeColor: 'red',
25
- hiddenEdgeColor: 'red'
26
- };
27
- var lastHighParams = _objectSpread(_objectSpread({}, baseHighParams), highParams);
28
- var _useScene = useScene(),
29
- scene = _useScene.scene,
30
- camera = _useScene.camera;
31
- var composer = storeManagement.get('composer');
32
- if (!scene || !camera) throw new Error('scene or camera is not defined,');
33
- if (!composer) throw new Error('composer is not defined, please initPostEffects first');
34
- var outlinePass = new OutlinePassExtend(new Vector2(window.innerWidth, window.innerHeight), scene, camera);
35
- outlinePass.edgeStrength = lastHighParams.edgeStrength;
36
- outlinePass.edgeGlow = lastHighParams.edgeGlow;
37
- outlinePass.edgeThickness = lastHighParams.edgeThickness;
38
- lastHighParams.pulsePeriod && (outlinePass.pulsePeriod = lastHighParams.pulsePeriod);
39
- outlinePass.visibleEdgeColor.set(lastHighParams.visibleEdgeColor);
40
- composer.addPass(outlinePass);
41
- var gammaCorrectionShader = new ShaderPass(GammaCorrectionShader);
42
- if (!storeManagement.get('__&&__gammaCorrectionShader')) {
43
- composer.addPass(gammaCorrectionShader);
44
- storeManagement.set('__&&__gammaCorrectionShader', true);
45
- }
46
-
47
- // todo bugfix
48
- // const effectFXAA = new ShaderPass(FXAAShader)
49
- // effectFXAA.uniforms.resolution.value.set(1 / window.innerWidth, 1 / window.innerHeight)
50
- // effectFXAA.renderToScreen = true
51
- // composer.addPass(effectFXAA)
52
-
53
- return function (object3dArray) {
54
- outlinePass.selectedObjects = object3dArray;
55
- };
15
+ import { OutlinePassExtend, Vector2 } from '@anov/3d-core';
16
+ import { EffectPass } from 'postprocessing';
17
+ var baseHighParams = {
18
+ edgeStrength: 10,
19
+ edgeGlow: 1,
20
+ edgeThickness: 3,
21
+ visibleEdgeColor: 'red',
22
+ hiddenEdgeColor: 'red'
56
23
  };
57
- export default createHighSelectedTool;
24
+ export var OutlinePass = /*#__PURE__*/function (_EffectPass) {
25
+ _inherits(OutlinePass, _EffectPass);
26
+ var _super = _createSuper(OutlinePass);
27
+ function OutlinePass(scene, camera) {
28
+ var _this;
29
+ _classCallCheck(this, OutlinePass);
30
+ _this = _super.call(this);
31
+ _defineProperty(_assertThisInitialized(_this), "outlinePass", void 0);
32
+ _this.outlinePass = new OutlinePassExtend(new Vector2(window.innerWidth, window.innerHeight), scene, camera);
33
+ _this.outlinePass.edgeStrength = baseHighParams.edgeStrength;
34
+ _this.outlinePass.edgeGlow = baseHighParams.edgeGlow;
35
+ _this.outlinePass.edgeThickness = baseHighParams.edgeThickness;
36
+ _this.outlinePass.visibleEdgeColor.set(baseHighParams.visibleEdgeColor);
37
+ _this.outlinePass.hiddenEdgeColor.set(baseHighParams.hiddenEdgeColor);
38
+ return _this;
39
+ }
40
+ _createClass(OutlinePass, [{
41
+ key: "selectedObjects",
42
+ value: function selectedObjects(object3dArray) {
43
+ this.outlinePass.selectedObjects = object3dArray;
44
+ }
45
+ }]);
46
+ return OutlinePass;
47
+ }(EffectPass);
58
48
  //# sourceMappingURL=outlinePass.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["OutlinePassExtend","Vector2","lib","use","utils","storeManagement","ShaderPass","FXAAShader","GammaCorrectionShader","useScene","createHighSelectedTool","highParams","baseHighParams","edgeStrength","edgeGlow","edgeThickness","visibleEdgeColor","hiddenEdgeColor","lastHighParams","_objectSpread","_useScene","scene","camera","composer","get","Error","outlinePass","window","innerWidth","innerHeight","pulsePeriod","set","addPass","gammaCorrectionShader","object3dArray","selectedObjects"],"sources":["../../../src/core/PostEffects/outlinePass.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { OutlinePassExtend, Vector2, lib, use, utils } from '@anov/3d-core'\n\ntype HighParamsType = {\n edgeStrength?: number // 边缘强度\n edgeGlow?: number // 缓缓接近\n edgeThickness?: number // 边缘厚度\n pulsePeriod?: number // 脉冲周期\n visibleEdgeColor?: string // 可见边缘颜色\n hiddenEdgeColor?: string // 隐藏边缘颜色\n}\n\nconst { storeManagement } = utils\nconst { ShaderPass, FXAAShader, GammaCorrectionShader } = lib\nconst { useScene } = use\n\n/**\n *\n * @param highParams\n * @returns\n */\nconst createHighSelectedTool = (highParams?: HighParamsType) => {\n const baseHighParams = {\n edgeStrength: 10,\n edgeGlow: 1,\n edgeThickness: 3,\n visibleEdgeColor: 'red',\n hiddenEdgeColor: 'red',\n }\n\n const lastHighParams = {\n ...baseHighParams,\n ...highParams,\n }\n\n const { scene, camera } = useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer)\n throw new Error('composer is not defined, please initPostEffects first')\n\n const outlinePass = new OutlinePassExtend(new Vector2(window.innerWidth, window.innerHeight), scene, camera)\n\n outlinePass.edgeStrength = lastHighParams.edgeStrength\n outlinePass.edgeGlow = lastHighParams.edgeGlow\n outlinePass.edgeThickness = lastHighParams.edgeThickness\n lastHighParams.pulsePeriod && (outlinePass.pulsePeriod = lastHighParams.pulsePeriod)\n outlinePass.visibleEdgeColor.set(lastHighParams.visibleEdgeColor)\n\n composer.addPass(outlinePass)\n\n const gammaCorrectionShader = new ShaderPass(GammaCorrectionShader)\n\n if (!storeManagement.get<boolean>('__&&__gammaCorrectionShader')) {\n composer.addPass(gammaCorrectionShader)\n storeManagement.set('__&&__gammaCorrectionShader', true)\n }\n\n // todo bugfix\n // const effectFXAA = new ShaderPass(FXAAShader)\n // effectFXAA.uniforms.resolution.value.set(1 / window.innerWidth, 1 / window.innerHeight)\n // effectFXAA.renderToScreen = true\n // composer.addPass(effectFXAA)\n\n return (object3dArray: Object3D[]) => {\n outlinePass.selectedObjects = object3dArray\n }\n}\n\nexport default createHighSelectedTool\n"],"mappings":";;;;;;AACA,SAASA,iBAAiB,EAAEC,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAW3E,IAAQC,eAAe,GAAKD,KAAK,CAAzBC,eAAe;AACvB,IAAQC,UAAU,GAAwCJ,GAAG,CAArDI,UAAU;EAAEC,UAAU,GAA4BL,GAAG,CAAzCK,UAAU;EAAEC,qBAAqB,GAAKN,GAAG,CAA7BM,qBAAqB;AACrD,IAAQC,QAAQ,GAAKN,GAAG,CAAhBM,QAAQ;;AAEhB;AACA;AACA;AACA;AACA;AACA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,UAA2B,EAAK;EAC9D,IAAMC,cAAc,GAAG;IACrBC,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE,CAAC;IACXC,aAAa,EAAE,CAAC;IAChBC,gBAAgB,EAAE,KAAK;IACvBC,eAAe,EAAE;EACnB,CAAC;EAED,IAAMC,cAAc,GAAAC,aAAA,CAAAA,aAAA,KACfP,cAAc,GACdD,UAAU,CACd;EAED,IAAAS,SAAA,GAA0BX,QAAQ,CAAC,CAAC;IAA5BY,KAAK,GAAAD,SAAA,CAALC,KAAK;IAAEC,MAAM,GAAAF,SAAA,CAANE,MAAM;EACrB,IAAMC,QAAQ,GAAGlB,eAAe,CAACmB,GAAG,CAAC,UAAU,CAAmC;EAElF,IAAI,CAACH,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAIG,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAI,CAACF,QAAQ,EACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;EAE1E,IAAMC,WAAW,GAAG,IAAI1B,iBAAiB,CAAC,IAAIC,OAAO,CAAC0B,MAAM,CAACC,UAAU,EAAED,MAAM,CAACE,WAAW,CAAC,EAAER,KAAK,EAAEC,MAAM,CAAC;EAE5GI,WAAW,CAACb,YAAY,GAAGK,cAAc,CAACL,YAAY;EACtDa,WAAW,CAACZ,QAAQ,GAAGI,cAAc,CAACJ,QAAQ;EAC9CY,WAAW,CAACX,aAAa,GAAGG,cAAc,CAACH,aAAa;EACxDG,cAAc,CAACY,WAAW,KAAKJ,WAAW,CAACI,WAAW,GAAGZ,cAAc,CAACY,WAAW,CAAC;EACpFJ,WAAW,CAACV,gBAAgB,CAACe,GAAG,CAACb,cAAc,CAACF,gBAAgB,CAAC;EAEjEO,QAAQ,CAACS,OAAO,CAACN,WAAW,CAAC;EAE7B,IAAMO,qBAAqB,GAAG,IAAI3B,UAAU,CAACE,qBAAqB,CAAC;EAEnE,IAAI,CAACH,eAAe,CAACmB,GAAG,CAAU,6BAA6B,CAAC,EAAE;IAChED,QAAQ,CAACS,OAAO,CAACC,qBAAqB,CAAC;IACvC5B,eAAe,CAAC0B,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC;EAC1D;;EAEA;EACA;EACA;EACA;EACA;;EAEA,OAAO,UAACG,aAAyB,EAAK;IACpCR,WAAW,CAACS,eAAe,GAAGD,aAAa;EAC7C,CAAC;AACH,CAAC;AAED,eAAexB,sBAAsB"}
1
+ {"version":3,"names":["OutlinePassExtend","Vector2","EffectPass","baseHighParams","edgeStrength","edgeGlow","edgeThickness","visibleEdgeColor","hiddenEdgeColor","OutlinePass","_EffectPass","_inherits","_super","_createSuper","scene","camera","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","outlinePass","window","innerWidth","innerHeight","set","_createClass","key","value","selectedObjects","object3dArray"],"sources":["../../../src/core/PostEffects/outlinePass.ts"],"sourcesContent":["import type { Camera, Object3D, Scene } from '@anov/3d-core'\nimport { OutlinePassExtend, Vector2 } from '@anov/3d-core'\nimport { EffectPass } from 'postprocessing'\n\ntype HighParamsType = {\n edgeStrength?: number // 边缘强度\n edgeGlow?: number // 缓缓接近\n edgeThickness?: number // 边缘厚度\n pulsePeriod?: number // 脉冲周期\n visibleEdgeColor?: string // 可见边缘颜色\n hiddenEdgeColor?: string // 隐藏边缘颜色\n}\n\nconst baseHighParams: HighParamsType = {\n edgeStrength: 10,\n edgeGlow: 1,\n edgeThickness: 3,\n visibleEdgeColor: 'red',\n hiddenEdgeColor: 'red',\n}\n\nexport class OutlinePass extends EffectPass {\n private outlinePass: OutlinePassExtend\n\n constructor(scene: Scene, camera: Camera) {\n super()\n\n this.outlinePass = new OutlinePassExtend(new Vector2(window.innerWidth, window.innerHeight), scene, camera)\n\n this.outlinePass.edgeStrength = baseHighParams.edgeStrength\n this.outlinePass.edgeGlow = baseHighParams.edgeGlow\n this.outlinePass.edgeThickness = baseHighParams.edgeThickness\n this.outlinePass.visibleEdgeColor.set(baseHighParams.visibleEdgeColor)\n this.outlinePass.hiddenEdgeColor.set(baseHighParams.hiddenEdgeColor)\n }\n\n public selectedObjects(object3dArray: Object3D[]) {\n this.outlinePass.selectedObjects = object3dArray\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AACA,SAASA,iBAAiB,EAAEC,OAAO,QAAQ,eAAe;AAC1D,SAASC,UAAU,QAAQ,gBAAgB;AAW3C,IAAMC,cAA8B,GAAG;EACrCC,YAAY,EAAE,EAAE;EAChBC,QAAQ,EAAE,CAAC;EACXC,aAAa,EAAE,CAAC;EAChBC,gBAAgB,EAAE,KAAK;EACvBC,eAAe,EAAE;AACnB,CAAC;AAED,WAAaC,WAAW,0BAAAC,WAAA;EAAAC,SAAA,CAAAF,WAAA,EAAAC,WAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,WAAA;EAGtB,SAAAA,YAAYK,KAAY,EAAEC,MAAc,EAAE;IAAA,IAAAC,KAAA;IAAAC,eAAA,OAAAR,WAAA;IACxCO,KAAA,GAAAJ,MAAA,CAAAM,IAAA;IAAOC,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAEPA,KAAA,CAAKK,WAAW,GAAG,IAAIrB,iBAAiB,CAAC,IAAIC,OAAO,CAACqB,MAAM,CAACC,UAAU,EAAED,MAAM,CAACE,WAAW,CAAC,EAAEV,KAAK,EAAEC,MAAM,CAAC;IAE3GC,KAAA,CAAKK,WAAW,CAACjB,YAAY,GAAGD,cAAc,CAACC,YAAY;IAC3DY,KAAA,CAAKK,WAAW,CAAChB,QAAQ,GAAGF,cAAc,CAACE,QAAQ;IACnDW,KAAA,CAAKK,WAAW,CAACf,aAAa,GAAGH,cAAc,CAACG,aAAa;IAC7DU,KAAA,CAAKK,WAAW,CAACd,gBAAgB,CAACkB,GAAG,CAACtB,cAAc,CAACI,gBAAgB,CAAC;IACtES,KAAA,CAAKK,WAAW,CAACb,eAAe,CAACiB,GAAG,CAACtB,cAAc,CAACK,eAAe,CAAC;IAAA,OAAAQ,KAAA;EACtE;EAACU,YAAA,CAAAjB,WAAA;IAAAkB,GAAA;IAAAC,KAAA,EAED,SAAAC,gBAAuBC,aAAyB,EAAE;MAChD,IAAI,CAACT,WAAW,CAACQ,eAAe,GAAGC,aAAa;IAClD;EAAC;EAAA,OAAArB,WAAA;AAAA,EAjB8BP,UAAU"}
@@ -14,7 +14,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
14
14
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
15
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
16
16
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
17
- import { DirectionalLight, MathUtils, Object3D, Vector3, lib } from '@anov/3d-core';
17
+ import { AmbientLight, DirectionalLight, MathUtils, Object3D, Vector3, lib } from '@anov/3d-core';
18
18
  import { getSunPosition } from "../utils/math";
19
19
  var Sky = lib.Sky;
20
20
  var effectController = {
@@ -97,9 +97,13 @@ export var SkySystem = /*#__PURE__*/function (_Object3D) {
97
97
  }, {
98
98
  key: "createSun",
99
99
  value: function createSun() {
100
- var sunLight = new DirectionalLight('white', 8);
100
+ var sunLight = new DirectionalLight('white', 4);
101
101
  sunLight.castShadow = true;
102
102
  this._sun = sunLight;
103
+ var light = new AmbientLight('white', 0.01);
104
+
105
+ // this.add(light)
106
+
103
107
  return sunLight;
104
108
  }
105
109
  }, {
@@ -1 +1 @@
1
- {"version":3,"names":["DirectionalLight","MathUtils","Object3D","Vector3","lib","getSunPosition","Sky","effectController","turbidity","rayleigh","mieCoefficient","mieDirectionalG","elevation","azimuth","exposure","SkySystem","_Object3D","_inherits","_super","_createSuper","options","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","_effectController","_objectSpread","createSky","createSun","combination","_createClass","key","get","size","set","_size","_sky","scale","setScalar","_sunHeight","height","value","position","uniforms","material","phi","degToRad","theta","setFromSphericalCoords","sunPosition","copy","sunLight","castShadow","_sun","_getSunPosition","Date","_latitude","_longitude","altitude","x","Math","cos","z","sin","y","add","setSunPositin","setTime","currentDate","_getSunPosition2","radToDeg"],"sources":["../../../../src/core/WeatherSystem/sky/index.ts"],"sourcesContent":["import type { Light } from '@anov/3d-core'\nimport { DirectionalLight, MathUtils, Object3D, Vector3, lib } from '@anov/3d-core'\nimport { getSunPosition } from '../utils/math'\n\nconst { Sky } = lib\n\ntype SkySystemOption = {\n scalarCoefficient?: number\n turbidity?: number\n rayleigh?: number\n mieCoefficient?: number\n mieDirectionalG?: number\n elevation?: number\n azimuth?: number\n exposure?: number\n}\n\nconst effectController: SkySystemOption = {\n turbidity: 10,\n rayleigh: 3,\n mieCoefficient: 0.005,\n mieDirectionalG: 0.7,\n elevation: 2,\n azimuth: 180,\n exposure: 0.1,\n}\n\n/**\n * 天空——时间系统\n */\nexport class SkySystem extends Object3D {\n private _size = 450000\n private _sky: lib.Sky\n private _effectController: SkySystemOption = effectController\n private _latitude = 40\n private _longitude = 116\n private _sunHeight = 100\n private _sun: Light\n\n public get size() {\n return this.size\n }\n\n public set size(size: number) {\n this._size = size\n this._sky.scale.setScalar(this._size)\n }\n\n public get sunHeight() {\n return this._sunHeight\n }\n\n public set sunHeight(height: number) {\n this._sunHeight = height\n }\n\n constructor(options?: SkySystemOption) {\n super()\n\n this._effectController = {\n ...effectController,\n ...options ?? {},\n }\n\n this.createSky()\n this.createSun()\n this.combination()\n }\n\n /**\n * create sky\n * @returns\n */\n private createSky() {\n this._sky = new Sky()\n this._sky.scale.setScalar(this._size)\n\n const position = new Vector3()\n const uniforms = (this._sky.material as any).uniforms\n const phi = MathUtils.degToRad(90 - this._effectController.elevation)\n const theta = MathUtils.degToRad(this._effectController.azimuth)\n\n uniforms.turbidity.value = this._effectController.turbidity\n uniforms.rayleigh.value = this._effectController.rayleigh\n uniforms.mieCoefficient.value = this._effectController.mieCoefficient\n uniforms.mieDirectionalG.value = this._effectController.mieDirectionalG\n\n position.setFromSphericalCoords(1, phi, theta)\n uniforms.sunPosition.value.copy(position)\n\n return this._sky\n }\n\n /**\n * create sun\n * @returns\n */\n private createSun() {\n const sunLight = new DirectionalLight('white', 8)\n sunLight.castShadow = true\n\n this._sun = sunLight\n\n return sunLight\n }\n\n private combination() {\n const { altitude, azimuth } = getSunPosition(new Date(), this._latitude, this._longitude)\n const x = this._sunHeight * (Math.cos(altitude)) * (Math.cos(azimuth))\n const z = this._sunHeight * (Math.cos(altitude)) * (Math.sin(azimuth))\n const y = this._sunHeight * (Math.sin(altitude))\n\n this._sun.position.copy(new Vector3(x, y, z))\n this.add(this._sky)\n this.add(this._sun)\n }\n\n /**\n * 设置天空中的太阳位置\n * @param position\n */\n setSunPositin(position: Vector3) {\n const uniforms = (this._sky.material as any).uniforms\n uniforms.sunPosition.value.copy(position)\n }\n\n /**\n * 设置时间\n * @param currentDate\n */\n setTime(currentDate?: Date) {\n const { altitude, azimuth } = getSunPosition(currentDate, this._latitude, this._longitude)\n const uniforms = (this._sky.material as any).uniforms\n\n uniforms.sunPosition.value.copy(new Vector3().setFromSphericalCoords(this._sunHeight, MathUtils.degToRad(90 - MathUtils.radToDeg(altitude)), azimuth))\n\n const x = this._sunHeight * (Math.cos(altitude)) * (Math.cos(azimuth))\n const z = this._sunHeight * (Math.cos(altitude)) * (Math.sin(azimuth))\n const y = this._sunHeight * (Math.sin(altitude))\n\n this._sun.position.copy(new Vector3(x, y, z))\n }\n}"],"mappings":"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"}
1
+ {"version":3,"names":["AmbientLight","DirectionalLight","MathUtils","Object3D","Vector3","lib","getSunPosition","Sky","effectController","turbidity","rayleigh","mieCoefficient","mieDirectionalG","elevation","azimuth","exposure","SkySystem","_Object3D","_inherits","_super","_createSuper","options","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","_effectController","_objectSpread","createSky","createSun","combination","_createClass","key","get","size","set","_size","_sky","scale","setScalar","_sunHeight","height","value","position","uniforms","material","phi","degToRad","theta","setFromSphericalCoords","sunPosition","copy","sunLight","castShadow","_sun","light","_getSunPosition","Date","_latitude","_longitude","altitude","x","Math","cos","z","sin","y","add","setSunPositin","setTime","currentDate","_getSunPosition2","radToDeg"],"sources":["../../../../src/core/WeatherSystem/sky/index.ts"],"sourcesContent":["import type { Light } from '@anov/3d-core'\nimport { AmbientLight, DirectionalLight, MathUtils, Object3D, Vector3, lib } from '@anov/3d-core'\nimport { getSunPosition } from '../utils/math'\n\nconst { Sky } = lib\n\ntype SkySystemOption = {\n scalarCoefficient?: number\n turbidity?: number\n rayleigh?: number\n mieCoefficient?: number\n mieDirectionalG?: number\n elevation?: number\n azimuth?: number\n exposure?: number\n}\n\nconst effectController: SkySystemOption = {\n turbidity: 10,\n rayleigh: 3,\n mieCoefficient: 0.005,\n mieDirectionalG: 0.7,\n elevation: 2,\n azimuth: 180,\n exposure: 0.1,\n}\n\n/**\n * 天空——时间系统\n */\nexport class SkySystem extends Object3D {\n private _size = 450000\n private _sky: lib.Sky\n private _effectController: SkySystemOption = effectController\n private _latitude = 40\n private _longitude = 116\n private _sunHeight = 100\n private _sun: Light\n\n public get size() {\n return this.size\n }\n\n public set size(size: number) {\n this._size = size\n this._sky.scale.setScalar(this._size)\n }\n\n public get sunHeight() {\n return this._sunHeight\n }\n\n public set sunHeight(height: number) {\n this._sunHeight = height\n }\n\n constructor(options?: SkySystemOption) {\n super()\n\n this._effectController = {\n ...effectController,\n ...options ?? {},\n }\n\n this.createSky()\n this.createSun()\n this.combination()\n }\n\n /**\n * create sky\n * @returns\n */\n private createSky() {\n this._sky = new Sky()\n this._sky.scale.setScalar(this._size)\n\n const position = new Vector3()\n const uniforms = (this._sky.material as any).uniforms\n const phi = MathUtils.degToRad(90 - this._effectController.elevation)\n const theta = MathUtils.degToRad(this._effectController.azimuth)\n\n uniforms.turbidity.value = this._effectController.turbidity\n uniforms.rayleigh.value = this._effectController.rayleigh\n uniforms.mieCoefficient.value = this._effectController.mieCoefficient\n uniforms.mieDirectionalG.value = this._effectController.mieDirectionalG\n\n position.setFromSphericalCoords(1, phi, theta)\n uniforms.sunPosition.value.copy(position)\n\n return this._sky\n }\n\n /**\n * create sun\n * @returns\n */\n private createSun() {\n const sunLight = new DirectionalLight('white', 4)\n sunLight.castShadow = true\n\n this._sun = sunLight\n\n const light = new AmbientLight('white', 0.01)\n\n // this.add(light)\n\n return sunLight\n }\n\n private combination() {\n const { altitude, azimuth } = getSunPosition(new Date(), this._latitude, this._longitude)\n const x = this._sunHeight * (Math.cos(altitude)) * (Math.cos(azimuth))\n const z = this._sunHeight * (Math.cos(altitude)) * (Math.sin(azimuth))\n const y = this._sunHeight * (Math.sin(altitude))\n\n this._sun.position.copy(new Vector3(x, y, z))\n this.add(this._sky)\n this.add(this._sun)\n }\n\n /**\n * 设置天空中的太阳位置\n * @param position\n */\n setSunPositin(position: Vector3) {\n const uniforms = (this._sky.material as any).uniforms\n uniforms.sunPosition.value.copy(position)\n }\n\n /**\n * 设置时间\n * @param currentDate\n */\n setTime(currentDate?: Date) {\n const { altitude, azimuth } = getSunPosition(currentDate, this._latitude, this._longitude)\n const uniforms = (this._sky.material as any).uniforms\n\n uniforms.sunPosition.value.copy(new Vector3().setFromSphericalCoords(this._sunHeight, MathUtils.degToRad(90 - MathUtils.radToDeg(altitude)), azimuth))\n\n const x = this._sunHeight * (Math.cos(altitude)) * (Math.cos(azimuth))\n const z = this._sunHeight * (Math.cos(altitude)) * (Math.sin(azimuth))\n const y = this._sunHeight * (Math.sin(altitude))\n\n this._sun.position.copy(new Vector3(x, y, z))\n }\n}"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anov/3d-ability",
3
- "version": "0.0.63",
3
+ "version": "0.0.67",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -16,7 +16,7 @@
16
16
  "package.json"
17
17
  ],
18
18
  "peerDependencies": {
19
- "@anov/3d-core": "^0.0.51"
19
+ "@anov/3d-core": "^0.0.52"
20
20
  },
21
21
  "dependencies": {
22
22
  "@types/suncalc": "^1.9.2",
@@ -32,7 +32,7 @@
32
32
  "devDependencies": {
33
33
  "@types/javascript-state-machine": "^2.4.6",
34
34
  "@types/lodash": "^4.14.196",
35
- "@anov/3d-core": "^0.0.51"
35
+ "@anov/3d-core": "^0.0.52"
36
36
  },
37
37
  "scripts": {
38
38
  "build": "father build",
@@ -1 +0,0 @@
1
- {"version":3,"names":["Vector3","RoundedCornersCurve","closure","curves","length","_ref","type","v1","v0","x1","x","y1","y","z1","z","_v","v2","x2","y2","z2","createOffsetPath","originalPath","offsetDistance","corner","arguments","undefined","newPoints","isClosure","firstNormal","nextPoint","i","clone","direction","subVectors","normalize","normal","crossVectors","copy","offset","multiplyScalar","newV1","add","newV2","push"],"sources":["../../../../src/business/TrafficComponents/RealismTraffic/utils.ts"],"sourcesContent":["import type { Curve, CurvePath, LineCurve3, QuadraticBezierCurve3 } from '@anov/3d-core'\nimport { Vector3 } from '@anov/3d-core'\nimport { RoundedCornersCurve } from '../../../index'\n\nconst closure = (curves: Curve<Vector3>[]) => {\n if (curves.length <= 1)\n return false\n\n const { x: x1, y: y1, z: z1 } = curves[0].type === 'LineCurve3' ? (curves[0] as LineCurve3).v1 : (curves[0] as QuadraticBezierCurve3).v0\n const { x: x2, y: y2, z: z2 } = (curves[curves.length - 1] as LineCurve3).v2\n\n return x1 === x2 && y1 === y2 && z1 === z2\n}\n\n/**\n * offset path\n * @param originalPath\n * @param offsetDistance\n * @returns\n */\nexport const createOffsetPath = (originalPath: CurvePath<Vector3>, offsetDistance: number, corner = 10) => {\n const curves = originalPath.curves\n const newPoints = []\n\n const isClosure = closure(curves)\n const firstNormal = new Vector3()\n let nextPoint = (curves[0] as LineCurve3).v1\n\n for (let i = 0; i < curves.length; i++) {\n if (curves[i].type === 'LineCurve3') {\n const v1 = nextPoint.clone()\n const v2 = (curves[i] as LineCurve3).v2\n\n const direction = new Vector3().subVectors(v2, v1).normalize()\n const normal = new Vector3().crossVectors(direction, new Vector3(0, 1, 0)).normalize()\n\n i === 0 && firstNormal.copy(normal)\n\n const offset = normal.multiplyScalar(offsetDistance)\n const newV1 = v1.clone().add(offset.clone())\n const newV2 = v2.clone().add(offset.clone())\n\n newPoints.push(newV1)\n nextPoint = newV2\n }\n\n if (i === curves.length - 1) {\n if (isClosure)\n newPoints[0] = nextPoint.clone().add(firstNormal.multiplyScalar(offsetDistance))\n else\n newPoints.push(nextPoint)\n }\n }\n\n return new RoundedCornersCurve(newPoints, corner, isClosure)\n}\n"],"mappings":"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"}