@anov/3d-ability 0.0.142 → 0.0.144
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 +56 -35
- 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 +187 -146
- package/dist/business/Area/Fence/FenceBase.js.map +1 -1
- package/dist/business/Area/Fence/fence_base_01.js +112 -120
- package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_feeting_01.js +130 -218
- package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_roll_01.js +130 -140
- package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
- package/dist/business/Area/FillArea/FillAreaBase.js +126 -87
- package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
- package/dist/business/Area/FillArea/fillArea_face_01.js +98 -72
- package/dist/business/Area/FillArea/fillArea_face_01.js.map +1 -1
- package/dist/business/Area/FillArea/fillArea_line_01.js +94 -66
- package/dist/business/Area/FillArea/fillArea_line_01.js.map +1 -1
- package/dist/business/Area/index.js +483 -267
- package/dist/business/Area/index.js.map +1 -1
- package/dist/business/Area/tool.js +26 -14
- package/dist/business/Area/tool.js.map +1 -1
- package/dist/business/Base/ObjectLayer.js +46 -21
- package/dist/business/Base/ObjectLayer.js.map +1 -1
- package/dist/business/Batch/index.js +234 -189
- package/dist/business/Batch/index.js.map +1 -1
- package/dist/business/Box/index.js +81 -52
- package/dist/business/Box/index.js.map +1 -1
- package/dist/business/Cylinder/index.js +79 -51
- package/dist/business/Cylinder/index.js.map +1 -1
- package/dist/business/Flyline/bubble/CircleBubble.js +9 -1
- package/dist/business/Flyline/bubble/CircleBubble.js.map +1 -1
- package/dist/business/Flyline/bubble/index.js +21 -7
- package/dist/business/Flyline/bubble/index.js.map +1 -1
- package/dist/business/Flyline/index.js +162 -96
- package/dist/business/Flyline/index.js.map +1 -1
- package/dist/business/Flyline/line/ArcLine.js +291 -208
- package/dist/business/Flyline/line/ArcLine.js.map +1 -1
- package/dist/business/Flyline/line/index.js +22 -8
- package/dist/business/Flyline/line/index.js.map +1 -1
- package/dist/business/HeatMap/HeatMap.js +467 -380
- package/dist/business/HeatMap/HeatMap.js.map +1 -1
- package/dist/business/HeatMap/core.js +525 -405
- package/dist/business/HeatMap/core.js.map +1 -1
- package/dist/business/HeatMap/shader.js +3 -69
- package/dist/business/HeatMap/shader.js.map +1 -1
- package/dist/business/InfoPanel/index.js +242 -201
- package/dist/business/InfoPanel/index.js.map +1 -1
- package/dist/business/Line/index.js +88 -55
- package/dist/business/Line/index.js.map +1 -1
- package/dist/business/Mark/KeyframeAnimation.js +176 -145
- package/dist/business/Mark/KeyframeAnimation.js.map +1 -1
- package/dist/business/Mark/index.js +294 -196
- package/dist/business/Mark/index.js.map +1 -1
- package/dist/business/Mark/shader/tanhao.js +3 -36
- package/dist/business/Mark/shader/tanhao.js.map +1 -1
- package/dist/business/Mark/type.js +1 -1
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +551 -377
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
- package/dist/business/MaterialSwitch/inject.js +58 -92
- package/dist/business/MaterialSwitch/inject.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/finalFade.js +2 -74
- package/dist/business/MaterialSwitch/shader/finalFade.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/ground.js +16 -95
- package/dist/business/MaterialSwitch/shader/ground.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/groundBase64.js +3 -9
- package/dist/business/MaterialSwitch/shader/groundBase64.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.js +9 -48
- package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
- package/dist/business/Plane/index.js +78 -51
- package/dist/business/Plane/index.js.map +1 -1
- package/dist/business/Poi/index.js +336 -248
- package/dist/business/Poi/index.js.map +1 -1
- package/dist/business/Poi/link/Cylinder.js +89 -56
- package/dist/business/Poi/link/Cylinder.js.map +1 -1
- package/dist/business/Poi/link/Pyramid.js +165 -104
- 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 +114 -54
- package/dist/business/Poi/link/index.js.map +1 -1
- package/dist/business/Poi/panel/index.js +373 -315
- package/dist/business/Poi/panel/index.js.map +1 -1
- package/dist/business/Poi/panel/utils.js +10 -5
- package/dist/business/Poi/panel/utils.js.map +1 -1
- package/dist/business/Poi/particle/DoubleCircle.js +107 -71
- package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
- package/dist/business/Poi/particle/DynamicCircle.js +111 -75
- package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
- package/dist/business/Poi/particle/SingleCircle.js +98 -62
- package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
- package/dist/business/Poi/particle/index.js +117 -49
- package/dist/business/Poi/particle/index.js.map +1 -1
- package/dist/business/Poi/shader/circle.js +3 -31
- package/dist/business/Poi/shader/circle.js.map +1 -1
- package/dist/business/Poi/shader/cylinder.js +3 -37
- package/dist/business/Poi/shader/cylinder.js.map +1 -1
- package/dist/business/Poi/shader/doubleCircle.js +3 -55
- package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
- package/dist/business/Poi/shader/dynamicCircle.js +3 -67
- package/dist/business/Poi/shader/dynamicCircle.js.map +1 -1
- package/dist/business/Poi/title/Border.js +27 -7
- package/dist/business/Poi/title/Border.js.map +1 -1
- package/dist/business/Poi/title/Ellipse.js +27 -7
- package/dist/business/Poi/title/Ellipse.js.map +1 -1
- package/dist/business/Poi/title/index.js +292 -208
- package/dist/business/Poi/title/index.js.map +1 -1
- package/dist/business/Poi/tools.js +17 -18
- package/dist/business/Poi/tools.js.map +1 -1
- package/dist/business/Sphere/index.js +72 -47
- package/dist/business/Sphere/index.js.map +1 -1
- package/dist/business/Spline/index.js +245 -190
- package/dist/business/Spline/index.js.map +1 -1
- package/dist/business/SplitBuilding/index.js +536 -327
- package/dist/business/SplitBuilding/index.js.map +1 -1
- package/dist/business/SplitBuilding/type.js +2 -2
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +275 -218
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +177 -132
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +1 -51
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +1 -6
- package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -1
- package/dist/business/TrafficComponents/base.js +55 -32
- package/dist/business/TrafficComponents/base.js.map +1 -1
- package/dist/business/TrafficComponents/utils.js +24 -25
- package/dist/business/TrafficComponents/utils.js.map +1 -1
- package/dist/business/Utils/Curve.js +56 -40
- 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 +14 -13
- package/dist/business/Utils/defineProps.js.map +1 -1
- package/dist/business/Utils/round-curve.js +153 -127
- package/dist/business/Utils/round-curve.js.map +1 -1
- package/dist/business/VideoPanel/index.js +319 -258
- package/dist/business/VideoPanel/index.js.map +1 -1
- package/dist/business/Water/index.js +108 -78
- 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 +449 -383
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js +142 -107
- package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js.map +1 -1
- package/dist/core/Controls/FirstViewControl/index.js +96 -84
- package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/action/input.js +98 -77
- 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 +28 -19
- package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/animation.js +155 -126
- package/dist/core/Controls/ThirdViewControl/player/animation.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/camera.js +63 -47
- package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/control.js +49 -39
- package/dist/core/Controls/ThirdViewControl/player/control.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player.js +91 -66
- package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
- package/dist/core/Controls/base.js +30 -14
- package/dist/core/Controls/base.js.map +1 -1
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +131 -92
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
- package/dist/core/Debug/PerformanceInfo/Performance.js +47 -22
- package/dist/core/Debug/PerformanceInfo/Performance.js.map +1 -1
- package/dist/core/Light/PointLight/PointLightExt.js +21 -4
- package/dist/core/Light/PointLight/PointLightExt.js.map +1 -1
- package/dist/core/Material/FinirMaterial/FinirMaterial.js +57 -37
- package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js +153 -116
- package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/shader/fragment.js +1 -95
- package/dist/core/Material/PristineGridMaterial/shader/fragment.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/shader/vertex.js +1 -26
- package/dist/core/Material/PristineGridMaterial/shader/vertex.js.map +1 -1
- package/dist/core/Material/SurfaceMaterial/index.js +172 -76
- package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
- package/dist/core/Material/decorators.js +11 -6
- package/dist/core/Material/decorators.js.map +1 -1
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +12 -16
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
- package/dist/core/PostEffects/addBrightnessContrastPass.js +13 -17
- package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
- package/dist/core/PostEffects/bloomPass.js +10 -17
- package/dist/core/PostEffects/bloomPass.js.map +1 -1
- package/dist/core/PostEffects/bloomSelect.js +43 -60
- package/dist/core/PostEffects/bloomSelect.js.map +1 -1
- package/dist/core/PostEffects/colorifyPass.js +13 -17
- package/dist/core/PostEffects/colorifyPass.js.map +1 -1
- package/dist/core/PostEffects/index.js +22 -28
- package/dist/core/PostEffects/index.js.map +1 -1
- package/dist/core/PostEffects/outlinePass.js +50 -37
- package/dist/core/PostEffects/outlinePass.js.map +1 -1
- package/dist/core/PostEffects/postprocessing.js +12 -14
- package/dist/core/PostEffects/postprocessing.js.map +1 -1
- package/dist/core/PostEffects/saoPass.js +10 -15
- package/dist/core/PostEffects/saoPass.js.map +1 -1
- package/dist/core/PostEffects/shader/colorify.js +3 -22
- package/dist/core/PostEffects/shader/colorify.js.map +1 -1
- package/dist/core/PostEffects/shader/gammaCorrectionShader.js +3 -27
- package/dist/core/PostEffects/shader/gammaCorrectionShader.js.map +1 -1
- package/dist/core/PostEffects/shader/mapping.js +3 -66
- package/dist/core/PostEffects/shader/mapping.js.map +1 -1
- package/dist/core/PostEffects/shader/thermalMaging.js +3 -28
- package/dist/core/PostEffects/shader/thermalMaging.js.map +1 -1
- package/dist/core/SceneEffect/grow/grow.js +101 -85
- package/dist/core/SceneEffect/grow/grow.js.map +1 -1
- package/dist/core/SceneEffect/grow/style_down.js +77 -60
- package/dist/core/SceneEffect/grow/style_down.js.map +1 -1
- package/dist/core/SceneEffect/grow/style_up.js +81 -64
- 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 +76 -51
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
- package/dist/core/WeatherSystem/hdr/index.js +105 -69
- package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
- package/dist/core/WeatherSystem/index.js +124 -77
- package/dist/core/WeatherSystem/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/fog/index.js +80 -52
- package/dist/core/WeatherSystem/objects/fog/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/index.js +84 -72
- package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/lineRain.js +118 -88
- package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/plane.js +146 -116
- package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/point.js +148 -100
- package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/cloud.js +104 -71
- package/dist/core/WeatherSystem/objects/sky/cloud.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/index.js +84 -66
- package/dist/core/WeatherSystem/objects/sky/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/outline.js +45 -25
- package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/cloud.js +3 -74
- package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/fog.js +3 -103
- package/dist/core/WeatherSystem/shaders/fog.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/rain.js +7 -206
- package/dist/core/WeatherSystem/shaders/rain.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/sky.js +3 -87
- package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
- package/dist/core/WeatherSystem/sky/index.js +135 -104
- package/dist/core/WeatherSystem/sky/index.js.map +1 -1
- package/dist/core/WeatherSystem/utils/constant.js +38 -44
- package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
- package/dist/core/WeatherSystem/utils/math.js +25 -18
- 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 +141 -96
- 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,10 +1,21 @@
|
|
|
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); }
|
|
1
2
|
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); }
|
|
2
13
|
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; }
|
|
3
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" ==
|
|
4
|
-
function _toPrimitive(t, r) { if ("object" !=
|
|
14
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
15
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
5
16
|
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; }
|
|
6
17
|
import { CurvePath, LineCurve3, QuadraticBezierCurve3 } from '@anov/3d-core';
|
|
7
|
-
|
|
18
|
+
var calculateDistance = function calculateDistance(p1, p2) {
|
|
8
19
|
return p1.clone().sub(p2).length();
|
|
9
20
|
};
|
|
10
21
|
|
|
@@ -14,18 +25,18 @@ const calculateDistance = (p1, p2) => {
|
|
|
14
25
|
* @param radius
|
|
15
26
|
* @returns
|
|
16
27
|
*/
|
|
17
|
-
|
|
28
|
+
var calculateSafeRadius = function calculateSafeRadius(points, radius) {
|
|
18
29
|
if (points.length <= 2) return [radius, radius];
|
|
19
|
-
|
|
20
|
-
for (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
30
|
+
var safeRadii = new Array(points.length).fill(radius);
|
|
31
|
+
for (var i = 1; i < points.length - 1; i++) {
|
|
32
|
+
var prevDist = calculateDistance(points[i], points[i - 1]);
|
|
33
|
+
var nextDist = calculateDistance(points[i], points[i + 1]);
|
|
34
|
+
var maxSafeRadius = Math.min(prevDist / 2, nextDist / 2, radius);
|
|
24
35
|
safeRadii[i] = maxSafeRadius;
|
|
25
36
|
}
|
|
26
37
|
if (points.length > 2) {
|
|
27
|
-
|
|
28
|
-
|
|
38
|
+
var firstDist = calculateDistance(points[0], points[1]);
|
|
39
|
+
var lastDist = calculateDistance(points[points.length - 1], points[points.length - 2]);
|
|
29
40
|
safeRadii[0] = Math.min(firstDist / 2, radius);
|
|
30
41
|
safeRadii[points.length - 1] = Math.min(lastDist / 2, radius);
|
|
31
42
|
}
|
|
@@ -39,67 +50,74 @@ const calculateSafeRadius = (points, radius) => {
|
|
|
39
50
|
* @param close
|
|
40
51
|
* @returns
|
|
41
52
|
*/
|
|
42
|
-
export
|
|
43
|
-
|
|
53
|
+
export var createRoundedCornersCurve = function createRoundedCornersCurve(points) {
|
|
54
|
+
var radius = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;
|
|
55
|
+
var close = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
56
|
+
var curve = new CurvePath();
|
|
44
57
|
if (points.length < 2) throw new Error('At least two points are required to create a curve');
|
|
45
58
|
if (points.length === 2) {
|
|
46
59
|
curve.curves.push(new LineCurve3(points[0], points[1]));
|
|
47
60
|
return curve;
|
|
48
61
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
62
|
+
var safeRadii = calculateSafeRadius(points, radius);
|
|
63
|
+
var lines = [];
|
|
64
|
+
var lastIndex = points.length - 1;
|
|
52
65
|
if (close && points.length > 2) {
|
|
53
|
-
|
|
54
|
-
|
|
66
|
+
var firstLastDist = calculateDistance(points[0], points[lastIndex]);
|
|
67
|
+
var safeConnectRadius = Math.min(firstLastDist / 2, radius);
|
|
55
68
|
safeRadii[0] = Math.min(safeRadii[0], safeConnectRadius);
|
|
56
69
|
safeRadii[lastIndex] = Math.min(safeRadii[lastIndex], safeConnectRadius);
|
|
57
70
|
}
|
|
58
71
|
if (points.length > 2) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
72
|
+
var dir = points[0].clone().sub(points[1]).normalize();
|
|
73
|
+
var realEndPoints = points[1].clone().add(dir.multiplyScalar(safeRadii[1]));
|
|
74
|
+
var firstPoint = points[0];
|
|
62
75
|
if (close) firstPoint = points[0].clone().add(points[1].clone().sub(points[0]).normalize().multiplyScalar(safeRadii[0]));
|
|
63
76
|
lines.push(new LineCurve3(firstPoint, realEndPoints));
|
|
64
77
|
}
|
|
65
|
-
for (
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
78
|
+
for (var i = 1; i < lastIndex; i++) {
|
|
79
|
+
var dir1 = points[i - 1].clone().sub(points[i]).normalize();
|
|
80
|
+
var dir2 = points[i + 1].clone().sub(points[i]).normalize();
|
|
81
|
+
var dir3 = points[i].clone().sub(points[i + 1]).normalize();
|
|
82
|
+
var p1 = points[i].clone().add(dir1.multiplyScalar(safeRadii[i]));
|
|
83
|
+
var p2 = points[i].clone();
|
|
84
|
+
var p3 = points[i].clone().add(dir2.multiplyScalar(safeRadii[i]));
|
|
85
|
+
var bezierCurve = new QuadraticBezierCurve3(p1, p2, p3);
|
|
73
86
|
lines.push(bezierCurve);
|
|
74
|
-
|
|
75
|
-
|
|
87
|
+
var nextRadius = safeRadii[i + 1];
|
|
88
|
+
var 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));
|
|
76
89
|
lines.push(new LineCurve3(p3, nextEndPoint));
|
|
77
90
|
}
|
|
78
91
|
if (close && points.length > 2) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
92
|
+
var lastDir1 = points[0].clone().sub(points[lastIndex]).normalize();
|
|
93
|
+
var lastDir2 = points[lastIndex - 1].clone().sub(points[lastIndex]).normalize();
|
|
94
|
+
var lastP1 = points[lastIndex].clone().add(lastDir2.multiplyScalar(safeRadii[lastIndex]));
|
|
95
|
+
var lastP2 = points[lastIndex].clone();
|
|
96
|
+
var lastP3 = points[lastIndex].clone().add(lastDir1.multiplyScalar(safeRadii[lastIndex]));
|
|
97
|
+
var lastBezier = new QuadraticBezierCurve3(lastP1, lastP2, lastP3);
|
|
85
98
|
lines.push(lastBezier);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
99
|
+
var firstDir1 = points[1].clone().sub(points[0]).normalize();
|
|
100
|
+
var firstDir2 = points[lastIndex].clone().sub(points[0]).normalize();
|
|
101
|
+
var firstP1 = points[0].clone().add(firstDir2.multiplyScalar(safeRadii[0]));
|
|
102
|
+
var firstP2 = points[0].clone();
|
|
103
|
+
var firstP3 = points[0].clone().add(firstDir1.multiplyScalar(safeRadii[0]));
|
|
91
104
|
lines.push(new LineCurve3(lastP3, firstP1));
|
|
92
105
|
lines.push(new QuadraticBezierCurve3(firstP1, firstP2, firstP3));
|
|
93
106
|
}
|
|
94
|
-
curve.curves = [
|
|
107
|
+
curve.curves = [].concat(lines);
|
|
95
108
|
return curve;
|
|
96
109
|
};
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
110
|
+
var recreateCurve = function recreateCurve(target, _propertyKey, descriptor) {
|
|
111
|
+
var originalMethod = descriptor.value;
|
|
112
|
+
var handleFunction = function handleFunction(fn) {
|
|
113
|
+
return function () {
|
|
114
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
115
|
+
args[_key] = arguments[_key];
|
|
116
|
+
}
|
|
117
|
+
var res = fn.apply(this, args);
|
|
118
|
+
this.curves = createRoundedCornersCurve(this._points, this._radius, this._close).curves;
|
|
119
|
+
return res;
|
|
120
|
+
};
|
|
103
121
|
};
|
|
104
122
|
if (originalMethod) descriptor.value = handleFunction(originalMethod);else descriptor.set = handleFunction(descriptor.set);
|
|
105
123
|
return descriptor;
|
|
@@ -108,48 +126,69 @@ const recreateCurve = (target, _propertyKey, descriptor) => {
|
|
|
108
126
|
/**
|
|
109
127
|
* 圆角拐角曲线类
|
|
110
128
|
*/
|
|
111
|
-
export
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
129
|
+
export var RoundedCornersCurve = (_class = /*#__PURE__*/function (_CurvePath) {
|
|
130
|
+
_inherits(RoundedCornersCurve, _CurvePath);
|
|
131
|
+
var _super = _createSuper(RoundedCornersCurve);
|
|
132
|
+
function RoundedCornersCurve(points) {
|
|
133
|
+
var _this;
|
|
134
|
+
var radius = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;
|
|
135
|
+
var close = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
136
|
+
_classCallCheck(this, RoundedCornersCurve);
|
|
137
|
+
_this = _super.call(this);
|
|
138
|
+
_defineProperty(_assertThisInitialized(_this), "_points", void 0);
|
|
139
|
+
_defineProperty(_assertThisInitialized(_this), "_radius", 20);
|
|
140
|
+
_defineProperty(_assertThisInitialized(_this), "_close", true);
|
|
141
|
+
_this._points = points;
|
|
142
|
+
_this._radius = radius;
|
|
143
|
+
_this._close = close;
|
|
144
|
+
_this.curves = createRoundedCornersCurve(_this._points, _this._radius, _this._close).curves;
|
|
145
|
+
return _this;
|
|
146
|
+
}
|
|
147
|
+
_createClass(RoundedCornersCurve, [{
|
|
148
|
+
key: "points",
|
|
149
|
+
get: function get() {
|
|
150
|
+
return this._points.slice();
|
|
151
|
+
},
|
|
152
|
+
set: function set(points) {
|
|
153
|
+
this._points = points;
|
|
154
|
+
}
|
|
155
|
+
}, {
|
|
156
|
+
key: "radius",
|
|
157
|
+
get: function get() {
|
|
158
|
+
return this._radius;
|
|
159
|
+
},
|
|
160
|
+
set: function set(radius) {
|
|
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
|
+
}
|
|
143
178
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
179
|
+
/**
|
|
180
|
+
* updatePoint
|
|
181
|
+
* @param index
|
|
182
|
+
* @param point
|
|
183
|
+
*/
|
|
184
|
+
}, {
|
|
185
|
+
key: "updatePoint",
|
|
186
|
+
value: function updatePoint(index, point) {
|
|
187
|
+
if (index < 0 || index >= this._points.length) throw new Error("Point index out of range: ".concat(index));
|
|
188
|
+
this._points[index] = point;
|
|
189
|
+
this.curves = createRoundedCornersCurve(this._points, this._radius, this._close).curves;
|
|
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);
|
|
155
194
|
//# 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","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":"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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","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,24 +1,49 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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 _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);
|
|
4
10
|
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
11
|
+
_createClass(Performance, [{
|
|
12
|
+
key: "objects",
|
|
13
|
+
get: function get() {
|
|
14
|
+
return 0;
|
|
15
|
+
}
|
|
16
|
+
}, {
|
|
17
|
+
key: "vertices",
|
|
18
|
+
get: function get() {
|
|
19
|
+
return 0;
|
|
20
|
+
}
|
|
21
|
+
}, {
|
|
22
|
+
key: "triangles",
|
|
23
|
+
get: function get() {
|
|
24
|
+
return 0;
|
|
25
|
+
}
|
|
26
|
+
}, {
|
|
27
|
+
key: "renderTime",
|
|
28
|
+
get: function get() {
|
|
29
|
+
return 0;
|
|
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
|
+
}();
|
|
24
49
|
//# sourceMappingURL=Performance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Performance","
|
|
1
|
+
{"version":3,"names":["Performance","_classCallCheck","_createClass","key","get"],"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,WAAaA,WAAW;EAAA,SAAAA,YAAA;IAAAC,eAAA,OAAAD,WAAA;EAAA;EAAAE,YAAA,CAAAF,WAAA;IAAAG,GAAA;IAAAC,GAAA,EACtB,SAAAA,IAAA,EAAqB;MACnB,OAAO,CAAC;IACV;EAAC;IAAAD,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAsB;MACpB,OAAO,CAAC;IACV;EAAC;IAAAD,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAuB;MACrB,OAAO,CAAC;IACV;EAAC;IAAAD,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAwB;MACtB,OAAO,CAAC;IACV;EAAC;IAAAD,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAsB;MACpB,OAAO,CAAC;IACV;EAAC;IAAAD,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAoB;MAClB,OAAO,CAAC;IACV;EAAC;IAAAD,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAiB;MACf,OAAO,CAAC;IACV;EAAC;EAAA,OAAAJ,WAAA;AAAA"}
|
|
@@ -1,8 +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); }
|
|
1
14
|
import { PointLight } from '@anov/3d-core';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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);
|
|
5
21
|
}
|
|
6
|
-
|
|
22
|
+
return _createClass(PointLightExt);
|
|
23
|
+
}(PointLight);
|
|
7
24
|
export default PointLightExt;
|
|
8
25
|
//# sourceMappingURL=PointLightExt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PointLight","PointLightExt","
|
|
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"}
|
|
@@ -1,39 +1,43 @@
|
|
|
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); }
|
|
1
2
|
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); }
|
|
2
13
|
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; }
|
|
3
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" ==
|
|
4
|
-
function _toPrimitive(t, r) { if ("object" !=
|
|
14
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
15
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
5
16
|
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; }
|
|
6
17
|
import { Color, MeshStandardMaterial } from '@anov/3d-core';
|
|
7
18
|
import { addUpdateTag } from "../decorators";
|
|
8
19
|
/**
|
|
9
20
|
* 菲尼尔材质
|
|
10
21
|
*/
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
this
|
|
17
|
-
|
|
18
|
-
get rimPower() {
|
|
19
|
-
return this._rimPower;
|
|
20
|
-
}
|
|
21
|
-
set rimPower(value) {
|
|
22
|
-
this._rimPower = value;
|
|
23
|
-
}
|
|
24
|
-
constructor(options) {
|
|
25
|
-
super({
|
|
22
|
+
export var FinirMaterial = (_class = /*#__PURE__*/function (_MeshStandardMaterial) {
|
|
23
|
+
_inherits(FinirMaterial, _MeshStandardMaterial);
|
|
24
|
+
var _super = _createSuper(FinirMaterial);
|
|
25
|
+
function FinirMaterial(options) {
|
|
26
|
+
var _this;
|
|
27
|
+
_classCallCheck(this, FinirMaterial);
|
|
28
|
+
_this = _super.call(this, {
|
|
26
29
|
opacity: 0.0,
|
|
27
30
|
transparent: true,
|
|
28
31
|
depthWrite: false
|
|
29
32
|
});
|
|
30
|
-
_defineProperty(
|
|
31
|
-
_defineProperty(
|
|
32
|
-
|
|
33
|
-
rimColor =
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
_defineProperty(_assertThisInitialized(_this), "_rimColor", new Color(0x00FFFF));
|
|
34
|
+
_defineProperty(_assertThisInitialized(_this), "_rimPower", 0.9);
|
|
35
|
+
var _ref = options || {},
|
|
36
|
+
_ref$rimColor = _ref.rimColor,
|
|
37
|
+
rimColor = _ref$rimColor === void 0 ? _this._rimColor : _ref$rimColor,
|
|
38
|
+
_ref$rimPower = _ref.rimPower,
|
|
39
|
+
rimPower = _ref$rimPower === void 0 ? _this._rimPower : _ref$rimPower;
|
|
40
|
+
_this.onBeforeCompile = function (shader) {
|
|
37
41
|
shader.uniforms.rimColor = {
|
|
38
42
|
value: rimColor
|
|
39
43
|
};
|
|
@@ -42,19 +46,35 @@ export let FinirMaterial = (_class = class FinirMaterial extends MeshStandardMat
|
|
|
42
46
|
};
|
|
43
47
|
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'));
|
|
44
48
|
shader.fragmentShader = shader.fragmentShader.replace('void main() {', ['uniform vec3 rimColor;', 'uniform float rimPower;', 'varying vec3 vViewDirection;', 'void main() {'].join('\n'));
|
|
45
|
-
shader.fragmentShader = shader.fragmentShader.replace('#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.;`);
|
|
49
|
+
shader.fragmentShader = shader.fragmentShader.replace('#include <dithering_fragment>', "#include <dithering_fragment>\n vec3 viewDir = normalize(vViewDirection);\n float dotNV = 1.0-saturate( dot( normal, viewDir ) );\n gl_FragColor.rgb += rimPower*dotNV*rimColor;\n vec3 fresnelall =rimPower*dotNV*rimColor;\n gl_FragColor.a +=(fresnelall.r+fresnelall.g+fresnelall.b)/3.;");
|
|
51
50
|
};
|
|
51
|
+
return _this;
|
|
52
52
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
53
|
+
_createClass(FinirMaterial, [{
|
|
54
|
+
key: "rimColor",
|
|
55
|
+
get: function get() {
|
|
56
|
+
return this._rimColor;
|
|
57
|
+
},
|
|
58
|
+
set: function set(value) {
|
|
59
|
+
this._rimColor = value;
|
|
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);
|
|
60
80
|
//# sourceMappingURL=FinirMaterial.js.map
|