@anov/3d-ability 0.0.140 → 0.0.141
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.js +35 -56
- package/dist/business/Animation/motion/index.js.map +1 -1
- package/dist/business/Animation/type.js +2 -2
- package/dist/business/Area/Fence/FenceBase.js +146 -187
- package/dist/business/Area/Fence/FenceBase.js.map +1 -1
- package/dist/business/Area/Fence/fence_base_01.js +120 -112
- package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_feeting_01.js +218 -130
- package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_roll_01.js +140 -130
- package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
- package/dist/business/Area/FillArea/FillAreaBase.js +87 -126
- package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
- package/dist/business/Area/FillArea/fillArea_face_01.js +72 -98
- package/dist/business/Area/FillArea/fillArea_face_01.js.map +1 -1
- package/dist/business/Area/FillArea/fillArea_line_01.js +66 -94
- package/dist/business/Area/FillArea/fillArea_line_01.js.map +1 -1
- package/dist/business/Area/index.js +267 -483
- package/dist/business/Area/index.js.map +1 -1
- package/dist/business/Area/tool.js +14 -26
- package/dist/business/Area/tool.js.map +1 -1
- package/dist/business/Base/ObjectLayer.js +21 -46
- package/dist/business/Base/ObjectLayer.js.map +1 -1
- package/dist/business/Batch/index.js +189 -234
- package/dist/business/Batch/index.js.map +1 -1
- package/dist/business/Box/index.js +52 -81
- package/dist/business/Box/index.js.map +1 -1
- package/dist/business/Cylinder/index.js +51 -79
- package/dist/business/Cylinder/index.js.map +1 -1
- package/dist/business/Flyline/bubble/CircleBubble.js +1 -9
- package/dist/business/Flyline/bubble/CircleBubble.js.map +1 -1
- package/dist/business/Flyline/bubble/index.js +7 -21
- package/dist/business/Flyline/bubble/index.js.map +1 -1
- package/dist/business/Flyline/index.js +96 -162
- package/dist/business/Flyline/index.js.map +1 -1
- package/dist/business/Flyline/line/ArcLine.js +208 -291
- package/dist/business/Flyline/line/ArcLine.js.map +1 -1
- package/dist/business/Flyline/line/index.js +8 -22
- package/dist/business/Flyline/line/index.js.map +1 -1
- package/dist/business/HeatMap/HeatMap.js +380 -467
- package/dist/business/HeatMap/HeatMap.js.map +1 -1
- package/dist/business/HeatMap/core.js +405 -525
- package/dist/business/HeatMap/core.js.map +1 -1
- package/dist/business/HeatMap/shader.js +69 -3
- package/dist/business/HeatMap/shader.js.map +1 -1
- package/dist/business/InfoPanel/index.js +201 -242
- package/dist/business/InfoPanel/index.js.map +1 -1
- package/dist/business/Line/index.js +55 -88
- package/dist/business/Line/index.js.map +1 -1
- package/dist/business/Mark/KeyframeAnimation.js +145 -176
- package/dist/business/Mark/KeyframeAnimation.js.map +1 -1
- package/dist/business/Mark/index.js +196 -294
- package/dist/business/Mark/index.js.map +1 -1
- package/dist/business/Mark/shader/tanhao.js +36 -3
- package/dist/business/Mark/shader/tanhao.js.map +1 -1
- package/dist/business/Mark/type.js +1 -1
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +377 -551
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
- package/dist/business/MaterialSwitch/inject.js +92 -58
- package/dist/business/MaterialSwitch/inject.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/finalFade.js +74 -2
- package/dist/business/MaterialSwitch/shader/finalFade.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/ground.js +95 -16
- package/dist/business/MaterialSwitch/shader/ground.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/groundBase64.js +9 -3
- package/dist/business/MaterialSwitch/shader/groundBase64.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.js +48 -9
- package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
- package/dist/business/Plane/index.js +51 -78
- package/dist/business/Plane/index.js.map +1 -1
- package/dist/business/Poi/index.d.ts +5 -0
- package/dist/business/Poi/index.js +256 -295
- package/dist/business/Poi/index.js.map +1 -1
- package/dist/business/Poi/link/Cylinder.js +56 -89
- package/dist/business/Poi/link/Cylinder.js.map +1 -1
- package/dist/business/Poi/link/Pyramid.js +104 -165
- package/dist/business/Poi/link/Pyramid.js.map +1 -1
- package/dist/business/Poi/link/index.d.ts +1 -1
- package/dist/business/Poi/link/index.js +54 -114
- package/dist/business/Poi/link/index.js.map +1 -1
- package/dist/business/Poi/panel/index.d.ts +124 -0
- package/dist/business/Poi/panel/index.js +474 -0
- package/dist/business/Poi/panel/index.js.map +1 -0
- package/dist/business/Poi/panel/interfaces.d.ts +67 -0
- package/dist/business/Poi/panel/interfaces.js +2 -0
- package/dist/business/Poi/panel/interfaces.js.map +1 -0
- package/dist/business/Poi/panel/utils.d.ts +72 -0
- package/dist/business/Poi/panel/utils.js +126 -0
- package/dist/business/Poi/panel/utils.js.map +1 -0
- package/dist/business/Poi/particle/DoubleCircle.js +71 -107
- package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
- package/dist/business/Poi/particle/DynamicCircle.js +75 -111
- package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
- package/dist/business/Poi/particle/SingleCircle.js +62 -98
- package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
- package/dist/business/Poi/particle/index.js +49 -117
- package/dist/business/Poi/particle/index.js.map +1 -1
- package/dist/business/Poi/shader/circle.js +31 -3
- package/dist/business/Poi/shader/circle.js.map +1 -1
- package/dist/business/Poi/shader/cylinder.js +37 -3
- package/dist/business/Poi/shader/cylinder.js.map +1 -1
- package/dist/business/Poi/shader/doubleCircle.js +55 -3
- package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
- package/dist/business/Poi/shader/dynamicCircle.js +67 -3
- package/dist/business/Poi/shader/dynamicCircle.js.map +1 -1
- package/dist/business/Poi/title/Border.js +7 -27
- package/dist/business/Poi/title/Border.js.map +1 -1
- package/dist/business/Poi/title/Ellipse.js +7 -27
- package/dist/business/Poi/title/Ellipse.js.map +1 -1
- package/dist/business/Poi/title/index.js +208 -292
- package/dist/business/Poi/title/index.js.map +1 -1
- package/dist/business/Poi/tools.js +22 -19
- package/dist/business/Poi/tools.js.map +1 -1
- package/dist/business/Poi/types.d.ts +3 -0
- package/dist/business/Poi/types.js.map +1 -1
- package/dist/business/Sphere/index.js +47 -72
- package/dist/business/Sphere/index.js.map +1 -1
- package/dist/business/Spline/index.js +190 -245
- package/dist/business/Spline/index.js.map +1 -1
- package/dist/business/SplitBuilding/index.js +327 -536
- package/dist/business/SplitBuilding/index.js.map +1 -1
- package/dist/business/SplitBuilding/type.js +2 -2
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +218 -275
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +132 -177
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +51 -1
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +6 -1
- package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -1
- package/dist/business/TrafficComponents/base.js +32 -55
- package/dist/business/TrafficComponents/base.js.map +1 -1
- package/dist/business/TrafficComponents/utils.js +25 -24
- package/dist/business/TrafficComponents/utils.js.map +1 -1
- package/dist/business/Utils/Curve.js +40 -56
- package/dist/business/Utils/Curve.js.map +1 -1
- package/dist/business/Utils/constant.js +1 -1
- package/dist/business/Utils/constant.js.map +1 -1
- package/dist/business/Utils/defineProps.js +13 -14
- package/dist/business/Utils/defineProps.js.map +1 -1
- package/dist/business/Utils/round-curve.js +127 -153
- package/dist/business/Utils/round-curve.js.map +1 -1
- package/dist/business/VideoPanel/index.js +258 -319
- package/dist/business/VideoPanel/index.js.map +1 -1
- package/dist/business/Water/index.js +78 -108
- package/dist/business/Water/index.js.map +1 -1
- package/dist/business/Water/types.js +1 -1
- package/dist/business/Water/types.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +383 -449
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js +107 -142
- package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js.map +1 -1
- package/dist/core/Controls/FirstViewControl/index.js +84 -96
- package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/action/input.js +77 -98
- package/dist/core/Controls/ThirdViewControl/action/input.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/config/constants.js +1 -1
- package/dist/core/Controls/ThirdViewControl/config/constants.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/index.js +19 -28
- package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/animation.js +126 -155
- package/dist/core/Controls/ThirdViewControl/player/animation.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/camera.js +47 -63
- package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/control.js +39 -49
- package/dist/core/Controls/ThirdViewControl/player/control.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player.js +66 -91
- package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
- package/dist/core/Controls/base.js +14 -30
- package/dist/core/Controls/base.js.map +1 -1
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +92 -131
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
- package/dist/core/Debug/PerformanceInfo/Performance.js +22 -47
- package/dist/core/Debug/PerformanceInfo/Performance.js.map +1 -1
- package/dist/core/Light/PointLight/PointLightExt.js +4 -21
- package/dist/core/Light/PointLight/PointLightExt.js.map +1 -1
- package/dist/core/Material/FinirMaterial/FinirMaterial.js +37 -57
- package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js +116 -153
- package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/shader/fragment.js +95 -1
- package/dist/core/Material/PristineGridMaterial/shader/fragment.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/shader/vertex.js +26 -1
- package/dist/core/Material/PristineGridMaterial/shader/vertex.js.map +1 -1
- package/dist/core/Material/SurfaceMaterial/index.js +76 -172
- package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
- package/dist/core/Material/decorators.js +6 -11
- package/dist/core/Material/decorators.js.map +1 -1
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +16 -12
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
- package/dist/core/PostEffects/addBrightnessContrastPass.js +17 -13
- package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
- package/dist/core/PostEffects/bloomPass.js +17 -10
- package/dist/core/PostEffects/bloomPass.js.map +1 -1
- package/dist/core/PostEffects/bloomSelect.js +60 -43
- package/dist/core/PostEffects/bloomSelect.js.map +1 -1
- package/dist/core/PostEffects/colorifyPass.js +17 -13
- package/dist/core/PostEffects/colorifyPass.js.map +1 -1
- package/dist/core/PostEffects/index.js +28 -22
- package/dist/core/PostEffects/index.js.map +1 -1
- package/dist/core/PostEffects/outlinePass.js +37 -50
- package/dist/core/PostEffects/outlinePass.js.map +1 -1
- package/dist/core/PostEffects/postprocessing.js +14 -12
- package/dist/core/PostEffects/postprocessing.js.map +1 -1
- package/dist/core/PostEffects/saoPass.js +15 -10
- package/dist/core/PostEffects/saoPass.js.map +1 -1
- package/dist/core/PostEffects/shader/colorify.js +22 -3
- package/dist/core/PostEffects/shader/colorify.js.map +1 -1
- package/dist/core/PostEffects/shader/gammaCorrectionShader.js +27 -3
- package/dist/core/PostEffects/shader/gammaCorrectionShader.js.map +1 -1
- package/dist/core/PostEffects/shader/mapping.js +66 -3
- package/dist/core/PostEffects/shader/mapping.js.map +1 -1
- package/dist/core/PostEffects/shader/thermalMaging.js +28 -3
- package/dist/core/PostEffects/shader/thermalMaging.js.map +1 -1
- package/dist/core/SceneEffect/grow/grow.js +85 -101
- package/dist/core/SceneEffect/grow/grow.js.map +1 -1
- package/dist/core/SceneEffect/grow/style_down.js +60 -77
- package/dist/core/SceneEffect/grow/style_down.js.map +1 -1
- package/dist/core/SceneEffect/grow/style_up.js +64 -81
- package/dist/core/SceneEffect/grow/style_up.js.map +1 -1
- package/dist/core/SceneEffect/grow/type.js +2 -2
- package/dist/core/SceneEffect/grow/type.js.map +1 -1
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js +51 -76
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
- package/dist/core/WeatherSystem/hdr/index.js +69 -105
- package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
- package/dist/core/WeatherSystem/index.js +77 -124
- package/dist/core/WeatherSystem/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/fog/index.js +52 -80
- package/dist/core/WeatherSystem/objects/fog/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/index.js +72 -84
- package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/lineRain.js +88 -118
- package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/plane.js +116 -146
- package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/point.js +100 -148
- package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/cloud.js +71 -104
- package/dist/core/WeatherSystem/objects/sky/cloud.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/index.js +66 -84
- package/dist/core/WeatherSystem/objects/sky/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/outline.js +25 -45
- package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/cloud.js +74 -3
- package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/fog.js +103 -3
- package/dist/core/WeatherSystem/shaders/fog.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/rain.js +206 -7
- package/dist/core/WeatherSystem/shaders/rain.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/sky.js +87 -3
- package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
- package/dist/core/WeatherSystem/sky/index.js +104 -135
- package/dist/core/WeatherSystem/sky/index.js.map +1 -1
- package/dist/core/WeatherSystem/utils/constant.js +44 -38
- package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
- package/dist/core/WeatherSystem/utils/math.js +18 -25
- package/dist/core/WeatherSystem/utils/math.js.map +1 -1
- package/dist/core/WeatherSystem/utils/type.js +1 -1
- package/dist/core/WeatherSystem/utils/type.js.map +1 -1
- package/dist/core/WeatherSystem/weather/index.js +96 -141
- package/dist/core/WeatherSystem/weather/index.js.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,21 +1,10 @@
|
|
|
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
1
|
var _class;
|
|
3
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
4
|
-
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); } }
|
|
5
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
6
|
-
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); }
|
|
7
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
8
|
-
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); }; }
|
|
9
|
-
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); }
|
|
10
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
11
|
-
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; } }
|
|
12
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
13
2
|
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; }
|
|
14
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" ==
|
|
15
|
-
function _toPrimitive(t, r) { if ("object" !=
|
|
3
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
4
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
16
5
|
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
|
|
17
6
|
import { CurvePath, LineCurve3, QuadraticBezierCurve3 } from '@anov/3d-core';
|
|
18
|
-
|
|
7
|
+
const calculateDistance = (p1, p2) => {
|
|
19
8
|
return p1.clone().sub(p2).length();
|
|
20
9
|
};
|
|
21
10
|
|
|
@@ -25,18 +14,18 @@ var calculateDistance = function calculateDistance(p1, p2) {
|
|
|
25
14
|
* @param radius
|
|
26
15
|
* @returns
|
|
27
16
|
*/
|
|
28
|
-
|
|
17
|
+
const calculateSafeRadius = (points, radius) => {
|
|
29
18
|
if (points.length <= 2) return [radius, radius];
|
|
30
|
-
|
|
31
|
-
for (
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
19
|
+
const safeRadii = new Array(points.length).fill(radius);
|
|
20
|
+
for (let i = 1; i < points.length - 1; i++) {
|
|
21
|
+
const prevDist = calculateDistance(points[i], points[i - 1]);
|
|
22
|
+
const nextDist = calculateDistance(points[i], points[i + 1]);
|
|
23
|
+
const maxSafeRadius = Math.min(prevDist / 2, nextDist / 2, radius);
|
|
35
24
|
safeRadii[i] = maxSafeRadius;
|
|
36
25
|
}
|
|
37
26
|
if (points.length > 2) {
|
|
38
|
-
|
|
39
|
-
|
|
27
|
+
const firstDist = calculateDistance(points[0], points[1]);
|
|
28
|
+
const lastDist = calculateDistance(points[points.length - 1], points[points.length - 2]);
|
|
40
29
|
safeRadii[0] = Math.min(firstDist / 2, radius);
|
|
41
30
|
safeRadii[points.length - 1] = Math.min(lastDist / 2, radius);
|
|
42
31
|
}
|
|
@@ -50,74 +39,67 @@ var calculateSafeRadius = function calculateSafeRadius(points, radius) {
|
|
|
50
39
|
* @param close
|
|
51
40
|
* @returns
|
|
52
41
|
*/
|
|
53
|
-
export
|
|
54
|
-
|
|
55
|
-
var close = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
56
|
-
var curve = new CurvePath();
|
|
42
|
+
export const createRoundedCornersCurve = (points, radius = 20, close = true) => {
|
|
43
|
+
const curve = new CurvePath();
|
|
57
44
|
if (points.length < 2) throw new Error('At least two points are required to create a curve');
|
|
58
45
|
if (points.length === 2) {
|
|
59
46
|
curve.curves.push(new LineCurve3(points[0], points[1]));
|
|
60
47
|
return curve;
|
|
61
48
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
49
|
+
const safeRadii = calculateSafeRadius(points, radius);
|
|
50
|
+
const lines = [];
|
|
51
|
+
const lastIndex = points.length - 1;
|
|
65
52
|
if (close && points.length > 2) {
|
|
66
|
-
|
|
67
|
-
|
|
53
|
+
const firstLastDist = calculateDistance(points[0], points[lastIndex]);
|
|
54
|
+
const safeConnectRadius = Math.min(firstLastDist / 2, radius);
|
|
68
55
|
safeRadii[0] = Math.min(safeRadii[0], safeConnectRadius);
|
|
69
56
|
safeRadii[lastIndex] = Math.min(safeRadii[lastIndex], safeConnectRadius);
|
|
70
57
|
}
|
|
71
58
|
if (points.length > 2) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
59
|
+
const dir = points[0].clone().sub(points[1]).normalize();
|
|
60
|
+
const realEndPoints = points[1].clone().add(dir.multiplyScalar(safeRadii[1]));
|
|
61
|
+
let firstPoint = points[0];
|
|
75
62
|
if (close) firstPoint = points[0].clone().add(points[1].clone().sub(points[0]).normalize().multiplyScalar(safeRadii[0]));
|
|
76
63
|
lines.push(new LineCurve3(firstPoint, realEndPoints));
|
|
77
64
|
}
|
|
78
|
-
for (
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
65
|
+
for (let i = 1; i < lastIndex; i++) {
|
|
66
|
+
const dir1 = points[i - 1].clone().sub(points[i]).normalize();
|
|
67
|
+
const dir2 = points[i + 1].clone().sub(points[i]).normalize();
|
|
68
|
+
const dir3 = points[i].clone().sub(points[i + 1]).normalize();
|
|
69
|
+
const p1 = points[i].clone().add(dir1.multiplyScalar(safeRadii[i]));
|
|
70
|
+
const p2 = points[i].clone();
|
|
71
|
+
const p3 = points[i].clone().add(dir2.multiplyScalar(safeRadii[i]));
|
|
72
|
+
const bezierCurve = new QuadraticBezierCurve3(p1, p2, p3);
|
|
86
73
|
lines.push(bezierCurve);
|
|
87
|
-
|
|
88
|
-
|
|
74
|
+
const nextRadius = safeRadii[i + 1];
|
|
75
|
+
const nextEndPoint = i === lastIndex - 1 && close ? points[i + 1].clone().add(dir3.multiplyScalar(nextRadius)) : i === lastIndex - 1 ? points[i + 1] : points[i + 1].clone().add(dir3.multiplyScalar(nextRadius));
|
|
89
76
|
lines.push(new LineCurve3(p3, nextEndPoint));
|
|
90
77
|
}
|
|
91
78
|
if (close && points.length > 2) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
79
|
+
const lastDir1 = points[0].clone().sub(points[lastIndex]).normalize();
|
|
80
|
+
const lastDir2 = points[lastIndex - 1].clone().sub(points[lastIndex]).normalize();
|
|
81
|
+
const lastP1 = points[lastIndex].clone().add(lastDir2.multiplyScalar(safeRadii[lastIndex]));
|
|
82
|
+
const lastP2 = points[lastIndex].clone();
|
|
83
|
+
const lastP3 = points[lastIndex].clone().add(lastDir1.multiplyScalar(safeRadii[lastIndex]));
|
|
84
|
+
const lastBezier = new QuadraticBezierCurve3(lastP1, lastP2, lastP3);
|
|
98
85
|
lines.push(lastBezier);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
86
|
+
const firstDir1 = points[1].clone().sub(points[0]).normalize();
|
|
87
|
+
const firstDir2 = points[lastIndex].clone().sub(points[0]).normalize();
|
|
88
|
+
const firstP1 = points[0].clone().add(firstDir2.multiplyScalar(safeRadii[0]));
|
|
89
|
+
const firstP2 = points[0].clone();
|
|
90
|
+
const firstP3 = points[0].clone().add(firstDir1.multiplyScalar(safeRadii[0]));
|
|
104
91
|
lines.push(new LineCurve3(lastP3, firstP1));
|
|
105
92
|
lines.push(new QuadraticBezierCurve3(firstP1, firstP2, firstP3));
|
|
106
93
|
}
|
|
107
|
-
curve.curves = []
|
|
94
|
+
curve.curves = [...lines];
|
|
108
95
|
return curve;
|
|
109
96
|
};
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}
|
|
117
|
-
var res = fn.apply(this, args);
|
|
118
|
-
this.curves = createRoundedCornersCurve(this._points, this._radius, this._close).curves;
|
|
119
|
-
return res;
|
|
120
|
-
};
|
|
97
|
+
const recreateCurve = (target, _propertyKey, descriptor) => {
|
|
98
|
+
const originalMethod = descriptor.value;
|
|
99
|
+
const handleFunction = fn => function (...args) {
|
|
100
|
+
const res = fn.apply(this, args);
|
|
101
|
+
this.curves = createRoundedCornersCurve(this._points, this._radius, this._close).curves;
|
|
102
|
+
return res;
|
|
121
103
|
};
|
|
122
104
|
if (originalMethod) descriptor.value = handleFunction(originalMethod);else descriptor.set = handleFunction(descriptor.set);
|
|
123
105
|
return descriptor;
|
|
@@ -126,69 +108,48 @@ var recreateCurve = function recreateCurve(target, _propertyKey, descriptor) {
|
|
|
126
108
|
/**
|
|
127
109
|
* 圆角拐角曲线类
|
|
128
110
|
*/
|
|
129
|
-
export
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
this._radius = radius;
|
|
162
|
-
}
|
|
163
|
-
}, {
|
|
164
|
-
key: "close",
|
|
165
|
-
get: function get() {
|
|
166
|
-
return this._close;
|
|
167
|
-
},
|
|
168
|
-
set: function set(close) {
|
|
169
|
-
this._close = close;
|
|
170
|
-
}
|
|
171
|
-
}, {
|
|
172
|
-
key: "clone",
|
|
173
|
-
value: function clone() {
|
|
174
|
-
return new this.constructor(this._points.map(function (p) {
|
|
175
|
-
return p.clone();
|
|
176
|
-
}), this._radius, this._close);
|
|
177
|
-
}
|
|
111
|
+
export let RoundedCornersCurve = (_class = class RoundedCornersCurve extends CurvePath {
|
|
112
|
+
get points() {
|
|
113
|
+
return this._points.slice();
|
|
114
|
+
}
|
|
115
|
+
set points(points) {
|
|
116
|
+
this._points = points;
|
|
117
|
+
}
|
|
118
|
+
get radius() {
|
|
119
|
+
return this._radius;
|
|
120
|
+
}
|
|
121
|
+
set radius(radius) {
|
|
122
|
+
this._radius = radius;
|
|
123
|
+
}
|
|
124
|
+
get close() {
|
|
125
|
+
return this._close;
|
|
126
|
+
}
|
|
127
|
+
set close(close) {
|
|
128
|
+
this._close = close;
|
|
129
|
+
}
|
|
130
|
+
constructor(points, radius = 20, close = true) {
|
|
131
|
+
super();
|
|
132
|
+
_defineProperty(this, "_points", void 0);
|
|
133
|
+
_defineProperty(this, "_radius", 20);
|
|
134
|
+
_defineProperty(this, "_close", true);
|
|
135
|
+
this._points = points;
|
|
136
|
+
this._radius = radius;
|
|
137
|
+
this._close = close;
|
|
138
|
+
this.curves = createRoundedCornersCurve(this._points, this._radius, this._close).curves;
|
|
139
|
+
}
|
|
140
|
+
clone() {
|
|
141
|
+
return new this.constructor(this._points.map(p => p.clone()), this._radius, this._close);
|
|
142
|
+
}
|
|
178
143
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
}
|
|
191
|
-
}]);
|
|
192
|
-
return RoundedCornersCurve;
|
|
193
|
-
}(CurvePath), (_applyDecoratedDescriptor(_class.prototype, "points", [recreateCurve], Object.getOwnPropertyDescriptor(_class.prototype, "points"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "radius", [recreateCurve], Object.getOwnPropertyDescriptor(_class.prototype, "radius"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "close", [recreateCurve], Object.getOwnPropertyDescriptor(_class.prototype, "close"), _class.prototype)), _class);
|
|
144
|
+
/**
|
|
145
|
+
* updatePoint
|
|
146
|
+
* @param index
|
|
147
|
+
* @param point
|
|
148
|
+
*/
|
|
149
|
+
updatePoint(index, point) {
|
|
150
|
+
if (index < 0 || index >= this._points.length) throw new Error(`Point index out of range: ${index}`);
|
|
151
|
+
this._points[index] = point;
|
|
152
|
+
this.curves = createRoundedCornersCurve(this._points, this._radius, this._close).curves;
|
|
153
|
+
}
|
|
154
|
+
}, (_applyDecoratedDescriptor(_class.prototype, "points", [recreateCurve], Object.getOwnPropertyDescriptor(_class.prototype, "points"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "radius", [recreateCurve], Object.getOwnPropertyDescriptor(_class.prototype, "radius"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "close", [recreateCurve], Object.getOwnPropertyDescriptor(_class.prototype, "close"), _class.prototype)), _class);
|
|
194
155
|
//# sourceMappingURL=RoundedCornersCurve.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CurvePath","LineCurve3","QuadraticBezierCurve3","calculateDistance","p1","p2","clone","sub","length","calculateSafeRadius","points","radius","safeRadii","Array","fill","i","prevDist","nextDist","maxSafeRadius","Math","min","firstDist","lastDist","createRoundedCornersCurve","arguments","undefined","close","curve","Error","curves","push","lines","lastIndex","firstLastDist","safeConnectRadius","dir","normalize","realEndPoints","add","multiplyScalar","firstPoint","dir1","dir2","dir3","p3","bezierCurve","nextRadius","nextEndPoint","lastDir1","lastDir2","lastP1","lastP2","lastP3","lastBezier","firstDir1","firstDir2","firstP1","firstP2","firstP3","concat","recreateCurve","target","_propertyKey","descriptor","originalMethod","value","handleFunction","fn","_len","args","_key","res","apply","_points","_radius","_close","set","RoundedCornersCurve","_class","_CurvePath","_inherits","_super","_createSuper","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","_createClass","key","get","slice","constructor","map","p","updatePoint","index","point","_applyDecoratedDescriptor","prototype","Object","getOwnPropertyDescriptor"],"sources":["../../../../src/core/Curve/RoundedCornersCurve/RoundedCornersCurve.ts"],"sourcesContent":["import { CurvePath, LineCurve3, QuadraticBezierCurve3 } from '@anov/3d-core'\nimport type { Vector3 } from '@anov/3d-core'\nimport type { RoundedCornersCurveInterface } from '.'\n\nconst calculateDistance = (p1: Vector3, p2: Vector3): number => {\n return p1.clone().sub(p2).length()\n}\n\n/**\n * calculateSafeRadius\n * @param points\n * @param radius\n * @returns\n */\nconst calculateSafeRadius = (points: Vector3[], radius: number): number[] => {\n if (points.length <= 2)\n return [radius, radius]\n\n const safeRadii: number[] = new Array(points.length).fill(radius)\n\n for (let i = 1; i < points.length - 1; i++) {\n const prevDist = calculateDistance(points[i], points[i - 1])\n const nextDist = calculateDistance(points[i], points[i + 1])\n\n const maxSafeRadius = Math.min(prevDist / 2, nextDist / 2, radius)\n safeRadii[i] = maxSafeRadius\n }\n\n if (points.length > 2) {\n const firstDist = calculateDistance(points[0], points[1])\n const lastDist = calculateDistance(points[points.length - 1], points[points.length - 2])\n\n safeRadii[0] = Math.min(firstDist / 2, radius)\n safeRadii[points.length - 1] = Math.min(lastDist / 2, radius)\n }\n\n return safeRadii\n}\n\n/**\n * 创建圆角拐角曲线\n * @param points\n * @param radius\n * @param close\n * @returns\n */\nexport const createRoundedCornersCurve = (points: Vector3[], radius = 20, close = true) => {\n const curve = new CurvePath() as CurvePath<Vector3>\n\n if (points.length < 2)\n throw new Error('At least two points are required to create a curve')\n\n if (points.length === 2) {\n curve.curves.push(new LineCurve3(points[0], points[1]))\n return curve\n }\n\n const safeRadii = calculateSafeRadius(points, radius)\n\n const lines = []\n const lastIndex = points.length - 1\n\n if (close && points.length > 2) {\n const firstLastDist = calculateDistance(points[0], points[lastIndex])\n const safeConnectRadius = Math.min(firstLastDist / 2, radius)\n safeRadii[0] = Math.min(safeRadii[0], safeConnectRadius)\n safeRadii[lastIndex] = Math.min(safeRadii[lastIndex], safeConnectRadius)\n }\n\n if (points.length > 2) {\n const dir = points[0].clone().sub(points[1]).normalize()\n const realEndPoints = points[1].clone().add(dir.multiplyScalar(safeRadii[1]))\n\n let firstPoint = points[0]\n if (close)\n firstPoint = points[0].clone().add(points[1].clone().sub(points[0]).normalize().multiplyScalar(safeRadii[0]))\n\n lines.push(new LineCurve3(firstPoint, realEndPoints))\n }\n\n for (let i = 1; i < lastIndex; i++) {\n const dir1 = points[i - 1].clone().sub(points[i]).normalize()\n const dir2 = points[i + 1].clone().sub(points[i]).normalize()\n const dir3 = points[i].clone().sub(points[i + 1]).normalize()\n\n const p1 = points[i].clone().add(dir1.multiplyScalar(safeRadii[i]))\n const p2 = points[i].clone()\n const p3 = points[i].clone().add(dir2.multiplyScalar(safeRadii[i]))\n\n const bezierCurve = new QuadraticBezierCurve3(p1, p2, p3)\n lines.push(bezierCurve)\n\n const nextRadius = safeRadii[i + 1]\n const nextEndPoint = (i === lastIndex - 1 && close)\n ? points[i + 1].clone().add(dir3.multiplyScalar(nextRadius))\n : (i === lastIndex - 1)\n ? points[i + 1]\n : points[i + 1].clone().add(dir3.multiplyScalar(nextRadius))\n\n lines.push(new LineCurve3(p3, nextEndPoint))\n }\n\n if (close && points.length > 2) {\n const lastDir1 = points[0].clone().sub(points[lastIndex]).normalize()\n const lastDir2 = points[lastIndex - 1].clone().sub(points[lastIndex]).normalize()\n\n const lastP1 = points[lastIndex].clone().add(lastDir2.multiplyScalar(safeRadii[lastIndex]))\n const lastP2 = points[lastIndex].clone()\n const lastP3 = points[lastIndex].clone().add(lastDir1.multiplyScalar(safeRadii[lastIndex]))\n\n const lastBezier = new QuadraticBezierCurve3(lastP1, lastP2, lastP3)\n lines.push(lastBezier)\n\n const firstDir1 = points[1].clone().sub(points[0]).normalize()\n const firstDir2 = points[lastIndex].clone().sub(points[0]).normalize()\n\n const firstP1 = points[0].clone().add(firstDir2.multiplyScalar(safeRadii[0]))\n const firstP2 = points[0].clone()\n const firstP3 = points[0].clone().add(firstDir1.multiplyScalar(safeRadii[0]))\n\n lines.push(new LineCurve3(lastP3, firstP1))\n lines.push(new QuadraticBezierCurve3(firstP1, firstP2, firstP3))\n }\n\n curve.curves = [...lines]\n return curve\n}\n\nconst recreateCurve = (target: any, _propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const originalMethod = descriptor.value\n\n const handleFunction = (fn: Function) => function (...args: any[]) {\n const res = fn.apply(this, args)\n this.curves = createRoundedCornersCurve(this._points, this._radius, this._close).curves\n return res\n }\n\n if (originalMethod)\n descriptor.value = handleFunction(originalMethod)\n else\n descriptor.set = handleFunction(descriptor.set)\n\n return descriptor\n}\n\n/**\n * 圆角拐角曲线类\n */\nexport class RoundedCornersCurve extends CurvePath<Vector3> implements RoundedCornersCurveInterface {\n private _points: Vector3[]\n private _radius = 20\n private _close = true\n\n get points(): Vector3[] {\n return this._points.slice()\n }\n\n @recreateCurve\n set points(points: Vector3[]) {\n this._points = points\n }\n\n get radius(): number {\n return this._radius\n }\n\n @recreateCurve\n set radius(radius: number) {\n this._radius = radius\n }\n\n get close(): boolean {\n return this._close\n }\n\n @recreateCurve\n set close(close: boolean) {\n this._close = close\n }\n\n constructor(points: Vector3[], radius = 20, close = true) {\n super()\n\n this._points = points\n this._radius = radius\n this._close = close\n\n this.curves = createRoundedCornersCurve(this._points, this._radius, this._close).curves\n }\n\n override clone(): this {\n return new (this.constructor as any)(this._points.map(p => p.clone()), this._radius, this._close)\n }\n\n /**\n * updatePoint\n * @param index\n * @param point\n */\n updatePoint(index: number, point: Vector3): void {\n if (index < 0 || index >= this._points.length)\n throw new Error(`Point index out of range: ${index}`)\n\n this._points[index] = point\n this.curves = createRoundedCornersCurve(this._points, this._radius, this._close).curves\n }\n}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["CurvePath","LineCurve3","QuadraticBezierCurve3","calculateDistance","p1","p2","clone","sub","length","calculateSafeRadius","points","radius","safeRadii","Array","fill","i","prevDist","nextDist","maxSafeRadius","Math","min","firstDist","lastDist","createRoundedCornersCurve","close","curve","Error","curves","push","lines","lastIndex","firstLastDist","safeConnectRadius","dir","normalize","realEndPoints","add","multiplyScalar","firstPoint","dir1","dir2","dir3","p3","bezierCurve","nextRadius","nextEndPoint","lastDir1","lastDir2","lastP1","lastP2","lastP3","lastBezier","firstDir1","firstDir2","firstP1","firstP2","firstP3","recreateCurve","target","_propertyKey","descriptor","originalMethod","value","handleFunction","fn","args","res","apply","_points","_radius","_close","set","RoundedCornersCurve","_class","slice","constructor","_defineProperty","map","p","updatePoint","index","point","_applyDecoratedDescriptor","prototype","Object","getOwnPropertyDescriptor"],"sources":["../../../../src/core/Curve/RoundedCornersCurve/RoundedCornersCurve.ts"],"sourcesContent":["import { CurvePath, LineCurve3, QuadraticBezierCurve3 } from '@anov/3d-core'\nimport type { Vector3 } from '@anov/3d-core'\nimport type { RoundedCornersCurveInterface } from '.'\n\nconst calculateDistance = (p1: Vector3, p2: Vector3): number => {\n return p1.clone().sub(p2).length()\n}\n\n/**\n * calculateSafeRadius\n * @param points\n * @param radius\n * @returns\n */\nconst calculateSafeRadius = (points: Vector3[], radius: number): number[] => {\n if (points.length <= 2)\n return [radius, radius]\n\n const safeRadii: number[] = new Array(points.length).fill(radius)\n\n for (let i = 1; i < points.length - 1; i++) {\n const prevDist = calculateDistance(points[i], points[i - 1])\n const nextDist = calculateDistance(points[i], points[i + 1])\n\n const maxSafeRadius = Math.min(prevDist / 2, nextDist / 2, radius)\n safeRadii[i] = maxSafeRadius\n }\n\n if (points.length > 2) {\n const firstDist = calculateDistance(points[0], points[1])\n const lastDist = calculateDistance(points[points.length - 1], points[points.length - 2])\n\n safeRadii[0] = Math.min(firstDist / 2, radius)\n safeRadii[points.length - 1] = Math.min(lastDist / 2, radius)\n }\n\n return safeRadii\n}\n\n/**\n * 创建圆角拐角曲线\n * @param points\n * @param radius\n * @param close\n * @returns\n */\nexport const createRoundedCornersCurve = (points: Vector3[], radius = 20, close = true) => {\n const curve = new CurvePath() as CurvePath<Vector3>\n\n if (points.length < 2)\n throw new Error('At least two points are required to create a curve')\n\n if (points.length === 2) {\n curve.curves.push(new LineCurve3(points[0], points[1]))\n return curve\n }\n\n const safeRadii = calculateSafeRadius(points, radius)\n\n const lines = []\n const lastIndex = points.length - 1\n\n if (close && points.length > 2) {\n const firstLastDist = calculateDistance(points[0], points[lastIndex])\n const safeConnectRadius = Math.min(firstLastDist / 2, radius)\n safeRadii[0] = Math.min(safeRadii[0], safeConnectRadius)\n safeRadii[lastIndex] = Math.min(safeRadii[lastIndex], safeConnectRadius)\n }\n\n if (points.length > 2) {\n const dir = points[0].clone().sub(points[1]).normalize()\n const realEndPoints = points[1].clone().add(dir.multiplyScalar(safeRadii[1]))\n\n let firstPoint = points[0]\n if (close)\n firstPoint = points[0].clone().add(points[1].clone().sub(points[0]).normalize().multiplyScalar(safeRadii[0]))\n\n lines.push(new LineCurve3(firstPoint, realEndPoints))\n }\n\n for (let i = 1; i < lastIndex; i++) {\n const dir1 = points[i - 1].clone().sub(points[i]).normalize()\n const dir2 = points[i + 1].clone().sub(points[i]).normalize()\n const dir3 = points[i].clone().sub(points[i + 1]).normalize()\n\n const p1 = points[i].clone().add(dir1.multiplyScalar(safeRadii[i]))\n const p2 = points[i].clone()\n const p3 = points[i].clone().add(dir2.multiplyScalar(safeRadii[i]))\n\n const bezierCurve = new QuadraticBezierCurve3(p1, p2, p3)\n lines.push(bezierCurve)\n\n const nextRadius = safeRadii[i + 1]\n const nextEndPoint = (i === lastIndex - 1 && close)\n ? points[i + 1].clone().add(dir3.multiplyScalar(nextRadius))\n : (i === lastIndex - 1)\n ? points[i + 1]\n : points[i + 1].clone().add(dir3.multiplyScalar(nextRadius))\n\n lines.push(new LineCurve3(p3, nextEndPoint))\n }\n\n if (close && points.length > 2) {\n const lastDir1 = points[0].clone().sub(points[lastIndex]).normalize()\n const lastDir2 = points[lastIndex - 1].clone().sub(points[lastIndex]).normalize()\n\n const lastP1 = points[lastIndex].clone().add(lastDir2.multiplyScalar(safeRadii[lastIndex]))\n const lastP2 = points[lastIndex].clone()\n const lastP3 = points[lastIndex].clone().add(lastDir1.multiplyScalar(safeRadii[lastIndex]))\n\n const lastBezier = new QuadraticBezierCurve3(lastP1, lastP2, lastP3)\n lines.push(lastBezier)\n\n const firstDir1 = points[1].clone().sub(points[0]).normalize()\n const firstDir2 = points[lastIndex].clone().sub(points[0]).normalize()\n\n const firstP1 = points[0].clone().add(firstDir2.multiplyScalar(safeRadii[0]))\n const firstP2 = points[0].clone()\n const firstP3 = points[0].clone().add(firstDir1.multiplyScalar(safeRadii[0]))\n\n lines.push(new LineCurve3(lastP3, firstP1))\n lines.push(new QuadraticBezierCurve3(firstP1, firstP2, firstP3))\n }\n\n curve.curves = [...lines]\n return curve\n}\n\nconst recreateCurve = (target: any, _propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const originalMethod = descriptor.value\n\n const handleFunction = (fn: Function) => function (...args: any[]) {\n const res = fn.apply(this, args)\n this.curves = createRoundedCornersCurve(this._points, this._radius, this._close).curves\n return res\n }\n\n if (originalMethod)\n descriptor.value = handleFunction(originalMethod)\n else\n descriptor.set = handleFunction(descriptor.set)\n\n return descriptor\n}\n\n/**\n * 圆角拐角曲线类\n */\nexport class RoundedCornersCurve extends CurvePath<Vector3> implements RoundedCornersCurveInterface {\n private _points: Vector3[]\n private _radius = 20\n private _close = true\n\n get points(): Vector3[] {\n return this._points.slice()\n }\n\n @recreateCurve\n set points(points: Vector3[]) {\n this._points = points\n }\n\n get radius(): number {\n return this._radius\n }\n\n @recreateCurve\n set radius(radius: number) {\n this._radius = radius\n }\n\n get close(): boolean {\n return this._close\n }\n\n @recreateCurve\n set close(close: boolean) {\n this._close = close\n }\n\n constructor(points: Vector3[], radius = 20, close = true) {\n super()\n\n this._points = points\n this._radius = radius\n this._close = close\n\n this.curves = createRoundedCornersCurve(this._points, this._radius, this._close).curves\n }\n\n override clone(): this {\n return new (this.constructor as any)(this._points.map(p => p.clone()), this._radius, this._close)\n }\n\n /**\n * updatePoint\n * @param index\n * @param point\n */\n updatePoint(index: number, point: Vector3): void {\n if (index < 0 || index >= this._points.length)\n throw new Error(`Point index out of range: ${index}`)\n\n this._points[index] = point\n this.curves = createRoundedCornersCurve(this._points, this._radius, this._close).curves\n }\n}"],"mappings":";;;;;AAAA,SAASA,SAAS,EAAEC,UAAU,EAAEC,qBAAqB,QAAQ,eAAe;AAI5E,MAAMC,iBAAiB,GAAGA,CAACC,EAAW,EAAEC,EAAW,KAAa;EAC9D,OAAOD,EAAE,CAACE,KAAK,CAAC,CAAC,CAACC,GAAG,CAACF,EAAE,CAAC,CAACG,MAAM,CAAC,CAAC;AACpC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,mBAAmB,GAAGA,CAACC,MAAiB,EAAEC,MAAc,KAAe;EAC3E,IAAID,MAAM,CAACF,MAAM,IAAI,CAAC,EACpB,OAAO,CAACG,MAAM,EAAEA,MAAM,CAAC;EAEzB,MAAMC,SAAmB,GAAG,IAAIC,KAAK,CAACH,MAAM,CAACF,MAAM,CAAC,CAACM,IAAI,CAACH,MAAM,CAAC;EAEjE,KAAK,IAAII,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,MAAM,CAACF,MAAM,GAAG,CAAC,EAAEO,CAAC,EAAE,EAAE;IAC1C,MAAMC,QAAQ,GAAGb,iBAAiB,CAACO,MAAM,CAACK,CAAC,CAAC,EAAEL,MAAM,CAACK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,MAAME,QAAQ,GAAGd,iBAAiB,CAACO,MAAM,CAACK,CAAC,CAAC,EAAEL,MAAM,CAACK,CAAC,GAAG,CAAC,CAAC,CAAC;IAE5D,MAAMG,aAAa,GAAGC,IAAI,CAACC,GAAG,CAACJ,QAAQ,GAAG,CAAC,EAAEC,QAAQ,GAAG,CAAC,EAAEN,MAAM,CAAC;IAClEC,SAAS,CAACG,CAAC,CAAC,GAAGG,aAAa;EAC9B;EAEA,IAAIR,MAAM,CAACF,MAAM,GAAG,CAAC,EAAE;IACrB,MAAMa,SAAS,GAAGlB,iBAAiB,CAACO,MAAM,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC;IACzD,MAAMY,QAAQ,GAAGnB,iBAAiB,CAACO,MAAM,CAACA,MAAM,CAACF,MAAM,GAAG,CAAC,CAAC,EAAEE,MAAM,CAACA,MAAM,CAACF,MAAM,GAAG,CAAC,CAAC,CAAC;IAExFI,SAAS,CAAC,CAAC,CAAC,GAAGO,IAAI,CAACC,GAAG,CAACC,SAAS,GAAG,CAAC,EAAEV,MAAM,CAAC;IAC9CC,SAAS,CAACF,MAAM,CAACF,MAAM,GAAG,CAAC,CAAC,GAAGW,IAAI,CAACC,GAAG,CAACE,QAAQ,GAAG,CAAC,EAAEX,MAAM,CAAC;EAC/D;EAEA,OAAOC,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMW,yBAAyB,GAAGA,CAACb,MAAiB,EAAEC,MAAM,GAAG,EAAE,EAAEa,KAAK,GAAG,IAAI,KAAK;EACzF,MAAMC,KAAK,GAAG,IAAIzB,SAAS,CAAC,CAAuB;EAEnD,IAAIU,MAAM,CAACF,MAAM,GAAG,CAAC,EACnB,MAAM,IAAIkB,KAAK,CAAC,oDAAoD,CAAC;EAEvE,IAAIhB,MAAM,CAACF,MAAM,KAAK,CAAC,EAAE;IACvBiB,KAAK,CAACE,MAAM,CAACC,IAAI,CAAC,IAAI3B,UAAU,CAACS,MAAM,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,OAAOe,KAAK;EACd;EAEA,MAAMb,SAAS,GAAGH,mBAAmB,CAACC,MAAM,EAAEC,MAAM,CAAC;EAErD,MAAMkB,KAAK,GAAG,EAAE;EAChB,MAAMC,SAAS,GAAGpB,MAAM,CAACF,MAAM,GAAG,CAAC;EAEnC,IAAIgB,KAAK,IAAId,MAAM,CAACF,MAAM,GAAG,CAAC,EAAE;IAC9B,MAAMuB,aAAa,GAAG5B,iBAAiB,CAACO,MAAM,CAAC,CAAC,CAAC,EAAEA,MAAM,CAACoB,SAAS,CAAC,CAAC;IACrE,MAAME,iBAAiB,GAAGb,IAAI,CAACC,GAAG,CAACW,aAAa,GAAG,CAAC,EAAEpB,MAAM,CAAC;IAC7DC,SAAS,CAAC,CAAC,CAAC,GAAGO,IAAI,CAACC,GAAG,CAACR,SAAS,CAAC,CAAC,CAAC,EAAEoB,iBAAiB,CAAC;IACxDpB,SAAS,CAACkB,SAAS,CAAC,GAAGX,IAAI,CAACC,GAAG,CAACR,SAAS,CAACkB,SAAS,CAAC,EAAEE,iBAAiB,CAAC;EAC1E;EAEA,IAAItB,MAAM,CAACF,MAAM,GAAG,CAAC,EAAE;IACrB,MAAMyB,GAAG,GAAGvB,MAAM,CAAC,CAAC,CAAC,CAACJ,KAAK,CAAC,CAAC,CAACC,GAAG,CAACG,MAAM,CAAC,CAAC,CAAC,CAAC,CAACwB,SAAS,CAAC,CAAC;IACxD,MAAMC,aAAa,GAAGzB,MAAM,CAAC,CAAC,CAAC,CAACJ,KAAK,CAAC,CAAC,CAAC8B,GAAG,CAACH,GAAG,CAACI,cAAc,CAACzB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E,IAAI0B,UAAU,GAAG5B,MAAM,CAAC,CAAC,CAAC;IAC1B,IAAIc,KAAK,EACPc,UAAU,GAAG5B,MAAM,CAAC,CAAC,CAAC,CAACJ,KAAK,CAAC,CAAC,CAAC8B,GAAG,CAAC1B,MAAM,CAAC,CAAC,CAAC,CAACJ,KAAK,CAAC,CAAC,CAACC,GAAG,CAACG,MAAM,CAAC,CAAC,CAAC,CAAC,CAACwB,SAAS,CAAC,CAAC,CAACG,cAAc,CAACzB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/GiB,KAAK,CAACD,IAAI,CAAC,IAAI3B,UAAU,CAACqC,UAAU,EAAEH,aAAa,CAAC,CAAC;EACvD;EAEA,KAAK,IAAIpB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGe,SAAS,EAAEf,CAAC,EAAE,EAAE;IAClC,MAAMwB,IAAI,GAAG7B,MAAM,CAACK,CAAC,GAAG,CAAC,CAAC,CAACT,KAAK,CAAC,CAAC,CAACC,GAAG,CAACG,MAAM,CAACK,CAAC,CAAC,CAAC,CAACmB,SAAS,CAAC,CAAC;IAC7D,MAAMM,IAAI,GAAG9B,MAAM,CAACK,CAAC,GAAG,CAAC,CAAC,CAACT,KAAK,CAAC,CAAC,CAACC,GAAG,CAACG,MAAM,CAACK,CAAC,CAAC,CAAC,CAACmB,SAAS,CAAC,CAAC;IAC7D,MAAMO,IAAI,GAAG/B,MAAM,CAACK,CAAC,CAAC,CAACT,KAAK,CAAC,CAAC,CAACC,GAAG,CAACG,MAAM,CAACK,CAAC,GAAG,CAAC,CAAC,CAAC,CAACmB,SAAS,CAAC,CAAC;IAE7D,MAAM9B,EAAE,GAAGM,MAAM,CAACK,CAAC,CAAC,CAACT,KAAK,CAAC,CAAC,CAAC8B,GAAG,CAACG,IAAI,CAACF,cAAc,CAACzB,SAAS,CAACG,CAAC,CAAC,CAAC,CAAC;IACnE,MAAMV,EAAE,GAAGK,MAAM,CAACK,CAAC,CAAC,CAACT,KAAK,CAAC,CAAC;IAC5B,MAAMoC,EAAE,GAAGhC,MAAM,CAACK,CAAC,CAAC,CAACT,KAAK,CAAC,CAAC,CAAC8B,GAAG,CAACI,IAAI,CAACH,cAAc,CAACzB,SAAS,CAACG,CAAC,CAAC,CAAC,CAAC;IAEnE,MAAM4B,WAAW,GAAG,IAAIzC,qBAAqB,CAACE,EAAE,EAAEC,EAAE,EAAEqC,EAAE,CAAC;IACzDb,KAAK,CAACD,IAAI,CAACe,WAAW,CAAC;IAEvB,MAAMC,UAAU,GAAGhC,SAAS,CAACG,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM8B,YAAY,GAAI9B,CAAC,KAAKe,SAAS,GAAG,CAAC,IAAIN,KAAK,GAC9Cd,MAAM,CAACK,CAAC,GAAG,CAAC,CAAC,CAACT,KAAK,CAAC,CAAC,CAAC8B,GAAG,CAACK,IAAI,CAACJ,cAAc,CAACO,UAAU,CAAC,CAAC,GACzD7B,CAAC,KAAKe,SAAS,GAAG,CAAC,GAChBpB,MAAM,CAACK,CAAC,GAAG,CAAC,CAAC,GACbL,MAAM,CAACK,CAAC,GAAG,CAAC,CAAC,CAACT,KAAK,CAAC,CAAC,CAAC8B,GAAG,CAACK,IAAI,CAACJ,cAAc,CAACO,UAAU,CAAC,CAAC;IAElEf,KAAK,CAACD,IAAI,CAAC,IAAI3B,UAAU,CAACyC,EAAE,EAAEG,YAAY,CAAC,CAAC;EAC9C;EAEA,IAAIrB,KAAK,IAAId,MAAM,CAACF,MAAM,GAAG,CAAC,EAAE;IAC9B,MAAMsC,QAAQ,GAAGpC,MAAM,CAAC,CAAC,CAAC,CAACJ,KAAK,CAAC,CAAC,CAACC,GAAG,CAACG,MAAM,CAACoB,SAAS,CAAC,CAAC,CAACI,SAAS,CAAC,CAAC;IACrE,MAAMa,QAAQ,GAAGrC,MAAM,CAACoB,SAAS,GAAG,CAAC,CAAC,CAACxB,KAAK,CAAC,CAAC,CAACC,GAAG,CAACG,MAAM,CAACoB,SAAS,CAAC,CAAC,CAACI,SAAS,CAAC,CAAC;IAEjF,MAAMc,MAAM,GAAGtC,MAAM,CAACoB,SAAS,CAAC,CAACxB,KAAK,CAAC,CAAC,CAAC8B,GAAG,CAACW,QAAQ,CAACV,cAAc,CAACzB,SAAS,CAACkB,SAAS,CAAC,CAAC,CAAC;IAC3F,MAAMmB,MAAM,GAAGvC,MAAM,CAACoB,SAAS,CAAC,CAACxB,KAAK,CAAC,CAAC;IACxC,MAAM4C,MAAM,GAAGxC,MAAM,CAACoB,SAAS,CAAC,CAACxB,KAAK,CAAC,CAAC,CAAC8B,GAAG,CAACU,QAAQ,CAACT,cAAc,CAACzB,SAAS,CAACkB,SAAS,CAAC,CAAC,CAAC;IAE3F,MAAMqB,UAAU,GAAG,IAAIjD,qBAAqB,CAAC8C,MAAM,EAAEC,MAAM,EAAEC,MAAM,CAAC;IACpErB,KAAK,CAACD,IAAI,CAACuB,UAAU,CAAC;IAEtB,MAAMC,SAAS,GAAG1C,MAAM,CAAC,CAAC,CAAC,CAACJ,KAAK,CAAC,CAAC,CAACC,GAAG,CAACG,MAAM,CAAC,CAAC,CAAC,CAAC,CAACwB,SAAS,CAAC,CAAC;IAC9D,MAAMmB,SAAS,GAAG3C,MAAM,CAACoB,SAAS,CAAC,CAACxB,KAAK,CAAC,CAAC,CAACC,GAAG,CAACG,MAAM,CAAC,CAAC,CAAC,CAAC,CAACwB,SAAS,CAAC,CAAC;IAEtE,MAAMoB,OAAO,GAAG5C,MAAM,CAAC,CAAC,CAAC,CAACJ,KAAK,CAAC,CAAC,CAAC8B,GAAG,CAACiB,SAAS,CAAChB,cAAc,CAACzB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM2C,OAAO,GAAG7C,MAAM,CAAC,CAAC,CAAC,CAACJ,KAAK,CAAC,CAAC;IACjC,MAAMkD,OAAO,GAAG9C,MAAM,CAAC,CAAC,CAAC,CAACJ,KAAK,CAAC,CAAC,CAAC8B,GAAG,CAACgB,SAAS,CAACf,cAAc,CAACzB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7EiB,KAAK,CAACD,IAAI,CAAC,IAAI3B,UAAU,CAACiD,MAAM,EAAEI,OAAO,CAAC,CAAC;IAC3CzB,KAAK,CAACD,IAAI,CAAC,IAAI1B,qBAAqB,CAACoD,OAAO,EAAEC,OAAO,EAAEC,OAAO,CAAC,CAAC;EAClE;EAEA/B,KAAK,CAACE,MAAM,GAAG,CAAC,GAAGE,KAAK,CAAC;EACzB,OAAOJ,KAAK;AACd,CAAC;AAED,MAAMgC,aAAa,GAAGA,CAACC,MAAW,EAAEC,YAA6B,EAAEC,UAA8B,KAAK;EACpG,MAAMC,cAAc,GAAGD,UAAU,CAACE,KAAK;EAEvC,MAAMC,cAAc,GAAIC,EAAY,IAAK,UAAU,GAAGC,IAAW,EAAE;IACjE,MAAMC,GAAG,GAAGF,EAAE,CAACG,KAAK,CAAC,IAAI,EAAEF,IAAI,CAAC;IAChC,IAAI,CAACtC,MAAM,GAAGJ,yBAAyB,CAAC,IAAI,CAAC6C,OAAO,EAAE,IAAI,CAACC,OAAO,EAAE,IAAI,CAACC,MAAM,CAAC,CAAC3C,MAAM;IACvF,OAAOuC,GAAG;EACZ,CAAC;EAED,IAAIL,cAAc,EAChBD,UAAU,CAACE,KAAK,GAAGC,cAAc,CAACF,cAAc,CAAC,MAEjDD,UAAU,CAACW,GAAG,GAAGR,cAAc,CAACH,UAAU,CAACW,GAAG,CAAC;EAEjD,OAAOX,UAAU;AACnB,CAAC;;AAED;AACA;AACA;AACA,WAAaY,mBAAmB,IAAAC,MAAA,GAAzB,MAAMD,mBAAmB,SAASxE,SAAS,CAAkD;EAKlG,IAAIU,MAAMA,CAAA,EAAc;IACtB,OAAO,IAAI,CAAC0D,OAAO,CAACM,KAAK,CAAC,CAAC;EAC7B;EAEA,IACIhE,MAAMA,CAACA,MAAiB,EAAE;IAC5B,IAAI,CAAC0D,OAAO,GAAG1D,MAAM;EACvB;EAEA,IAAIC,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAAC0D,OAAO;EACrB;EAEA,IACI1D,MAAMA,CAACA,MAAc,EAAE;IACzB,IAAI,CAAC0D,OAAO,GAAG1D,MAAM;EACvB;EAEA,IAAIa,KAAKA,CAAA,EAAY;IACnB,OAAO,IAAI,CAAC8C,MAAM;EACpB;EAEA,IACI9C,KAAKA,CAACA,KAAc,EAAE;IACxB,IAAI,CAAC8C,MAAM,GAAG9C,KAAK;EACrB;EAEAmD,WAAWA,CAACjE,MAAiB,EAAEC,MAAM,GAAG,EAAE,EAAEa,KAAK,GAAG,IAAI,EAAE;IACxD,KAAK,CAAC,CAAC;IAAAoD,eAAA;IAAAA,eAAA,kBA/BS,EAAE;IAAAA,eAAA,iBACH,IAAI;IAgCnB,IAAI,CAACR,OAAO,GAAG1D,MAAM;IACrB,IAAI,CAAC2D,OAAO,GAAG1D,MAAM;IACrB,IAAI,CAAC2D,MAAM,GAAG9C,KAAK;IAEnB,IAAI,CAACG,MAAM,GAAGJ,yBAAyB,CAAC,IAAI,CAAC6C,OAAO,EAAE,IAAI,CAACC,OAAO,EAAE,IAAI,CAACC,MAAM,CAAC,CAAC3C,MAAM;EACzF;EAESrB,KAAKA,CAAA,EAAS;IACrB,OAAO,IAAK,IAAI,CAACqE,WAAW,CAAS,IAAI,CAACP,OAAO,CAACS,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACxE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC+D,OAAO,EAAE,IAAI,CAACC,MAAM,CAAC;EACnG;;EAEA;AACF;AACA;AACA;AACA;EACES,WAAWA,CAACC,KAAa,EAAEC,KAAc,EAAQ;IAC/C,IAAID,KAAK,GAAG,CAAC,IAAIA,KAAK,IAAI,IAAI,CAACZ,OAAO,CAAC5D,MAAM,EAC3C,MAAM,IAAIkB,KAAK,CAAE,6BAA4BsD,KAAM,EAAC,CAAC;IAEvD,IAAI,CAACZ,OAAO,CAACY,KAAK,CAAC,GAAGC,KAAK;IAC3B,IAAI,CAACtD,MAAM,GAAGJ,yBAAyB,CAAC,IAAI,CAAC6C,OAAO,EAAE,IAAI,CAACC,OAAO,EAAE,IAAI,CAACC,MAAM,CAAC,CAAC3C,MAAM;EACzF;AACF,CAAC,GAAAuD,yBAAA,CAAAT,MAAA,CAAAU,SAAA,aAjDE1B,aAAa,GAAA2B,MAAA,CAAAC,wBAAA,CAAAZ,MAAA,CAAAU,SAAA,aAAAV,MAAA,CAAAU,SAAA,GAAAD,yBAAA,CAAAT,MAAA,CAAAU,SAAA,aASb1B,aAAa,GAAA2B,MAAA,CAAAC,wBAAA,CAAAZ,MAAA,CAAAU,SAAA,aAAAV,MAAA,CAAAU,SAAA,GAAAD,yBAAA,CAAAT,MAAA,CAAAU,SAAA,YASb1B,aAAa,GAAA2B,MAAA,CAAAC,wBAAA,CAAAZ,MAAA,CAAAU,SAAA,YAAAV,MAAA,CAAAU,SAAA,IAAAV,MAAA"}
|
|
@@ -1,49 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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 _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
|
-
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
|
-
export var Performance = /*#__PURE__*/function () {
|
|
8
|
-
function Performance() {
|
|
9
|
-
_classCallCheck(this, Performance);
|
|
1
|
+
export class Performance {
|
|
2
|
+
get objects() {
|
|
3
|
+
return 0;
|
|
10
4
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
}, {
|
|
32
|
-
key: "drawCall",
|
|
33
|
-
get: function get() {
|
|
34
|
-
return 0;
|
|
35
|
-
}
|
|
36
|
-
}, {
|
|
37
|
-
key: "memory",
|
|
38
|
-
get: function get() {
|
|
39
|
-
return 0;
|
|
40
|
-
}
|
|
41
|
-
}, {
|
|
42
|
-
key: "fps",
|
|
43
|
-
get: function get() {
|
|
44
|
-
return 0;
|
|
45
|
-
}
|
|
46
|
-
}]);
|
|
47
|
-
return Performance;
|
|
48
|
-
}();
|
|
5
|
+
get vertices() {
|
|
6
|
+
return 0;
|
|
7
|
+
}
|
|
8
|
+
get triangles() {
|
|
9
|
+
return 0;
|
|
10
|
+
}
|
|
11
|
+
get renderTime() {
|
|
12
|
+
return 0;
|
|
13
|
+
}
|
|
14
|
+
get drawCall() {
|
|
15
|
+
return 0;
|
|
16
|
+
}
|
|
17
|
+
get memory() {
|
|
18
|
+
return 0;
|
|
19
|
+
}
|
|
20
|
+
get fps() {
|
|
21
|
+
return 0;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
49
24
|
//# sourceMappingURL=Performance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Performance","
|
|
1
|
+
{"version":3,"names":["Performance","objects","vertices","triangles","renderTime","drawCall","memory","fps"],"sources":["../../../../src/core/Debug/PerformanceInfo/Performance.ts"],"sourcesContent":["import type { PerformanceInterface } from './index'\n\nexport class Performance implements PerformanceInterface {\n public get objects() {\n return 0\n }\n\n public get vertices() {\n return 0\n }\n\n public get triangles() {\n return 0\n }\n\n public get renderTime() {\n return 0\n }\n\n public get drawCall() {\n return 0\n }\n\n public get memory() {\n return 0\n }\n\n public get fps() {\n return 0\n }\n}\n"],"mappings":"AAEA,OAAO,MAAMA,WAAW,CAAiC;EACvD,IAAWC,OAAOA,CAAA,EAAG;IACnB,OAAO,CAAC;EACV;EAEA,IAAWC,QAAQA,CAAA,EAAG;IACpB,OAAO,CAAC;EACV;EAEA,IAAWC,SAASA,CAAA,EAAG;IACrB,OAAO,CAAC;EACV;EAEA,IAAWC,UAAUA,CAAA,EAAG;IACtB,OAAO,CAAC;EACV;EAEA,IAAWC,QAAQA,CAAA,EAAG;IACpB,OAAO,CAAC;EACV;EAEA,IAAWC,MAAMA,CAAA,EAAG;IAClB,OAAO,CAAC;EACV;EAEA,IAAWC,GAAGA,CAAA,EAAG;IACf,OAAO,CAAC;EACV;AACF"}
|
|
@@ -1,25 +1,8 @@
|
|
|
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
1
|
import { PointLight } from '@anov/3d-core';
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
function PointLightExt() {
|
|
19
|
-
_classCallCheck(this, PointLightExt);
|
|
20
|
-
return _super.call(this);
|
|
2
|
+
class PointLightExt extends PointLight {
|
|
3
|
+
constructor() {
|
|
4
|
+
super();
|
|
21
5
|
}
|
|
22
|
-
|
|
23
|
-
}(PointLight);
|
|
6
|
+
}
|
|
24
7
|
export default PointLightExt;
|
|
25
8
|
//# sourceMappingURL=PointLightExt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PointLight","PointLightExt","
|
|
1
|
+
{"version":3,"names":["PointLight","PointLightExt","constructor"],"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;AAE1C,MAAMC,aAAa,SAASD,UAAU,CAAC;EACrCE,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;EACT;AACF;AAEA,eAAeD,aAAa"}
|
|
@@ -1,43 +1,39 @@
|
|
|
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
1
|
var _class;
|
|
3
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
4
|
-
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); } }
|
|
5
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
6
|
-
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); }
|
|
7
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
8
|
-
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); }; }
|
|
9
|
-
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); }
|
|
10
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
11
|
-
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; } }
|
|
12
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
13
2
|
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; }
|
|
14
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" ==
|
|
15
|
-
function _toPrimitive(t, r) { if ("object" !=
|
|
3
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
4
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
16
5
|
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
|
|
17
6
|
import { Color, MeshStandardMaterial } from '@anov/3d-core';
|
|
18
7
|
import { addUpdateTag } from "../decorators";
|
|
19
8
|
/**
|
|
20
9
|
* 菲尼尔材质
|
|
21
10
|
*/
|
|
22
|
-
export
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
11
|
+
export let FinirMaterial = (_class = class FinirMaterial extends MeshStandardMaterial {
|
|
12
|
+
get rimColor() {
|
|
13
|
+
return this._rimColor;
|
|
14
|
+
}
|
|
15
|
+
set rimColor(value) {
|
|
16
|
+
this._rimColor = value;
|
|
17
|
+
}
|
|
18
|
+
get rimPower() {
|
|
19
|
+
return this._rimPower;
|
|
20
|
+
}
|
|
21
|
+
set rimPower(value) {
|
|
22
|
+
this._rimPower = value;
|
|
23
|
+
}
|
|
24
|
+
constructor(options) {
|
|
25
|
+
super({
|
|
29
26
|
opacity: 0.0,
|
|
30
27
|
transparent: true,
|
|
31
28
|
depthWrite: false
|
|
32
29
|
});
|
|
33
|
-
_defineProperty(
|
|
34
|
-
_defineProperty(
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
_this.onBeforeCompile = function (shader) {
|
|
30
|
+
_defineProperty(this, "_rimColor", new Color(0x00FFFF));
|
|
31
|
+
_defineProperty(this, "_rimPower", 0.9);
|
|
32
|
+
const {
|
|
33
|
+
rimColor = this._rimColor,
|
|
34
|
+
rimPower = this._rimPower
|
|
35
|
+
} = options || {};
|
|
36
|
+
this.onBeforeCompile = shader => {
|
|
41
37
|
shader.uniforms.rimColor = {
|
|
42
38
|
value: rimColor
|
|
43
39
|
};
|
|
@@ -46,35 +42,19 @@ export var FinirMaterial = (_class = /*#__PURE__*/function (_MeshStandardMateria
|
|
|
46
42
|
};
|
|
47
43
|
shader.vertexShader = shader.vertexShader.replace('void main() {', ['varying vec3 vViewDirection;', 'void main() {', 'vec4 worldPosition1 = modelMatrix * vec4(position, 1.0);', 'vViewDirection = normalize(cameraPosition - worldPosition1.xyz);'].join('\n'));
|
|
48
44
|
shader.fragmentShader = shader.fragmentShader.replace('void main() {', ['uniform vec3 rimColor;', 'uniform float rimPower;', 'varying vec3 vViewDirection;', 'void main() {'].join('\n'));
|
|
49
|
-
shader.fragmentShader = shader.fragmentShader.replace('#include <dithering_fragment>',
|
|
45
|
+
shader.fragmentShader = shader.fragmentShader.replace('#include <dithering_fragment>', `#include <dithering_fragment>
|
|
46
|
+
vec3 viewDir = normalize(vViewDirection);
|
|
47
|
+
float dotNV = 1.0-saturate( dot( normal, viewDir ) );
|
|
48
|
+
gl_FragColor.rgb += rimPower*dotNV*rimColor;
|
|
49
|
+
vec3 fresnelall =rimPower*dotNV*rimColor;
|
|
50
|
+
gl_FragColor.a +=(fresnelall.r+fresnelall.g+fresnelall.b)/3.;`);
|
|
50
51
|
};
|
|
51
|
-
return _this;
|
|
52
52
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
}, {
|
|
62
|
-
key: "rimPower",
|
|
63
|
-
get: function get() {
|
|
64
|
-
return this._rimPower;
|
|
65
|
-
},
|
|
66
|
-
set: function set(value) {
|
|
67
|
-
this._rimPower = value;
|
|
68
|
-
}
|
|
69
|
-
}, {
|
|
70
|
-
key: "clone",
|
|
71
|
-
value: function clone() {
|
|
72
|
-
return new this.constructor({
|
|
73
|
-
rimColor: this._rimColor,
|
|
74
|
-
rimPower: this._rimPower
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
}]);
|
|
78
|
-
return FinirMaterial;
|
|
79
|
-
}(MeshStandardMaterial), (_applyDecoratedDescriptor(_class.prototype, "rimColor", [addUpdateTag], Object.getOwnPropertyDescriptor(_class.prototype, "rimColor"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "rimPower", [addUpdateTag], Object.getOwnPropertyDescriptor(_class.prototype, "rimPower"), _class.prototype)), _class);
|
|
53
|
+
clone() {
|
|
54
|
+
return new this.constructor({
|
|
55
|
+
rimColor: this._rimColor,
|
|
56
|
+
rimPower: this._rimPower
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}, (_applyDecoratedDescriptor(_class.prototype, "rimColor", [addUpdateTag], Object.getOwnPropertyDescriptor(_class.prototype, "rimColor"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "rimPower", [addUpdateTag], Object.getOwnPropertyDescriptor(_class.prototype, "rimPower"), _class.prototype)), _class);
|
|
80
60
|
//# sourceMappingURL=FinirMaterial.js.map
|