angular-three-soba 2.0.0-beta.2 → 2.0.0-beta.21
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/billboard/billboard.d.ts +11 -7
- package/abstractions/detailed/detailed.d.ts +26 -0
- package/abstractions/edges/edges.d.ts +24 -12
- package/abstractions/grid/grid.d.ts +50 -0
- package/abstractions/index.d.ts +2 -7
- package/abstractions/text/text.d.ts +10 -5
- package/abstractions/text-3d/text-3d.d.ts +51 -41
- package/cameras/camera/camera-content.d.ts +1 -1
- package/cameras/camera/camera.d.ts +16 -13
- package/cameras/cube-camera/cube-camera.d.ts +50 -23
- package/cameras/index.d.ts +0 -1
- package/cameras/orthographic-camera/orthographic-camera.d.ts +29 -18
- package/cameras/perspective-camera/perspective-camera.d.ts +10 -1
- package/controls/orbit-controls/orbit-controls.d.ts +31 -12
- package/esm2022/abstractions/billboard/billboard.mjs +36 -33
- package/esm2022/abstractions/detailed/detailed.mjs +64 -0
- package/esm2022/abstractions/edges/edges.mjs +58 -63
- package/esm2022/abstractions/grid/grid.mjs +180 -0
- package/esm2022/abstractions/index.mjs +3 -8
- package/esm2022/abstractions/text/text.mjs +123 -124
- package/esm2022/abstractions/text-3d/text-3d.mjs +120 -115
- package/esm2022/cameras/camera/camera-content.mjs +6 -6
- package/esm2022/cameras/camera/camera.mjs +48 -42
- package/esm2022/cameras/cube-camera/cube-camera.mjs +129 -99
- package/esm2022/cameras/index.mjs +1 -2
- package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +78 -75
- package/esm2022/cameras/perspective-camera/perspective-camera.mjs +25 -26
- package/esm2022/controls/orbit-controls/orbit-controls.mjs +105 -85
- package/esm2022/gizmos/angular-three-soba-gizmos.mjs +5 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-helper.mjs +197 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/constants.mjs +31 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +93 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +150 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.mjs +66 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +71 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +195 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +272 -0
- package/esm2022/gizmos/index.mjs +4 -0
- package/esm2022/loaders/gltf-loader/gltf-loader.mjs +3 -6
- package/esm2022/loaders/loader/loader.mjs +92 -87
- package/esm2022/loaders/progress/progress.mjs +29 -29
- package/esm2022/loaders/texture-loader/texture-loader.mjs +4 -4
- package/esm2022/materials/index.mjs +2 -1
- package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +60 -51
- package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +239 -255
- package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +102 -99
- package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +167 -146
- package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +44 -42
- package/esm2022/materials/point-material/point-material.mjs +50 -0
- package/esm2022/misc/animations/animations.mjs +36 -32
- package/esm2022/misc/bake-shadows/bake-shadows.mjs +13 -13
- package/esm2022/misc/caustics/caustics.mjs +387 -0
- package/esm2022/misc/decal/decal.mjs +187 -0
- package/esm2022/misc/depth-buffer/depth-buffer.mjs +33 -35
- package/esm2022/misc/example/example.mjs +160 -0
- package/esm2022/misc/fbo/fbo.mjs +35 -35
- package/esm2022/misc/html/html-wrapper.mjs +478 -0
- package/esm2022/misc/html/html.mjs +304 -0
- package/esm2022/misc/index.mjs +10 -1
- package/esm2022/misc/sampler/sampler.mjs +142 -0
- package/esm2022/misc/shadow/shadow.mjs +111 -0
- package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
- package/esm2022/misc/trail/trail.mjs +209 -0
- package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
- package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
- package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
- package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
- package/esm2022/modifiers/index.mjs +2 -0
- package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
- package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
- package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
- package/esm2022/performances/index.mjs +8 -0
- package/esm2022/performances/instances/instances.mjs +220 -0
- package/esm2022/performances/instances/position-mesh.mjs +52 -0
- package/esm2022/performances/points/points-input.mjs +64 -0
- package/esm2022/performances/points/points.mjs +326 -0
- package/esm2022/performances/points/position-point.mjs +54 -0
- package/esm2022/performances/segments/segment-object.mjs +9 -0
- package/esm2022/performances/segments/segments.mjs +182 -0
- package/esm2022/shaders/blur-pass/blur-pass.mjs +2 -2
- package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
- package/esm2022/shaders/caustics/caustics-projection-material.mjs +31 -0
- package/esm2022/shaders/convolution-material/convolution-material.mjs +1 -1
- package/esm2022/shaders/discard-material/discard-material.mjs +1 -1
- package/esm2022/shaders/grid-material/grid-material.mjs +77 -0
- package/esm2022/shaders/index.mjs +6 -3
- package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +42 -41
- package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +2 -2
- package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +2 -2
- package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +4 -4
- package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +1 -1
- package/esm2022/shaders/shader-material/shader-material.mjs +1 -1
- package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +17 -25
- package/esm2022/shaders/sparkles-material/sparkles-material.mjs +32 -46
- package/esm2022/shaders/spot-light-material/spot-light-material.mjs +7 -7
- package/esm2022/shaders/star-field-material/star-field-material.mjs +3 -2
- package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
- package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +160 -176
- package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +1 -1
- package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +126 -128
- package/esm2022/staging/backdrop/backdrop.mjs +77 -0
- package/esm2022/staging/bb-anchor/bb-anchor.mjs +69 -0
- package/esm2022/staging/bounds/bounds.mjs +144 -143
- package/esm2022/staging/camera-shake/camera-shake.mjs +86 -80
- package/esm2022/staging/center/center.mjs +129 -112
- package/esm2022/staging/cloud/cloud.mjs +118 -124
- package/esm2022/staging/contact-shadows/contact-shadows.mjs +131 -134
- package/esm2022/staging/environment/assets.mjs +12 -12
- package/esm2022/staging/environment/environment-cube.mjs +28 -30
- package/esm2022/staging/environment/environment-ground.mjs +17 -19
- package/esm2022/staging/environment/environment-input.mjs +98 -85
- package/esm2022/staging/environment/environment-map.mjs +33 -33
- package/esm2022/staging/environment/environment-portal.mjs +75 -97
- package/esm2022/staging/environment/environment.mjs +34 -51
- package/esm2022/staging/environment/utils.mjs +37 -15
- package/esm2022/staging/float/float.mjs +70 -58
- package/esm2022/staging/index.mjs +7 -3
- package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
- package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
- package/esm2022/staging/sky/sky.mjs +85 -80
- package/esm2022/staging/sparkles/sparkles.mjs +108 -105
- package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
- package/esm2022/staging/spot-light/shadow-mesh.mjs +266 -0
- package/esm2022/staging/spot-light/spot-light-input.mjs +67 -58
- package/esm2022/staging/spot-light/spot-light.mjs +51 -64
- package/esm2022/staging/spot-light/volumetric-mesh.mjs +67 -70
- package/esm2022/staging/stage/stage.mjs +305 -290
- package/esm2022/staging/stars/stars.mjs +101 -102
- package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
- package/esm2022/staging/wireframe/wireframe.mjs +228 -0
- package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
- package/esm2022/utils/content/content.mjs +15 -0
- package/esm2022/utils/index.mjs +2 -0
- package/fesm2022/angular-three-soba-abstractions.mjs +514 -1947
- package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
- package/fesm2022/angular-three-soba-cameras.mjs +302 -259
- package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
- package/fesm2022/angular-three-soba-controls.mjs +104 -83
- package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
- package/fesm2022/angular-three-soba-gizmos.mjs +1043 -0
- package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -0
- package/fesm2022/angular-three-soba-loaders.mjs +121 -117
- package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-materials.mjs +662 -592
- package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
- package/fesm2022/angular-three-soba-misc.mjs +2214 -105
- package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
- package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
- package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
- package/fesm2022/angular-three-soba-performances.mjs +956 -0
- package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
- package/fesm2022/angular-three-soba-shaders.mjs +549 -252
- package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-staging.mjs +2899 -2563
- package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
- package/fesm2022/angular-three-soba-utils.mjs +22 -0
- package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
- package/gizmos/README.md +3 -0
- package/gizmos/gizmo-helper/gizmo-helper.d.ts +69 -0
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +22 -0
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +29 -0
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.d.ts +33 -0
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +10 -0
- package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +40 -0
- package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +30 -0
- package/gizmos/index.d.ts +3 -0
- package/loaders/gltf-loader/gltf-loader.d.ts +4 -3
- package/loaders/loader/loader.d.ts +19 -17
- package/loaders/progress/progress.d.ts +1 -1
- package/loaders/texture-loader/texture-loader.d.ts +2 -2
- package/materials/index.d.ts +1 -0
- package/materials/mesh-distort-material/mesh-distort-material.d.ts +25 -15
- package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +74 -56
- package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +33 -21
- package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +55 -39
- package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +19 -10
- package/materials/point-material/point-material.d.ts +24 -0
- package/metadata.json +1 -0
- package/misc/animations/animations.d.ts +6 -4
- package/misc/caustics/caustics.d.ts +87 -0
- package/misc/decal/decal.d.ts +49 -0
- package/misc/depth-buffer/depth-buffer.d.ts +2 -2
- package/misc/example/example.d.ts +81 -0
- package/misc/fbo/fbo.d.ts +2 -2
- package/misc/html/html-wrapper.d.ts +559 -0
- package/misc/html/html.d.ts +214 -0
- package/misc/index.d.ts +9 -0
- package/misc/sampler/sampler.d.ts +67 -0
- package/misc/shadow/shadow.d.ts +37 -0
- package/misc/stats-gl/stats-gl.d.ts +24 -0
- package/misc/trail/trail.d.ts +57 -0
- package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
- package/misc/trail-texture/trail-texture.d.ts +50 -0
- package/modifiers/README.md +3 -0
- package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
- package/modifiers/index.d.ts +1 -0
- package/package.json +31 -16
- package/performances/README.md +3 -0
- package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
- package/{performance/adaptive → performances/adaptive-events}/adaptive-events.d.ts +3 -0
- package/performances/index.d.ts +7 -0
- package/performances/instances/instances.d.ts +79 -0
- package/{performance → performances}/instances/position-mesh.d.ts +1 -1
- package/performances/points/points-input.d.ts +32 -0
- package/performances/points/points.d.ts +92 -0
- package/performances/points/position-point.d.ts +11 -0
- package/performances/segments/segment-object.d.ts +7 -0
- package/performances/segments/segments.d.ts +124 -0
- package/shaders/grid-material/grid-material.d.ts +37 -0
- package/shaders/index.d.ts +5 -2
- package/shaders/mesh-distort-material/mesh-distort-material.d.ts +147 -2
- package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
- package/shaders/shader-material/shader-material.d.ts +2 -2
- package/shaders/soft-shadow-material/soft-shadow-material.d.ts +10 -1
- package/shaders/sparkles-material/sparkles-material.d.ts +15 -1
- package/shaders/spot-light-material/spot-light-material.d.ts +11 -2
- package/shaders/star-field-material/star-field-material.d.ts +11 -1
- package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
- package/staging/accumulative-shadows/accumulative-shadows.d.ts +89 -39
- package/staging/accumulative-shadows/randomized-lights.d.ts +40 -27
- package/staging/backdrop/backdrop.d.ts +30 -0
- package/staging/bb-anchor/bb-anchor.d.ts +27 -0
- package/staging/bounds/bounds.d.ts +100 -24
- package/staging/camera-shake/camera-shake.d.ts +30 -19
- package/staging/center/center.d.ts +43 -35
- package/staging/cloud/cloud.d.ts +26 -23
- package/staging/contact-shadows/contact-shadows.d.ts +41 -28
- package/staging/environment/assets.d.ts +9 -9
- package/staging/environment/environment-cube.d.ts +9 -5
- package/staging/environment/environment-ground.d.ts +7 -7
- package/staging/environment/environment-input.d.ts +37 -37
- package/staging/environment/environment-map.d.ts +10 -5
- package/staging/environment/environment-portal.d.ts +10 -5
- package/staging/environment/environment.d.ts +0 -4
- package/staging/environment/utils.d.ts +2 -2
- package/staging/float/float.d.ts +14 -10
- package/staging/index.d.ts +6 -2
- package/staging/matcap-texture/matcap-texture.d.ts +13 -0
- package/staging/normal-texture/normal-texture.d.ts +16 -0
- package/staging/sky/sky.d.ts +28 -21
- package/staging/sparkles/sparkles.d.ts +36 -22
- package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
- package/staging/spot-light/shadow-mesh.d.ts +37 -0
- package/staging/spot-light/spot-light-input.d.ts +25 -25
- package/staging/spot-light/spot-light.d.ts +31 -15
- package/staging/spot-light/volumetric-mesh.d.ts +15 -9
- package/staging/stage/stage.d.ts +89 -65
- package/staging/stars/stars.d.ts +28 -17
- package/staging/wireframe/wireframe-input.d.ts +65 -0
- package/staging/wireframe/wireframe.d.ts +28 -0
- package/utils/README.md +3 -0
- package/utils/content/content.d.ts +8 -0
- package/utils/index.d.ts +1 -0
- package/web-types.json +1 -0
- package/abstractions/catmull-rom-line/catmull-rom-line.d.ts +0 -25
- package/abstractions/cubic-bezier-line/cubic-bezier-line.d.ts +0 -25
- package/abstractions/gizmo-helper/gizmo-helper.d.ts +0 -34
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -30
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -32
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -14
- package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -47
- package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -40
- package/abstractions/line/line-input.d.ts +0 -42
- package/abstractions/line/line.d.ts +0 -35
- package/abstractions/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -23
- package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +0 -131
- package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +0 -113
- package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +0 -210
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -95
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -155
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -62
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -80
- package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -206
- package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -273
- package/esm2022/abstractions/line/line-input.mjs +0 -113
- package/esm2022/abstractions/line/line.mjs +0 -165
- package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
- package/esm2022/performance/adaptive/adaptive-dpr.mjs +0 -46
- package/esm2022/performance/adaptive/adaptive-events.mjs +0 -31
- package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
- package/esm2022/performance/detailed/detailed.mjs +0 -61
- package/esm2022/performance/index.mjs +0 -7
- package/esm2022/performance/instances/instance.mjs +0 -48
- package/esm2022/performance/instances/instances.mjs +0 -189
- package/esm2022/performance/instances/position-mesh.mjs +0 -52
- package/esm2022/performance/stats/stats.mjs +0 -79
- package/esm2022/shaders/caustics-material/caustics-material.mjs +0 -128
- package/esm2022/shaders/caustics-material/caustics-projection-material.mjs +0 -33
- package/esm2022/staging/caustics/caustisc.mjs +0 -384
- package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +0 -57
- package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +0 -256
- package/fesm2022/angular-three-soba-performance.mjs +0 -487
- package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
- package/performance/README.md +0 -3
- package/performance/adaptive/adaptive-dpr.d.ts +0 -8
- package/performance/detailed/detailed.d.ts +0 -20
- package/performance/index.d.ts +0 -6
- package/performance/instances/instance.d.ts +0 -9
- package/performance/instances/instances.d.ts +0 -35
- package/performance/stats/stats.d.ts +0 -18
- package/plugin/generators.json +0 -19
- package/plugin/libs/plugin/README.md +0 -11
- package/plugin/package.json +0 -9
- package/plugin/src/generators/init/compat.d.ts +0 -2
- package/plugin/src/generators/init/compat.js +0 -6
- package/plugin/src/generators/init/compat.js.map +0 -1
- package/plugin/src/generators/init/init.d.ts +0 -4
- package/plugin/src/generators/init/init.js +0 -22
- package/plugin/src/generators/init/init.js.map +0 -1
- package/plugin/src/generators/init/schema.json +0 -6
- package/plugin/src/index.d.ts +0 -1
- package/plugin/src/index.js +0 -6
- package/plugin/src/index.js.map +0 -1
- package/staging/caustics/caustisc.d.ts +0 -70
- package/staging/spot-light/spot-light-shadow-mesh-input.d.ts +0 -29
- package/staging/spot-light/spot-light-shadow-mesh.d.ts +0 -38
- /package/{abstractions → gizmos}/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -0
- /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
- /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { NgtSignalStore, NgtThreeEvent } from 'angular-three';
|
|
2
|
-
import { CanvasTexture } from 'three';
|
|
3
|
-
import { NgtsGizmoViewcubeInputs } from './gizmo-viewcube-inputs';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class NgtsGizmoViewcubeFaceMaterial extends NgtSignalStore<{
|
|
6
|
-
index: number;
|
|
7
|
-
hover: boolean;
|
|
8
|
-
}> {
|
|
9
|
-
#private;
|
|
10
|
-
protected readonly gl: import("@angular/core").Signal<import("three").WebGLRenderer>;
|
|
11
|
-
protected readonly viewcubeInputs: NgtsGizmoViewcubeInputs;
|
|
12
|
-
set index(index: number);
|
|
13
|
-
set hover(hover: boolean);
|
|
14
|
-
readonly faceIndex: import("@angular/core").Signal<number>;
|
|
15
|
-
readonly faceHover: import("@angular/core").Signal<boolean>;
|
|
16
|
-
readonly texture: import("@angular/core").Signal<CanvasTexture>;
|
|
17
|
-
constructor();
|
|
18
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgtsGizmoViewcubeFaceMaterial, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NgtsGizmoViewcubeFaceMaterial, "ngts-gizmo-viewcube-face-material", never, { "index": { "alias": "index"; "required": true; }; "hover": { "alias": "hover"; "required": true; }; }, {}, never, never, true, never>;
|
|
20
|
-
}
|
|
21
|
-
export declare class NgtsGizmoViewcubeFaceCube {
|
|
22
|
-
#private;
|
|
23
|
-
protected readonly viewcubeInputs: NgtsGizmoViewcubeInputs;
|
|
24
|
-
hover: import("@angular/core").WritableSignal<number>;
|
|
25
|
-
onPointerMove(event: NgtThreeEvent<PointerEvent>): void;
|
|
26
|
-
onPointerOut(event: NgtThreeEvent<PointerEvent>): void;
|
|
27
|
-
onClick(event: NgtThreeEvent<MouseEvent>): void;
|
|
28
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgtsGizmoViewcubeFaceCube, never>;
|
|
29
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NgtsGizmoViewcubeFaceCube, "ngts-gizmo-viewcube-face-cube", never, {}, {}, never, never, true, never>;
|
|
30
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { type EventEmitter } from '@angular/core';
|
|
2
|
-
import { NgtSignalStore, type NgtThreeEvent } from 'angular-three';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export interface NgtsGizmoViewCubeInputsState {
|
|
5
|
-
opacity: number;
|
|
6
|
-
hoverColor: string;
|
|
7
|
-
textColor: string;
|
|
8
|
-
strokeColor: string;
|
|
9
|
-
faces: string[];
|
|
10
|
-
font?: string;
|
|
11
|
-
color?: string;
|
|
12
|
-
clickEmitter: EventEmitter<NgtThreeEvent<MouseEvent>>;
|
|
13
|
-
}
|
|
14
|
-
export declare abstract class NgtsGizmoViewcubeInputs extends NgtSignalStore<NgtsGizmoViewCubeInputsState> {
|
|
15
|
-
set opacity(opacity: number);
|
|
16
|
-
set hoverColor(hoverColor: string);
|
|
17
|
-
set textColor(textColor: string);
|
|
18
|
-
set strokeColor(strokeColor: string);
|
|
19
|
-
set faces(faces: string[]);
|
|
20
|
-
set font(font: string);
|
|
21
|
-
set color(color: string);
|
|
22
|
-
set clickEmitter(clickEmitter: EventEmitter<NgtThreeEvent<MouseEvent>>);
|
|
23
|
-
readonly viewcubeHoverColor: import("@angular/core").Signal<string>;
|
|
24
|
-
readonly viewcubeOpacity: import("@angular/core").Signal<number>;
|
|
25
|
-
readonly viewcubeTextColor: import("@angular/core").Signal<string>;
|
|
26
|
-
readonly viewcubeStrokeColor: import("@angular/core").Signal<string>;
|
|
27
|
-
readonly viewcubeFaces: import("@angular/core").Signal<string[]>;
|
|
28
|
-
readonly viewcubeFont: import("@angular/core").Signal<string | undefined>;
|
|
29
|
-
readonly viewcubeColor: import("@angular/core").Signal<string | undefined>;
|
|
30
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgtsGizmoViewcubeInputs, never>;
|
|
31
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NgtsGizmoViewcubeInputs, never, never, { "opacity": { "alias": "opacity"; "required": false; }; "hoverColor": { "alias": "hoverColor"; "required": false; }; "textColor": { "alias": "textColor"; "required": false; }; "strokeColor": { "alias": "strokeColor"; "required": false; }; "faces": { "alias": "faces"; "required": false; }; "font": { "alias": "font"; "required": false; }; "color": { "alias": "color"; "required": false; }; "clickEmitter": { "alias": "clickEmitter"; "required": false; }; }, {}, never, never, false, never>;
|
|
32
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { NgtThreeEvent } from 'angular-three';
|
|
3
|
-
import { NgtsGizmoViewcubeInputs } from './gizmo-viewcube-inputs';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class NgtsGizmoViewcube extends NgtsGizmoViewcubeInputs {
|
|
6
|
-
readonly edges: import("three").Vector3[];
|
|
7
|
-
readonly edgeDimensions: [number, number, number][];
|
|
8
|
-
readonly corners: import("three").Vector3[];
|
|
9
|
-
readonly cornerDimensions: [number, number, number];
|
|
10
|
-
clicked: EventEmitter<NgtThreeEvent<MouseEvent>>;
|
|
11
|
-
constructor();
|
|
12
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgtsGizmoViewcube, never>;
|
|
13
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NgtsGizmoViewcube, "ngts-gizmo-viewcube", never, {}, { "clicked": "clicked"; }, never, never, true, never>;
|
|
14
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { NgtSignalStore, NgtThreeEvent } from 'angular-three';
|
|
3
|
-
import { CanvasTexture } from 'three';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class NgtsGizmoViewportAxis extends NgtSignalStore<{
|
|
6
|
-
color: string;
|
|
7
|
-
rotation: [number, number, number];
|
|
8
|
-
scale: [number, number, number];
|
|
9
|
-
}> {
|
|
10
|
-
set color(color: string);
|
|
11
|
-
set rotation(rotation: [number, number, number]);
|
|
12
|
-
set scale(scale: [number, number, number]);
|
|
13
|
-
readonly axisRotation: import("@angular/core").Signal<[number, number, number]>;
|
|
14
|
-
readonly axisColor: import("@angular/core").Signal<string>;
|
|
15
|
-
readonly axisScale: import("@angular/core").Signal<[number, number, number]>;
|
|
16
|
-
constructor();
|
|
17
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgtsGizmoViewportAxis, never>;
|
|
18
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NgtsGizmoViewportAxis, "ngts-gizmo-viewport-axis", never, { "color": { "alias": "color"; "required": true; }; "rotation": { "alias": "rotation"; "required": true; }; "scale": { "alias": "scale"; "required": false; }; }, {}, never, never, true, never>;
|
|
19
|
-
}
|
|
20
|
-
export declare class NgtsGizmoViewportAxisHead extends NgtSignalStore<{
|
|
21
|
-
arcStyle: string;
|
|
22
|
-
label: string;
|
|
23
|
-
labelColor: string;
|
|
24
|
-
axisHeadScale: number;
|
|
25
|
-
disabled: boolean;
|
|
26
|
-
font: string;
|
|
27
|
-
clickEmitter: EventEmitter<NgtThreeEvent<MouseEvent>>;
|
|
28
|
-
}> {
|
|
29
|
-
#private;
|
|
30
|
-
readonly gl: import("@angular/core").Signal<import("three").WebGLRenderer>;
|
|
31
|
-
set arcStyle(arcStyle: string);
|
|
32
|
-
set label(label: string);
|
|
33
|
-
set labelColor(labelColor: string);
|
|
34
|
-
set axisHeadScale(axisHeadScale: number);
|
|
35
|
-
set disabled(disabled: boolean);
|
|
36
|
-
set font(font: string);
|
|
37
|
-
set clickEmitter(clickEmitter: EventEmitter<NgtThreeEvent<MouseEvent>>);
|
|
38
|
-
active: import("@angular/core").WritableSignal<boolean>;
|
|
39
|
-
readonly axisLabel: import("@angular/core").Signal<string>;
|
|
40
|
-
readonly texture: import("@angular/core").Signal<CanvasTexture>;
|
|
41
|
-
readonly scale: import("@angular/core").Signal<number>;
|
|
42
|
-
constructor();
|
|
43
|
-
onPointerOver(event: NgtThreeEvent<PointerEvent>): void;
|
|
44
|
-
onPointerOut(event: NgtThreeEvent<PointerEvent>): void;
|
|
45
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgtsGizmoViewportAxisHead, never>;
|
|
46
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NgtsGizmoViewportAxisHead, "ngts-gizmo-viewport-axis-head", never, { "arcStyle": { "alias": "arcStyle"; "required": false; }; "label": { "alias": "label"; "required": false; }; "labelColor": { "alias": "labelColor"; "required": false; }; "axisHeadScale": { "alias": "axisHeadScale"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "font": { "alias": "font"; "required": false; }; "clickEmitter": { "alias": "clickEmitter"; "required": false; }; }, {}, never, never, true, never>;
|
|
47
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { NgtSignalStore, NgtThreeEvent } from 'angular-three';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class NgtsGizmoViewport extends NgtSignalStore<{
|
|
5
|
-
axisColors: [string, string, string];
|
|
6
|
-
axisScale: [number, number, number];
|
|
7
|
-
labels: [string, string, string];
|
|
8
|
-
axisHeadScale: number;
|
|
9
|
-
labelColor: string;
|
|
10
|
-
hideNegativeAxes: boolean;
|
|
11
|
-
hideAxisHeads: boolean;
|
|
12
|
-
disabled: boolean;
|
|
13
|
-
font: string;
|
|
14
|
-
}> {
|
|
15
|
-
#private;
|
|
16
|
-
readonly Math: Math;
|
|
17
|
-
set axisColors(axisColors: [string, string, string]);
|
|
18
|
-
set axisScale(axisScale: [number, number, number]);
|
|
19
|
-
set labels(labels: [string, string, string]);
|
|
20
|
-
set axisHeadScale(axisHeadScale: number);
|
|
21
|
-
set labelColor(labelColor: string);
|
|
22
|
-
set hideNegativeAxes(hideNegativeAxes: boolean);
|
|
23
|
-
set hideAxisHeads(hideAxisHeads: boolean);
|
|
24
|
-
set disabled(disabled: boolean);
|
|
25
|
-
set font(font: string);
|
|
26
|
-
clicked: EventEmitter<NgtThreeEvent<MouseEvent>>;
|
|
27
|
-
readonly viewportAxisColors: import("@angular/core").Signal<[string, string, string]>;
|
|
28
|
-
readonly viewportAxisScale: import("@angular/core").Signal<[number, number, number]>;
|
|
29
|
-
readonly viewportLabels: import("@angular/core").Signal<[string, string, string]>;
|
|
30
|
-
readonly viewportAxisHeadScale: import("@angular/core").Signal<number>;
|
|
31
|
-
readonly viewportLabelColor: import("@angular/core").Signal<string>;
|
|
32
|
-
readonly viewportHideNegativeAxes: import("@angular/core").Signal<boolean>;
|
|
33
|
-
readonly viewportHideAxisHeads: import("@angular/core").Signal<boolean>;
|
|
34
|
-
readonly viewportDisabled: import("@angular/core").Signal<boolean>;
|
|
35
|
-
readonly viewportFont: import("@angular/core").Signal<string>;
|
|
36
|
-
constructor();
|
|
37
|
-
onPointerDown(event: NgtThreeEvent<PointerEvent>): void;
|
|
38
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgtsGizmoViewport, never>;
|
|
39
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NgtsGizmoViewport, "ngts-gizmo-viewport", never, { "axisColors": { "alias": "axisColors"; "required": false; }; "axisScale": { "alias": "axisScale"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; "axisHeadScale": { "alias": "axisHeadScale"; "required": false; }; "labelColor": { "alias": "labelColor"; "required": false; }; "hideNegativeAxes": { "alias": "hideNegativeAxes"; "required": false; }; "hideAxisHeads": { "alias": "hideAxisHeads"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "font": { "alias": "font"; "required": false; }; }, { "clicked": "clicked"; }, never, never, true, never>;
|
|
40
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { NgtSignalStore } from 'angular-three';
|
|
2
|
-
import type { LineMaterialParameters } from 'three-stdlib';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export interface NgtsLineState extends Omit<LineMaterialParameters, 'vertexColors' | 'color'> {
|
|
5
|
-
vertexColors?: Array<THREE.Color | [number, number, number]>;
|
|
6
|
-
lineWidth?: number;
|
|
7
|
-
segments: boolean | number | undefined;
|
|
8
|
-
color: THREE.ColorRepresentation;
|
|
9
|
-
points: Array<THREE.Vector3 | THREE.Vector2 | [number, number, number] | [number, number] | number>;
|
|
10
|
-
}
|
|
11
|
-
export declare abstract class NgtsLineInputs extends NgtSignalStore<NgtsLineState> {
|
|
12
|
-
#private;
|
|
13
|
-
set vertexColors(vertexColors: NgtsLineState['vertexColors']);
|
|
14
|
-
set lineWidth(lineWidth: NgtsLineState['lineWidth']);
|
|
15
|
-
set alphaToCoverage(alphaToCoverage: NgtsLineState['alphaToCoverage']);
|
|
16
|
-
set color(color: NgtsLineState['color']);
|
|
17
|
-
set dashed(dashed: NgtsLineState['dashed']);
|
|
18
|
-
set dashScale(dashScale: NgtsLineState['dashScale']);
|
|
19
|
-
set dashSize(dashSize: NgtsLineState['dashSize']);
|
|
20
|
-
set dashOffset(dashOffset: NgtsLineState['dashOffset']);
|
|
21
|
-
set gapSize(gapSize: NgtsLineState['gapSize']);
|
|
22
|
-
set resolution(resolution: NgtsLineState['resolution']);
|
|
23
|
-
set wireframe(wireframe: NgtsLineState['wireframe']);
|
|
24
|
-
set worldUnits(worldUnits: NgtsLineState['worldUnits']);
|
|
25
|
-
readonly lineParameters: import("@angular/core").Signal<{
|
|
26
|
-
color: import("three").ColorRepresentation;
|
|
27
|
-
vertexColors: (import("three").Color | [number, number, number])[] | undefined;
|
|
28
|
-
resolution: import("three").Vector2 | undefined;
|
|
29
|
-
linewidth: number | undefined;
|
|
30
|
-
alphaToCoverage: boolean | undefined;
|
|
31
|
-
dashed: boolean | undefined;
|
|
32
|
-
dashScale: number | undefined;
|
|
33
|
-
dashSize: number | undefined;
|
|
34
|
-
dashOffset: number | undefined;
|
|
35
|
-
gapSize: number | undefined;
|
|
36
|
-
wireframe: boolean | undefined;
|
|
37
|
-
worldUnits: boolean | undefined;
|
|
38
|
-
}>;
|
|
39
|
-
constructor();
|
|
40
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgtsLineInputs, never>;
|
|
41
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NgtsLineInputs, never, never, { "vertexColors": { "alias": "vertexColors"; "required": false; }; "lineWidth": { "alias": "lineWidth"; "required": false; }; "alphaToCoverage": { "alias": "alphaToCoverage"; "required": false; }; "color": { "alias": "color"; "required": false; }; "dashed": { "alias": "dashed"; "required": false; }; "dashScale": { "alias": "dashScale"; "required": false; }; "dashSize": { "alias": "dashSize"; "required": false; }; "dashOffset": { "alias": "dashOffset"; "required": false; }; "gapSize": { "alias": "gapSize"; "required": false; }; "resolution": { "alias": "resolution"; "required": false; }; "wireframe": { "alias": "wireframe"; "required": false; }; "worldUnits": { "alias": "worldUnits"; "required": false; }; }, {}, never, never, false, never>;
|
|
42
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import * as THREE from 'three';
|
|
2
|
-
import { Line2, LineMaterial, LineSegments2, LineSegmentsGeometry } from 'three-stdlib';
|
|
3
|
-
import { NgtsLineInputs, type NgtsLineState } from './line-input';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
declare global {
|
|
6
|
-
interface HTMLElementTagNameMap {
|
|
7
|
-
'ngts-line': NgtsLineState;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
export declare class NgtsLine extends NgtsLineInputs {
|
|
11
|
-
#private;
|
|
12
|
-
lineRef: import("angular-three").NgtInjectedRef<LineSegments2 | Line2>;
|
|
13
|
-
set points(points: Array<THREE.Vector3 | THREE.Vector2 | [number, number, number] | [number, number] | number>);
|
|
14
|
-
set segments(segments: boolean);
|
|
15
|
-
readonly lineGeometry: import("@angular/core").Signal<LineSegmentsGeometry>;
|
|
16
|
-
readonly lineMaterial: LineMaterial;
|
|
17
|
-
readonly line: import("@angular/core").Signal<LineSegments2>;
|
|
18
|
-
readonly lineMaterialParameters: import("@angular/core").Signal<{
|
|
19
|
-
vertexColors: boolean;
|
|
20
|
-
resolution: number[] | THREE.Vector2 | undefined;
|
|
21
|
-
dashScale: number;
|
|
22
|
-
dashSize: number;
|
|
23
|
-
dashOffset: number;
|
|
24
|
-
gapSize: number;
|
|
25
|
-
wireframe: boolean;
|
|
26
|
-
worldUnits: boolean;
|
|
27
|
-
color: THREE.ColorRepresentation;
|
|
28
|
-
linewidth: number | undefined;
|
|
29
|
-
alphaToCoverage: boolean | undefined;
|
|
30
|
-
dashed: boolean | undefined;
|
|
31
|
-
}>;
|
|
32
|
-
constructor();
|
|
33
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgtsLine, never>;
|
|
34
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NgtsLine, "ngts-line", never, { "lineRef": { "alias": "lineRef"; "required": false; }; "points": { "alias": "points"; "required": true; }; "segments": { "alias": "segments"; "required": false; }; }, {}, never, never, true, never>;
|
|
35
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import * as THREE from 'three';
|
|
2
|
-
import { Line2 } from 'three-stdlib';
|
|
3
|
-
import { NgtsLineInputs } from '../line/line-input';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
declare module '../line/line-input' {
|
|
6
|
-
interface NgtsLineState {
|
|
7
|
-
start: THREE.Vector3 | [number, number, number];
|
|
8
|
-
end: THREE.Vector3 | [number, number, number];
|
|
9
|
-
mid?: THREE.Vector3 | [number, number, number];
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
export declare class NgtsQuadraticBezierLine extends NgtsLineInputs {
|
|
13
|
-
#private;
|
|
14
|
-
lineRef: import("angular-three").NgtInjectedRef<Line2>;
|
|
15
|
-
set start(start: THREE.Vector3 | [number, number, number]);
|
|
16
|
-
set end(end: THREE.Vector3 | [number, number, number]);
|
|
17
|
-
set mid(mid: THREE.Vector3 | [number, number, number]);
|
|
18
|
-
set segments(segments: number);
|
|
19
|
-
readonly points: import("@angular/core").Signal<THREE.Vector3[]>;
|
|
20
|
-
constructor();
|
|
21
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgtsQuadraticBezierLine, never>;
|
|
22
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NgtsQuadraticBezierLine, "ngts-quadratic-bezier-line", never, { "lineRef": { "alias": "lineRef"; "required": false; }; "start": { "alias": "start"; "required": false; }; "end": { "alias": "end"; "required": false; }; "mid": { "alias": "mid"; "required": false; }; "segments": { "alias": "segments"; "required": false; }; }, {}, never, never, true, never>;
|
|
23
|
-
}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
2
|
-
import { injectNgtRef } from 'angular-three';
|
|
3
|
-
import * as THREE from 'three';
|
|
4
|
-
import { CatmullRomCurve3 } from 'three';
|
|
5
|
-
import { NgtsLine } from '../line/line';
|
|
6
|
-
import { NgtsLineInputs } from '../line/line-input';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
class NgtsCatmullRomLine extends NgtsLineInputs {
|
|
9
|
-
set points(points) {
|
|
10
|
-
this.set({ points });
|
|
11
|
-
}
|
|
12
|
-
set closed(closed) {
|
|
13
|
-
this.set({ closed });
|
|
14
|
-
}
|
|
15
|
-
set curveType(curveType) {
|
|
16
|
-
this.set({ curveType });
|
|
17
|
-
}
|
|
18
|
-
set tension(tension) {
|
|
19
|
-
this.set({ tension });
|
|
20
|
-
}
|
|
21
|
-
set segments(segments) {
|
|
22
|
-
this.set({ segments });
|
|
23
|
-
}
|
|
24
|
-
#points;
|
|
25
|
-
#closed;
|
|
26
|
-
#curveType;
|
|
27
|
-
#tension;
|
|
28
|
-
#vertexColors;
|
|
29
|
-
#curve;
|
|
30
|
-
#segments;
|
|
31
|
-
constructor() {
|
|
32
|
-
super();
|
|
33
|
-
this.lineRef = injectNgtRef();
|
|
34
|
-
this.#points = this.select('points');
|
|
35
|
-
this.#closed = this.select('closed');
|
|
36
|
-
this.#curveType = this.select('curveType');
|
|
37
|
-
this.#tension = this.select('tension');
|
|
38
|
-
this.#vertexColors = this.select('vertexColors');
|
|
39
|
-
this.#curve = computed(() => {
|
|
40
|
-
const mappedPoints = this.#points().map((p) => p instanceof THREE.Vector3 ? p : new THREE.Vector3(...p));
|
|
41
|
-
return new CatmullRomCurve3(mappedPoints, this.#closed(), this.#curveType(), this.#tension());
|
|
42
|
-
});
|
|
43
|
-
this.#segments = this.select('segments');
|
|
44
|
-
this.segmentedPoints = computed(() => {
|
|
45
|
-
const curve = this.#curve();
|
|
46
|
-
return curve.getPoints(this.#segments());
|
|
47
|
-
});
|
|
48
|
-
this.interpolatedVertexColors = computed(() => {
|
|
49
|
-
const vertexColors = this.#vertexColors();
|
|
50
|
-
const segments = this.#segments();
|
|
51
|
-
if (!vertexColors || vertexColors.length < 2)
|
|
52
|
-
return undefined;
|
|
53
|
-
if (vertexColors.length === segments + 1)
|
|
54
|
-
return vertexColors;
|
|
55
|
-
const mappedColors = vertexColors.map((color) => color instanceof THREE.Color ? color : new THREE.Color(...color));
|
|
56
|
-
if (this.get('closed'))
|
|
57
|
-
mappedColors.push(mappedColors[0].clone());
|
|
58
|
-
const iColors = [mappedColors[0]];
|
|
59
|
-
const divisions = segments / (mappedColors.length - 1);
|
|
60
|
-
for (let i = 0; i < segments; i++) {
|
|
61
|
-
const alpha = (i % divisions) / divisions;
|
|
62
|
-
const colorIndex = Math.floor(i / divisions);
|
|
63
|
-
iColors.push(mappedColors[colorIndex].clone().lerp(mappedColors[colorIndex + 1], alpha));
|
|
64
|
-
}
|
|
65
|
-
iColors.push(mappedColors[mappedColors.length - 1]);
|
|
66
|
-
return iColors;
|
|
67
|
-
});
|
|
68
|
-
this.set({ closed: false, curveType: 'centripetal', tension: 0.5, segments: 64 });
|
|
69
|
-
}
|
|
70
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsCatmullRomLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgtsCatmullRomLine, isStandalone: true, selector: "ngts-catmull-rom-line", inputs: { lineRef: "lineRef", points: "points", closed: "closed", curveType: "curveType", tension: "tension", segments: "segments" }, usesInheritance: true, ngImport: i0, template: `
|
|
72
|
-
<ngts-line
|
|
73
|
-
[lineRef]="lineRef"
|
|
74
|
-
[points]="segmentedPoints()"
|
|
75
|
-
[vertexColors]="interpolatedVertexColors()"
|
|
76
|
-
[color]="lineParameters().color"
|
|
77
|
-
[resolution]="lineParameters().resolution"
|
|
78
|
-
[lineWidth]="lineParameters().linewidth"
|
|
79
|
-
[alphaToCoverage]="lineParameters().alphaToCoverage"
|
|
80
|
-
[dashed]="lineParameters().dashed"
|
|
81
|
-
[dashScale]="lineParameters().dashScale"
|
|
82
|
-
[dashSize]="lineParameters().dashSize"
|
|
83
|
-
[dashOffset]="lineParameters().dashOffset"
|
|
84
|
-
[gapSize]="lineParameters().gapSize"
|
|
85
|
-
[wireframe]="lineParameters().wireframe"
|
|
86
|
-
[worldUnits]="lineParameters().worldUnits"
|
|
87
|
-
/>
|
|
88
|
-
`, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line", inputs: ["lineRef", "points", "segments"] }] }); }
|
|
89
|
-
}
|
|
90
|
-
export { NgtsCatmullRomLine };
|
|
91
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsCatmullRomLine, decorators: [{
|
|
92
|
-
type: Component,
|
|
93
|
-
args: [{
|
|
94
|
-
selector: 'ngts-catmull-rom-line',
|
|
95
|
-
standalone: true,
|
|
96
|
-
template: `
|
|
97
|
-
<ngts-line
|
|
98
|
-
[lineRef]="lineRef"
|
|
99
|
-
[points]="segmentedPoints()"
|
|
100
|
-
[vertexColors]="interpolatedVertexColors()"
|
|
101
|
-
[color]="lineParameters().color"
|
|
102
|
-
[resolution]="lineParameters().resolution"
|
|
103
|
-
[lineWidth]="lineParameters().linewidth"
|
|
104
|
-
[alphaToCoverage]="lineParameters().alphaToCoverage"
|
|
105
|
-
[dashed]="lineParameters().dashed"
|
|
106
|
-
[dashScale]="lineParameters().dashScale"
|
|
107
|
-
[dashSize]="lineParameters().dashSize"
|
|
108
|
-
[dashOffset]="lineParameters().dashOffset"
|
|
109
|
-
[gapSize]="lineParameters().gapSize"
|
|
110
|
-
[wireframe]="lineParameters().wireframe"
|
|
111
|
-
[worldUnits]="lineParameters().worldUnits"
|
|
112
|
-
/>
|
|
113
|
-
`,
|
|
114
|
-
imports: [NgtsLine],
|
|
115
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
116
|
-
}]
|
|
117
|
-
}], ctorParameters: function () { return []; }, propDecorators: { lineRef: [{
|
|
118
|
-
type: Input
|
|
119
|
-
}], points: [{
|
|
120
|
-
type: Input,
|
|
121
|
-
args: [{ required: true }]
|
|
122
|
-
}], closed: [{
|
|
123
|
-
type: Input
|
|
124
|
-
}], curveType: [{
|
|
125
|
-
type: Input
|
|
126
|
-
}], tension: [{
|
|
127
|
-
type: Input
|
|
128
|
-
}], segments: [{
|
|
129
|
-
type: Input
|
|
130
|
-
}] } });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0bXVsbC1yb20tbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9hYnN0cmFjdGlvbnMvc3JjL2NhdG11bGwtcm9tLWxpbmUvY2F0bXVsbC1yb20tbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBVXBELE1Bd0JhLGtCQUFtQixTQUFRLGNBQWM7SUFHbEQsSUFBK0IsTUFBTSxDQUNqQyxNQUFtRztRQUVuRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxNQUFNLENBQUMsTUFBZTtRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxTQUFTLENBQUMsU0FBbUQ7UUFDdEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQWEsT0FBTyxDQUFDLE9BQWU7UUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQWEsUUFBUSxDQUFDLFFBQWdCO1FBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVB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QUFLO2dCQUlPLE9BQU87c0JBQW5CLEtBQUs7Z0JBSU8sUUFBUTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3ROZ3RSZWYgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IENhdG11bGxSb21DdXJ2ZTMgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBMaW5lMiB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5pbXBvcnQgeyBOZ3RzTGluZSB9IGZyb20gJy4uL2xpbmUvbGluZSc7XG5pbXBvcnQgeyBOZ3RzTGluZUlucHV0cyB9IGZyb20gJy4uL2xpbmUvbGluZS1pbnB1dCc7XG5cbmRlY2xhcmUgbW9kdWxlICcuLi9saW5lL2xpbmUtaW5wdXQnIHtcbiAgICBpbnRlcmZhY2UgTmd0c0xpbmVTdGF0ZSB7XG4gICAgICAgIGNsb3NlZDogYm9vbGVhbjtcbiAgICAgICAgY3VydmVUeXBlOiAnY2VudHJpcGV0YWwnIHwgJ2Nob3JkYWwnIHwgJ2NhdG11bGxyb20nO1xuICAgICAgICB0ZW5zaW9uOiBudW1iZXI7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtY2F0bXVsbC1yb20tbGluZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0cy1saW5lXG4gICAgICAgICAgICBbbGluZVJlZl09XCJsaW5lUmVmXCJcbiAgICAgICAgICAgIFtwb2ludHNdPVwic2VnbWVudGVkUG9pbnRzKClcIlxuICAgICAgICAgICAgW3ZlcnRleENvbG9yc109XCJpbnRlcnBvbGF0ZWRWZXJ0ZXhDb2xvcnMoKVwiXG4gICAgICAgICAgICBbY29sb3JdPVwibGluZVBhcmFtZXRlcnMoKS5jb2xvclwiXG4gICAgICAgICAgICBbcmVzb2x1dGlvbl09XCJsaW5lUGFyYW1ldGVycygpLnJlc29sdXRpb25cIlxuICAgICAgICAgICAgW2xpbmVXaWR0aF09XCJsaW5lUGFyYW1ldGVycygpLmxpbmV3aWR0aFwiXG4gICAgICAgICAgICBbYWxwaGFUb0NvdmVyYWdlXT1cImxpbmVQYXJhbWV0ZXJzKCkuYWxwaGFUb0NvdmVyYWdlXCJcbiAgICAgICAgICAgIFtkYXNoZWRdPVwibGluZVBhcmFtZXRlcnMoKS5kYXNoZWRcIlxuICAgICAgICAgICAgW2Rhc2hTY2FsZV09XCJsaW5lUGFyYW1ldGVycygpLmRhc2hTY2FsZVwiXG4gICAgICAgICAgICBbZGFzaFNpemVdPVwibGluZVBhcmFtZXRlcnMoKS5kYXNoU2l6ZVwiXG4gICAgICAgICAgICBbZGFzaE9mZnNldF09XCJsaW5lUGFyYW1ldGVycygpLmRhc2hPZmZzZXRcIlxuICAgICAgICAgICAgW2dhcFNpemVdPVwibGluZVBhcmFtZXRlcnMoKS5nYXBTaXplXCJcbiAgICAgICAgICAgIFt3aXJlZnJhbWVdPVwibGluZVBhcmFtZXRlcnMoKS53aXJlZnJhbWVcIlxuICAgICAgICAgICAgW3dvcmxkVW5pdHNdPVwibGluZVBhcmFtZXRlcnMoKS53b3JsZFVuaXRzXCJcbiAgICAgICAgLz5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RzTGluZV0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzQ2F0bXVsbFJvbUxpbmUgZXh0ZW5kcyBOZ3RzTGluZUlucHV0cyB7XG4gICAgQElucHV0KCkgbGluZVJlZiA9IGluamVjdE5ndFJlZjxMaW5lMj4oKTtcblxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHNldCBwb2ludHMoXG4gICAgICAgIHBvaW50czogQXJyYXk8VEhSRUUuVmVjdG9yMyB8IFRIUkVFLlZlY3RvcjIgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gfCBbbnVtYmVyLCBudW1iZXJdIHwgbnVtYmVyPlxuICAgICkge1xuICAgICAgICB0aGlzLnNldCh7IHBvaW50cyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgY2xvc2VkKGNsb3NlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGNsb3NlZCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgY3VydmVUeXBlKGN1cnZlVHlwZTogJ2NlbnRyaXBldGFsJyB8ICdjaG9yZGFsJyB8ICdjYXRtdWxscm9tJykge1xuICAgICAgICB0aGlzLnNldCh7IGN1cnZlVHlwZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgdGVuc2lvbih0ZW5zaW9uOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyB0ZW5zaW9uIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBzZWdtZW50cyhzZWdtZW50czogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2VnbWVudHMgfSk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgI3BvaW50cyA9IHRoaXMuc2VsZWN0KCdwb2ludHMnKTtcbiAgICByZWFkb25seSAjY2xvc2VkID0gdGhpcy5zZWxlY3QoJ2Nsb3NlZCcpO1xuICAgIHJlYWRvbmx5ICNjdXJ2ZVR5cGUgPSB0aGlzLnNlbGVjdCgnY3VydmVUeXBlJyk7XG4gICAgcmVhZG9ubHkgI3RlbnNpb24gPSB0aGlzLnNlbGVjdCgndGVuc2lvbicpO1xuICAgIHJlYWRvbmx5ICN2ZXJ0ZXhDb2xvcnMgPSB0aGlzLnNlbGVjdCgndmVydGV4Q29sb3JzJyk7XG5cbiAgICByZWFkb25seSAjY3VydmUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hcHBlZFBvaW50cyA9IHRoaXMuI3BvaW50cygpLm1hcCgocCkgPT5cbiAgICAgICAgICAgIHAgaW5zdGFuY2VvZiBUSFJFRS5WZWN0b3IzID8gcCA6IG5ldyBUSFJFRS5WZWN0b3IzKC4uLihwIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBuZXcgQ2F0bXVsbFJvbUN1cnZlMyhtYXBwZWRQb2ludHMsIHRoaXMuI2Nsb3NlZCgpLCB0aGlzLiNjdXJ2ZVR5cGUoKSwgdGhpcy4jdGVuc2lvbigpKTtcbiAgICB9KTtcblxuICAgIHJlYWRvbmx5ICNzZWdtZW50cyA9IHRoaXMuc2VsZWN0KCdzZWdtZW50cycpO1xuICAgIHJlYWRvbmx5IHNlZ21lbnRlZFBvaW50cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgY3VydmUgPSB0aGlzLiNjdXJ2ZSgpO1xuICAgICAgICByZXR1cm4gY3VydmUuZ2V0UG9pbnRzKHRoaXMuI3NlZ21lbnRzKCkgYXMgbnVtYmVyKTtcbiAgICB9KTtcblxuICAgIHJlYWRvbmx5IGludGVycG9sYXRlZFZlcnRleENvbG9ycyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgdmVydGV4Q29sb3JzID0gdGhpcy4jdmVydGV4Q29sb3JzKCk7XG4gICAgICAgIGNvbnN0IHNlZ21lbnRzID0gdGhpcy4jc2VnbWVudHMoKSBhcyBudW1iZXI7XG5cbiAgICAgICAgaWYgKCF2ZXJ0ZXhDb2xvcnMgfHwgdmVydGV4Q29sb3JzLmxlbmd0aCA8IDIpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh2ZXJ0ZXhDb2xvcnMubGVuZ3RoID09PSBzZWdtZW50cyArIDEpIHJldHVybiB2ZXJ0ZXhDb2xvcnM7XG5cbiAgICAgICAgY29uc3QgbWFwcGVkQ29sb3JzID0gdmVydGV4Q29sb3JzLm1hcCgoY29sb3I6IFRIUkVFLkNvbG9yIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdKSA9PlxuICAgICAgICAgICAgY29sb3IgaW5zdGFuY2VvZiBUSFJFRS5Db2xvciA/IGNvbG9yIDogbmV3IFRIUkVFLkNvbG9yKC4uLmNvbG9yKVxuICAgICAgICApO1xuICAgICAgICBpZiAodGhpcy5nZXQoJ2Nsb3NlZCcpKSBtYXBwZWRDb2xvcnMucHVzaChtYXBwZWRDb2xvcnNbMF0uY2xvbmUoKSk7XG5cbiAgICAgICAgY29uc3QgaUNvbG9yczogVEhSRUUuQ29sb3JbXSA9IFttYXBwZWRDb2xvcnNbMF1dO1xuICAgICAgICBjb25zdCBkaXZpc2lvbnMgPSBzZWdtZW50cyAvIChtYXBwZWRDb2xvcnMubGVuZ3RoIC0gMSk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VnbWVudHM7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgYWxwaGEgPSAoaSAlIGRpdmlzaW9ucykgLyBkaXZpc2lvbnM7XG4gICAgICAgICAgICBjb25zdCBjb2xvckluZGV4ID0gTWF0aC5mbG9vcihpIC8gZGl2aXNpb25zKTtcbiAgICAgICAgICAgIGlDb2xvcnMucHVzaChtYXBwZWRDb2xvcnNbY29sb3JJbmRleF0uY2xvbmUoKS5sZXJwKG1hcHBlZENvbG9yc1tjb2xvckluZGV4ICsgMV0sIGFscGhhKSk7XG4gICAgICAgIH1cbiAgICAgICAgaUNvbG9ycy5wdXNoKG1hcHBlZENvbG9yc1ttYXBwZWRDb2xvcnMubGVuZ3RoIC0gMV0pO1xuICAgICAgICByZXR1cm4gaUNvbG9ycztcbiAgICB9KTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldCh7IGNsb3NlZDogZmFsc2UsIGN1cnZlVHlwZTogJ2NlbnRyaXBldGFsJywgdGVuc2lvbjogMC41LCBzZWdtZW50czogNjQgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { Component, Input, computed } from '@angular/core';
|
|
2
|
-
import { injectNgtRef } from 'angular-three';
|
|
3
|
-
import * as THREE from 'three';
|
|
4
|
-
import { NgtsLine } from '../line/line';
|
|
5
|
-
import { NgtsLineInputs } from '../line/line-input';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
class NgtsCubicBezierLine extends NgtsLineInputs {
|
|
8
|
-
set start(start) {
|
|
9
|
-
this.set({ start });
|
|
10
|
-
}
|
|
11
|
-
set end(end) {
|
|
12
|
-
this.set({ end });
|
|
13
|
-
}
|
|
14
|
-
set midA(midA) {
|
|
15
|
-
this.set({ midA });
|
|
16
|
-
}
|
|
17
|
-
set midB(midB) {
|
|
18
|
-
this.set({ midB });
|
|
19
|
-
}
|
|
20
|
-
set segments(segments) {
|
|
21
|
-
this.set({ segments });
|
|
22
|
-
}
|
|
23
|
-
#start;
|
|
24
|
-
#end;
|
|
25
|
-
#midA;
|
|
26
|
-
#midB;
|
|
27
|
-
#segments;
|
|
28
|
-
constructor() {
|
|
29
|
-
super();
|
|
30
|
-
this.lineRef = injectNgtRef();
|
|
31
|
-
this.#start = this.select('start');
|
|
32
|
-
this.#end = this.select('end');
|
|
33
|
-
this.#midA = this.select('midA');
|
|
34
|
-
this.#midB = this.select('midB');
|
|
35
|
-
this.#segments = this.select('segments');
|
|
36
|
-
this.points = computed(() => {
|
|
37
|
-
const start = this.#start();
|
|
38
|
-
const end = this.#end();
|
|
39
|
-
const midA = this.#midA();
|
|
40
|
-
const midB = this.#midB();
|
|
41
|
-
const segments = this.#segments();
|
|
42
|
-
const startV = start instanceof THREE.Vector3 ? start : new THREE.Vector3(...start);
|
|
43
|
-
const endV = end instanceof THREE.Vector3 ? end : new THREE.Vector3(...end);
|
|
44
|
-
const midAV = midA instanceof THREE.Vector3 ? midA : new THREE.Vector3(...midA);
|
|
45
|
-
const midBV = midB instanceof THREE.Vector3 ? midB : new THREE.Vector3(...midB);
|
|
46
|
-
return new THREE.CubicBezierCurve3(startV, midAV, midBV, endV).getPoints(segments);
|
|
47
|
-
});
|
|
48
|
-
this.set({ segments: 10 });
|
|
49
|
-
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsCubicBezierLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgtsCubicBezierLine, isStandalone: true, selector: "ngts-cubic-bezier-line", inputs: { lineRef: "lineRef", start: "start", end: "end", midA: "midA", midB: "midB", segments: "segments" }, usesInheritance: true, ngImport: i0, template: `
|
|
52
|
-
<ngts-line
|
|
53
|
-
[lineRef]="lineRef"
|
|
54
|
-
[points]="points()"
|
|
55
|
-
[color]="lineParameters().color"
|
|
56
|
-
[vertexColors]="lineParameters().vertexColors"
|
|
57
|
-
[resolution]="lineParameters().resolution"
|
|
58
|
-
[lineWidth]="lineParameters().linewidth"
|
|
59
|
-
[alphaToCoverage]="lineParameters().alphaToCoverage"
|
|
60
|
-
[dashed]="lineParameters().dashed"
|
|
61
|
-
[dashScale]="lineParameters().dashScale"
|
|
62
|
-
[dashSize]="lineParameters().dashSize"
|
|
63
|
-
[dashOffset]="lineParameters().dashOffset"
|
|
64
|
-
[gapSize]="lineParameters().gapSize"
|
|
65
|
-
[wireframe]="lineParameters().wireframe"
|
|
66
|
-
[worldUnits]="lineParameters().worldUnits"
|
|
67
|
-
/>
|
|
68
|
-
`, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line", inputs: ["lineRef", "points", "segments"] }] }); }
|
|
69
|
-
}
|
|
70
|
-
export { NgtsCubicBezierLine };
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsCubicBezierLine, decorators: [{
|
|
72
|
-
type: Component,
|
|
73
|
-
args: [{
|
|
74
|
-
selector: 'ngts-cubic-bezier-line',
|
|
75
|
-
standalone: true,
|
|
76
|
-
template: `
|
|
77
|
-
<ngts-line
|
|
78
|
-
[lineRef]="lineRef"
|
|
79
|
-
[points]="points()"
|
|
80
|
-
[color]="lineParameters().color"
|
|
81
|
-
[vertexColors]="lineParameters().vertexColors"
|
|
82
|
-
[resolution]="lineParameters().resolution"
|
|
83
|
-
[lineWidth]="lineParameters().linewidth"
|
|
84
|
-
[alphaToCoverage]="lineParameters().alphaToCoverage"
|
|
85
|
-
[dashed]="lineParameters().dashed"
|
|
86
|
-
[dashScale]="lineParameters().dashScale"
|
|
87
|
-
[dashSize]="lineParameters().dashSize"
|
|
88
|
-
[dashOffset]="lineParameters().dashOffset"
|
|
89
|
-
[gapSize]="lineParameters().gapSize"
|
|
90
|
-
[wireframe]="lineParameters().wireframe"
|
|
91
|
-
[worldUnits]="lineParameters().worldUnits"
|
|
92
|
-
/>
|
|
93
|
-
`,
|
|
94
|
-
imports: [NgtsLine],
|
|
95
|
-
}]
|
|
96
|
-
}], ctorParameters: function () { return []; }, propDecorators: { lineRef: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}], start: [{
|
|
99
|
-
type: Input,
|
|
100
|
-
args: [{ required: true }]
|
|
101
|
-
}], end: [{
|
|
102
|
-
type: Input,
|
|
103
|
-
args: [{ required: true }]
|
|
104
|
-
}], midA: [{
|
|
105
|
-
type: Input,
|
|
106
|
-
args: [{ required: true }]
|
|
107
|
-
}], midB: [{
|
|
108
|
-
type: Input,
|
|
109
|
-
args: [{ required: true }]
|
|
110
|
-
}], segments: [{
|
|
111
|
-
type: Input
|
|
112
|
-
}] } });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViaWMtYmV6aWVyLWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvYWJzdHJhY3Rpb25zL3NyYy9jdWJpYy1iZXppZXItbGluZS9jdWJpYy1iZXppZXItbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFXcEQsTUF1QmEsbUJBQW9CLFNBQVEsY0FBYztJQUduRCxJQUErQixLQUFLLENBQUMsS0FBK0M7UUFDaEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQStCLEdBQUcsQ0FBQyxHQUE2QztRQUM1RSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBK0IsSUFBSSxDQUFDLElBQThDO1FBQzlFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUErQixJQUFJLENBQUMsSUFBOEM7UUFDOUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQWEsUUFBUSxDQUFDLFFBQWdCO1FBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFUSxNQUFNLENBQXdCO0lBQzlCLElBQUksQ0FBc0I7SUFDMUIsS0FBSyxDQUF1QjtJQUM1QixLQUFLLENBQXVCO0lBQzVCLFNBQVMsQ0FBMkI7SUFnQjdDO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUEzQ0gsWUFBTyxHQUFHLFlBQVksRUFBUyxDQUFDO1FBc0JoQyxXQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QixTQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixjQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVwQyxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBWSxDQUFDO1lBRTVDLE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQ3BGLE1BQU0sSUFBSSxHQUFHLEdBQUcsWUFBWSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQzVFLE1BQU0sS0FBSyxHQUFHLElBQUksWUFBWSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ2hGLE1BQU0sS0FBSyxHQUFHLElBQUksWUFBWSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ2hGLE9BQU8sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZGLENBQUMsQ0FBQyxDQUFDO1FBSUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7OEdBOUNRLG1CQUFtQjtrR0FBbkIsbUJBQW1CLHVOQXBCbEI7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUJULDREQUNTLFFBQVE7O1NBRVQsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBdkIvQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUJUO29CQUNELE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztpQkFDdEI7MEVBRVksT0FBTztzQkFBZixLQUFLO2dCQUV5QixLQUFLO3NCQUFuQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJTSxHQUFHO3NCQUFqQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJTSxJQUFJO3NCQUFsQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJTSxJQUFJO3NCQUFsQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJWixRQUFRO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdE5ndFJlZiB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHR5cGUgeyBMaW5lMiB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5pbXBvcnQgeyBOZ3RzTGluZSB9IGZyb20gJy4uL2xpbmUvbGluZSc7XG5pbXBvcnQgeyBOZ3RzTGluZUlucHV0cyB9IGZyb20gJy4uL2xpbmUvbGluZS1pbnB1dCc7XG5cbmRlY2xhcmUgbW9kdWxlICcuLi9saW5lL2xpbmUtaW5wdXQnIHtcbiAgICBpbnRlcmZhY2UgTmd0c0xpbmVTdGF0ZSB7XG4gICAgICAgIHN0YXJ0OiBUSFJFRS5WZWN0b3IzIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuICAgICAgICBlbmQ6IFRIUkVFLlZlY3RvcjMgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gICAgICAgIG1pZEE6IFRIUkVFLlZlY3RvcjMgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gICAgICAgIG1pZEI6IFRIUkVFLlZlY3RvcjMgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtY3ViaWMtYmV6aWVyLWxpbmUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndHMtbGluZVxuICAgICAgICAgICAgW2xpbmVSZWZdPVwibGluZVJlZlwiXG4gICAgICAgICAgICBbcG9pbnRzXT1cInBvaW50cygpXCJcbiAgICAgICAgICAgIFtjb2xvcl09XCJsaW5lUGFyYW1ldGVycygpLmNvbG9yXCJcbiAgICAgICAgICAgIFt2ZXJ0ZXhDb2xvcnNdPVwibGluZVBhcmFtZXRlcnMoKS52ZXJ0ZXhDb2xvcnNcIlxuICAgICAgICAgICAgW3Jlc29sdXRpb25dPVwibGluZVBhcmFtZXRlcnMoKS5yZXNvbHV0aW9uXCJcbiAgICAgICAgICAgIFtsaW5lV2lkdGhdPVwibGluZVBhcmFtZXRlcnMoKS5saW5ld2lkdGhcIlxuICAgICAgICAgICAgW2FscGhhVG9Db3ZlcmFnZV09XCJsaW5lUGFyYW1ldGVycygpLmFscGhhVG9Db3ZlcmFnZVwiXG4gICAgICAgICAgICBbZGFzaGVkXT1cImxpbmVQYXJhbWV0ZXJzKCkuZGFzaGVkXCJcbiAgICAgICAgICAgIFtkYXNoU2NhbGVdPVwibGluZVBhcmFtZXRlcnMoKS5kYXNoU2NhbGVcIlxuICAgICAgICAgICAgW2Rhc2hTaXplXT1cImxpbmVQYXJhbWV0ZXJzKCkuZGFzaFNpemVcIlxuICAgICAgICAgICAgW2Rhc2hPZmZzZXRdPVwibGluZVBhcmFtZXRlcnMoKS5kYXNoT2Zmc2V0XCJcbiAgICAgICAgICAgIFtnYXBTaXplXT1cImxpbmVQYXJhbWV0ZXJzKCkuZ2FwU2l6ZVwiXG4gICAgICAgICAgICBbd2lyZWZyYW1lXT1cImxpbmVQYXJhbWV0ZXJzKCkud2lyZWZyYW1lXCJcbiAgICAgICAgICAgIFt3b3JsZFVuaXRzXT1cImxpbmVQYXJhbWV0ZXJzKCkud29ybGRVbml0c1wiXG4gICAgICAgIC8+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0c0xpbmVdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzQ3ViaWNCZXppZXJMaW5lIGV4dGVuZHMgTmd0c0xpbmVJbnB1dHMge1xuICAgIEBJbnB1dCgpIGxpbmVSZWYgPSBpbmplY3ROZ3RSZWY8TGluZTI+KCk7XG5cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzZXQgc3RhcnQoc3RhcnQ6IFRIUkVFLlZlY3RvcjMgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzdGFydCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzZXQgZW5kKGVuZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkge1xuICAgICAgICB0aGlzLnNldCh7IGVuZCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzZXQgbWlkQShtaWRBOiBUSFJFRS5WZWN0b3IzIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbWlkQSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzZXQgbWlkQihtaWRCOiBUSFJFRS5WZWN0b3IzIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbWlkQiB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2VnbWVudHMoc2VnbWVudHM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHNlZ21lbnRzIH0pO1xuICAgIH1cblxuICAgIHJlYWRvbmx5ICNzdGFydCA9IHRoaXMuc2VsZWN0KCdzdGFydCcpO1xuICAgIHJlYWRvbmx5ICNlbmQgPSB0aGlzLnNlbGVjdCgnZW5kJyk7XG4gICAgcmVhZG9ubHkgI21pZEEgPSB0aGlzLnNlbGVjdCgnbWlkQScpO1xuICAgIHJlYWRvbmx5ICNtaWRCID0gdGhpcy5zZWxlY3QoJ21pZEInKTtcbiAgICByZWFkb25seSAjc2VnbWVudHMgPSB0aGlzLnNlbGVjdCgnc2VnbWVudHMnKTtcblxuICAgIHJlYWRvbmx5IHBvaW50cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLiNzdGFydCgpO1xuICAgICAgICBjb25zdCBlbmQgPSB0aGlzLiNlbmQoKTtcbiAgICAgICAgY29uc3QgbWlkQSA9IHRoaXMuI21pZEEoKTtcbiAgICAgICAgY29uc3QgbWlkQiA9IHRoaXMuI21pZEIoKTtcbiAgICAgICAgY29uc3Qgc2VnbWVudHMgPSB0aGlzLiNzZWdtZW50cygpIGFzIG51bWJlcjtcblxuICAgICAgICBjb25zdCBzdGFydFYgPSBzdGFydCBpbnN0YW5jZW9mIFRIUkVFLlZlY3RvcjMgPyBzdGFydCA6IG5ldyBUSFJFRS5WZWN0b3IzKC4uLnN0YXJ0KTtcbiAgICAgICAgY29uc3QgZW5kViA9IGVuZCBpbnN0YW5jZW9mIFRIUkVFLlZlY3RvcjMgPyBlbmQgOiBuZXcgVEhSRUUuVmVjdG9yMyguLi5lbmQpO1xuICAgICAgICBjb25zdCBtaWRBViA9IG1pZEEgaW5zdGFuY2VvZiBUSFJFRS5WZWN0b3IzID8gbWlkQSA6IG5ldyBUSFJFRS5WZWN0b3IzKC4uLm1pZEEpO1xuICAgICAgICBjb25zdCBtaWRCViA9IG1pZEIgaW5zdGFuY2VvZiBUSFJFRS5WZWN0b3IzID8gbWlkQiA6IG5ldyBUSFJFRS5WZWN0b3IzKC4uLm1pZEIpO1xuICAgICAgICByZXR1cm4gbmV3IFRIUkVFLkN1YmljQmV6aWVyQ3VydmUzKHN0YXJ0ViwgbWlkQVYsIG1pZEJWLCBlbmRWKS5nZXRQb2ludHMoc2VnbWVudHMpO1xuICAgIH0pO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgc2VnbWVudHM6IDEwIH0pO1xuICAgIH1cbn1cbiJdfQ==
|