@lluc_llull/ui-lib 0.12.0 → 0.12.2
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/esm2022/lib/components/core/footers/index.mjs +5 -0
- package/esm2022/lib/components/core/footers/legal-footer/index.mjs +3 -0
- package/esm2022/lib/components/core/{legal-footer → footers/legal-footer}/legal-footer.component.mjs +2 -2
- package/esm2022/lib/components/core/footers/legal-footer/legal-footer.interface.mjs +2 -0
- package/esm2022/lib/components/core/footers/links-footer/index.mjs +3 -0
- package/esm2022/lib/components/core/{links-footer → footers/links-footer}/links-footer.component.mjs +3 -3
- package/esm2022/lib/components/core/footers/links-footer/links-footer.interface.mjs +2 -0
- package/esm2022/lib/components/core/footers/social-footer/index.mjs +3 -0
- package/esm2022/lib/components/core/{social-footer → footers/social-footer}/social-footer.component.mjs +3 -3
- package/esm2022/lib/components/core/footers/social-footer/social-footer.interface.mjs +2 -0
- package/esm2022/lib/components/core/footers/visual-footer/index.mjs +3 -0
- package/esm2022/lib/components/core/footers/visual-footer/visual-footer.component.mjs +29 -0
- package/esm2022/lib/components/core/footers/visual-footer/visual-footer.interface.mjs +2 -0
- package/esm2022/lib/components/core/headers/header-clear/header-clear.component.mjs +59 -0
- package/esm2022/lib/components/core/headers/header-clear/header-clear.interface.mjs +2 -0
- package/esm2022/lib/components/core/headers/header-clear/index.mjs +3 -0
- package/esm2022/lib/components/core/{header-mobile → headers/header-mobile}/header-mobile.component.mjs +4 -5
- package/esm2022/lib/components/core/headers/header-mobile/header-mobile.interface.mjs +2 -0
- package/esm2022/lib/components/core/headers/header-mobile/index.mjs +3 -0
- package/esm2022/lib/components/core/headers/index.mjs +3 -0
- package/esm2022/lib/components/core/index.mjs +5 -11
- package/esm2022/lib/components/core/modals/index.mjs +3 -0
- package/esm2022/lib/components/core/modals/lang-modal/index.mjs +3 -0
- package/esm2022/lib/components/core/{lang-modal → modals/lang-modal}/lang-modal.component.mjs +2 -2
- package/esm2022/lib/components/core/modals/lang-modal/lang-modal.interface.mjs +2 -0
- package/esm2022/lib/components/core/modals/nav-modal/index.mjs +3 -0
- package/esm2022/lib/components/core/{nav-modal → modals/nav-modal}/nav-modal.component.mjs +2 -2
- package/esm2022/lib/components/core/modals/nav-modal/nav-modal.interface.mjs +2 -0
- package/esm2022/lib/components/core/{category-progress → sections/category-progress}/category-progress.component.mjs +1 -1
- package/esm2022/lib/components/core/sections/category-progress/category-progress.interface.mjs +2 -0
- package/esm2022/lib/components/core/sections/category-progress/index.mjs +3 -0
- package/esm2022/lib/components/core/{hero-section → sections/hero-section}/hero-section.component.mjs +2 -2
- package/esm2022/lib/components/core/sections/hero-section/hero-section.interface.mjs +2 -0
- package/esm2022/lib/components/core/sections/hero-section/hero-section.stories.mjs +25 -0
- package/esm2022/lib/components/core/sections/hero-section/index.mjs +4 -0
- package/esm2022/lib/components/core/sections/index.mjs +4 -0
- package/esm2022/lib/components/core/sections/section-intro/index.mjs +3 -0
- package/esm2022/lib/components/core/{section-intro → sections/section-intro}/section-intro.component.mjs +2 -2
- package/esm2022/lib/components/core/sections/section-intro/section-intro.interface.mjs +2 -0
- package/esm2022/lib/components/effects/dynamic-background/dynamic-background.component.mjs +33 -31
- package/esm2022/lib/components/effects/dynamic-background/effects/dynamic-effect.interface.mjs +2 -0
- package/esm2022/lib/components/effects/dynamic-background/effects/effect-registry.mjs +7 -0
- package/esm2022/lib/components/effects/dynamic-background/effects/sphere-deform/sphere-deform.effect.mjs +37 -0
- package/fesm2022/lluc_llull-ui-lib.mjs +245 -177
- package/fesm2022/lluc_llull-ui-lib.mjs.map +1 -1
- package/lib/components/core/footers/index.d.ts +4 -0
- package/lib/components/core/{legal-footer → footers/legal-footer}/legal-footer.component.d.ts +1 -1
- package/lib/components/core/{legal-footer → footers/legal-footer}/legal-footer.interface.d.ts +1 -1
- package/lib/components/core/{links-footer → footers/links-footer}/links-footer.component.d.ts +1 -1
- package/lib/components/core/{links-footer → footers/links-footer}/links-footer.interface.d.ts +1 -1
- package/lib/components/core/{social-footer → footers/social-footer}/social-footer.component.d.ts +1 -1
- package/lib/components/core/{social-footer → footers/social-footer}/social-footer.interface.d.ts +1 -1
- package/lib/components/core/footers/visual-footer/index.d.ts +2 -0
- package/lib/components/core/footers/visual-footer/visual-footer.component.d.ts +14 -0
- package/lib/components/core/footers/visual-footer/visual-footer.interface.d.ts +11 -0
- package/lib/components/core/{header-clear → headers/header-clear}/header-clear.component.d.ts +2 -4
- package/lib/components/core/headers/header-clear/header-clear.interface.d.ts +9 -0
- package/lib/components/core/{header-mobile → headers/header-mobile}/header-mobile.component.d.ts +4 -4
- package/lib/components/core/headers/header-mobile/header-mobile.interface.d.ts +9 -0
- package/lib/components/core/headers/index.d.ts +2 -0
- package/lib/components/core/index.d.ts +4 -10
- package/lib/components/core/modals/index.d.ts +2 -0
- package/lib/components/core/{lang-modal → modals/lang-modal}/lang-modal.component.d.ts +1 -1
- package/lib/components/core/{nav-modal → modals/nav-modal}/nav-modal.component.d.ts +1 -1
- package/lib/components/core/{nav-modal → modals/nav-modal}/nav-modal.interface.d.ts +1 -1
- package/lib/components/core/{hero-section → sections/hero-section}/hero-section.component.d.ts +1 -1
- package/lib/components/core/{hero-section → sections/hero-section}/hero-section.interface.d.ts +1 -1
- package/lib/components/core/sections/index.d.ts +3 -0
- package/lib/components/core/{section-intro → sections/section-intro}/section-intro.component.d.ts +1 -1
- package/lib/components/effects/dynamic-background/dynamic-background.component.d.ts +9 -3
- package/lib/components/effects/dynamic-background/effects/dynamic-effect.interface.d.ts +6 -0
- package/lib/components/effects/dynamic-background/effects/effect-registry.d.ts +3 -0
- package/lib/components/effects/dynamic-background/effects/sphere-deform/sphere-deform.effect.d.ts +13 -0
- package/package.json +1 -1
- package/esm2022/lib/components/core/category-progress/category-progress.interface.mjs +0 -2
- package/esm2022/lib/components/core/category-progress/index.mjs +0 -3
- package/esm2022/lib/components/core/header-clear/header-clear.component.mjs +0 -60
- package/esm2022/lib/components/core/header-clear/header-clear.interface.mjs +0 -2
- package/esm2022/lib/components/core/header-clear/index.mjs +0 -3
- package/esm2022/lib/components/core/header-mobile/header-mobile.interface.mjs +0 -2
- package/esm2022/lib/components/core/header-mobile/index.mjs +0 -3
- package/esm2022/lib/components/core/hero-section/hero-section.interface.mjs +0 -2
- package/esm2022/lib/components/core/hero-section/hero-section.stories.mjs +0 -25
- package/esm2022/lib/components/core/hero-section/index.mjs +0 -4
- package/esm2022/lib/components/core/lang-modal/index.mjs +0 -3
- package/esm2022/lib/components/core/lang-modal/lang-modal.interface.mjs +0 -2
- package/esm2022/lib/components/core/legal-footer/index.mjs +0 -3
- package/esm2022/lib/components/core/legal-footer/legal-footer.interface.mjs +0 -2
- package/esm2022/lib/components/core/links-footer/index.mjs +0 -3
- package/esm2022/lib/components/core/links-footer/links-footer.interface.mjs +0 -2
- package/esm2022/lib/components/core/nav-modal/index.mjs +0 -3
- package/esm2022/lib/components/core/nav-modal/nav-modal.interface.mjs +0 -2
- package/esm2022/lib/components/core/section-intro/index.mjs +0 -3
- package/esm2022/lib/components/core/section-intro/section-intro.interface.mjs +0 -2
- package/esm2022/lib/components/core/social-footer/index.mjs +0 -3
- package/esm2022/lib/components/core/social-footer/social-footer.interface.mjs +0 -2
- package/lib/components/core/header-clear/header-clear.interface.d.ts +0 -11
- package/lib/components/core/header-mobile/header-mobile.interface.d.ts +0 -11
- /package/lib/components/core/{legal-footer → footers/legal-footer}/index.d.ts +0 -0
- /package/lib/components/core/{links-footer → footers/links-footer}/index.d.ts +0 -0
- /package/lib/components/core/{social-footer → footers/social-footer}/index.d.ts +0 -0
- /package/lib/components/core/{header-clear → headers/header-clear}/index.d.ts +0 -0
- /package/lib/components/core/{header-mobile → headers/header-mobile}/index.d.ts +0 -0
- /package/lib/components/core/{lang-modal → modals/lang-modal}/index.d.ts +0 -0
- /package/lib/components/core/{lang-modal → modals/lang-modal}/lang-modal.interface.d.ts +0 -0
- /package/lib/components/core/{nav-modal → modals/nav-modal}/index.d.ts +0 -0
- /package/lib/components/core/{category-progress → sections/category-progress}/category-progress.component.d.ts +0 -0
- /package/lib/components/core/{category-progress → sections/category-progress}/category-progress.interface.d.ts +0 -0
- /package/lib/components/core/{category-progress → sections/category-progress}/index.d.ts +0 -0
- /package/lib/components/core/{hero-section → sections/hero-section}/hero-section.stories.d.ts +0 -0
- /package/lib/components/core/{hero-section → sections/hero-section}/index.d.ts +0 -0
- /package/lib/components/core/{section-intro → sections/section-intro}/index.d.ts +0 -0
- /package/lib/components/core/{section-intro → sections/section-intro}/section-intro.interface.d.ts +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './section-intro.component';
|
|
2
|
+
export * from './section-intro.interface';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvc2VjdGlvbnMvc2VjdGlvbi1pbnRyby9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NlY3Rpb24taW50cm8uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VjdGlvbi1pbnRyby5pbnRlcmZhY2UnOyJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
3
|
-
import { LinkTypeDirective } from '
|
|
3
|
+
import { LinkTypeDirective } from '../../../../directives/link-type.directive';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class SectionIntroComponent {
|
|
6
6
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionIntroComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
20
20
|
}], button: [{
|
|
21
21
|
type: Input
|
|
22
22
|
}] } });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1pbnRyby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvc2VjdGlvbnMvc2VjdGlvbi1pbnRyby9zZWN0aW9uLWludHJvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9zZWN0aW9ucy9zZWN0aW9uLWludHJvL3NlY3Rpb24taW50cm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQVUvRSxNQUFNLE9BQU8scUJBQXFCOytHQUFyQixxQkFBcUI7bUdBQXJCLHFCQUFxQixxTENibEMsK2NBdUJBLHFiRGZZLFlBQVksK0JBQUUsaUJBQWlCOzs0RkFLOUIscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLENBQUMsbUJBR3pCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVWlMaWJCdXR0b25JIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBMaW5rVHlwZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zZWN0aW9uLWludHJvJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTGlua1R5cGVEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VjdGlvbi1pbnRyby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zZWN0aW9uLWludHJvLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNlY3Rpb25JbnRyb0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHByZXRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgc3VidGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRleHQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJ1dHRvbj86IFVpTGliQnV0dG9uSTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJzZWN0aW9uLWludHJvXCI+XG4gIEBpZihwcmV0aXRsZSl7XG4gICAgPGgyIGNsYXNzPVwicHJldGl0bGVcIj57e3ByZXRpdGxlfX08L2gyPlxuICB9XG4gIEBpZih0aXRsZSl7XG4gICAgPGgxIGNsYXNzPVwidGl0bGVcIj57e3RpdGxlfX08L2gxPlxuICB9XG4gIEBpZihzdWJ0aXRsZSl7XG4gICAgPGgyIGNsYXNzPVwic3VidGl0bGVcIj57e3N1YnRpdGxlfX08L2gyPlxuICB9XG4gIEBpZih0ZXh0KXtcbiAgICA8cCBjbGFzcz1cInRleHRcIj57e3RleHR9fTwvcD5cbiAgfVxuICBAaWYoYnV0dG9uKXtcbiAgICA8YVxuICAgICAgW2hyZWZdPVwiYnV0dG9uLnVybFwiXG4gICAgICBbbGlua1R5cGVdPVwiYnV0dG9uLmxpbmtUeXBlXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICA+XG4gICAgICB7e2J1dHRvbi5sYWJlbH19ICBcbiAgICA8L2E+XG4gIH1cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1pbnRyby5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvc2VjdGlvbnMvc2VjdGlvbi1pbnRyby9zZWN0aW9uLWludHJvLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTZWN0aW9uSW50cm9JIHtcbiAgXG59Il19
|
|
@@ -1,28 +1,19 @@
|
|
|
1
1
|
import { CommonModule, isPlatformBrowser } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, inject, PLATFORM_ID, ViewChild, } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, inject, Input, PLATFORM_ID, ViewChild, } from '@angular/core';
|
|
3
3
|
import * as THREE from 'three';
|
|
4
|
+
import { EFFECT_REGISTRY } from './effects/effect-registry';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export class DynamicBackgroundComponent {
|
|
6
7
|
constructor() {
|
|
8
|
+
this.effect = 'sphere-deform';
|
|
9
|
+
this.rotationSpeed = 0.01;
|
|
10
|
+
this.size = 2;
|
|
11
|
+
this.backgroundColor = '#000000';
|
|
7
12
|
this.platformId = inject(PLATFORM_ID);
|
|
8
13
|
this.isBrowser = isPlatformBrowser(this.platformId);
|
|
9
|
-
this.time = 0;
|
|
10
14
|
this.animate = () => {
|
|
11
15
|
this.animationId = requestAnimationFrame(this.animate);
|
|
12
|
-
this.
|
|
13
|
-
// deformamos vértices
|
|
14
|
-
const positionAttr = this.sphere.geometry.attributes['position'];
|
|
15
|
-
const vertex = new THREE.Vector3();
|
|
16
|
-
for (let i = 0; i < positionAttr.count; i++) {
|
|
17
|
-
vertex.fromBufferAttribute(positionAttr, i);
|
|
18
|
-
// Distorsión progresiva
|
|
19
|
-
const offset = Math.sin(vertex.x * 3 + this.time) * 0.2 +
|
|
20
|
-
Math.cos(vertex.y * 5 + this.time * 0.7) * 0.2;
|
|
21
|
-
vertex.normalize().multiplyScalar(2 + offset);
|
|
22
|
-
positionAttr.setXYZ(i, vertex.x, vertex.y, vertex.z);
|
|
23
|
-
}
|
|
24
|
-
positionAttr.needsUpdate = true;
|
|
25
|
-
this.sphere.geometry.computeVertexNormals();
|
|
16
|
+
this.currentEffect.animate();
|
|
26
17
|
this.renderer.render(this.scene, this.camera);
|
|
27
18
|
};
|
|
28
19
|
this.onResize = () => {
|
|
@@ -36,16 +27,16 @@ export class DynamicBackgroundComponent {
|
|
|
36
27
|
ngOnInit() {
|
|
37
28
|
if (this.isBrowser) {
|
|
38
29
|
this.initScene();
|
|
30
|
+
this.loadEffect();
|
|
39
31
|
this.animate();
|
|
40
32
|
window.addEventListener('resize', this.onResize);
|
|
41
33
|
}
|
|
42
34
|
}
|
|
43
35
|
ngOnDestroy() {
|
|
44
|
-
if (
|
|
36
|
+
if (this.isBrowser) {
|
|
45
37
|
cancelAnimationFrame(this.animationId);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
38
|
+
this.renderer?.dispose();
|
|
39
|
+
this.currentEffect?.dispose();
|
|
49
40
|
window.removeEventListener('resize', this.onResize);
|
|
50
41
|
}
|
|
51
42
|
}
|
|
@@ -53,33 +44,44 @@ export class DynamicBackgroundComponent {
|
|
|
53
44
|
const width = window.innerWidth;
|
|
54
45
|
const height = window.innerHeight;
|
|
55
46
|
this.scene = new THREE.Scene();
|
|
47
|
+
this.scene.background = new THREE.Color(this.backgroundColor);
|
|
56
48
|
this.camera = new THREE.PerspectiveCamera(75, width / height, 0.1, 1000);
|
|
57
49
|
this.camera.position.z = 5;
|
|
58
50
|
this.renderer = new THREE.WebGLRenderer({
|
|
59
51
|
canvas: this.canvasRef.nativeElement,
|
|
60
|
-
alpha: true,
|
|
61
52
|
antialias: true,
|
|
62
53
|
});
|
|
63
54
|
this.renderer.setSize(width, height);
|
|
64
|
-
// Luz para dar volumen
|
|
65
55
|
const light = new THREE.DirectionalLight(0xffffff, 1);
|
|
66
56
|
light.position.set(5, 5, 5).normalize();
|
|
67
57
|
this.scene.add(light);
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
58
|
+
}
|
|
59
|
+
loadEffect() {
|
|
60
|
+
const EffectClass = EFFECT_REGISTRY[this.effect];
|
|
61
|
+
if (!EffectClass) {
|
|
62
|
+
throw new Error(`Efecto "${this.effect}" no está registrado en EFFECT_REGISTRY`);
|
|
63
|
+
}
|
|
64
|
+
this.currentEffect = new EffectClass(this.size, this.rotationSpeed, this.elementColor);
|
|
65
|
+
this.currentEffect.init(this.scene, {});
|
|
74
66
|
}
|
|
75
67
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DynamicBackgroundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
76
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DynamicBackgroundComponent, isStandalone: true, selector: "lib-dynamic-background", viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["bgCanvas"], descendants: true, static: true }], ngImport: i0, template: "<canvas #bgCanvas class=\"dynamic-bg\"></canvas
|
|
68
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DynamicBackgroundComponent, isStandalone: true, selector: "lib-dynamic-background", inputs: { effect: "effect", rotationSpeed: "rotationSpeed", size: "size", backgroundColor: "backgroundColor", elementColor: "elementColor" }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["bgCanvas"], descendants: true, static: true }], ngImport: i0, template: "<canvas #bgCanvas class=\"dynamic-bg-canvas\"></canvas>\n", styles: [".dynamic-bg-canvas{position:absolute;top:0;left:0;width:100%;height:100%;display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
77
69
|
}
|
|
78
70
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DynamicBackgroundComponent, decorators: [{
|
|
79
71
|
type: Component,
|
|
80
|
-
args: [{ selector: 'lib-dynamic-background', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<canvas #bgCanvas class=\"dynamic-bg\"></canvas
|
|
72
|
+
args: [{ selector: 'lib-dynamic-background', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<canvas #bgCanvas class=\"dynamic-bg-canvas\"></canvas>\n", styles: [".dynamic-bg-canvas{position:absolute;top:0;left:0;width:100%;height:100%;display:block}\n"] }]
|
|
81
73
|
}], propDecorators: { canvasRef: [{
|
|
82
74
|
type: ViewChild,
|
|
83
75
|
args: ['bgCanvas', { static: true }]
|
|
76
|
+
}], effect: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], rotationSpeed: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], size: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], backgroundColor: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], elementColor: [{
|
|
85
|
+
type: Input
|
|
84
86
|
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYWNrZ3JvdW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZWZmZWN0cy9keW5hbWljLWJhY2tncm91bmQvZHluYW1pYy1iYWNrZ3JvdW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZWZmZWN0cy9keW5hbWljLWJhY2tncm91bmQvZHluYW1pYy1iYWNrZ3JvdW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUdMLFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFL0IsT0FBTyxFQUFFLGVBQWUsRUFBYSxNQUFNLDJCQUEyQixDQUFDOztBQVV2RSxNQUFNLE9BQU8sMEJBQTBCO0lBUnZDO1FBV1csV0FBTSxHQUFjLGVBQWUsQ0FBQztRQUNwQyxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1Qsb0JBQWUsR0FBRyxTQUFTLENBQUM7UUFHcEIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqQyxjQUFTLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBeUR4RCxZQUFPLEdBQUcsR0FBUyxFQUFFO1lBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FB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QU0sSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLENBQUMsTUFBTSx5Q0FBeUMsQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDOytHQWpFVSwwQkFBMEI7bUdBQTFCLDBCQUEwQixxVkN4QnZDLDJEQUNBLGtKRGtCWSxZQUFZOzs0RkFLWCwwQkFBMEI7a0JBUnRDLFNBQVM7K0JBQ0Usd0JBQXdCLGNBQ3RCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNOzhCQUdOLFNBQVM7c0JBQWpELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFOUIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFBMQVRGT1JNX0lELFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRHluYW1pY0VmZmVjdCB9IGZyb20gJy4vZWZmZWN0cy9keW5hbWljLWVmZmVjdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRUZGRUNUX1JFR0lTVFJZLCBFZmZlY3RLZXkgfSBmcm9tICcuL2VmZmVjdHMvZWZmZWN0LXJlZ2lzdHJ5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWR5bmFtaWMtYmFja2dyb3VuZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1iYWNrZ3JvdW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2R5bmFtaWMtYmFja2dyb3VuZC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljQmFja2dyb3VuZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnYmdDYW52YXMnLCB7IHN0YXRpYzogdHJ1ZSB9KSBjYW52YXNSZWYhOiBFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50PjtcblxuICBASW5wdXQoKSBlZmZlY3Q6IEVmZmVjdEtleSA9ICdzcGhlcmUtZGVmb3JtJztcbiAgQElucHV0KCkgcm90YXRpb25TcGVlZCA9IDAuMDE7XG4gIEBJbnB1dCgpIHNpemUgPSAyO1xuICBASW5wdXQoKSBiYWNrZ3JvdW5kQ29sb3IgPSAnIzAwMDAwMCc7XG4gIEBJbnB1dCgpIGVsZW1lbnRDb2xvcj86IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XG5cbiAgcHJpdmF0ZSBzY2VuZSE6IFRIUkVFLlNjZW5lO1xuICBwcml2YXRlIGNhbWVyYSE6IFRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhO1xuICBwcml2YXRlIHJlbmRlcmVyITogVEhSRUUuV2ViR0xSZW5kZXJlcjtcbiAgcHJpdmF0ZSBhbmltYXRpb25JZCE6IG51bWJlcjtcblxuICBwcml2YXRlIGN1cnJlbnRFZmZlY3QhOiBEeW5hbWljRWZmZWN0O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgdGhpcy5pbml0U2NlbmUoKTtcbiAgICAgIHRoaXMubG9hZEVmZmVjdCgpO1xuICAgICAgdGhpcy5hbmltYXRlKCk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vblJlc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNCcm93c2VyKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1hdGlvbklkKTtcbiAgICAgIHRoaXMucmVuZGVyZXI/LmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuY3VycmVudEVmZmVjdD8uZGlzcG9zZSgpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25SZXNpemUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNjZW5lKCk6IHZvaWQge1xuICAgIGNvbnN0IHdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgY29uc3QgaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuXG4gICAgdGhpcy5zY2VuZSA9IG5ldyBUSFJFRS5TY2VuZSgpO1xuICAgIHRoaXMuc2NlbmUuYmFja2dyb3VuZCA9IG5ldyBUSFJFRS5Db2xvcih0aGlzLmJhY2tncm91bmRDb2xvcik7XG5cbiAgICB0aGlzLmNhbWVyYSA9IG5ldyBUSFJFRS5QZXJzcGVjdGl2ZUNhbWVyYSg3NSwgd2lkdGggLyBoZWlnaHQsIDAuMSwgMTAwMCk7XG4gICAgdGhpcy5jYW1lcmEucG9zaXRpb24ueiA9IDU7XG5cbiAgICB0aGlzLnJlbmRlcmVyID0gbmV3IFRIUkVFLldlYkdMUmVuZGVyZXIoe1xuICAgICAgY2FudmFzOiB0aGlzLmNhbnZhc1JlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgYW50aWFsaWFzOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblxuICAgIGNvbnN0IGxpZ2h0ID0gbmV3IFRIUkVFLkRpcmVjdGlvbmFsTGlnaHQoMHhmZmZmZmYsIDEpO1xuICAgIGxpZ2h0LnBvc2l0aW9uLnNldCg1LCA1LCA1KS5ub3JtYWxpemUoKTtcbiAgICB0aGlzLnNjZW5lLmFkZChsaWdodCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRFZmZlY3QoKTogdm9pZCB7XG4gICAgY29uc3QgRWZmZWN0Q2xhc3MgPSBFRkZFQ1RfUkVHSVNUUllbdGhpcy5lZmZlY3RdO1xuICAgIGlmICghRWZmZWN0Q2xhc3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRWZlY3RvIFwiJHt0aGlzLmVmZmVjdH1cIiBubyBlc3TDoSByZWdpc3RyYWRvIGVuIEVGRkVDVF9SRUdJU1RSWWApO1xuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRFZmZlY3QgPSBuZXcgRWZmZWN0Q2xhc3ModGhpcy5zaXplLCB0aGlzLnJvdGF0aW9uU3BlZWQsIHRoaXMuZWxlbWVudENvbG9yKTtcbiAgICB0aGlzLmN1cnJlbnRFZmZlY3QuaW5pdCh0aGlzLnNjZW5lLCB7fSk7XG4gIH1cblxuICBwcml2YXRlIGFuaW1hdGUgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5hbmltYXRpb25JZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1hdGUpO1xuICAgIHRoaXMuY3VycmVudEVmZmVjdC5hbmltYXRlKCk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW5kZXIodGhpcy5zY2VuZSwgdGhpcy5jYW1lcmEpO1xuICB9O1xuXG4gIHByaXZhdGUgb25SZXNpemUgPSAoKTogdm9pZCA9PiB7XG4gICAgY29uc3Qgd2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICBjb25zdCBoZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgdGhpcy5jYW1lcmEuYXNwZWN0ID0gd2lkdGggLyBoZWlnaHQ7XG4gICAgdGhpcy5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcbiAgfTtcbn1cbiIsIjxjYW52YXMgI2JnQ2FudmFzIGNsYXNzPVwiZHluYW1pYy1iZy1jYW52YXNcIj48L2NhbnZhcz5cbiJdfQ==
|
package/esm2022/lib/components/effects/dynamic-background/effects/dynamic-effect.interface.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1lZmZlY3QuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9lZmZlY3RzL2R5bmFtaWMtYmFja2dyb3VuZC9lZmZlY3RzL2R5bmFtaWMtZWZmZWN0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNFZmZlY3Qge1xuICBpbml0KHNjZW5lOiBUSFJFRS5TY2VuZSwgb3B0aW9uczogYW55KTogdm9pZDtcbiAgYW5pbWF0ZSgpOiB2b2lkO1xuICBkaXNwb3NlKCk6IHZvaWQ7XG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SphereDeformEffect } from './sphere-deform/sphere-deform.effect';
|
|
2
|
+
export const EFFECT_REGISTRY = {
|
|
3
|
+
'sphere-deform': SphereDeformEffect,
|
|
4
|
+
// 'ring-transform': RingTransformEffect,
|
|
5
|
+
// 'particles': ParticlesEffect,
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LXJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9lZmZlY3RzL2R5bmFtaWMtYmFja2dyb3VuZC9lZmZlY3RzL2VmZmVjdC1yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQU0xRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQXNFO0lBQ2hHLGVBQWUsRUFBRSxrQkFBa0I7SUFDbkMseUNBQXlDO0lBQ3pDLGdDQUFnQztDQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1pY0VmZmVjdCB9IGZyb20gJy4vZHluYW1pYy1lZmZlY3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNwaGVyZURlZm9ybUVmZmVjdCB9IGZyb20gJy4vc3BoZXJlLWRlZm9ybS9zcGhlcmUtZGVmb3JtLmVmZmVjdCc7XG4vLyBpbXBvcnQgeyBSaW5nVHJhbnNmb3JtRWZmZWN0IH0gZnJvbSAnLi9yaW5nLXRyYW5zZm9ybS9yaW5nLXRyYW5zZm9ybS5lZmZlY3QnO1xuLy8gaW1wb3J0IHsgUGFydGljbGVzRWZmZWN0IH0gZnJvbSAnLi9wYXJ0aWNsZXMvcGFydGljbGVzLmVmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIEVmZmVjdEtleSA9ICdzcGhlcmUtZGVmb3JtJyB8ICdyaW5nLXRyYW5zZm9ybScgfCAncGFydGljbGVzJztcblxuZXhwb3J0IGNvbnN0IEVGRkVDVF9SRUdJU1RSWTogUGFydGlhbDxSZWNvcmQ8RWZmZWN0S2V5LCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBEeW5hbWljRWZmZWN0Pj4gPSB7XG4gICdzcGhlcmUtZGVmb3JtJzogU3BoZXJlRGVmb3JtRWZmZWN0LFxuICAvLyAncmluZy10cmFuc2Zvcm0nOiBSaW5nVHJhbnNmb3JtRWZmZWN0LFxuICAvLyAncGFydGljbGVzJzogUGFydGljbGVzRWZmZWN0LFxufTtcbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
export class SphereDeformEffect {
|
|
3
|
+
constructor(size, rotationSpeed, color) {
|
|
4
|
+
this.size = size;
|
|
5
|
+
this.rotationSpeed = rotationSpeed;
|
|
6
|
+
this.color = color;
|
|
7
|
+
this.time = 0;
|
|
8
|
+
}
|
|
9
|
+
init(scene, _options) {
|
|
10
|
+
const geometry = new THREE.SphereGeometry(this.size, 128, 128);
|
|
11
|
+
const material = this.color
|
|
12
|
+
? new THREE.MeshStandardMaterial({ color: this.color, flatShading: true })
|
|
13
|
+
: new THREE.MeshNormalMaterial({ flatShading: true });
|
|
14
|
+
this.mesh = new THREE.Mesh(geometry, material);
|
|
15
|
+
scene.add(this.mesh);
|
|
16
|
+
}
|
|
17
|
+
animate() {
|
|
18
|
+
this.time += 0.02;
|
|
19
|
+
const positionAttr = this.mesh.geometry.attributes['position'];
|
|
20
|
+
const vertex = new THREE.Vector3();
|
|
21
|
+
for (let i = 0; i < positionAttr.count; i++) {
|
|
22
|
+
vertex.fromBufferAttribute(positionAttr, i);
|
|
23
|
+
const offset = Math.sin(vertex.x * 3 + this.time) * 0.2 +
|
|
24
|
+
Math.cos(vertex.y * 5 + this.time * 0.7) * 0.2;
|
|
25
|
+
vertex.normalize().multiplyScalar(this.size + offset);
|
|
26
|
+
positionAttr.setXYZ(i, vertex.x, vertex.y, vertex.z);
|
|
27
|
+
}
|
|
28
|
+
positionAttr.needsUpdate = true;
|
|
29
|
+
this.mesh.geometry.computeVertexNormals();
|
|
30
|
+
this.mesh.rotation.y += this.rotationSpeed;
|
|
31
|
+
}
|
|
32
|
+
dispose() {
|
|
33
|
+
this.mesh?.geometry.dispose();
|
|
34
|
+
this.mesh?.material?.dispose();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BoZXJlLWRlZm9ybS5lZmZlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2VmZmVjdHMvZHluYW1pYy1iYWNrZ3JvdW5kL2VmZmVjdHMvc3BoZXJlLWRlZm9ybS9zcGhlcmUtZGVmb3JtLmVmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUcvQixNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLFlBQ1UsSUFBWSxFQUNaLGFBQXFCLEVBQ3JCLEtBQWM7UUFGZCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsVUFBSyxHQUFMLEtBQUssQ0FBUztRQUxoQixTQUFJLEdBQUcsQ0FBQyxDQUFDO0lBTWQsQ0FBQztJQUVKLElBQUksQ0FBQyxLQUFrQixFQUFFLFFBQWE7UUFDcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRS9ELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ3pCLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMxRSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV4RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUNsQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUEwQixDQUFDO1FBQ3hGLE1BQU0sTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRW5DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDNUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUU1QyxNQUFNLE1BQU0sR0FDVixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHO2dCQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBRWpELE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQztZQUV0RCxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxZQUFZLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRTFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLElBQUksRUFBRSxRQUEyQixFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3JELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IER5bmFtaWNFZmZlY3QgfSBmcm9tICcuLi9keW5hbWljLWVmZmVjdC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgU3BoZXJlRGVmb3JtRWZmZWN0IGltcGxlbWVudHMgRHluYW1pY0VmZmVjdCB7XG4gIHByaXZhdGUgbWVzaCE6IFRIUkVFLk1lc2g7XG4gIHByaXZhdGUgdGltZSA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzaXplOiBudW1iZXIsXG4gICAgcHJpdmF0ZSByb3RhdGlvblNwZWVkOiBudW1iZXIsXG4gICAgcHJpdmF0ZSBjb2xvcj86IHN0cmluZyxcbiAgKSB7fVxuXG4gIGluaXQoc2NlbmU6IFRIUkVFLlNjZW5lLCBfb3B0aW9uczogYW55KTogdm9pZCB7XG4gICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuU3BoZXJlR2VvbWV0cnkodGhpcy5zaXplLCAxMjgsIDEyOCk7XG5cbiAgICBjb25zdCBtYXRlcmlhbCA9IHRoaXMuY29sb3JcbiAgICAgID8gbmV3IFRIUkVFLk1lc2hTdGFuZGFyZE1hdGVyaWFsKHsgY29sb3I6IHRoaXMuY29sb3IsIGZsYXRTaGFkaW5nOiB0cnVlIH0pXG4gICAgICA6IG5ldyBUSFJFRS5NZXNoTm9ybWFsTWF0ZXJpYWwoeyBmbGF0U2hhZGluZzogdHJ1ZSB9KTtcblxuICAgIHRoaXMubWVzaCA9IG5ldyBUSFJFRS5NZXNoKGdlb21ldHJ5LCBtYXRlcmlhbCk7XG4gICAgc2NlbmUuYWRkKHRoaXMubWVzaCk7XG4gIH1cblxuICBhbmltYXRlKCk6IHZvaWQge1xuICAgIHRoaXMudGltZSArPSAwLjAyO1xuICAgIGNvbnN0IHBvc2l0aW9uQXR0ciA9IHRoaXMubWVzaC5nZW9tZXRyeS5hdHRyaWJ1dGVzWydwb3NpdGlvbiddIGFzIFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTtcbiAgICBjb25zdCB2ZXJ0ZXggPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb3NpdGlvbkF0dHIuY291bnQ7IGkrKykge1xuICAgICAgdmVydGV4LmZyb21CdWZmZXJBdHRyaWJ1dGUocG9zaXRpb25BdHRyLCBpKTtcblxuICAgICAgY29uc3Qgb2Zmc2V0ID1cbiAgICAgICAgTWF0aC5zaW4odmVydGV4LnggKiAzICsgdGhpcy50aW1lKSAqIDAuMiArXG4gICAgICAgIE1hdGguY29zKHZlcnRleC55ICogNSArIHRoaXMudGltZSAqIDAuNykgKiAwLjI7XG5cbiAgICAgIHZlcnRleC5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcih0aGlzLnNpemUgKyBvZmZzZXQpO1xuXG4gICAgICBwb3NpdGlvbkF0dHIuc2V0WFlaKGksIHZlcnRleC54LCB2ZXJ0ZXgueSwgdmVydGV4LnopO1xuICAgIH1cblxuICAgIHBvc2l0aW9uQXR0ci5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgdGhpcy5tZXNoLmdlb21ldHJ5LmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCk7XG5cbiAgICB0aGlzLm1lc2gucm90YXRpb24ueSArPSB0aGlzLnJvdGF0aW9uU3BlZWQ7XG4gIH1cblxuICBkaXNwb3NlKCk6IHZvaWQge1xuICAgIHRoaXMubWVzaD8uZ2VvbWV0cnkuZGlzcG9zZSgpO1xuICAgICh0aGlzLm1lc2g/Lm1hdGVyaWFsIGFzIFRIUkVFLk1hdGVyaWFsKT8uZGlzcG9zZSgpO1xuICB9XG59XG4iXX0=
|