angular-three-soba 1.13.0 → 1.14.1
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/abstractions/lib/billboard/billboard.d.ts +1 -1
- package/abstractions/lib/catmull-rom-line/catmull-rom-line.d.ts +1 -1
- package/abstractions/lib/cubic-bezier-line/cubic-bezier-line.d.ts +1 -1
- package/abstractions/lib/edges/edges.d.ts +2 -2
- package/abstractions/lib/gizmo-helper/gizmo-helper.d.ts +1 -1
- package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +1 -1
- package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +2 -2
- package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +1 -1
- package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +1 -1
- package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +2 -2
- package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +1 -1
- package/abstractions/lib/line/line-input.d.ts +1 -1
- package/abstractions/lib/line/line.d.ts +1 -1
- package/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.d.ts +1 -1
- package/abstractions/lib/text/text.d.ts +1 -1
- package/abstractions/lib/text-3d/text-3d.d.ts +1 -1
- package/cameras/lib/camera/camera-content.d.ts +1 -1
- package/cameras/lib/camera/camera.d.ts +1 -1
- package/cameras/lib/cube-camera/cube-camera.d.ts +1 -1
- package/cameras/lib/orthographic-camera/orthographic-camera.d.ts +1 -1
- package/controls/lib/orbit-controls/orbit-controls.d.ts +1 -1
- package/esm2022/abstractions/lib/billboard/billboard.mjs +74 -0
- package/esm2022/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +120 -0
- package/esm2022/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +99 -0
- package/esm2022/abstractions/lib/edges/edges.mjs +96 -0
- package/esm2022/abstractions/lib/gizmo-helper/gizmo-helper.mjs +213 -0
- package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +92 -0
- package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +184 -0
- package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +46 -0
- package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +8 -7
- package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +195 -0
- package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +8 -7
- package/esm2022/abstractions/lib/line/line-input.mjs +76 -0
- package/esm2022/abstractions/lib/line/line.mjs +133 -0
- package/esm2022/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +128 -0
- package/esm2022/abstractions/lib/text/text.mjs +115 -0
- package/esm2022/abstractions/lib/text-3d/text-3d.mjs +145 -0
- package/esm2022/cameras/lib/camera/camera-content.mjs +21 -0
- package/esm2022/cameras/lib/camera/camera.mjs +75 -0
- package/esm2022/cameras/lib/cube-camera/cube-camera.mjs +131 -0
- package/esm2022/cameras/lib/orthographic-camera/orthographic-camera.mjs +93 -0
- package/{esm2020 → esm2022}/cameras/lib/perspective-camera/perspective-camera.mjs +8 -7
- package/esm2022/controls/lib/orbit-controls/orbit-controls.mjs +147 -0
- package/{esm2020 → esm2022}/loaders/lib/cube-texture-loader/cube-texture-loader.mjs +3 -3
- package/esm2022/loaders/lib/loader/loader.mjs +134 -0
- package/esm2022/materials/lib/mesh-distort-material/mesh-distort-material.mjs +75 -0
- package/esm2022/materials/lib/mesh-reflector-material/mesh-reflector-material.mjs +328 -0
- package/esm2022/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +158 -0
- package/esm2022/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +238 -0
- package/esm2022/materials/lib/mesh-wobble-material/mesh-wobble-material.mjs +68 -0
- package/esm2022/misc/lib/bake-shadows/bake-shadows.mjs +26 -0
- package/esm2022/performance/lib/adaptive/adaptive-dpr.mjs +47 -0
- package/esm2022/performance/lib/adaptive/adaptive-events.mjs +37 -0
- package/esm2022/performance/lib/detailed/detailed.mjs +54 -0
- package/esm2022/performance/lib/stats/stats.mjs +80 -0
- package/esm2022/shaders/lib/blur-pass/blur-pass.mjs +61 -0
- package/esm2022/staging/lib/accumulative-shadows/accumulative-shadows.mjs +249 -0
- package/esm2022/staging/lib/accumulative-shadows/randomized-lights.mjs +201 -0
- package/{esm2020 → esm2022}/staging/lib/bounds/bounds.mjs +8 -7
- package/esm2022/staging/lib/camera-shake/camera-shake.mjs +122 -0
- package/esm2022/staging/lib/caustics/caustics.mjs +364 -0
- package/esm2022/staging/lib/center/center.mjs +143 -0
- package/esm2022/staging/lib/cloud/cloud.mjs +160 -0
- package/esm2022/staging/lib/contact-shadows/contact-shadows.mjs +228 -0
- package/esm2022/staging/lib/environment/environment-cube.mjs +41 -0
- package/esm2022/staging/lib/environment/environment-ground.mjs +67 -0
- package/esm2022/staging/lib/environment/environment-inputs.mjs +87 -0
- package/esm2022/staging/lib/environment/environment-map.mjs +39 -0
- package/esm2022/staging/lib/environment/environment-portal.mjs +111 -0
- package/{esm2020 → esm2022}/staging/lib/environment/environment.mjs +13 -11
- package/esm2022/staging/lib/float/float.mjs +77 -0
- package/esm2022/staging/lib/sky/sky.mjs +109 -0
- package/esm2022/staging/lib/sparkles/sparkles.mjs +210 -0
- package/esm2022/staging/lib/spot-light/shadow-mesh-input.mjs +51 -0
- package/esm2022/staging/lib/spot-light/spot-light-input.mjs +62 -0
- package/esm2022/staging/lib/spot-light/spot-light-shadow-no-shader.mjs +74 -0
- package/esm2022/staging/lib/spot-light/spot-light-shadow-shader.mjs +126 -0
- package/{esm2020 → esm2022}/staging/lib/spot-light/spot-light-shadow.mjs +8 -7
- package/esm2022/staging/lib/spot-light/spot-light.mjs +117 -0
- package/esm2022/staging/lib/spot-light/volumetric-mesh.mjs +86 -0
- package/{esm2020 → esm2022}/staging/lib/stage/stage.mjs +13 -11
- package/esm2022/staging/lib/stars/stars.mjs +140 -0
- package/{fesm2020 → fesm2022}/angular-three-soba-abstractions.mjs +89 -89
- package/{fesm2015 → fesm2022}/angular-three-soba-abstractions.mjs.map +1 -1
- package/{fesm2015 → fesm2022}/angular-three-soba-cameras.mjs +21 -21
- package/{fesm2015 → fesm2022}/angular-three-soba-cameras.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/angular-three-soba-controls.mjs +5 -5
- package/fesm2022/angular-three-soba-controls.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/angular-three-soba-loaders.mjs +7 -7
- package/{fesm2020 → fesm2022}/angular-three-soba-loaders.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/angular-three-soba-materials.mjs +25 -25
- package/{fesm2020 → fesm2022}/angular-three-soba-materials.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/angular-three-soba-misc.mjs +3 -3
- package/{fesm2020 → fesm2022}/angular-three-soba-misc.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/angular-three-soba-performance.mjs +14 -14
- package/{fesm2020 → fesm2022}/angular-three-soba-performance.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/angular-three-soba-shaders.mjs +2 -2
- package/fesm2022/angular-three-soba-shaders.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/angular-three-soba-staging.mjs +139 -139
- package/{fesm2020 → fesm2022}/angular-three-soba-staging.mjs.map +1 -1
- package/loaders/lib/loader/loader.d.ts +1 -1
- package/materials/lib/mesh-distort-material/mesh-distort-material.d.ts +1 -1
- package/materials/lib/mesh-reflector-material/mesh-reflector-material.d.ts +1 -1
- package/materials/lib/mesh-refraction-material/mesh-refraction-material.d.ts +1 -1
- package/materials/lib/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
- package/materials/lib/mesh-wobble-material/mesh-wobble-material.d.ts +1 -1
- package/package.json +45 -70
- package/performance/lib/adaptive/adaptive-dpr.d.ts +1 -1
- package/performance/lib/detailed/detailed.d.ts +1 -1
- package/performance/lib/stats/stats.d.ts +1 -1
- package/plugin/package.json +1 -1
- package/plugin/src/generators/init/compat.js +1 -1
- package/plugin/src/generators/init/compat.js.map +1 -1
- package/plugin/src/generators/init/init.d.ts +1 -1
- package/plugin/src/generators/init/init.js +1 -1
- package/plugin/src/generators/init/init.js.map +1 -1
- package/staging/lib/accumulative-shadows/accumulative-shadows.d.ts +2 -2
- package/staging/lib/accumulative-shadows/randomized-lights.d.ts +1 -1
- package/staging/lib/bounds/bounds.d.ts +1 -1
- package/staging/lib/camera-shake/camera-shake.d.ts +1 -1
- package/staging/lib/caustics/caustics.d.ts +2 -2
- package/staging/lib/center/center.d.ts +1 -1
- package/staging/lib/cloud/cloud.d.ts +1 -1
- package/staging/lib/contact-shadows/contact-shadows.d.ts +1 -1
- package/staging/lib/environment/environment-inputs.d.ts +1 -1
- package/staging/lib/float/float.d.ts +1 -1
- package/staging/lib/sky/sky.d.ts +1 -1
- package/staging/lib/sparkles/sparkles.d.ts +2 -2
- package/staging/lib/spot-light/shadow-mesh-input.d.ts +1 -1
- package/staging/lib/spot-light/spot-light-input.d.ts +1 -1
- package/staging/lib/spot-light/spot-light-shadow-no-shader.d.ts +1 -1
- package/staging/lib/spot-light/spot-light-shadow-shader.d.ts +1 -1
- package/staging/lib/spot-light/spot-light.d.ts +1 -1
- package/staging/lib/spot-light/volumetric-mesh.d.ts +1 -1
- package/staging/lib/stage/stage.d.ts +2 -2
- package/staging/lib/stars/stars.d.ts +2 -2
- package/esm2020/abstractions/lib/billboard/billboard.mjs +0 -73
- package/esm2020/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +0 -119
- package/esm2020/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +0 -98
- package/esm2020/abstractions/lib/edges/edges.mjs +0 -95
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-helper.mjs +0 -211
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -91
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -182
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -45
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -193
- package/esm2020/abstractions/lib/line/line-input.mjs +0 -75
- package/esm2020/abstractions/lib/line/line.mjs +0 -132
- package/esm2020/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -127
- package/esm2020/abstractions/lib/text/text.mjs +0 -114
- package/esm2020/abstractions/lib/text-3d/text-3d.mjs +0 -144
- package/esm2020/cameras/lib/camera/camera-content.mjs +0 -20
- package/esm2020/cameras/lib/camera/camera.mjs +0 -74
- package/esm2020/cameras/lib/cube-camera/cube-camera.mjs +0 -130
- package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +0 -92
- package/esm2020/controls/lib/orbit-controls/orbit-controls.mjs +0 -146
- package/esm2020/loaders/lib/loader/loader.mjs +0 -133
- package/esm2020/materials/lib/mesh-distort-material/mesh-distort-material.mjs +0 -74
- package/esm2020/materials/lib/mesh-reflector-material/mesh-reflector-material.mjs +0 -327
- package/esm2020/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +0 -157
- package/esm2020/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +0 -237
- package/esm2020/materials/lib/mesh-wobble-material/mesh-wobble-material.mjs +0 -67
- package/esm2020/misc/lib/bake-shadows/bake-shadows.mjs +0 -25
- package/esm2020/performance/lib/adaptive/adaptive-dpr.mjs +0 -46
- package/esm2020/performance/lib/adaptive/adaptive-events.mjs +0 -36
- package/esm2020/performance/lib/detailed/detailed.mjs +0 -53
- package/esm2020/performance/lib/stats/stats.mjs +0 -79
- package/esm2020/shaders/lib/blur-pass/blur-pass.mjs +0 -61
- package/esm2020/staging/lib/accumulative-shadows/accumulative-shadows.mjs +0 -247
- package/esm2020/staging/lib/accumulative-shadows/randomized-lights.mjs +0 -199
- package/esm2020/staging/lib/camera-shake/camera-shake.mjs +0 -121
- package/esm2020/staging/lib/caustics/caustics.mjs +0 -363
- package/esm2020/staging/lib/center/center.mjs +0 -142
- package/esm2020/staging/lib/cloud/cloud.mjs +0 -159
- package/esm2020/staging/lib/contact-shadows/contact-shadows.mjs +0 -227
- package/esm2020/staging/lib/environment/environment-cube.mjs +0 -40
- package/esm2020/staging/lib/environment/environment-ground.mjs +0 -66
- package/esm2020/staging/lib/environment/environment-inputs.mjs +0 -86
- package/esm2020/staging/lib/environment/environment-map.mjs +0 -38
- package/esm2020/staging/lib/environment/environment-portal.mjs +0 -110
- package/esm2020/staging/lib/float/float.mjs +0 -76
- package/esm2020/staging/lib/sky/sky.mjs +0 -108
- package/esm2020/staging/lib/sparkles/sparkles.mjs +0 -209
- package/esm2020/staging/lib/spot-light/shadow-mesh-input.mjs +0 -50
- package/esm2020/staging/lib/spot-light/spot-light-input.mjs +0 -61
- package/esm2020/staging/lib/spot-light/spot-light-shadow-no-shader.mjs +0 -73
- package/esm2020/staging/lib/spot-light/spot-light-shadow-shader.mjs +0 -125
- package/esm2020/staging/lib/spot-light/spot-light.mjs +0 -116
- package/esm2020/staging/lib/spot-light/volumetric-mesh.mjs +0 -85
- package/esm2020/staging/lib/stars/stars.mjs +0 -139
- package/fesm2015/angular-three-soba-abstractions.mjs +0 -2048
- package/fesm2015/angular-three-soba-controls.mjs +0 -153
- package/fesm2015/angular-three-soba-controls.mjs.map +0 -1
- package/fesm2015/angular-three-soba-loaders.mjs +0 -229
- package/fesm2015/angular-three-soba-loaders.mjs.map +0 -1
- package/fesm2015/angular-three-soba-materials.mjs +0 -851
- package/fesm2015/angular-three-soba-materials.mjs.map +0 -1
- package/fesm2015/angular-three-soba-misc.mjs +0 -148
- package/fesm2015/angular-three-soba-misc.mjs.map +0 -1
- package/fesm2015/angular-three-soba-performance.mjs +0 -210
- package/fesm2015/angular-three-soba-performance.mjs.map +0 -1
- package/fesm2015/angular-three-soba-shaders.mjs +0 -1239
- package/fesm2015/angular-three-soba-shaders.mjs.map +0 -1
- package/fesm2015/angular-three-soba-staging.mjs +0 -3772
- package/fesm2015/angular-three-soba-staging.mjs.map +0 -1
- package/fesm2020/angular-three-soba-abstractions.mjs.map +0 -1
- package/fesm2020/angular-three-soba-cameras.mjs +0 -347
- package/fesm2020/angular-three-soba-cameras.mjs.map +0 -1
- package/fesm2020/angular-three-soba-controls.mjs.map +0 -1
- package/fesm2020/angular-three-soba-shaders.mjs.map +0 -1
- package/fesm2020/angular-three-soba.mjs +0 -6
- package/fesm2020/angular-three-soba.mjs.map +0 -1
- /package/{esm2020 → esm2022}/abstractions/angular-three-soba-abstractions.mjs +0 -0
- /package/{esm2020 → esm2022}/abstractions/index.mjs +0 -0
- /package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewcube/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/angular-three-soba.mjs +0 -0
- /package/{esm2020 → esm2022}/cameras/angular-three-soba-cameras.mjs +0 -0
- /package/{esm2020 → esm2022}/cameras/index.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/angular-three-soba-controls.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/index.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/loaders/angular-three-soba-loaders.mjs +0 -0
- /package/{esm2020 → esm2022}/loaders/index.mjs +0 -0
- /package/{esm2020 → esm2022}/loaders/lib/gltf-loader/gltf-loader.mjs +0 -0
- /package/{esm2020 → esm2022}/loaders/lib/progress/progress.mjs +0 -0
- /package/{esm2020 → esm2022}/loaders/lib/texture-loader/texture-loader.mjs +0 -0
- /package/{esm2020 → esm2022}/materials/angular-three-soba-materials.mjs +0 -0
- /package/{esm2020 → esm2022}/materials/index.mjs +0 -0
- /package/{esm2020 → esm2022}/misc/angular-three-soba-misc.mjs +0 -0
- /package/{esm2020 → esm2022}/misc/index.mjs +0 -0
- /package/{esm2020 → esm2022}/misc/lib/animations/animations.mjs +0 -0
- /package/{esm2020 → esm2022}/misc/lib/depth-buffer/depth-buffer.mjs +0 -0
- /package/{esm2020 → esm2022}/misc/lib/fbo/fbo.mjs +0 -0
- /package/{esm2020 → esm2022}/performance/angular-three-soba-performance.mjs +0 -0
- /package/{esm2020 → esm2022}/performance/index.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/angular-three-soba-shaders.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/index.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/caustics-material/caustics-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/caustics-projection-material/caustics-projection-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/convolution-material/convolution-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/discard-material/discard-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/mesh-distort-material/mesh-distort-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/mesh-reflector-material/mesh-reflector-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/mesh-refraction-material/mesh-refraction-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/mesh-transmission-material/mesh-transmission-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/mesh-wobble-material/mesh-wobble-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/shader-material/shader-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/soft-shadow-material/soft-shadow-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/spot-light-material/spot-light-material.mjs +0 -0
- /package/{esm2020 → esm2022}/shaders/lib/star-field-material/star-field-material.mjs +0 -0
- /package/{esm2020 → esm2022}/staging/angular-three-soba-staging.mjs +0 -0
- /package/{esm2020 → esm2022}/staging/index.mjs +0 -0
- /package/{esm2020 → esm2022}/staging/lib/accumulative-shadows/progressive-light-map.mjs +0 -0
- /package/{esm2020 → esm2022}/staging/lib/environment/assets.mjs +0 -0
- /package/{esm2020 → esm2022}/staging/lib/environment/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/staging/lib/spot-light/common.mjs +0 -0
- /package/{fesm2015 → fesm2022}/angular-three-soba.mjs +0 -0
- /package/{fesm2015 → fesm2022}/angular-three-soba.mjs.map +0 -0
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, inject, Input } from '@angular/core';
|
|
3
|
-
import { extend, NgtArgs, NgtRxStore, NgtStore, startWithUndefined } from 'angular-three';
|
|
4
|
-
import { combineLatest, map } from 'rxjs';
|
|
5
|
-
import { BoxGeometry, CanvasTexture, Group, Mesh, MeshBasicMaterial, Sprite, SpriteMaterial } from 'three';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
extend({ Group, Mesh, BoxGeometry, MeshBasicMaterial, Sprite, SpriteMaterial });
|
|
8
|
-
export class NgtsGizmoViewportAxis extends NgtRxStore {
|
|
9
|
-
set color(color) {
|
|
10
|
-
this.set({ color });
|
|
11
|
-
}
|
|
12
|
-
set rotation(rotation) {
|
|
13
|
-
this.set({ rotation });
|
|
14
|
-
}
|
|
15
|
-
set scale(scale) {
|
|
16
|
-
this.set({ scale: scale === undefined ? this.get('scale') : scale });
|
|
17
|
-
}
|
|
18
|
-
initialize() {
|
|
19
|
-
super.initialize();
|
|
20
|
-
this.set({ scale: [0.8, 0.05, 0.05] });
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
NgtsGizmoViewportAxis.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoViewportAxis, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
-
NgtsGizmoViewportAxis.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsGizmoViewportAxis, isStandalone: true, selector: "ngts-gizmo-viewport-axis[color][rotation]", inputs: { color: "color", rotation: "rotation", scale: "scale" }, usesInheritance: true, ngImport: i0, template: `
|
|
25
|
-
<ngt-group [rotation]="get('rotation')">
|
|
26
|
-
<ngt-mesh [position]="[0.4, 0, 0]">
|
|
27
|
-
<ngt-box-geometry *args="get('scale')" />
|
|
28
|
-
<ngt-mesh-basic-material [color]="get('color')" [toneMapped]="false" />
|
|
29
|
-
</ngt-mesh>
|
|
30
|
-
</ngt-group>
|
|
31
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoViewportAxis, decorators: [{
|
|
33
|
-
type: Component,
|
|
34
|
-
args: [{
|
|
35
|
-
selector: 'ngts-gizmo-viewport-axis[color][rotation]',
|
|
36
|
-
standalone: true,
|
|
37
|
-
template: `
|
|
38
|
-
<ngt-group [rotation]="get('rotation')">
|
|
39
|
-
<ngt-mesh [position]="[0.4, 0, 0]">
|
|
40
|
-
<ngt-box-geometry *args="get('scale')" />
|
|
41
|
-
<ngt-mesh-basic-material [color]="get('color')" [toneMapped]="false" />
|
|
42
|
-
</ngt-mesh>
|
|
43
|
-
</ngt-group>
|
|
44
|
-
`,
|
|
45
|
-
imports: [NgtArgs],
|
|
46
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
47
|
-
}]
|
|
48
|
-
}], propDecorators: { color: [{
|
|
49
|
-
type: Input
|
|
50
|
-
}], rotation: [{
|
|
51
|
-
type: Input
|
|
52
|
-
}], scale: [{
|
|
53
|
-
type: Input
|
|
54
|
-
}] } });
|
|
55
|
-
export class NgtsGizmoViewportAxisHead extends NgtRxStore {
|
|
56
|
-
constructor() {
|
|
57
|
-
super(...arguments);
|
|
58
|
-
this.document = inject(DOCUMENT);
|
|
59
|
-
this.store = inject(NgtStore);
|
|
60
|
-
this.gl = this.store.get('gl');
|
|
61
|
-
}
|
|
62
|
-
set arcStyle(arcStyle) {
|
|
63
|
-
this.set({ arcStyle });
|
|
64
|
-
}
|
|
65
|
-
set label(label) {
|
|
66
|
-
this.set({ label });
|
|
67
|
-
}
|
|
68
|
-
set labelColor(labelColor) {
|
|
69
|
-
this.set({ labelColor });
|
|
70
|
-
}
|
|
71
|
-
set axisHeadScale(axisHeadScale) {
|
|
72
|
-
this.set({ axisHeadScale });
|
|
73
|
-
}
|
|
74
|
-
set disabled(disabled) {
|
|
75
|
-
this.set({ disabled });
|
|
76
|
-
}
|
|
77
|
-
set font(font) {
|
|
78
|
-
this.set({ font });
|
|
79
|
-
}
|
|
80
|
-
set clickEmitter(clickEmitter) {
|
|
81
|
-
this.set({ clickEmitter });
|
|
82
|
-
}
|
|
83
|
-
initialize() {
|
|
84
|
-
super.initialize();
|
|
85
|
-
this.set({ axisHeadScale: 1, active: false });
|
|
86
|
-
this.connect('texture', combineLatest([
|
|
87
|
-
this.select('arcStyle'),
|
|
88
|
-
this.select('labelColor'),
|
|
89
|
-
this.select('font'),
|
|
90
|
-
this.select('label').pipe(startWithUndefined()),
|
|
91
|
-
]).pipe(map(([arcStyle, labelColor, font, label]) => {
|
|
92
|
-
const canvas = this.document.createElement('canvas');
|
|
93
|
-
canvas.width = 64;
|
|
94
|
-
canvas.height = 64;
|
|
95
|
-
const context = canvas.getContext('2d');
|
|
96
|
-
context.beginPath();
|
|
97
|
-
context.arc(32, 32, 16, 0, 2 * Math.PI);
|
|
98
|
-
context.closePath();
|
|
99
|
-
context.fillStyle = arcStyle;
|
|
100
|
-
context.fill();
|
|
101
|
-
if (label) {
|
|
102
|
-
context.font = font;
|
|
103
|
-
context.textAlign = 'center';
|
|
104
|
-
context.fillStyle = labelColor;
|
|
105
|
-
context.fillText(label, 32, 41);
|
|
106
|
-
}
|
|
107
|
-
return new CanvasTexture(canvas);
|
|
108
|
-
})));
|
|
109
|
-
this.connect('scale', combineLatest([
|
|
110
|
-
this.select('active'),
|
|
111
|
-
this.select('axisHeadScale'),
|
|
112
|
-
this.select('label').pipe(startWithUndefined()),
|
|
113
|
-
]).pipe(map(([active, axisHeadScale, label]) => (label ? 1 : 0.75) * (active ? 1.2 : 1) * axisHeadScale)));
|
|
114
|
-
}
|
|
115
|
-
onPointerOver(event) {
|
|
116
|
-
if (!this.get('disabled')) {
|
|
117
|
-
event.stopPropagation();
|
|
118
|
-
this.set({ active: true });
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
onPointerOut(event) {
|
|
122
|
-
if (!this.get('disabled')) {
|
|
123
|
-
if (this.get('clickEmitter')?.observed) {
|
|
124
|
-
this.get('clickEmitter').emit(event);
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
event.stopPropagation();
|
|
128
|
-
this.set({ active: false });
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
NgtsGizmoViewportAxisHead.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoViewportAxisHead, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
134
|
-
NgtsGizmoViewportAxisHead.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsGizmoViewportAxisHead, isStandalone: true, selector: "ngts-gizmo-viewport-axis-head", inputs: { arcStyle: "arcStyle", label: "label", labelColor: "labelColor", axisHeadScale: "axisHeadScale", disabled: "disabled", font: "font", clickEmitter: "clickEmitter" }, usesInheritance: true, ngImport: i0, template: `
|
|
135
|
-
<ngt-sprite
|
|
136
|
-
ngtCompound
|
|
137
|
-
[scale]="get('scale')"
|
|
138
|
-
(pointerover)="onPointerOver($any($event))"
|
|
139
|
-
(pointerout)="onPointerOut($any($event))"
|
|
140
|
-
>
|
|
141
|
-
<ngt-sprite-material
|
|
142
|
-
[map]="get('texture')"
|
|
143
|
-
[opacity]="get('label') ? 1 : 0.75"
|
|
144
|
-
[alphaTest]="0.3"
|
|
145
|
-
[toneMapped]="false"
|
|
146
|
-
>
|
|
147
|
-
<ngt-value [rawValue]="gl.outputEncoding" attach="map.encoding" />
|
|
148
|
-
<ngt-value [rawValue]="gl.capabilities.getMaxAnisotropy() || 1" attach="map.anisotropy" />
|
|
149
|
-
</ngt-sprite-material>
|
|
150
|
-
</ngt-sprite>
|
|
151
|
-
`, isInline: true });
|
|
152
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoViewportAxisHead, decorators: [{
|
|
153
|
-
type: Component,
|
|
154
|
-
args: [{
|
|
155
|
-
selector: 'ngts-gizmo-viewport-axis-head',
|
|
156
|
-
standalone: true,
|
|
157
|
-
template: `
|
|
158
|
-
<ngt-sprite
|
|
159
|
-
ngtCompound
|
|
160
|
-
[scale]="get('scale')"
|
|
161
|
-
(pointerover)="onPointerOver($any($event))"
|
|
162
|
-
(pointerout)="onPointerOut($any($event))"
|
|
163
|
-
>
|
|
164
|
-
<ngt-sprite-material
|
|
165
|
-
[map]="get('texture')"
|
|
166
|
-
[opacity]="get('label') ? 1 : 0.75"
|
|
167
|
-
[alphaTest]="0.3"
|
|
168
|
-
[toneMapped]="false"
|
|
169
|
-
>
|
|
170
|
-
<ngt-value [rawValue]="gl.outputEncoding" attach="map.encoding" />
|
|
171
|
-
<ngt-value [rawValue]="gl.capabilities.getMaxAnisotropy() || 1" attach="map.anisotropy" />
|
|
172
|
-
</ngt-sprite-material>
|
|
173
|
-
</ngt-sprite>
|
|
174
|
-
`,
|
|
175
|
-
imports: [NgtArgs],
|
|
176
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
177
|
-
}]
|
|
178
|
-
}], propDecorators: { arcStyle: [{
|
|
179
|
-
type: Input
|
|
180
|
-
}], label: [{
|
|
181
|
-
type: Input
|
|
182
|
-
}], labelColor: [{
|
|
183
|
-
type: Input
|
|
184
|
-
}], axisHeadScale: [{
|
|
185
|
-
type: Input
|
|
186
|
-
}], disabled: [{
|
|
187
|
-
type: Input
|
|
188
|
-
}], font: [{
|
|
189
|
-
type: Input
|
|
190
|
-
}], clickEmitter: [{
|
|
191
|
-
type: Input
|
|
192
|
-
}] } });
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8tdmlld3BvcnQtYXhpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL2dpem1vLWhlbHBlci9naXptby12aWV3cG9ydC9naXptby12aWV3cG9ydC1heGlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQWlCLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFM0csTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7QUFnQmhGLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxVQUFVO0lBQ2pELElBQWEsS0FBSyxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQWEsUUFBUSxDQUFDLFFBQWtDO1FBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFhLEtBQUss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LEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7OztLQWlCVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzs4QkFNZ0IsUUFBUTtzQkFBcEIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBSU8sYUFBYTtzQkFBekIsS0FBSztnQkFJTyxRQUFRO3NCQUFwQixLQUFLO2dCQUlPLElBQUk7c0JBQWhCLEtBQUs7Z0JBSU8sWUFBWTtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIE5ndEFyZ3MsIE5ndFJ4U3RvcmUsIE5ndFN0b3JlLCBOZ3RUaHJlZUV2ZW50LCBzdGFydFdpdGhVbmRlZmluZWQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQm94R2VvbWV0cnksIENhbnZhc1RleHR1cmUsIEdyb3VwLCBNZXNoLCBNZXNoQmFzaWNNYXRlcmlhbCwgU3ByaXRlLCBTcHJpdGVNYXRlcmlhbCB9IGZyb20gJ3RocmVlJztcblxuZXh0ZW5kKHsgR3JvdXAsIE1lc2gsIEJveEdlb21ldHJ5LCBNZXNoQmFzaWNNYXRlcmlhbCwgU3ByaXRlLCBTcHJpdGVNYXRlcmlhbCB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWdpem1vLXZpZXdwb3J0LWF4aXNbY29sb3JdW3JvdGF0aW9uXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LWdyb3VwIFtyb3RhdGlvbl09XCJnZXQoJ3JvdGF0aW9uJylcIj5cbiAgICAgICAgICAgIDxuZ3QtbWVzaCBbcG9zaXRpb25dPVwiWzAuNCwgMCwgMF1cIj5cbiAgICAgICAgICAgICAgICA8bmd0LWJveC1nZW9tZXRyeSAqYXJncz1cImdldCgnc2NhbGUnKVwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC1tZXNoLWJhc2ljLW1hdGVyaWFsIFtjb2xvcl09XCJnZXQoJ2NvbG9yJylcIiBbdG9uZU1hcHBlZF09XCJmYWxzZVwiIC8+XG4gICAgICAgICAgICA8L25ndC1tZXNoPlxuICAgICAgICA8L25ndC1ncm91cD5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RBcmdzXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNHaXptb1ZpZXdwb3J0QXhpcyBleHRlbmRzIE5ndFJ4U3RvcmUge1xuICAgIEBJbnB1dCgpIHNldCBjb2xvcihjb2xvcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY29sb3IgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHJvdGF0aW9uKHJvdGF0aW9uOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pIHtcbiAgICAgICAgdGhpcy5zZXQoeyByb3RhdGlvbiB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2NhbGUoc2NhbGU6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkge1xuICAgICAgICB0aGlzLnNldCh7IHNjYWxlOiBzY2FsZSA9PT0gdW5kZWZpbmVkID8gdGhpcy5nZXQoJ3NjYWxlJykgOiBzY2FsZSB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgc2NhbGU6IFswLjgsIDAuMDUsIDAuMDVdIH0pO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWdpem1vLXZpZXdwb3J0LWF4aXMtaGVhZCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LXNwcml0ZVxuICAgICAgICAgICAgbmd0Q29tcG91bmRcbiAgICAgICAgICAgIFtzY2FsZV09XCJnZXQoJ3NjYWxlJylcIlxuICAgICAgICAgICAgKHBvaW50ZXJvdmVyKT1cIm9uUG9pbnRlck92ZXIoJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgICAocG9pbnRlcm91dCk9XCJvblBvaW50ZXJPdXQoJGFueSgkZXZlbnQpKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZ3Qtc3ByaXRlLW1hdGVyaWFsXG4gICAgICAgICAgICAgICAgW21hcF09XCJnZXQoJ3RleHR1cmUnKVwiXG4gICAgICAgICAgICAgICAgW29wYWNpdHldPVwiZ2V0KCdsYWJlbCcpID8gMSA6IDAuNzVcIlxuICAgICAgICAgICAgICAgIFthbHBoYVRlc3RdPVwiMC4zXCJcbiAgICAgICAgICAgICAgICBbdG9uZU1hcHBlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwiZ2wub3V0cHV0RW5jb2RpbmdcIiBhdHRhY2g9XCJtYXAuZW5jb2RpbmdcIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cImdsLmNhcGFiaWxpdGllcy5nZXRNYXhBbmlzb3Ryb3B5KCkgfHwgMVwiIGF0dGFjaD1cIm1hcC5hbmlzb3Ryb3B5XCIgLz5cbiAgICAgICAgICAgIDwvbmd0LXNwcml0ZS1tYXRlcmlhbD5cbiAgICAgICAgPC9uZ3Qtc3ByaXRlPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05ndEFyZ3NdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0dpem1vVmlld3BvcnRBeGlzSGVhZCBleHRlbmRzIE5ndFJ4U3RvcmUge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuICAgIHJlYWRvbmx5IGdsID0gdGhpcy5zdG9yZS5nZXQoJ2dsJyk7XG5cbiAgICBASW5wdXQoKSBzZXQgYXJjU3R5bGUoYXJjU3R5bGU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IGFyY1N0eWxlIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsYWJlbChsYWJlbDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbGFiZWwgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGxhYmVsQ29sb3IobGFiZWxDb2xvcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbGFiZWxDb2xvciB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYXhpc0hlYWRTY2FsZShheGlzSGVhZFNjYWxlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBheGlzSGVhZFNjYWxlIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGRpc2FibGVkIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmb250KGZvbnQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IGZvbnQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGNsaWNrRW1pdHRlcihjbGlja0VtaXR0ZXI6IEV2ZW50RW1pdHRlcjxOZ3RUaHJlZUV2ZW50PE1vdXNlRXZlbnQ+Pikge1xuICAgICAgICB0aGlzLnNldCh7IGNsaWNrRW1pdHRlciB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgYXhpc0hlYWRTY2FsZTogMSwgYWN0aXZlOiBmYWxzZSB9KTtcbiAgICAgICAgdGhpcy5jb25uZWN0KFxuICAgICAgICAgICAgJ3RleHR1cmUnLFxuICAgICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ2FyY1N0eWxlJyksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ2xhYmVsQ29sb3InKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgnZm9udCcpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdsYWJlbCcpLnBpcGUoc3RhcnRXaXRoVW5kZWZpbmVkKCkpLFxuICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKFthcmNTdHlsZSwgbGFiZWxDb2xvciwgZm9udCwgbGFiZWxdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICAgICAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9IDY0O1xuICAgICAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gNjQ7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpITtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5hcmMoMzIsIDMyLCAxNiwgMCwgMiAqIE1hdGguUEkpO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9IGFyY1N0eWxlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAobGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZm9udCA9IGZvbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5maWxsU3R5bGUgPSBsYWJlbENvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChsYWJlbCwgMzIsIDQxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENhbnZhc1RleHR1cmUoY2FudmFzKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnc2NhbGUnLFxuICAgICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ2FjdGl2ZScpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdheGlzSGVhZFNjYWxlJyksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ2xhYmVsJykucGlwZShzdGFydFdpdGhVbmRlZmluZWQoKSksXG4gICAgICAgICAgICBdKS5waXBlKG1hcCgoW2FjdGl2ZSwgYXhpc0hlYWRTY2FsZSwgbGFiZWxdKSA9PiAobGFiZWwgPyAxIDogMC43NSkgKiAoYWN0aXZlID8gMS4yIDogMSkgKiBheGlzSGVhZFNjYWxlKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvblBvaW50ZXJPdmVyKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pIHtcbiAgICAgICAgaWYgKCF0aGlzLmdldCgnZGlzYWJsZWQnKSkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLnNldCh7IGFjdGl2ZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUG9pbnRlck91dChldmVudDogTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSB7XG4gICAgICAgIGlmICghdGhpcy5nZXQoJ2Rpc2FibGVkJykpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmdldCgnY2xpY2tFbWl0dGVyJyk/Lm9ic2VydmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXQoJ2NsaWNrRW1pdHRlcicpLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldCh7IGFjdGl2ZTogZmFsc2UgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import { NgtRxStore } from 'angular-three';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class NgtsLineInput extends NgtRxStore {
|
|
5
|
-
set vertexColors(vertexColors) {
|
|
6
|
-
this.set({ vertexColors });
|
|
7
|
-
}
|
|
8
|
-
set lineWidth(lineWidth) {
|
|
9
|
-
this.set({ lineWidth });
|
|
10
|
-
}
|
|
11
|
-
set alphaToCoverage(alphaToCoverage) {
|
|
12
|
-
this.set({ alphaToCoverage });
|
|
13
|
-
}
|
|
14
|
-
set color(color) {
|
|
15
|
-
this.set({ color });
|
|
16
|
-
}
|
|
17
|
-
set dashed(dashed) {
|
|
18
|
-
this.set({ dashed });
|
|
19
|
-
}
|
|
20
|
-
set dashScale(dashScale) {
|
|
21
|
-
this.set({ dashScale });
|
|
22
|
-
}
|
|
23
|
-
set dashSize(dashSize) {
|
|
24
|
-
this.set({ dashSize });
|
|
25
|
-
}
|
|
26
|
-
set dashOffset(dashOffset) {
|
|
27
|
-
this.set({ dashOffset });
|
|
28
|
-
}
|
|
29
|
-
set gapSize(gapSize) {
|
|
30
|
-
this.set({ gapSize });
|
|
31
|
-
}
|
|
32
|
-
set resolution(resolution) {
|
|
33
|
-
this.set({ resolution });
|
|
34
|
-
}
|
|
35
|
-
set wireframe(wireframe) {
|
|
36
|
-
this.set({ wireframe });
|
|
37
|
-
}
|
|
38
|
-
set worldUnits(worldUnits) {
|
|
39
|
-
this.set({ worldUnits });
|
|
40
|
-
}
|
|
41
|
-
initialize() {
|
|
42
|
-
super.initialize();
|
|
43
|
-
this.set({ color: 'black' });
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
NgtsLineInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsLineInput, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
47
|
-
NgtsLineInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: NgtsLineInput, inputs: { vertexColors: "vertexColors", lineWidth: "lineWidth", alphaToCoverage: "alphaToCoverage", color: "color", dashed: "dashed", dashScale: "dashScale", dashSize: "dashSize", dashOffset: "dashOffset", gapSize: "gapSize", resolution: "resolution", wireframe: "wireframe", worldUnits: "worldUnits" }, usesInheritance: true, ngImport: i0 });
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsLineInput, decorators: [{
|
|
49
|
-
type: Directive
|
|
50
|
-
}], propDecorators: { vertexColors: [{
|
|
51
|
-
type: Input
|
|
52
|
-
}], lineWidth: [{
|
|
53
|
-
type: Input
|
|
54
|
-
}], alphaToCoverage: [{
|
|
55
|
-
type: Input
|
|
56
|
-
}], color: [{
|
|
57
|
-
type: Input
|
|
58
|
-
}], dashed: [{
|
|
59
|
-
type: Input
|
|
60
|
-
}], dashScale: [{
|
|
61
|
-
type: Input
|
|
62
|
-
}], dashSize: [{
|
|
63
|
-
type: Input
|
|
64
|
-
}], dashOffset: [{
|
|
65
|
-
type: Input
|
|
66
|
-
}], gapSize: [{
|
|
67
|
-
type: Input
|
|
68
|
-
}], resolution: [{
|
|
69
|
-
type: Input
|
|
70
|
-
}], wireframe: [{
|
|
71
|
-
type: Input
|
|
72
|
-
}], worldUnits: [{
|
|
73
|
-
type: Input
|
|
74
|
-
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL2xpbmUvbGluZS1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQWdCLGFBQWMsU0FBUSxVQUFVO0lBQ2xELElBQWEsWUFBWSxDQUFDLFlBQTJEO1FBQ2pGLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFhLFNBQVMsQ0FBQyxTQUFpQjtRQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBYSxlQUFlLENBQUMsZUFBd0I7UUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQWEsS0FBSyxDQUFDLEtBQWdDO1FBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFhLE1BQU0sQ0FBQyxNQUFlO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFhLFNBQVMsQ0FBQyxTQUFpQjtRQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBYSxRQUFRLENBQUMsUUFBZ0I7UUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQWEsVUFBVSxDQUFDLFVBQWtCO1FBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFhLE9BQU8sQ0FBQyxPQUFlO1FBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxVQUF5QjtRQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBYSxTQUFTLENBQUMsU0FBa0I7UUFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQWEsVUFBVSxDQUFDLFVBQW1CO1FBQ3ZDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFUSxVQUFVO1FBQ2YsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDOzswR0FwRGlCLGFBQWE7OEZBQWIsYUFBYTsyRkFBYixhQUFhO2tCQURsQyxTQUFTOzhCQUVPLFlBQVk7c0JBQXhCLEtBQUs7Z0JBSU8sU0FBUztzQkFBckIsS0FBSztnQkFJTyxlQUFlO3NCQUEzQixLQUFLO2dCQUlPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxTQUFTO3NCQUFyQixLQUFLO2dCQUlPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBSU8sVUFBVTtzQkFBdEIsS0FBSztnQkFJTyxPQUFPO3NCQUFuQixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBSU8sU0FBUztzQkFBckIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0UnhTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZ3RzTGluZUlucHV0IGV4dGVuZHMgTmd0UnhTdG9yZSB7XG4gICAgQElucHV0KCkgc2V0IHZlcnRleENvbG9ycyh2ZXJ0ZXhDb2xvcnM6IEFycmF5PFRIUkVFLkNvbG9yIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdPikge1xuICAgICAgICB0aGlzLnNldCh7IHZlcnRleENvbG9ycyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbGluZVdpZHRoKGxpbmVXaWR0aDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbGluZVdpZHRoIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBhbHBoYVRvQ292ZXJhZ2UoYWxwaGFUb0NvdmVyYWdlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYWxwaGFUb0NvdmVyYWdlIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBjb2xvcihjb2xvcjogVEhSRUUuQ29sb3JSZXByZXNlbnRhdGlvbikge1xuICAgICAgICB0aGlzLnNldCh7IGNvbG9yIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkYXNoZWQoZGFzaGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZGFzaGVkIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkYXNoU2NhbGUoZGFzaFNjYWxlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkYXNoU2NhbGUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGRhc2hTaXplKGRhc2hTaXplOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkYXNoU2l6ZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZGFzaE9mZnNldChkYXNoT2Zmc2V0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkYXNoT2Zmc2V0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBnYXBTaXplKGdhcFNpemU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGdhcFNpemUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHJlc29sdXRpb24ocmVzb2x1dGlvbjogVEhSRUUuVmVjdG9yMikge1xuICAgICAgICB0aGlzLnNldCh7IHJlc29sdXRpb24gfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHdpcmVmcmFtZSh3aXJlZnJhbWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyB3aXJlZnJhbWUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHdvcmxkVW5pdHMod29ybGRVbml0czogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IHdvcmxkVW5pdHMgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7IGNvbG9yOiAnYmxhY2snIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { Component, CUSTOM_ELEMENTS_SCHEMA, inject, Input } from '@angular/core';
|
|
2
|
-
import { injectNgtRef, NgtArgs, NgtStore, startWithUndefined } from 'angular-three';
|
|
3
|
-
import { combineLatest, map } from 'rxjs';
|
|
4
|
-
import * as THREE from 'three';
|
|
5
|
-
import { Line2, LineGeometry, LineMaterial, LineSegments2, LineSegmentsGeometry } from 'three-stdlib';
|
|
6
|
-
import { NgtsLineInput } from './line-input';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class NgtsLine extends NgtsLineInput {
|
|
9
|
-
constructor() {
|
|
10
|
-
super(...arguments);
|
|
11
|
-
this.Boolean = Boolean;
|
|
12
|
-
this.lineMaterial = new LineMaterial();
|
|
13
|
-
this.store = inject(NgtStore);
|
|
14
|
-
this.line = null;
|
|
15
|
-
this.lineRef = injectNgtRef();
|
|
16
|
-
}
|
|
17
|
-
set points(points) {
|
|
18
|
-
this.set({ points });
|
|
19
|
-
}
|
|
20
|
-
set segments(segments) {
|
|
21
|
-
this.set({ segments });
|
|
22
|
-
}
|
|
23
|
-
onAfterAttach({ parent }) {
|
|
24
|
-
parent.computeLineDistances();
|
|
25
|
-
}
|
|
26
|
-
initialize() {
|
|
27
|
-
super.initialize();
|
|
28
|
-
this.set({ segments: false });
|
|
29
|
-
this.connect('lineGeometry', combineLatest([
|
|
30
|
-
this.select('points'),
|
|
31
|
-
this.select('segments'),
|
|
32
|
-
this.select('vertexColors').pipe(startWithUndefined()),
|
|
33
|
-
]).pipe(map(([points, segments, vertexColors]) => {
|
|
34
|
-
const geometry = segments ? new LineSegmentsGeometry() : new LineGeometry();
|
|
35
|
-
const pValues = points.map((p) => {
|
|
36
|
-
const isArray = Array.isArray(p);
|
|
37
|
-
return p instanceof THREE.Vector3
|
|
38
|
-
? [p.x, p.y, p.z]
|
|
39
|
-
: p instanceof THREE.Vector2
|
|
40
|
-
? [p.x, p.y, 0]
|
|
41
|
-
: isArray && p.length === 3
|
|
42
|
-
? [p[0], p[1], p[2]]
|
|
43
|
-
: isArray && p.length === 2
|
|
44
|
-
? [p[0], p[1], 0]
|
|
45
|
-
: p;
|
|
46
|
-
});
|
|
47
|
-
geometry.setPositions(pValues.flat());
|
|
48
|
-
if (vertexColors) {
|
|
49
|
-
const cValues = vertexColors.map((c) => c instanceof THREE.Color ? c.toArray() : c);
|
|
50
|
-
geometry.setColors(cValues.flat());
|
|
51
|
-
}
|
|
52
|
-
return geometry;
|
|
53
|
-
})));
|
|
54
|
-
}
|
|
55
|
-
ngOnInit() {
|
|
56
|
-
this.connect('materialResolution', combineLatest([this.store.select('size'), this.select('resolution').pipe(startWithUndefined())]).pipe(map(([size, resolution]) => resolution ?? [size.width, size.height])));
|
|
57
|
-
this.line = this.get('segments') ? new LineSegments2() : new Line2();
|
|
58
|
-
this.disposeGeometry();
|
|
59
|
-
}
|
|
60
|
-
disposeGeometry() {
|
|
61
|
-
this.effect(this.select('lineGeometry'), (lineGeometry) => {
|
|
62
|
-
return () => lineGeometry.dispose();
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
NgtsLine.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsLine, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
-
NgtsLine.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsLine, isStandalone: true, selector: "ngts-line[points]", inputs: { lineRef: "lineRef", points: "points", segments: "segments" }, usesInheritance: true, ngImport: i0, template: `
|
|
68
|
-
<ngt-primitive *args="[line]" [ref]="lineRef" ngtCompound>
|
|
69
|
-
<ngt-primitive
|
|
70
|
-
*args="[get('lineGeometry')]"
|
|
71
|
-
attach="geometry"
|
|
72
|
-
(afterAttach)="onAfterAttach($any($event))"
|
|
73
|
-
/>
|
|
74
|
-
<ngt-primitive
|
|
75
|
-
*args="[lineMaterial]"
|
|
76
|
-
attach="material"
|
|
77
|
-
[color]="get('color')"
|
|
78
|
-
[vertexColors]="Boolean(get('vertexColors'))"
|
|
79
|
-
[resolution]="get('materialResolution')"
|
|
80
|
-
[linewidth]="get('lineWidth')"
|
|
81
|
-
[alphaToCoverage]="get('alphaToCoverage')"
|
|
82
|
-
[dashed]="get('dashed')"
|
|
83
|
-
[dashScale]="get('dashScale') ?? lineMaterial.dashScale"
|
|
84
|
-
[dashSize]="get('dashSize') ?? lineMaterial.dashSize"
|
|
85
|
-
[dashOffset]="get('dashOffset') ?? lineMaterial.dashOffset"
|
|
86
|
-
[gapSize]="get('gapSize') ?? lineMaterial.gapSize"
|
|
87
|
-
[wireframe]="get('wireframe') ?? lineMaterial.wireframe"
|
|
88
|
-
[worldUnits]="get('worldUnits')"
|
|
89
|
-
/>
|
|
90
|
-
</ngt-primitive>
|
|
91
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
|
|
92
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsLine, decorators: [{
|
|
93
|
-
type: Component,
|
|
94
|
-
args: [{
|
|
95
|
-
selector: 'ngts-line[points]',
|
|
96
|
-
standalone: true,
|
|
97
|
-
template: `
|
|
98
|
-
<ngt-primitive *args="[line]" [ref]="lineRef" ngtCompound>
|
|
99
|
-
<ngt-primitive
|
|
100
|
-
*args="[get('lineGeometry')]"
|
|
101
|
-
attach="geometry"
|
|
102
|
-
(afterAttach)="onAfterAttach($any($event))"
|
|
103
|
-
/>
|
|
104
|
-
<ngt-primitive
|
|
105
|
-
*args="[lineMaterial]"
|
|
106
|
-
attach="material"
|
|
107
|
-
[color]="get('color')"
|
|
108
|
-
[vertexColors]="Boolean(get('vertexColors'))"
|
|
109
|
-
[resolution]="get('materialResolution')"
|
|
110
|
-
[linewidth]="get('lineWidth')"
|
|
111
|
-
[alphaToCoverage]="get('alphaToCoverage')"
|
|
112
|
-
[dashed]="get('dashed')"
|
|
113
|
-
[dashScale]="get('dashScale') ?? lineMaterial.dashScale"
|
|
114
|
-
[dashSize]="get('dashSize') ?? lineMaterial.dashSize"
|
|
115
|
-
[dashOffset]="get('dashOffset') ?? lineMaterial.dashOffset"
|
|
116
|
-
[gapSize]="get('gapSize') ?? lineMaterial.gapSize"
|
|
117
|
-
[wireframe]="get('wireframe') ?? lineMaterial.wireframe"
|
|
118
|
-
[worldUnits]="get('worldUnits')"
|
|
119
|
-
/>
|
|
120
|
-
</ngt-primitive>
|
|
121
|
-
`,
|
|
122
|
-
imports: [NgtArgs],
|
|
123
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
124
|
-
}]
|
|
125
|
-
}], propDecorators: { lineRef: [{
|
|
126
|
-
type: Input
|
|
127
|
-
}], points: [{
|
|
128
|
-
type: Input
|
|
129
|
-
}], segments: [{
|
|
130
|
-
type: Input
|
|
131
|
-
}] } });
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL2xpbmUvbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBa0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBaUM3QyxNQUFNLE9BQU8sUUFBUyxTQUFRLGFBQWE7SUEvQjNDOztRQWdDYSxZQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUxQixVQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFDLFNBQUksR0FBaUMsSUFBSSxDQUFDO1FBRWpDLFlBQU8sR0FBRyxZQUFZLEVBQXlCLENBQUM7S0EwRTVEO0lBeEVHLElBQWEsTUFBTSxDQUNmLE1BQW1HO1FBRW5HLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFhLFFBQVEsQ0FBQyxRQUFpQjtRQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMz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QyxJQUFJLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ3ZFLENBQ0osQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUVyRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGVBQWU7UUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsWUFBMEIsRUFBRSxFQUFFO1lBQ3BFLE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7cUdBakZRLFFBQVE7eUZBQVIsUUFBUSw0S0E1QlA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXdCVCw0REFDUyxPQUFPOzJGQUdSLFFBQVE7a0JBL0JwQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXdCVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzs4QkFTWSxPQUFPO3NCQUFmLEtBQUs7Z0JBRU8sTUFBTTtzQkFBbEIsS0FBSztnQkFNTyxRQUFRO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBpbmplY3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdE5ndFJlZiwgTmd0QWZ0ZXJBdHRhY2gsIE5ndEFyZ3MsIE5ndFN0b3JlLCBzdGFydFdpdGhVbmRlZmluZWQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTGluZTIsIExpbmVHZW9tZXRyeSwgTGluZU1hdGVyaWFsLCBMaW5lU2VnbWVudHMyLCBMaW5lU2VnbWVudHNHZW9tZXRyeSB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5pbXBvcnQgeyBOZ3RzTGluZUlucHV0IH0gZnJvbSAnLi9saW5lLWlucHV0JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWxpbmVbcG9pbnRzXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltsaW5lXVwiIFtyZWZdPVwibGluZVJlZlwiIG5ndENvbXBvdW5kPlxuICAgICAgICAgICAgPG5ndC1wcmltaXRpdmVcbiAgICAgICAgICAgICAgICAqYXJncz1cIltnZXQoJ2xpbmVHZW9tZXRyeScpXVwiXG4gICAgICAgICAgICAgICAgYXR0YWNoPVwiZ2VvbWV0cnlcIlxuICAgICAgICAgICAgICAgIChhZnRlckF0dGFjaCk9XCJvbkFmdGVyQXR0YWNoKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxuZ3QtcHJpbWl0aXZlXG4gICAgICAgICAgICAgICAgKmFyZ3M9XCJbbGluZU1hdGVyaWFsXVwiXG4gICAgICAgICAgICAgICAgYXR0YWNoPVwibWF0ZXJpYWxcIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJnZXQoJ2NvbG9yJylcIlxuICAgICAgICAgICAgICAgIFt2ZXJ0ZXhDb2xvcnNdPVwiQm9vbGVhbihnZXQoJ3ZlcnRleENvbG9ycycpKVwiXG4gICAgICAgICAgICAgICAgW3Jlc29sdXRpb25dPVwiZ2V0KCdtYXRlcmlhbFJlc29sdXRpb24nKVwiXG4gICAgICAgICAgICAgICAgW2xpbmV3aWR0aF09XCJnZXQoJ2xpbmVXaWR0aCcpXCJcbiAgICAgICAgICAgICAgICBbYWxwaGFUb0NvdmVyYWdlXT1cImdldCgnYWxwaGFUb0NvdmVyYWdlJylcIlxuICAgICAgICAgICAgICAgIFtkYXNoZWRdPVwiZ2V0KCdkYXNoZWQnKVwiXG4gICAgICAgICAgICAgICAgW2Rhc2hTY2FsZV09XCJnZXQoJ2Rhc2hTY2FsZScpID8/IGxpbmVNYXRlcmlhbC5kYXNoU2NhbGVcIlxuICAgICAgICAgICAgICAgIFtkYXNoU2l6ZV09XCJnZXQoJ2Rhc2hTaXplJykgPz8gbGluZU1hdGVyaWFsLmRhc2hTaXplXCJcbiAgICAgICAgICAgICAgICBbZGFzaE9mZnNldF09XCJnZXQoJ2Rhc2hPZmZzZXQnKSA/PyBsaW5lTWF0ZXJpYWwuZGFzaE9mZnNldFwiXG4gICAgICAgICAgICAgICAgW2dhcFNpemVdPVwiZ2V0KCdnYXBTaXplJykgPz8gbGluZU1hdGVyaWFsLmdhcFNpemVcIlxuICAgICAgICAgICAgICAgIFt3aXJlZnJhbWVdPVwiZ2V0KCd3aXJlZnJhbWUnKSA/PyBsaW5lTWF0ZXJpYWwud2lyZWZyYW1lXCJcbiAgICAgICAgICAgICAgICBbd29ybGRVbml0c109XCJnZXQoJ3dvcmxkVW5pdHMnKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L25ndC1wcmltaXRpdmU+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0QXJnc10sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzTGluZSBleHRlbmRzIE5ndHNMaW5lSW5wdXQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHJlYWRvbmx5IEJvb2xlYW4gPSBCb29sZWFuO1xuICAgIHJlYWRvbmx5IGxpbmVNYXRlcmlhbCA9IG5ldyBMaW5lTWF0ZXJpYWwoKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuXG4gICAgbGluZTogTGluZTIgfCBMaW5lU2VnbWVudHMyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBsaW5lUmVmID0gaW5qZWN0Tmd0UmVmPExpbmVTZWdtZW50czIgfCBMaW5lMj4oKTtcblxuICAgIEBJbnB1dCgpIHNldCBwb2ludHMoXG4gICAgICAgIHBvaW50czogQXJyYXk8VEhSRUUuVmVjdG9yMyB8IFRIUkVFLlZlY3RvcjIgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gfCBbbnVtYmVyLCBudW1iZXJdIHwgbnVtYmVyPlxuICAgICkge1xuICAgICAgICB0aGlzLnNldCh7IHBvaW50cyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2VnbWVudHMoc2VnbWVudHM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzZWdtZW50cyB9KTtcbiAgICB9XG5cbiAgICBvbkFmdGVyQXR0YWNoKHsgcGFyZW50IH06IE5ndEFmdGVyQXR0YWNoPExpbmUyIHwgTGluZVNlZ21lbnRzMj4pIHtcbiAgICAgICAgcGFyZW50LmNvbXB1dGVMaW5lRGlzdGFuY2VzKCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7IHNlZ21lbnRzOiBmYWxzZSB9KTtcbiAgICAgICAgdGhpcy5jb25uZWN0KFxuICAgICAgICAgICAgJ2xpbmVHZW9tZXRyeScsXG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgncG9pbnRzJyksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ3NlZ21lbnRzJyksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ3ZlcnRleENvbG9ycycpLnBpcGUoc3RhcnRXaXRoVW5kZWZpbmVkKCkpLFxuICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKFtwb2ludHMsIHNlZ21lbnRzLCB2ZXJ0ZXhDb2xvcnNdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdlb21ldHJ5ID0gc2VnbWVudHMgPyBuZXcgTGluZVNlZ21lbnRzR2VvbWV0cnkoKSA6IG5ldyBMaW5lR2VvbWV0cnkoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcFZhbHVlcyA9IChwb2ludHMgYXMgTmd0c0xpbmVbJ3BvaW50cyddKS5tYXAoKHApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KHApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHAgaW5zdGFuY2VvZiBUSFJFRS5WZWN0b3IzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBbcC54LCBwLnksIHAuel1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHAgaW5zdGFuY2VvZiBUSFJFRS5WZWN0b3IyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBbcC54LCBwLnksIDBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0FycmF5ICYmIHAubGVuZ3RoID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBbcFswXSwgcFsxXSwgcFsyXV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQXJyYXkgJiYgcC5sZW5ndGggPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFtwWzBdLCBwWzFdLCAwXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcDtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgZ2VvbWV0cnkuc2V0UG9zaXRpb25zKHBWYWx1ZXMuZmxhdCgpKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodmVydGV4Q29sb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjVmFsdWVzID0gKHZlcnRleENvbG9ycyBhcyBOZ3RzTGluZUlucHV0Wyd2ZXJ0ZXhDb2xvcnMnXSkubWFwKChjKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgaW5zdGFuY2VvZiBUSFJFRS5Db2xvciA/IGMudG9BcnJheSgpIDogY1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdlb21ldHJ5LnNldENvbG9ycyhjVmFsdWVzLmZsYXQoKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5jb25uZWN0KFxuICAgICAgICAgICAgJ21hdGVyaWFsUmVzb2x1dGlvbicsXG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0b3JlLnNlbGVjdCgnc2l6ZScpLCB0aGlzLnNlbGVjdCgncmVzb2x1dGlvbicpLnBpcGUoc3RhcnRXaXRoVW5kZWZpbmVkKCkpXSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKFtzaXplLCByZXNvbHV0aW9uXSkgPT4gcmVzb2x1dGlvbiA/PyBbc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHRdKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMubGluZSA9IHRoaXMuZ2V0KCdzZWdtZW50cycpID8gbmV3IExpbmVTZWdtZW50czIoKSA6IG5ldyBMaW5lMigpO1xuXG4gICAgICAgIHRoaXMuZGlzcG9zZUdlb21ldHJ5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNwb3NlR2VvbWV0cnkoKSB7XG4gICAgICAgIHRoaXMuZWZmZWN0KHRoaXMuc2VsZWN0KCdsaW5lR2VvbWV0cnknKSwgKGxpbmVHZW9tZXRyeTogTGluZUdlb21ldHJ5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4gbGluZUdlb21ldHJ5LmRpc3Bvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
2
|
-
import { injectNgtRef, startWithUndefined } from 'angular-three';
|
|
3
|
-
import { combineLatest, map } from 'rxjs';
|
|
4
|
-
import * as THREE from 'three';
|
|
5
|
-
import { NgtsLine } from '../line/line';
|
|
6
|
-
import { NgtsLineInput } from '../line/line-input';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
const v = new THREE.Vector3();
|
|
9
|
-
export class NgtsQuadraticBezierLine extends NgtsLineInput {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(...arguments);
|
|
12
|
-
this.curve = new THREE.QuadraticBezierCurve3(undefined, undefined, undefined);
|
|
13
|
-
this.lineRef = injectNgtRef();
|
|
14
|
-
}
|
|
15
|
-
set start(start) {
|
|
16
|
-
this.set({ start });
|
|
17
|
-
}
|
|
18
|
-
set end(end) {
|
|
19
|
-
this.set({ end });
|
|
20
|
-
}
|
|
21
|
-
set mid(mid) {
|
|
22
|
-
this.set({ mid });
|
|
23
|
-
}
|
|
24
|
-
set segments(segments) {
|
|
25
|
-
this.set({ segments });
|
|
26
|
-
}
|
|
27
|
-
initialize() {
|
|
28
|
-
super.initialize();
|
|
29
|
-
this.set({ start: [0, 0, 0], end: [0, 0, 0], segments: 20 });
|
|
30
|
-
}
|
|
31
|
-
ngOnInit() {
|
|
32
|
-
this.connect('points', combineLatest([
|
|
33
|
-
this.select('start'),
|
|
34
|
-
this.select('end'),
|
|
35
|
-
this.select('mid').pipe(startWithUndefined()),
|
|
36
|
-
this.select('segments'),
|
|
37
|
-
]).pipe(map(([start, end, mid, segments]) => this.getPoints(start, end, mid, segments))));
|
|
38
|
-
this.replaceSetPoints();
|
|
39
|
-
}
|
|
40
|
-
replaceSetPoints() {
|
|
41
|
-
this.hold(this.lineRef.$, (line) => {
|
|
42
|
-
line.setPoints = (start, end, mid) => {
|
|
43
|
-
const points = this.getPoints(start, end, mid);
|
|
44
|
-
if (this.lineRef.nativeElement.geometry) {
|
|
45
|
-
this.lineRef.nativeElement.geometry.setPositions(points.map((p) => p.toArray()).flat());
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
getPoints(start, end, mid, segments = 20) {
|
|
51
|
-
if (start instanceof THREE.Vector3)
|
|
52
|
-
this.curve.v0.copy(start);
|
|
53
|
-
else
|
|
54
|
-
this.curve.v0.set(...start);
|
|
55
|
-
if (end instanceof THREE.Vector3)
|
|
56
|
-
this.curve.v2.copy(end);
|
|
57
|
-
else
|
|
58
|
-
this.curve.v2.set(...end);
|
|
59
|
-
if (mid instanceof THREE.Vector3) {
|
|
60
|
-
this.curve.v1.copy(mid);
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
this.curve.v1.copy(this.curve.v0
|
|
64
|
-
.clone()
|
|
65
|
-
.add(this.curve.v2.clone().sub(this.curve.v0))
|
|
66
|
-
.add(v.set(0, this.curve.v0.y - this.curve.v2.y, 0)));
|
|
67
|
-
}
|
|
68
|
-
return this.curve.getPoints(segments);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
NgtsQuadraticBezierLine.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsQuadraticBezierLine, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
72
|
-
NgtsQuadraticBezierLine.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsQuadraticBezierLine, isStandalone: true, selector: "ngts-quadratic-bezier-line", inputs: { lineRef: "lineRef", start: "start", end: "end", mid: "mid", segments: "segments" }, usesInheritance: true, ngImport: i0, template: `
|
|
73
|
-
<ngts-line
|
|
74
|
-
[lineRef]="lineRef"
|
|
75
|
-
[points]="get('points')"
|
|
76
|
-
[color]="get('color')"
|
|
77
|
-
[vertexColors]="get('vertexColors')"
|
|
78
|
-
[resolution]="get('resolution')"
|
|
79
|
-
[lineWidth]="get('lineWidth')"
|
|
80
|
-
[alphaToCoverage]="get('alphaToCoverage')"
|
|
81
|
-
[dashed]="get('dashed')"
|
|
82
|
-
[dashScale]="get('dashScale')"
|
|
83
|
-
[dashSize]="get('dashSize')"
|
|
84
|
-
[dashOffset]="get('dashOffset')"
|
|
85
|
-
[gapSize]="get('gapSize')"
|
|
86
|
-
[wireframe]="get('wireframe')"
|
|
87
|
-
[worldUnits]="get('worldUnits')"
|
|
88
|
-
/>
|
|
89
|
-
`, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line[points]", inputs: ["lineRef", "points", "segments"] }] });
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsQuadraticBezierLine, decorators: [{
|
|
91
|
-
type: Component,
|
|
92
|
-
args: [{
|
|
93
|
-
selector: 'ngts-quadratic-bezier-line',
|
|
94
|
-
standalone: true,
|
|
95
|
-
template: `
|
|
96
|
-
<ngts-line
|
|
97
|
-
[lineRef]="lineRef"
|
|
98
|
-
[points]="get('points')"
|
|
99
|
-
[color]="get('color')"
|
|
100
|
-
[vertexColors]="get('vertexColors')"
|
|
101
|
-
[resolution]="get('resolution')"
|
|
102
|
-
[lineWidth]="get('lineWidth')"
|
|
103
|
-
[alphaToCoverage]="get('alphaToCoverage')"
|
|
104
|
-
[dashed]="get('dashed')"
|
|
105
|
-
[dashScale]="get('dashScale')"
|
|
106
|
-
[dashSize]="get('dashSize')"
|
|
107
|
-
[dashOffset]="get('dashOffset')"
|
|
108
|
-
[gapSize]="get('gapSize')"
|
|
109
|
-
[wireframe]="get('wireframe')"
|
|
110
|
-
[worldUnits]="get('worldUnits')"
|
|
111
|
-
/>
|
|
112
|
-
`,
|
|
113
|
-
imports: [NgtsLine],
|
|
114
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
115
|
-
}]
|
|
116
|
-
}], propDecorators: { lineRef: [{
|
|
117
|
-
type: Input
|
|
118
|
-
}], start: [{
|
|
119
|
-
type: Input
|
|
120
|
-
}], end: [{
|
|
121
|
-
type: Input
|
|
122
|
-
}], mid: [{
|
|
123
|
-
type: Input
|
|
124
|
-
}], segments: [{
|
|
125
|
-
type: Input
|
|
126
|
-
}] } });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhZHJhdGljLWJlemllci1saW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvYWJzdHJhY3Rpb25zL3NyYy9saWIvcXVhZHJhdGljLWJlemllci1saW5lL3F1YWRyYXRpYy1iZXppZXItbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRS9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUVuRCxNQUFNLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQTBCOUIsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGFBQWE7SUF4QjFEOztRQXlCYSxVQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsU0FBVSxFQUFFLFNBQVUsRUFBRSxTQUFVLENBQUMsQ0FBQztRQUU1RSxZQUFPLEdBQUcsWUFBWSxFQUFTLENBQUM7S0E4RTVDO0lBNUVHLElBQWEsS0FBSyxDQUFDLEtBQStDO1FBQzlELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFhLEdBQUcsQ0FBQyxHQUE2QztRQUMxRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBYSxHQUFH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LENBQUMsQ0FBQztTQUMzQjthQUFNO1lBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtpQkFDUixLQUFLLEVBQUU7aUJBQ1AsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUM3QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUMzRCxDQUFDO1NBQ0w7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O29IQWhGUSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwyTUFyQnRCOzs7Ozs7Ozs7Ozs7Ozs7OztLQWlCVCw0REFDUyxRQUFROzJGQUdULHVCQUF1QjtrQkF4Qm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO29CQUNuQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEM7OEJBSVksT0FBTztzQkFBZixLQUFLO2dCQUVPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sR0FBRztzQkFBZixLQUFLO2dCQUlPLEdBQUc7c0JBQWYsS0FBSztnQkFJTyxRQUFRO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3ROZ3RSZWYsIHN0YXJ0V2l0aFVuZGVmaW5lZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBMaW5lMiB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5pbXBvcnQgeyBOZ3RzTGluZSB9IGZyb20gJy4uL2xpbmUvbGluZSc7XG5pbXBvcnQgeyBOZ3RzTGluZUlucHV0IH0gZnJvbSAnLi4vbGluZS9saW5lLWlucHV0JztcblxuY29uc3QgdiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1xdWFkcmF0aWMtYmV6aWVyLWxpbmUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndHMtbGluZVxuICAgICAgICAgICAgW2xpbmVSZWZdPVwibGluZVJlZlwiXG4gICAgICAgICAgICBbcG9pbnRzXT1cImdldCgncG9pbnRzJylcIlxuICAgICAgICAgICAgW2NvbG9yXT1cImdldCgnY29sb3InKVwiXG4gICAgICAgICAgICBbdmVydGV4Q29sb3JzXT1cImdldCgndmVydGV4Q29sb3JzJylcIlxuICAgICAgICAgICAgW3Jlc29sdXRpb25dPVwiZ2V0KCdyZXNvbHV0aW9uJylcIlxuICAgICAgICAgICAgW2xpbmVXaWR0aF09XCJnZXQoJ2xpbmVXaWR0aCcpXCJcbiAgICAgICAgICAgIFthbHBoYVRvQ292ZXJhZ2VdPVwiZ2V0KCdhbHBoYVRvQ292ZXJhZ2UnKVwiXG4gICAgICAgICAgICBbZGFzaGVkXT1cImdldCgnZGFzaGVkJylcIlxuICAgICAgICAgICAgW2Rhc2hTY2FsZV09XCJnZXQoJ2Rhc2hTY2FsZScpXCJcbiAgICAgICAgICAgIFtkYXNoU2l6ZV09XCJnZXQoJ2Rhc2hTaXplJylcIlxuICAgICAgICAgICAgW2Rhc2hPZmZzZXRdPVwiZ2V0KCdkYXNoT2Zmc2V0JylcIlxuICAgICAgICAgICAgW2dhcFNpemVdPVwiZ2V0KCdnYXBTaXplJylcIlxuICAgICAgICAgICAgW3dpcmVmcmFtZV09XCJnZXQoJ3dpcmVmcmFtZScpXCJcbiAgICAgICAgICAgIFt3b3JsZFVuaXRzXT1cImdldCgnd29ybGRVbml0cycpXCJcbiAgICAgICAgLz5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RzTGluZV0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzUXVhZHJhdGljQmV6aWVyTGluZSBleHRlbmRzIE5ndHNMaW5lSW5wdXQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHJlYWRvbmx5IGN1cnZlID0gbmV3IFRIUkVFLlF1YWRyYXRpY0JlemllckN1cnZlMyh1bmRlZmluZWQhLCB1bmRlZmluZWQhLCB1bmRlZmluZWQhKTtcblxuICAgIEBJbnB1dCgpIGxpbmVSZWYgPSBpbmplY3ROZ3RSZWY8TGluZTI+KCk7XG5cbiAgICBASW5wdXQoKSBzZXQgc3RhcnQoc3RhcnQ6IFRIUkVFLlZlY3RvcjMgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzdGFydCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZW5kKGVuZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkge1xuICAgICAgICB0aGlzLnNldCh7IGVuZCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbWlkKG1pZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkge1xuICAgICAgICB0aGlzLnNldCh7IG1pZCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2VnbWVudHMoc2VnbWVudHM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHNlZ21lbnRzIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoeyBzdGFydDogWzAsIDAsIDBdLCBlbmQ6IFswLCAwLCAwXSwgc2VnbWVudHM6IDIwIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAncG9pbnRzJyxcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdzdGFydCcpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdlbmQnKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgnbWlkJykucGlwZShzdGFydFdpdGhVbmRlZmluZWQoKSksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ3NlZ21lbnRzJyksXG4gICAgICAgICAgICBdKS5waXBlKG1hcCgoW3N0YXJ0LCBlbmQsIG1pZCwgc2VnbWVudHNdKSA9PiB0aGlzLmdldFBvaW50cyhzdGFydCwgZW5kLCBtaWQsIHNlZ21lbnRzKSkpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yZXBsYWNlU2V0UG9pbnRzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXBsYWNlU2V0UG9pbnRzKCkge1xuICAgICAgICB0aGlzLmhvbGQodGhpcy5saW5lUmVmLiQsIChsaW5lKSA9PiB7XG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgbGluZSBhcyB1bmtub3duIGFzIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0UG9pbnRzOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXVxuICAgICAgICAgICAgICAgICAgICApID0+IHZvaWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKS5zZXRQb2ludHMgPSAoc3RhcnQsIGVuZCwgbWlkKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcG9pbnRzID0gdGhpcy5nZXRQb2ludHMoc3RhcnQsIGVuZCwgbWlkKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5saW5lUmVmLm5hdGl2ZUVsZW1lbnQuZ2VvbWV0cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saW5lUmVmLm5hdGl2ZUVsZW1lbnQuZ2VvbWV0cnkuc2V0UG9zaXRpb25zKHBvaW50cy5tYXAoKHApID0+IHAudG9BcnJheSgpKS5mbGF0KCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9pbnRzKFxuICAgICAgICBzdGFydDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbiAgICAgICAgZW5kOiBUSFJFRS5WZWN0b3IzIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICBtaWQ/OiBUSFJFRS5WZWN0b3IzIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICBzZWdtZW50cyA9IDIwXG4gICAgKSB7XG4gICAgICAgIGlmIChzdGFydCBpbnN0YW5jZW9mIFRIUkVFLlZlY3RvcjMpIHRoaXMuY3VydmUudjAuY29weShzdGFydCk7XG4gICAgICAgIGVsc2UgdGhpcy5jdXJ2ZS52MC5zZXQoLi4uKHN0YXJ0IGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkpO1xuICAgICAgICBpZiAoZW5kIGluc3RhbmNlb2YgVEhSRUUuVmVjdG9yMykgdGhpcy5jdXJ2ZS52Mi5jb3B5KGVuZCk7XG4gICAgICAgIGVsc2UgdGhpcy5jdXJ2ZS52Mi5zZXQoLi4uKGVuZCBhcyBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pKTtcbiAgICAgICAgaWYgKG1pZCBpbnN0YW5jZW9mIFRIUkVFLlZlY3RvcjMpIHtcbiAgICAgICAgICAgIHRoaXMuY3VydmUudjEuY29weShtaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jdXJ2ZS52MS5jb3B5KFxuICAgICAgICAgICAgICAgIHRoaXMuY3VydmUudjBcbiAgICAgICAgICAgICAgICAgICAgLmNsb25lKClcbiAgICAgICAgICAgICAgICAgICAgLmFkZCh0aGlzLmN1cnZlLnYyLmNsb25lKCkuc3ViKHRoaXMuY3VydmUudjApKVxuICAgICAgICAgICAgICAgICAgICAuYWRkKHYuc2V0KDAsIHRoaXMuY3VydmUudjAueSAtIHRoaXMuY3VydmUudjIueSwgMCkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnZlLmdldFBvaW50cyhzZWdtZW50cyk7XG4gICAgfVxufVxuIl19
|