@wave3d/core 0.5.0 → 0.6.0

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.
@@ -1,6 +1,6 @@
1
1
  import { ensureStudioConfig } from "../config/model.js";
2
- import { ditherFragmentShader, fragmentShader, halftoneCmykFragmentShader, halftoneFragmentShader, heatmapFragmentShader, innerLightFragmentShader, lineFragmentShader, paperTextureFragmentShader, postFragmentShader, postVertexShader, vertexShader } from "./shaders.js";
3
2
  import { WaveGeometry } from "./WaveGeometry.js";
3
+ import { ditherFragmentShader, fragmentShader, halftoneCmykFragmentShader, halftoneFragmentShader, heatmapFragmentShader, innerLightFragmentShader, lineFragmentShader, paperTextureFragmentShader, postFragmentShader, postVertexShader, vertexShader } from "./shaders.js";
4
4
  import { InteractionController, SCENE_APPLIERS, WAVE_APPLIERS, anyPointerFxActive, interactionActive, wavePointerFxActive, waveRipplesActive } from "./interaction.js";
5
5
  import { PALETTE_MAPS, buildBackgroundGradientCanvas, buildBackgroundImageCanvas, buildBackgroundMeshCanvas, buildPaletteTexture, canvasToTexture, configurePaletteTexture, drawBackgroundMediaFrame, loadPaletteImage, paletteMapCanvas, paletteSignature } from "./palette.js";
6
6
  import { buildHeroPaletteCanvas, buildHeroPaletteTexture } from "./heroPalette.js";
@@ -392,7 +392,7 @@ var WaveRenderer = class {
392
392
  uEdgeFeather: { value: .1 },
393
393
  uOpacity: { value: 1 },
394
394
  uSquared: { value: 1 },
395
- uResolution: { value: new THREE.Vector2(1, 1) },
395
+ uResolution: { value: this.renderer.getDrawingBufferSize(new THREE.Vector2()) },
396
396
  uAmbient: { value: .45 },
397
397
  uNumLights: { value: 1 },
398
398
  uLightPos: { value: lightPos },
@@ -407,6 +407,12 @@ var WaveRenderer = class {
407
407
  uLineDerivativePower: { value: .95 },
408
408
  uMaxWidth: { value: 1232 },
409
409
  uClearColor: { value: new THREE.Vector3(1, 1, 1) },
410
+ uHelixTurns: { value: 0 },
411
+ uHelixRadius: { value: 0 },
412
+ uHelixRoll: { value: 0 },
413
+ uHelixPhase: { value: 0 },
414
+ uRungAmount: { value: 0 },
415
+ uRungThickness: { value: 1 },
410
416
  uPointer: { value: new THREE.Vector2(0, 0) },
411
417
  uPointerActive: { value: 0 },
412
418
  uPointerRadius: { value: .6 },
@@ -436,6 +442,9 @@ var WaveRenderer = class {
436
442
  if ((sc?.detailAmount ?? 0) !== 0 || bindsDetail) defines.DETAIL_OCTAVE = "";
437
443
  if ((sc?.depthTint ?? 0) > 0) defines.DEPTH_TINT = "";
438
444
  if ((sc?.edgeFeather ?? .1) !== .1) defines.EDGE_FEATHER = "";
445
+ const bindsHelix = sc?.interaction?.bindings?.some((b) => b.target.startsWith("helix")) ?? false;
446
+ if ((sc?.helixRadius ?? 0) !== 0 || (sc?.helixRoll ?? 0) !== 0 || bindsHelix) defines.HELIX = "";
447
+ if (sc?.theme === "wireframe" && (sc.rungAmount ?? 0) > 0) defines.RUNGS = "";
439
448
  if (sc && wavePointerFxActive(this.config, sc)) {
440
449
  defines.POINTER_FX = "";
441
450
  if (waveRipplesActive(this.config, sc)) defines.POINTER_RIPPLES = "";
@@ -587,6 +596,8 @@ var WaveRenderer = class {
587
596
  u.uLineAmount.value = sc.lineAmount ?? 425;
588
597
  u.uLineThickness.value = sc.lineThickness ?? 1;
589
598
  u.uLineDerivativePower.value = sc.lineDerivativePower ?? .95;
599
+ u.uRungAmount.value = sc.rungAmount ?? 0;
600
+ u.uRungThickness.value = sc.rungThickness ?? 1;
590
601
  u.uMaxWidth.value = sc.maxWidth ?? 1232;
591
602
  hexToLinearVec3(this.config.background, u.uClearColor.value);
592
603
  u.uFiberCount.value = sc.fiberCount;
@@ -643,6 +654,10 @@ var WaveRenderer = class {
643
654
  u.uTwPowX.value = sc.twistPower.x;
644
655
  u.uTwPowY.value = sc.twistPower.y;
645
656
  u.uTwPowZ.value = sc.twistPower.z;
657
+ u.uHelixTurns.value = sc.helixTurns ?? 0;
658
+ u.uHelixRadius.value = sc.helixRadius ?? 0;
659
+ u.uHelixRoll.value = sc.helixRoll ?? 0;
660
+ u.uHelixPhase.value = sc.helixPhase ?? 0;
646
661
  wave.mesh.scale.set(sc.scale.x, sc.scale.y, sc.scale.z);
647
662
  wave.mesh.rotation.set(THREE.MathUtils.degToRad(sc.rotation.x), THREE.MathUtils.degToRad(sc.rotation.y), THREE.MathUtils.degToRad(sc.rotation.z));
648
663
  wave.mesh.position.set(sc.position.x, sc.position.y, sc.position.z);