@pascal-app/viewer 1.0.6 → 1.1.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.
- package/README.md +54 -21
- package/dist/components/viewer/daylight-atmosphere.d.ts +9 -0
- package/dist/components/viewer/daylight-atmosphere.d.ts.map +1 -0
- package/dist/components/viewer/daylight-atmosphere.js +315 -0
- package/dist/components/viewer/drone-controller.d.ts +15 -0
- package/dist/components/viewer/drone-controller.d.ts.map +1 -0
- package/dist/components/viewer/drone-controller.js +194 -0
- package/dist/components/viewer/glb-interactive.d.ts +4 -18
- package/dist/components/viewer/glb-interactive.d.ts.map +1 -1
- package/dist/components/viewer/glb-interactive.js +32 -268
- package/dist/components/viewer/glb-replace-instances.d.ts +6 -3
- package/dist/components/viewer/glb-replace-instances.d.ts.map +1 -1
- package/dist/components/viewer/glb-replace-instances.js +5 -4
- package/dist/components/viewer/glb-scene-motion.d.ts +8 -0
- package/dist/components/viewer/glb-scene-motion.d.ts.map +1 -0
- package/dist/components/viewer/glb-scene-motion.js +57 -0
- package/dist/components/viewer/glb-scene.d.ts +5 -1
- package/dist/components/viewer/glb-scene.d.ts.map +1 -1
- package/dist/components/viewer/glb-scene.js +290 -49
- package/dist/components/viewer/glb-selection-callout.d.ts +17 -0
- package/dist/components/viewer/glb-selection-callout.d.ts.map +1 -0
- package/dist/components/viewer/glb-selection-callout.js +54 -0
- package/dist/components/viewer/glb-walkthrough-controller.d.ts.map +1 -1
- package/dist/components/viewer/glb-walkthrough-controller.js +6 -3
- package/dist/components/viewer/index.d.ts +5 -0
- package/dist/components/viewer/index.d.ts.map +1 -1
- package/dist/components/viewer/index.js +38 -10
- package/dist/components/viewer/lights.d.ts.map +1 -1
- package/dist/components/viewer/lights.js +192 -5
- package/dist/components/viewer/post-processing.d.ts.map +1 -1
- package/dist/components/viewer/post-processing.js +150 -94
- package/dist/components/viewer/registered-systems.d.ts.map +1 -1
- package/dist/components/viewer/registered-systems.js +2 -2
- package/dist/components/viewer/scene-environment.js +4 -5
- package/dist/components/viewer/selection-callout.d.ts +51 -0
- package/dist/components/viewer/selection-callout.d.ts.map +1 -0
- package/dist/components/viewer/selection-callout.js +197 -0
- package/dist/components/viewer/unsupported-gpu-fallback.d.ts.map +1 -1
- package/dist/components/viewer/unsupported-gpu-fallback.js +21 -1
- package/dist/components/viewer/use-daylight-rooms.d.ts +13 -0
- package/dist/components/viewer/use-daylight-rooms.d.ts.map +1 -0
- package/dist/components/viewer/use-daylight-rooms.js +278 -0
- package/dist/components/viewer/viewer-camera.d.ts.map +1 -1
- package/dist/components/viewer/viewer-camera.js +12 -1
- package/dist/hooks/use-gltf-ktx2.d.ts.map +1 -1
- package/dist/hooks/use-gltf-ktx2.js +2 -1
- package/dist/index.d.ts +26 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -8
- package/dist/lib/asset-url.d.ts +0 -1
- package/dist/lib/asset-url.d.ts.map +1 -1
- package/dist/lib/asset-url.js +3 -3
- package/dist/lib/daylight/ground.d.ts +21 -0
- package/dist/lib/daylight/ground.d.ts.map +1 -0
- package/dist/lib/daylight/ground.js +53 -0
- package/dist/lib/daylight/location.d.ts +32 -0
- package/dist/lib/daylight/location.d.ts.map +1 -0
- package/dist/lib/daylight/location.js +74 -0
- package/dist/lib/daylight/look.d.ts +33 -0
- package/dist/lib/daylight/look.d.ts.map +1 -0
- package/dist/lib/daylight/look.js +13 -0
- package/dist/lib/daylight/material-hooks.d.ts +2 -0
- package/dist/lib/daylight/material-hooks.d.ts.map +1 -0
- package/dist/lib/daylight/material-hooks.js +150 -0
- package/dist/lib/daylight/room-context.d.ts +12 -0
- package/dist/lib/daylight/room-context.d.ts.map +1 -0
- package/dist/lib/daylight/room-context.js +54 -0
- package/dist/lib/daylight/room-map.d.ts +124 -0
- package/dist/lib/daylight/room-map.d.ts.map +1 -0
- package/dist/lib/daylight/room-map.js +630 -0
- package/dist/lib/daylight/room-scene.d.ts +56 -0
- package/dist/lib/daylight/room-scene.d.ts.map +1 -0
- package/dist/lib/daylight/room-scene.js +391 -0
- package/dist/lib/daylight/rooms.d.ts +292 -0
- package/dist/lib/daylight/rooms.d.ts.map +1 -0
- package/dist/lib/daylight/rooms.js +1268 -0
- package/dist/lib/daylight/runtime.d.ts +33 -0
- package/dist/lib/daylight/runtime.d.ts.map +1 -0
- package/dist/lib/daylight/runtime.js +42 -0
- package/dist/lib/daylight/sky.d.ts +26 -0
- package/dist/lib/daylight/sky.d.ts.map +1 -0
- package/dist/lib/daylight/sky.js +217 -0
- package/dist/lib/daylight/solar.d.ts +46 -0
- package/dist/lib/daylight/solar.d.ts.map +1 -0
- package/dist/lib/daylight/solar.js +156 -0
- package/dist/lib/device-tier.d.ts +29 -0
- package/dist/lib/device-tier.d.ts.map +1 -0
- package/dist/lib/device-tier.js +71 -0
- package/dist/lib/dispose-object3d.d.ts.map +1 -1
- package/dist/lib/dispose-object3d.js +4 -2
- package/dist/lib/drone-flight.d.ts +44 -0
- package/dist/lib/drone-flight.d.ts.map +1 -0
- package/dist/lib/drone-flight.js +121 -0
- package/dist/lib/editor-highlight.d.ts +16 -0
- package/dist/lib/editor-highlight.d.ts.map +1 -0
- package/dist/lib/editor-highlight.js +33 -0
- package/dist/lib/foundation-materials.d.ts.map +1 -1
- package/dist/lib/foundation-materials.js +2 -4
- package/dist/lib/glb-merge.d.ts +23 -0
- package/dist/lib/glb-merge.d.ts.map +1 -0
- package/dist/lib/glb-merge.js +184 -0
- package/dist/lib/hardware-geometry.d.ts +21 -0
- package/dist/lib/hardware-geometry.d.ts.map +1 -0
- package/dist/lib/hardware-geometry.js +283 -0
- package/dist/lib/ktx2-loader.d.ts.map +1 -1
- package/dist/lib/ktx2-loader.js +2 -1
- package/dist/lib/layer-pass.d.ts +2 -0
- package/dist/lib/layer-pass.d.ts.map +1 -1
- package/dist/lib/layer-pass.js +20 -0
- package/dist/lib/materials.d.ts.map +1 -1
- package/dist/lib/materials.js +50 -23
- package/dist/lib/measurement-label.d.ts +4 -0
- package/dist/lib/measurement-label.d.ts.map +1 -0
- package/dist/lib/measurement-label.js +54 -0
- package/dist/lib/measurement-presentation.d.ts +5 -0
- package/dist/lib/measurement-presentation.d.ts.map +1 -0
- package/dist/lib/measurement-presentation.js +8 -0
- package/dist/lib/merged-outline-node.d.ts.map +1 -1
- package/dist/lib/merged-outline-node.js +7 -1
- package/dist/lib/occlusion-culler.d.ts +34 -0
- package/dist/lib/occlusion-culler.d.ts.map +1 -0
- package/dist/lib/occlusion-culler.js +698 -0
- package/dist/lib/pointer-events.d.ts.map +1 -1
- package/dist/lib/pointer-events.js +3 -3
- package/dist/lib/post-processing-resources.d.ts +4 -0
- package/dist/lib/post-processing-resources.d.ts.map +1 -1
- package/dist/lib/post-processing-resources.js +5 -0
- package/dist/lib/readback-rows.d.ts +14 -0
- package/dist/lib/readback-rows.d.ts.map +1 -0
- package/dist/lib/readback-rows.js +31 -0
- package/dist/lib/reveal-pose.d.ts.map +1 -1
- package/dist/lib/reveal-pose.js +3 -0
- package/dist/lib/scene-matrices.d.ts +12 -0
- package/dist/lib/scene-matrices.d.ts.map +1 -0
- package/dist/lib/scene-matrices.js +287 -0
- package/dist/lib/scene-pass-mrt.d.ts +5 -2
- package/dist/lib/scene-pass-mrt.d.ts.map +1 -1
- package/dist/lib/scene-pass-mrt.js +7 -2
- package/dist/lib/scene-themes.d.ts +0 -2
- package/dist/lib/scene-themes.d.ts.map +1 -1
- package/dist/lib/scene-themes.js +0 -2
- package/dist/lib/scene-visibility.d.ts +2 -0
- package/dist/lib/scene-visibility.d.ts.map +1 -1
- package/dist/lib/scene-visibility.js +12 -3
- package/dist/lib/site-surfaces.d.ts +1 -8
- package/dist/lib/site-surfaces.d.ts.map +1 -1
- package/dist/lib/site-surfaces.js +0 -19
- package/dist/lib/snapshot-pipeline.d.ts.map +1 -1
- package/dist/lib/snapshot-pipeline.js +24 -40
- package/dist/lib/texture-reference.d.ts.map +1 -1
- package/dist/lib/texture-reference.js +13 -10
- package/dist/lib/underground-ambiance.d.ts +0 -2
- package/dist/lib/underground-ambiance.d.ts.map +1 -1
- package/dist/lib/underground-ambiance.js +0 -2
- package/dist/lib/viewer-config.d.ts +21 -0
- package/dist/lib/viewer-config.d.ts.map +1 -0
- package/dist/lib/viewer-config.js +21 -0
- package/dist/lib/viewer-preference-storage.d.ts +7 -0
- package/dist/lib/viewer-preference-storage.d.ts.map +1 -0
- package/dist/lib/viewer-preference-storage.js +23 -0
- package/dist/store/use-item-light-pool.d.ts +3 -6
- package/dist/store/use-item-light-pool.d.ts.map +1 -1
- package/dist/store/use-item-light-pool.js +12 -0
- package/dist/store/use-viewer.d.ts +62 -59
- package/dist/store/use-viewer.d.ts.map +1 -1
- package/dist/store/use-viewer.js +106 -19
- package/dist/systems/ceiling/ceiling-system.d.ts +5 -0
- package/dist/systems/ceiling/ceiling-system.d.ts.map +1 -1
- package/dist/systems/ceiling/ceiling-system.js +11 -1
- package/dist/systems/door/door-system.d.ts.map +1 -1
- package/dist/systems/door/door-system.js +501 -145
- package/dist/systems/door/leaf-profile.d.ts +11 -0
- package/dist/systems/door/leaf-profile.d.ts.map +1 -0
- package/dist/systems/door/leaf-profile.js +140 -0
- package/dist/systems/elevator/elevator-interaction-system.d.ts +16 -2
- package/dist/systems/elevator/elevator-interaction-system.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-interaction-system.js +41 -8
- package/dist/systems/geometry/geometry-status.d.ts +8 -0
- package/dist/systems/geometry/geometry-status.d.ts.map +1 -0
- package/dist/systems/geometry/geometry-status.js +24 -0
- package/dist/systems/interactive/callout-actions.d.ts +72 -0
- package/dist/systems/interactive/callout-actions.d.ts.map +1 -0
- package/dist/systems/interactive/callout-actions.js +212 -0
- package/dist/systems/interactive/interactive-system.d.ts +5 -1
- package/dist/systems/interactive/interactive-system.d.ts.map +1 -1
- package/dist/systems/interactive/interactive-system.js +44 -121
- package/dist/systems/interactive/opening-settled.d.ts +16 -0
- package/dist/systems/interactive/opening-settled.d.ts.map +1 -0
- package/dist/systems/interactive/opening-settled.js +53 -0
- package/dist/systems/item-light/item-light-system.d.ts.map +1 -1
- package/dist/systems/item-light/item-light-system.js +22 -214
- package/dist/systems/item-light/pooled-lights.d.ts +70 -0
- package/dist/systems/item-light/pooled-lights.d.ts.map +1 -0
- package/dist/systems/item-light/pooled-lights.js +449 -0
- package/dist/systems/level/level-system.d.ts.map +1 -1
- package/dist/systems/level/level-system.js +19 -1
- package/dist/systems/roof/roof-material-slots.d.ts +14 -0
- package/dist/systems/roof/roof-material-slots.d.ts.map +1 -0
- package/dist/systems/roof/roof-material-slots.js +13 -0
- package/dist/systems/roof/roof-materials.d.ts +25 -2
- package/dist/systems/roof/roof-materials.d.ts.map +1 -1
- package/dist/systems/roof/roof-materials.js +85 -26
- package/dist/systems/roof/roof-system.d.ts +34 -1
- package/dist/systems/roof/roof-system.d.ts.map +1 -1
- package/dist/systems/roof/roof-system.js +582 -168
- package/dist/systems/wall/opening-casing-geometry.d.ts +14 -0
- package/dist/systems/wall/opening-casing-geometry.d.ts.map +1 -0
- package/dist/systems/wall/opening-casing-geometry.js +102 -0
- package/dist/systems/wall/opening-cutout-geometry.d.ts +9 -0
- package/dist/systems/wall/opening-cutout-geometry.d.ts.map +1 -1
- package/dist/systems/wall/opening-cutout-geometry.js +7 -3
- package/dist/systems/wall/wall-materials.d.ts.map +1 -1
- package/dist/systems/wall/wall-materials.js +28 -35
- package/dist/systems/wall/wall-system.d.ts +11 -0
- package/dist/systems/wall/wall-system.d.ts.map +1 -1
- package/dist/systems/wall/wall-system.js +86 -25
- package/dist/systems/wall/wall-t-junctions.d.ts +15 -0
- package/dist/systems/wall/wall-t-junctions.d.ts.map +1 -0
- package/dist/systems/wall/wall-t-junctions.js +149 -0
- package/dist/systems/window/window-animation-system.d.ts +3 -12
- package/dist/systems/window/window-animation-system.d.ts.map +1 -1
- package/dist/systems/window/window-animation-system.js +37 -122
- package/dist/systems/window/window-pose.d.ts +31 -0
- package/dist/systems/window/window-pose.d.ts.map +1 -0
- package/dist/systems/window/window-pose.js +152 -0
- package/dist/systems/window/window-roller-shutter.d.ts +8 -0
- package/dist/systems/window/window-roller-shutter.d.ts.map +1 -0
- package/dist/systems/window/window-roller-shutter.js +64 -0
- package/dist/systems/window/window-system.d.ts +2 -11
- package/dist/systems/window/window-system.d.ts.map +1 -1
- package/dist/systems/window/window-system.js +470 -303
- package/package.json +6 -6
- package/dist/systems/interactive/control-widget.d.ts +0 -10
- package/dist/systems/interactive/control-widget.d.ts.map +0 -1
- package/dist/systems/interactive/control-widget.js +0 -35
- package/dist/systems/interactive/procedural-controls.d.ts +0 -13
- package/dist/systems/interactive/procedural-controls.d.ts.map +0 -1
- package/dist/systems/interactive/procedural-controls.js +0 -17
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export type { SurfaceRole } from '@pascal-app/core';
|
|
2
2
|
export { ErrorBoundary } from './components/error-boundary';
|
|
3
3
|
export { NodeRenderer } from './components/renderers/node-renderer';
|
|
4
|
+
export { ParametricNodeRenderer } from './components/renderers/parametric-node-renderer';
|
|
4
5
|
export { default as Viewer, pendingSceneBuildCount, type ViewerHandle, type ViewerImmersiveSession, } from './components/viewer';
|
|
5
6
|
export { type BVHEcctrlApi, default as BVHEcctrl, type MovementInput, } from './components/viewer/bvh-ecctrl';
|
|
7
|
+
export { DroneController, type DroneControllerProps, } from './components/viewer/drone-controller';
|
|
6
8
|
export { buildGlbInteractiveItems, GlbInteractive, type GlbInteractiveItem, } from './components/viewer/glb-interactive';
|
|
7
9
|
export { buildGlbReferenceNodes, buildGlbReplaceNodes, } from './components/viewer/glb-reference-nodes';
|
|
8
10
|
export { type GlbPickEvent, GlbScene, type GlbWalkthrough, resolveGlbPick, } from './components/viewer/glb-scene';
|
|
@@ -12,19 +14,27 @@ export { DEFAULT_HOVER_STYLES, SSGI_PARAMS, } from './components/viewer/post-pro
|
|
|
12
14
|
export { SceneAtmosphere, type SceneAtmosphereSource, useSceneAtmosphere, } from './components/viewer/scene-atmosphere';
|
|
13
15
|
export { SceneEnvironment } from './components/viewer/scene-environment';
|
|
14
16
|
export { claimSceneGround, SceneGroundReplacement, useSceneGroundReplacement, } from './components/viewer/scene-ground-replacement';
|
|
17
|
+
export { type CalloutAction, type CalloutText, SelectionCallout, } from './components/viewer/selection-callout';
|
|
15
18
|
export { applyWalkthroughCameraClipping } from './components/viewer/viewer-camera';
|
|
16
19
|
export { isViewerPresentationTextureBorrowed, markViewerPresentationTextureBorrowed, registerViewerPresentation, type ViewerPresentationConfiguration, type ViewerPresentationContribution, type ViewerPresentationExportContext, type ViewerPresentationStaticExport, ViewerPresentations, viewerPresentationRegistry, } from './components/viewer/viewer-presentations';
|
|
17
20
|
export { useAssetUrl } from './hooks/use-asset-url';
|
|
18
21
|
export { useGLTFKTX2 } from './hooks/use-gltf-ktx2';
|
|
19
22
|
export { useLibraryMaterialsVersion } from './hooks/use-library-materials-version';
|
|
20
23
|
export { useNodeEvents } from './hooks/use-node-events';
|
|
21
|
-
export {
|
|
24
|
+
export { resolveAssetUrl, resolveCdnUrl } from './lib/asset-url';
|
|
22
25
|
export { backdropColors, backdropGradient, deepSkyColor, horizonHazeColor } from './lib/backdrop';
|
|
23
26
|
export { applyWorldScaleBoxUVs } from './lib/box-uv';
|
|
24
27
|
export { ADDITION, Brush, computeGeometryBoundsTree, csgEvaluator, csgGeometry, csgMaterials, Evaluator, ensureRenderableGeometryAttributes, INTERSECTION, prepareBrushForCSG, SUBTRACTION, } from './lib/csg-utils';
|
|
28
|
+
export { createDaylightGroundMaterial, DAYLIGHT_GROUND, DAYLIGHT_PARCEL, daylightGroundColor, } from './lib/daylight/ground';
|
|
29
|
+
export { type LatLng, type LocationSource, requestDeviceLocation, resolveLocation, } from './lib/daylight/location';
|
|
30
|
+
export { type DaylightAtmosphereSource, isDaylightAtmosphere } from './lib/daylight/look';
|
|
31
|
+
export { WEATHER_COVER, type Weather } from './lib/daylight/sky';
|
|
32
|
+
export { presetInstant, type SkyPhase, skyPhase, solarClockInstant, solarClockMinutes, solarPosition, sunEvents, type TimeOfDay, } from './lib/daylight/solar';
|
|
25
33
|
export type { DisplayState } from './lib/display-state';
|
|
26
34
|
export { disposeObject3DResources } from './lib/dispose-object3d';
|
|
35
|
+
export { createDroneInput, DRONE_SLOW_MULTIPLIER, type DroneInput, type DroneLook, seedDroneLook, stepDroneFlight, turnFirstPersonLook, } from './lib/drone-flight';
|
|
27
36
|
export type { EdgeMode } from './lib/edge-style';
|
|
37
|
+
export { markHighlight, tintEmissive } from './lib/editor-highlight';
|
|
28
38
|
export { BLOCK_MASONRY, concreteMaterial, type Masonry, masonryMaterial, STRUCTURE_COLORS, } from './lib/foundation-materials';
|
|
29
39
|
export { preserveGltfUnlit } from './lib/gltf-unlit';
|
|
30
40
|
export { PERF_OVERLAY_ENABLED } from './lib/gpu-perf';
|
|
@@ -37,6 +47,8 @@ export { LayerPassIndex } from './lib/layer-pass';
|
|
|
37
47
|
export { BATCHED_LAYER, GRID_LAYER, OVERLAY_LAYER, SCENE_LAYER, SHADOW_ONLY_LAYER, setSurfaceRaycastLayers, ZONE_LAYER, } from './lib/layers';
|
|
38
48
|
export { holdLiveFrame } from './lib/live-frame-hold';
|
|
39
49
|
export { applyMaterialPresetToMaterials, BLUEPRINT_PALETTE, baseMaterial, CLAY_PALETTE, type ColorPreset, clearMaterialCache, createDefaultMaterial, createMaterial, createMaterialFromPreset, createMaterialFromPresetRef, createSurfaceRoleMaterial, DEFAULT_CEILING_MATERIAL, DEFAULT_DOOR_MATERIAL, DEFAULT_ROOF_MATERIAL, DEFAULT_SHELF_MATERIAL, DEFAULT_SLAB_MATERIAL, DEFAULT_STAIR_MATERIAL, DEFAULT_WALL_MATERIAL, DEFAULT_WINDOW_MATERIAL, disposeMaterial, getMaterialTextureVersion, glassMaterial, MONO_PALETTE, materialCastsShadow, materialTextureLoadState, PRESET_PALETTES, type RenderShading, registerMaterialCacheCleanup, resolveMaterialRef, resolveSlotDefaultMaterial, resolveSurfaceColor, setSlotDefaultOverrides, WHITE_PALETTE, } from './lib/materials';
|
|
50
|
+
export * from './lib/measurement-label';
|
|
51
|
+
export * from './lib/measurement-presentation';
|
|
40
52
|
export { mergedOutline } from './lib/merged-outline-node';
|
|
41
53
|
export { createNodeTopSurfaceHeightSampler } from './lib/node-top-surface-height';
|
|
42
54
|
export * from './lib/perf-actions';
|
|
@@ -52,32 +64,37 @@ export { createSceneSupportHeightSampler } from './lib/scene-support-height';
|
|
|
52
64
|
export { getSceneTheme, SCENE_THEME_IDS, SCENE_THEMES, type SceneTheme, } from './lib/scene-themes';
|
|
53
65
|
export { type HiddenReason, hideFromScene, showInScene, temporarilyShowPresentation, temporarilyShowShadowOnly, } from './lib/scene-visibility';
|
|
54
66
|
export { SCRIPTED_MODEL_FLAG } from './lib/scripted-opening';
|
|
55
|
-
export {
|
|
67
|
+
export { SITE_GROUND, type SiteGroundRole, siteGround, siteSurfaces, temporarilyVeilGround, } from './lib/site-surfaces';
|
|
56
68
|
export { createPlainSnapshotPipeline, createSnapshotPipeline, SNAPSHOT_MAX_EDGE, SNAPSHOT_MIME, SNAPSHOT_QUALITY, type SnapshotCaptureMode, type SnapshotCaptureResult, type SnapshotCropRegion, type SnapshotPipeline, type SnapshotSize, type StudioBackdrop, THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH, } from './lib/snapshot-pipeline';
|
|
57
69
|
export { buildTerrainPerimeterFillGeometry, type TerrainPerimeterPoint, } from './lib/terrain-perimeter-fill';
|
|
58
70
|
export { getPascalTextureRef, type PascalTextureColorSpace, type PascalTextureMap, type PascalTextureRef, stampPascalTextureRef, textureMapForSlot, } from './lib/texture-reference';
|
|
59
71
|
export { packNormalToRGB, unpackRGBToNormal } from './lib/tsl-compat';
|
|
60
|
-
export { AMBIANCE_SECONDS, ambianceNow, ambianceTarget, easeAmbiance, eyeUnderTheGround, FADE_SECONDS, groundHoleOpenNode, groundHoleOpenNow, stepAmbianceProgress, temporarilyWithoutAmbiance, UNDERGROUND_RIM,
|
|
72
|
+
export { AMBIANCE_SECONDS, ambianceNow, ambianceTarget, easeAmbiance, eyeUnderTheGround, FADE_SECONDS, groundHoleOpenNode, groundHoleOpenNow, stepAmbianceProgress, temporarilyWithoutAmbiance, UNDERGROUND_RIM, undergroundAmbianceNode, } from './lib/underground-ambiance';
|
|
73
|
+
export { ASSETS_CDN_URL, configureViewer, getViewerConfig, type ViewerConfig, } from './lib/viewer-config';
|
|
61
74
|
export { createZoneShape, createZoneWallGeometry } from './lib/zone-geometry';
|
|
62
75
|
export type { LightSource } from './store/use-item-light-pool';
|
|
63
76
|
export { catalogLightSource, useItemLightPool } from './store/use-item-light-pool';
|
|
64
|
-
export {
|
|
65
|
-
export { CEILING_REGION_MESH, type CeilingRegionMaterial, CeilingSystem, } from './systems/ceiling/ceiling-system';
|
|
77
|
+
export { applyCountryUnitDefault, DEFAULT_UNDERGROUND_LOOK, default as useViewer, type GroundMode, groundVeiled, type MetricNotation, type RenderQuality, type RenderQualityChoice, siteGroundShown, type UndergroundEdge, type UndergroundLook, type UndergroundTransition, type WalkthroughMovement, type WallMode, } from './store/use-viewer';
|
|
78
|
+
export { CEILING_CAP_MESH, CEILING_REGION_MESH, type CeilingRegionMaterial, CeilingSystem, } from './systems/ceiling/ceiling-system';
|
|
66
79
|
export { createColumnBoxGeometry, createColumnCylinderGeometry, createColumnSphereGeometry, createColumnTorusGeometry, } from './systems/column/column-geometry';
|
|
67
80
|
export { ConstructionReveal, type ConstructionRevealDriver, type ConstructionRevealLevel, type ConstructionRevealOptions, emitRevealPuff, getRetractTurn, getRevealPlanSpeed, getRevealPlanState, getRevealTurn, isNodeRevealing, isRevealAssembling, type RetractResult, type RevealCompleteEvent, type RevealEvent, type RevealFinaleEvent, type RevealGroupEvent, type RevealNodeStartEvent, type RevealPhaseEvent, type RevealPlanState, type RevealPreroll, type RevealRetractEvent, retractNodes, revealChangedNodeIds, revealClockMs, revealMotionOff, seatLiftedNow, setRevealPreroll, startConstructionReveal, subscribeRevealAssembling, subscribeRevealEvents, subscribeRevealPhases, subscribeRevealTicks, useRevealPending, useRevealPlanActive, useRevealWaiting, } from './systems/construction-reveal/construction-reveal';
|
|
68
81
|
export { DoorAnimationSystem } from './systems/door/door-animation-system';
|
|
69
82
|
export { buildDoorPreviewMesh, DoorSystem, poseDoorMovingParts } from './systems/door/door-system';
|
|
70
83
|
export { ElevatorInteractionSystem } from './systems/elevator/elevator-interaction-system';
|
|
71
84
|
export { FloorElevationSystem } from './systems/floor-elevation/floor-elevation-system';
|
|
85
|
+
export { type GeometryFailure, setGeometryFailure, useGeometryStatus, } from './systems/geometry/geometry-status';
|
|
72
86
|
export { GuideSystem } from './systems/guide/guide-system';
|
|
73
87
|
export { InteractiveSystem } from './systems/interactive/interactive-system';
|
|
88
|
+
export { openingSettled, proceduralSettled } from './systems/interactive/opening-settled';
|
|
74
89
|
export { type ScriptedClipActions, ScriptedClips, useClipActions, } from './systems/interactive/scripted-clips';
|
|
75
90
|
export { ItemSystem } from './systems/item/item-system';
|
|
76
91
|
export { ItemLightSystem } from './systems/item-light/item-light-system';
|
|
92
|
+
export { itemLightsForCapture } from './systems/item-light/pooled-lights';
|
|
77
93
|
export { LevelSystem } from './systems/level/level-system';
|
|
78
94
|
export { EXPLODED_GAP, getLevelPresentationY, presentLevelsForCapture, snapLevelsToTruePositions, } from './systems/level/level-utils';
|
|
79
|
-
export {
|
|
80
|
-
export {
|
|
95
|
+
export { ROOF_GABLE_LEFT_MATERIAL_INDEX, ROOF_GABLE_RIGHT_MATERIAL_INDEX, ROOF_HEEL_MATERIAL_INDEX, ROOF_RENDER_MATERIAL_COUNT, } from './systems/roof/roof-material-slots';
|
|
96
|
+
export { getRoofMaterialArray, levelWallCladdingRef, levelWallFaceRef, } from './systems/roof/roof-materials';
|
|
97
|
+
export { clipDirectRoofGeometryAgainstSiblings, clipGeometryBySegmentTrim, generateRoofSegmentGeometry, getPendingRoofMergeCount, getRoofOuterSurfaceFrameAtPoint, getRoofSegmentBrushes, mapRoofGroupMaterialIndex, ROOF_MATERIAL_SLOT_COUNT, type RoofGeometryAdapter, RoofSystem, remapRoofShellFaces, roofCsgDummyMats, type SurfaceFrame, splitRoofWallBandFaces, } from './systems/roof/roof-system';
|
|
81
98
|
export { ScanSystem } from './systems/scan/scan-system';
|
|
82
99
|
export { generateSlabGeometry } from './systems/slab/slab-system';
|
|
83
100
|
export { getStairBodyMaterials, getStairRailingMaterial, getStraightStairSegmentBodyMaterials, type StairBodyMaterials, } from './systems/stair/stair-materials';
|
|
@@ -88,7 +105,8 @@ export { WallCutoutCache, type WallCutoutViewerState, type WallCutoutViewerStore
|
|
|
88
105
|
export { getWallFaceBaseAt, getWallFinishData, getWallFinishRefs, type WallFinishGeometryData, } from './systems/wall/wall-finish-data';
|
|
89
106
|
export { getMaterialsForWall, getVisibleWallMaterials, type WallMaterialOverride, type WallMaterials, type WallMaterialsResolver, } from './systems/wall/wall-materials';
|
|
90
107
|
export { drainRebuiltWalls, generateExtrudedWall, getPendingWallRebuildCount, isWallInitialBuildActive, runWallBuildFrame, type WallGeometryAdapter, type WallGeometryAdapterContext, WallSystem, } from './systems/wall/wall-system';
|
|
91
|
-
export { poseWindowMovingParts, WindowAnimationSystem, } from './systems/window/window-animation-system';
|
|
108
|
+
export { advanceWindowAnimations, poseWindowMovingParts, WindowAnimationSystem, } from './systems/window/window-animation-system';
|
|
109
|
+
export { restoreWindowRollerShutter } from './systems/window/window-roller-shutter';
|
|
92
110
|
export { buildWindowPreviewMesh, WindowSystem } from './systems/window/window-system';
|
|
93
111
|
export { ZoneSystem } from './systems/zone/zone-system';
|
|
94
112
|
export { useImmersiveXRPresentation } from './xr/presentation-context';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAO3D,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -10,8 +10,12 @@ export { ErrorBoundary } from './components/error-boundary';
|
|
|
10
10
|
// `@pascal-app/nodes/<kind>/renderer.tsx` and are loaded by the registry
|
|
11
11
|
// — no per-kind re-exports needed.
|
|
12
12
|
export { NodeRenderer } from './components/renderers/node-renderer';
|
|
13
|
+
// The generic renderer of a kind that ships `def.geometry`, for a kind's renderer that draws
|
|
14
|
+
// something beside its built group.
|
|
15
|
+
export { ParametricNodeRenderer } from './components/renderers/parametric-node-renderer';
|
|
13
16
|
export { default as Viewer, pendingSceneBuildCount, } from './components/viewer';
|
|
14
17
|
export { default as BVHEcctrl, } from './components/viewer/bvh-ecctrl';
|
|
18
|
+
export { DroneController, } from './components/viewer/drone-controller';
|
|
15
19
|
export { buildGlbInteractiveItems, GlbInteractive, } from './components/viewer/glb-interactive';
|
|
16
20
|
export { buildGlbReferenceNodes, buildGlbReplaceNodes, } from './components/viewer/glb-reference-nodes';
|
|
17
21
|
export { GlbScene, resolveGlbPick, } from './components/viewer/glb-scene';
|
|
@@ -20,20 +24,28 @@ export { DEFAULT_HOVER_STYLES, SSGI_PARAMS, } from './components/viewer/post-pro
|
|
|
20
24
|
export { SceneAtmosphere, useSceneAtmosphere, } from './components/viewer/scene-atmosphere';
|
|
21
25
|
export { SceneEnvironment } from './components/viewer/scene-environment';
|
|
22
26
|
export { claimSceneGround, SceneGroundReplacement, useSceneGroundReplacement, } from './components/viewer/scene-ground-replacement';
|
|
27
|
+
export { SelectionCallout, } from './components/viewer/selection-callout';
|
|
23
28
|
export { applyWalkthroughCameraClipping } from './components/viewer/viewer-camera';
|
|
24
29
|
export { isViewerPresentationTextureBorrowed, markViewerPresentationTextureBorrowed, registerViewerPresentation, ViewerPresentations, viewerPresentationRegistry, } from './components/viewer/viewer-presentations';
|
|
25
30
|
export { useAssetUrl } from './hooks/use-asset-url';
|
|
26
31
|
export { useGLTFKTX2 } from './hooks/use-gltf-ktx2';
|
|
27
32
|
export { useLibraryMaterialsVersion } from './hooks/use-library-materials-version';
|
|
28
33
|
export { useNodeEvents } from './hooks/use-node-events';
|
|
29
|
-
export {
|
|
34
|
+
export { resolveAssetUrl, resolveCdnUrl } from './lib/asset-url';
|
|
30
35
|
export { backdropColors, backdropGradient, deepSkyColor, horizonHazeColor } from './lib/backdrop';
|
|
31
36
|
export { applyWorldScaleBoxUVs } from './lib/box-uv';
|
|
32
37
|
// CSG primitives — used by chimney's roof-trim and other kinds whose
|
|
33
38
|
// geometry subtracts pieces against their host. Lives in viewer
|
|
34
39
|
// because three-bvh-csg / three-mesh-bvh are viewer-only deps.
|
|
35
40
|
export { ADDITION, Brush, computeGeometryBoundsTree, csgEvaluator, csgGeometry, csgMaterials, Evaluator, ensureRenderableGeometryAttributes, INTERSECTION, prepareBrushForCSG, SUBTRACTION, } from './lib/csg-utils';
|
|
41
|
+
export { createDaylightGroundMaterial, DAYLIGHT_GROUND, DAYLIGHT_PARCEL, daylightGroundColor, } from './lib/daylight/ground';
|
|
42
|
+
export { requestDeviceLocation, resolveLocation, } from './lib/daylight/location';
|
|
43
|
+
export { isDaylightAtmosphere } from './lib/daylight/look';
|
|
44
|
+
export { WEATHER_COVER } from './lib/daylight/sky';
|
|
45
|
+
export { presetInstant, skyPhase, solarClockInstant, solarClockMinutes, solarPosition, sunEvents, } from './lib/daylight/solar';
|
|
36
46
|
export { disposeObject3DResources } from './lib/dispose-object3d';
|
|
47
|
+
export { createDroneInput, DRONE_SLOW_MULTIPLIER, seedDroneLook, stepDroneFlight, turnFirstPersonLook, } from './lib/drone-flight';
|
|
48
|
+
export { markHighlight, tintEmissive } from './lib/editor-highlight';
|
|
37
49
|
export { BLOCK_MASONRY, concreteMaterial, masonryMaterial, STRUCTURE_COLORS, } from './lib/foundation-materials';
|
|
38
50
|
export { preserveGltfUnlit } from './lib/gltf-unlit';
|
|
39
51
|
export { PERF_OVERLAY_ENABLED } from './lib/gpu-perf';
|
|
@@ -46,6 +58,8 @@ export { LayerPassIndex } from './lib/layer-pass';
|
|
|
46
58
|
export { BATCHED_LAYER, GRID_LAYER, OVERLAY_LAYER, SCENE_LAYER, SHADOW_ONLY_LAYER, setSurfaceRaycastLayers, ZONE_LAYER, } from './lib/layers';
|
|
47
59
|
export { holdLiveFrame } from './lib/live-frame-hold';
|
|
48
60
|
export { applyMaterialPresetToMaterials, BLUEPRINT_PALETTE, baseMaterial, CLAY_PALETTE, clearMaterialCache, createDefaultMaterial, createMaterial, createMaterialFromPreset, createMaterialFromPresetRef, createSurfaceRoleMaterial, DEFAULT_CEILING_MATERIAL, DEFAULT_DOOR_MATERIAL, DEFAULT_ROOF_MATERIAL, DEFAULT_SHELF_MATERIAL, DEFAULT_SLAB_MATERIAL, DEFAULT_STAIR_MATERIAL, DEFAULT_WALL_MATERIAL, DEFAULT_WINDOW_MATERIAL, disposeMaterial, getMaterialTextureVersion, glassMaterial, MONO_PALETTE, materialCastsShadow, materialTextureLoadState, PRESET_PALETTES, registerMaterialCacheCleanup, resolveMaterialRef, resolveSlotDefaultMaterial, resolveSurfaceColor, setSlotDefaultOverrides, WHITE_PALETTE, } from './lib/materials';
|
|
61
|
+
export * from './lib/measurement-label';
|
|
62
|
+
export * from './lib/measurement-presentation';
|
|
49
63
|
export { mergedOutline } from './lib/merged-outline-node';
|
|
50
64
|
export { createNodeTopSurfaceHeightSampler } from './lib/node-top-surface-height';
|
|
51
65
|
export * from './lib/perf-actions';
|
|
@@ -61,16 +75,17 @@ export { createSceneSupportHeightSampler } from './lib/scene-support-height';
|
|
|
61
75
|
export { getSceneTheme, SCENE_THEME_IDS, SCENE_THEMES, } from './lib/scene-themes';
|
|
62
76
|
export { hideFromScene, showInScene, temporarilyShowPresentation, temporarilyShowShadowOnly, } from './lib/scene-visibility';
|
|
63
77
|
export { SCRIPTED_MODEL_FLAG } from './lib/scripted-opening';
|
|
64
|
-
export {
|
|
78
|
+
export { SITE_GROUND, siteGround, siteSurfaces, temporarilyVeilGround, } from './lib/site-surfaces';
|
|
65
79
|
export { createPlainSnapshotPipeline, createSnapshotPipeline, SNAPSHOT_MAX_EDGE, SNAPSHOT_MIME, SNAPSHOT_QUALITY, THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH, } from './lib/snapshot-pipeline';
|
|
66
80
|
export { buildTerrainPerimeterFillGeometry, } from './lib/terrain-perimeter-fill';
|
|
67
81
|
export { getPascalTextureRef, stampPascalTextureRef, textureMapForSlot, } from './lib/texture-reference';
|
|
68
82
|
export { packNormalToRGB, unpackRGBToNormal } from './lib/tsl-compat';
|
|
69
|
-
export { AMBIANCE_SECONDS, ambianceNow, ambianceTarget, easeAmbiance, eyeUnderTheGround, FADE_SECONDS, groundHoleOpenNode, groundHoleOpenNow, stepAmbianceProgress, temporarilyWithoutAmbiance, UNDERGROUND_RIM,
|
|
83
|
+
export { AMBIANCE_SECONDS, ambianceNow, ambianceTarget, easeAmbiance, eyeUnderTheGround, FADE_SECONDS, groundHoleOpenNode, groundHoleOpenNow, stepAmbianceProgress, temporarilyWithoutAmbiance, UNDERGROUND_RIM, undergroundAmbianceNode, } from './lib/underground-ambiance';
|
|
84
|
+
export { ASSETS_CDN_URL, configureViewer, getViewerConfig, } from './lib/viewer-config';
|
|
70
85
|
export { createZoneShape, createZoneWallGeometry } from './lib/zone-geometry';
|
|
71
86
|
export { catalogLightSource, useItemLightPool } from './store/use-item-light-pool';
|
|
72
|
-
export {
|
|
73
|
-
export { CEILING_REGION_MESH, CeilingSystem, } from './systems/ceiling/ceiling-system';
|
|
87
|
+
export { applyCountryUnitDefault, DEFAULT_UNDERGROUND_LOOK, default as useViewer, groundVeiled, siteGroundShown, } from './store/use-viewer';
|
|
88
|
+
export { CEILING_CAP_MESH, CEILING_REGION_MESH, CeilingSystem, } from './systems/ceiling/ceiling-system';
|
|
74
89
|
export { createColumnBoxGeometry, createColumnCylinderGeometry, createColumnSphereGeometry, createColumnTorusGeometry, } from './systems/column/column-geometry';
|
|
75
90
|
export { ConstructionReveal, emitRevealPuff, getRetractTurn, getRevealPlanSpeed, getRevealPlanState, getRevealTurn, isNodeRevealing, isRevealAssembling, retractNodes, revealChangedNodeIds, revealClockMs, revealMotionOff, seatLiftedNow, setRevealPreroll, startConstructionReveal, subscribeRevealAssembling, subscribeRevealEvents, subscribeRevealPhases, subscribeRevealTicks, useRevealPending, useRevealPlanActive, useRevealWaiting, } from './systems/construction-reveal/construction-reveal';
|
|
76
91
|
export { DoorAnimationSystem } from './systems/door/door-animation-system';
|
|
@@ -81,22 +96,26 @@ export { ElevatorInteractionSystem } from './systems/elevator/elevator-interacti
|
|
|
81
96
|
// elevation under its footprint. Replaces the per-kind elevation block
|
|
82
97
|
// that used to live inside `ItemSystem`.
|
|
83
98
|
export { FloorElevationSystem } from './systems/floor-elevation/floor-elevation-system';
|
|
99
|
+
export { setGeometryFailure, useGeometryStatus, } from './systems/geometry/geometry-status';
|
|
84
100
|
export { GuideSystem } from './systems/guide/guide-system';
|
|
85
101
|
export { InteractiveSystem } from './systems/interactive/interactive-system';
|
|
102
|
+
export { openingSettled, proceduralSettled } from './systems/interactive/opening-settled';
|
|
86
103
|
export { ScriptedClips, useClipActions, } from './systems/interactive/scripted-clips';
|
|
87
104
|
// Item systems for the registry-driven item definition. ItemSystem
|
|
88
105
|
// applies attachTo-driven transforms each frame; ItemLightSystem
|
|
89
106
|
// manages item-mounted light sources.
|
|
90
107
|
export { ItemSystem } from './systems/item/item-system';
|
|
91
108
|
export { ItemLightSystem } from './systems/item-light/item-light-system';
|
|
109
|
+
export { itemLightsForCapture } from './systems/item-light/pooled-lights';
|
|
92
110
|
export { LevelSystem } from './systems/level/level-system';
|
|
93
111
|
export { EXPLODED_GAP, getLevelPresentationY, presentLevelsForCapture, snapLevelsToTruePositions, } from './systems/level/level-utils';
|
|
94
|
-
export {
|
|
112
|
+
export { ROOF_GABLE_LEFT_MATERIAL_INDEX, ROOF_GABLE_RIGHT_MATERIAL_INDEX, ROOF_HEEL_MATERIAL_INDEX, ROOF_RENDER_MATERIAL_COUNT, } from './systems/roof/roof-material-slots';
|
|
113
|
+
export { getRoofMaterialArray, levelWallCladdingRef, levelWallFaceRef, } from './systems/roof/roof-materials';
|
|
95
114
|
// Generic roof-segment primitives. Kinds that compose CSG against
|
|
96
115
|
// the roof shell (chimney's self-trim, dormer's virtual-segment cut)
|
|
97
116
|
// read these through the public surface. No kind-specific helpers
|
|
98
117
|
// belong here — those live in `@pascal-app/nodes/<kind>/`.
|
|
99
|
-
export { clipDirectRoofGeometryAgainstSiblings, clipGeometryBySegmentTrim, generateRoofSegmentGeometry, getPendingRoofMergeCount, getRoofOuterSurfaceFrameAtPoint, getRoofSegmentBrushes, mapRoofGroupMaterialIndex, ROOF_MATERIAL_SLOT_COUNT, RoofSystem, remapRoofShellFaces, roofCsgDummyMats, } from './systems/roof/roof-system';
|
|
118
|
+
export { clipDirectRoofGeometryAgainstSiblings, clipGeometryBySegmentTrim, generateRoofSegmentGeometry, getPendingRoofMergeCount, getRoofOuterSurfaceFrameAtPoint, getRoofSegmentBrushes, mapRoofGroupMaterialIndex, ROOF_MATERIAL_SLOT_COUNT, RoofSystem, remapRoofShellFaces, roofCsgDummyMats, splitRoofWallBandFaces, } from './systems/roof/roof-system';
|
|
100
119
|
export { ScanSystem } from './systems/scan/scan-system';
|
|
101
120
|
// Pure slab geometry generator — composed into the registry-driven slab
|
|
102
121
|
// definition's `def.geometry` in `@pascal-app/nodes`.
|
|
@@ -116,7 +135,8 @@ export { getMaterialsForWall, getVisibleWallMaterials, } from './systems/wall/wa
|
|
|
116
135
|
// 800+ lines of CSG / mitering logic during Phase 3. These exports are
|
|
117
136
|
// removed in Phase 6 when the legacy mount points are deleted.
|
|
118
137
|
export { drainRebuiltWalls, generateExtrudedWall, getPendingWallRebuildCount, isWallInitialBuildActive, runWallBuildFrame, WallSystem, } from './systems/wall/wall-system';
|
|
119
|
-
export { poseWindowMovingParts, WindowAnimationSystem, } from './systems/window/window-animation-system';
|
|
138
|
+
export { advanceWindowAnimations, poseWindowMovingParts, WindowAnimationSystem, } from './systems/window/window-animation-system';
|
|
139
|
+
export { restoreWindowRollerShutter } from './systems/window/window-roller-shutter';
|
|
120
140
|
export { buildWindowPreviewMesh, WindowSystem } from './systems/window/window-system';
|
|
121
141
|
export { ZoneSystem } from './systems/zone/zone-system';
|
|
122
142
|
export { useImmersiveXRPresentation } from './xr/presentation-context';
|
package/dist/lib/asset-url.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-url.d.ts","sourceRoot":"","sources":["../../src/lib/asset-url.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"asset-url.d.ts","sourceRoot":"","sources":["../../src/lib/asset-url.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkB5F;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAoB3E"}
|
package/dist/lib/asset-url.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { loadAssetUrl, resolveArtifactUrl } from '@pascal-app/core';
|
|
2
|
-
|
|
2
|
+
import { getViewerConfig } from './viewer-config';
|
|
3
3
|
/**
|
|
4
4
|
* Resolves an asset URL to the appropriate format:
|
|
5
5
|
* - If URL starts with http:// or https://, return as-is (external URL)
|
|
@@ -22,7 +22,7 @@ export async function resolveAssetUrl(url) {
|
|
|
22
22
|
}
|
|
23
23
|
// Absolute or relative path - prepend CDN URL
|
|
24
24
|
const normalizedPath = url.startsWith('/') ? url : `/${url}`;
|
|
25
|
-
return `${
|
|
25
|
+
return `${getViewerConfig().assetsBaseUrl.replace(/\/$/, '')}${normalizedPath}`;
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* Synchronous version for URLs that don't need IndexedDB resolution
|
|
@@ -46,5 +46,5 @@ export function resolveCdnUrl(url) {
|
|
|
46
46
|
}
|
|
47
47
|
// Absolute or relative path - prepend CDN URL
|
|
48
48
|
const normalizedPath = url.startsWith('/') ? url : `/${url}`;
|
|
49
|
-
return `${
|
|
49
|
+
return `${getViewerConfig().assetsBaseUrl.replace(/\/$/, '')}${normalizedPath}`;
|
|
50
50
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { MeshLambertNodeMaterial, MeshStandardNodeMaterial } from 'three/webgpu';
|
|
2
|
+
/** Neutral ground of the colored appearance, and the slightly fresher parcel inside the site. */
|
|
3
|
+
export declare const DAYLIGHT_GROUND = "#a1a1a1";
|
|
4
|
+
export declare const DAYLIGHT_PARCEL = "#afaeaa";
|
|
5
|
+
/**
|
|
6
|
+
* The ground around the parcel: faint squares that stay a few pixels wide at every distance (a
|
|
7
|
+
* mip-like ladder of square sizes, so no shimmer towards the horizon) over long diagonal bands.
|
|
8
|
+
* World-anchored; the horizon blend comes from the atmosphere's fog.
|
|
9
|
+
*/
|
|
10
|
+
export declare function daylightGroundColor(base?: any): any;
|
|
11
|
+
/**
|
|
12
|
+
* A matte daylight ground material: Standard (lit by the sky environment) in rendered shading,
|
|
13
|
+
* Lambert in solid shading, where every surface is Lambert and the sky comes as a hemisphere light.
|
|
14
|
+
* With `horizon` (the atmosphere's horizon radiance), the lit ground blends into the sky with
|
|
15
|
+
* horizontal distance (250 m → 2.6 km) — on the lit output, so the lighting can't band it.
|
|
16
|
+
*/
|
|
17
|
+
export declare function createDaylightGroundMaterial(solid: boolean, options?: {
|
|
18
|
+
color?: string;
|
|
19
|
+
horizon?: (direction: any) => any;
|
|
20
|
+
}): MeshLambertNodeMaterial | MeshStandardNodeMaterial;
|
|
21
|
+
//# sourceMappingURL=ground.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ground.d.ts","sourceRoot":"","sources":["../../../src/lib/daylight/ground.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAEhF,iGAAiG;AACjG,eAAO,MAAM,eAAe,YAAY,CAAA;AACxC,eAAO,MAAM,eAAe,YAAY,CAAA;AAKxC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,GAA4B,GAAG,GAAG,CAc3E;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,OAAO,EACd,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAAG,CAAA;CAAO,GAClE,uBAAuB,GAAG,wBAAwB,CAgBpD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { cameraPosition, clamp, color, exp2, floor, fract, fwidth, length, max, mix, normalize, output, positionWorld, sin, smoothstep, vec2, vec4, } from 'three/tsl';
|
|
2
|
+
import { MeshLambertNodeMaterial, MeshStandardNodeMaterial } from 'three/webgpu';
|
|
3
|
+
/** Neutral ground of the colored appearance, and the slightly fresher parcel inside the site. */
|
|
4
|
+
export const DAYLIGHT_GROUND = '#a1a1a1';
|
|
5
|
+
export const DAYLIGHT_PARCEL = '#afaeaa';
|
|
6
|
+
/** Horizontal distance (m) over which the ground fades into the horizon sky. */
|
|
7
|
+
const HORIZON_FADE_NEAR = 250;
|
|
8
|
+
const HORIZON_FADE_FAR = 2600;
|
|
9
|
+
/**
|
|
10
|
+
* The ground around the parcel: faint squares that stay a few pixels wide at every distance (a
|
|
11
|
+
* mip-like ladder of square sizes, so no shimmer towards the horizon) over long diagonal bands.
|
|
12
|
+
* World-anchored; the horizon blend comes from the atmosphere's fog.
|
|
13
|
+
*/
|
|
14
|
+
export function daylightGroundColor(base = color(DAYLIGHT_GROUND)) {
|
|
15
|
+
const p = positionWorld.xz;
|
|
16
|
+
const texel = max(fwidth(p.x), fwidth(p.y));
|
|
17
|
+
const lod = clamp(texel.mul(1.7).mul(4).max(1e-6).log2(), 0, 8);
|
|
18
|
+
const l0 = lod.floor();
|
|
19
|
+
const squares = (level) => {
|
|
20
|
+
const scale = vec2(1.7).div(exp2(level));
|
|
21
|
+
// fract(sin) hash: three's `hash` casts to uint, which collapses every negative cell to one value.
|
|
22
|
+
const cell = floor(p.mul(scale)).add(vec2(level.mul(37), level.mul(11)));
|
|
23
|
+
return fract(sin(cell.dot(vec2(12.9898, 78.233))).mul(43758.5453)).sub(0.5);
|
|
24
|
+
};
|
|
25
|
+
const noise = mix(squares(l0), squares(l0.add(1)), lod.sub(l0)).mul(0.06);
|
|
26
|
+
const bands = sin(p.x.mul(0.31).add(p.y.mul(0.17))).mul(0.02);
|
|
27
|
+
return base.mul(noise.add(bands).add(1));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A matte daylight ground material: Standard (lit by the sky environment) in rendered shading,
|
|
31
|
+
* Lambert in solid shading, where every surface is Lambert and the sky comes as a hemisphere light.
|
|
32
|
+
* With `horizon` (the atmosphere's horizon radiance), the lit ground blends into the sky with
|
|
33
|
+
* horizontal distance (250 m → 2.6 km) — on the lit output, so the lighting can't band it.
|
|
34
|
+
*/
|
|
35
|
+
export function createDaylightGroundMaterial(solid, options = {}) {
|
|
36
|
+
const material = solid
|
|
37
|
+
? new MeshLambertNodeMaterial()
|
|
38
|
+
: new MeshStandardNodeMaterial({ roughness: 0.95, metalness: 0 });
|
|
39
|
+
// The grounds skip the room system (the dilated room map would light a strip of lawn); they
|
|
40
|
+
// still receive the window spill and exterior lamps at night.
|
|
41
|
+
material.userData.noRooms = true;
|
|
42
|
+
if (options.color)
|
|
43
|
+
material.color.set(options.color);
|
|
44
|
+
else
|
|
45
|
+
material.colorNode = daylightGroundColor();
|
|
46
|
+
if (options.horizon) {
|
|
47
|
+
const d = positionWorld.sub(cameraPosition);
|
|
48
|
+
const fade = smoothstep(HORIZON_FADE_NEAR, HORIZON_FADE_FAR, length(d.xz));
|
|
49
|
+
material.fog = false;
|
|
50
|
+
material.outputNode = vec4(mix(output.rgb, options.horizon(normalize(d)), fade), output.a);
|
|
51
|
+
}
|
|
52
|
+
return material;
|
|
53
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the sun is computed for. In order: the site's own geocoded point, a device location the
|
|
3
|
+
* user granted (cached by the host), a coarse guess from the browser's timezone, a mid-latitude
|
|
4
|
+
* default. Never prompts by itself: requesting the device location is a user action.
|
|
5
|
+
*/
|
|
6
|
+
export type LatLng = {
|
|
7
|
+
lat: number;
|
|
8
|
+
lng: number;
|
|
9
|
+
};
|
|
10
|
+
export type LocationSource = 'site' | 'device' | 'timezone' | 'default';
|
|
11
|
+
type SiteLike = {
|
|
12
|
+
parcel?: {
|
|
13
|
+
originLngLat?: readonly [number, number] | null;
|
|
14
|
+
} | null;
|
|
15
|
+
dossier?: {
|
|
16
|
+
point?: {
|
|
17
|
+
lat?: number;
|
|
18
|
+
lng?: number;
|
|
19
|
+
} | null;
|
|
20
|
+
} | null;
|
|
21
|
+
};
|
|
22
|
+
export declare function siteLocation(site: SiteLike | null | undefined): LatLng | null;
|
|
23
|
+
export declare const DEFAULT_LOCATION: LatLng;
|
|
24
|
+
export declare function timezoneLocation(timeZone?: string): LatLng | null;
|
|
25
|
+
export declare function resolveLocation(site: SiteLike | null | undefined, device: LatLng | null | undefined): {
|
|
26
|
+
location: LatLng;
|
|
27
|
+
source: LocationSource;
|
|
28
|
+
};
|
|
29
|
+
/** Ask the browser for the device position (call from a user gesture). */
|
|
30
|
+
export declare function requestDeviceLocation(): Promise<LatLng>;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=location.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../../../src/lib/daylight/location.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AACjD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAA;AAEvE,KAAK,QAAQ,GAAG;IACd,MAAM,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;IACnE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;CACnE,CAAA;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAQ7E;AA6BD,eAAO,MAAM,gBAAgB,EAAE,MAAmC,CAAA;AAElE,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUjE;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EACjC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAChC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAO9C;AAED,0EAA0E;AAC1E,wBAAgB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAYvD"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the sun is computed for. In order: the site's own geocoded point, a device location the
|
|
3
|
+
* user granted (cached by the host), a coarse guess from the browser's timezone, a mid-latitude
|
|
4
|
+
* default. Never prompts by itself: requesting the device location is a user action.
|
|
5
|
+
*/
|
|
6
|
+
export function siteLocation(site) {
|
|
7
|
+
const origin = site?.parcel?.originLngLat;
|
|
8
|
+
if (origin && Number.isFinite(origin[0]) && Number.isFinite(origin[1]))
|
|
9
|
+
return { lat: origin[1], lng: origin[0] };
|
|
10
|
+
const point = site?.dossier?.point;
|
|
11
|
+
if (point && Number.isFinite(point.lat) && Number.isFinite(point.lng))
|
|
12
|
+
return { lat: point.lat, lng: point.lng };
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
/** A representative city per common IANA zone — only to pick a plausible latitude/longitude. */
|
|
16
|
+
const ZONE_POINTS = {
|
|
17
|
+
'America/New_York': { lat: 40.71, lng: -74.0 },
|
|
18
|
+
'America/Chicago': { lat: 41.88, lng: -87.63 },
|
|
19
|
+
'America/Denver': { lat: 39.74, lng: -104.99 },
|
|
20
|
+
'America/Phoenix': { lat: 33.45, lng: -112.07 },
|
|
21
|
+
'America/Los_Angeles': { lat: 34.05, lng: -118.24 },
|
|
22
|
+
'America/Toronto': { lat: 43.65, lng: -79.38 },
|
|
23
|
+
'America/Vancouver': { lat: 49.28, lng: -123.12 },
|
|
24
|
+
'America/Mexico_City': { lat: 19.43, lng: -99.13 },
|
|
25
|
+
'America/Sao_Paulo': { lat: -23.55, lng: -46.63 },
|
|
26
|
+
'Europe/London': { lat: 51.51, lng: -0.13 },
|
|
27
|
+
'Europe/Paris': { lat: 48.86, lng: 2.35 },
|
|
28
|
+
'Europe/Berlin': { lat: 52.52, lng: 13.4 },
|
|
29
|
+
'Europe/Madrid': { lat: 40.42, lng: -3.7 },
|
|
30
|
+
'Europe/Rome': { lat: 41.9, lng: 12.5 },
|
|
31
|
+
'Europe/Amsterdam': { lat: 52.37, lng: 4.9 },
|
|
32
|
+
'Europe/Stockholm': { lat: 59.33, lng: 18.07 },
|
|
33
|
+
'Asia/Tokyo': { lat: 35.68, lng: 139.69 },
|
|
34
|
+
'Asia/Shanghai': { lat: 31.23, lng: 121.47 },
|
|
35
|
+
'Asia/Singapore': { lat: 1.35, lng: 103.82 },
|
|
36
|
+
'Asia/Dubai': { lat: 25.2, lng: 55.27 },
|
|
37
|
+
'Asia/Kolkata': { lat: 19.08, lng: 72.88 },
|
|
38
|
+
'Australia/Sydney': { lat: -33.87, lng: 151.21 },
|
|
39
|
+
'Pacific/Auckland': { lat: -36.85, lng: 174.76 },
|
|
40
|
+
};
|
|
41
|
+
export const DEFAULT_LOCATION = { lat: 40.71, lng: -74.0 };
|
|
42
|
+
export function timezoneLocation(timeZone) {
|
|
43
|
+
let zone = timeZone;
|
|
44
|
+
if (!zone) {
|
|
45
|
+
try {
|
|
46
|
+
zone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return (zone && ZONE_POINTS[zone]) || null;
|
|
53
|
+
}
|
|
54
|
+
export function resolveLocation(site, device) {
|
|
55
|
+
const fromSite = siteLocation(site);
|
|
56
|
+
if (fromSite)
|
|
57
|
+
return { location: fromSite, source: 'site' };
|
|
58
|
+
if (device)
|
|
59
|
+
return { location: device, source: 'device' };
|
|
60
|
+
const fromZone = timezoneLocation();
|
|
61
|
+
if (fromZone)
|
|
62
|
+
return { location: fromZone, source: 'timezone' };
|
|
63
|
+
return { location: DEFAULT_LOCATION, source: 'default' };
|
|
64
|
+
}
|
|
65
|
+
/** Ask the browser for the device position (call from a user gesture). */
|
|
66
|
+
export function requestDeviceLocation() {
|
|
67
|
+
return new Promise((resolve, reject) => {
|
|
68
|
+
if (typeof navigator === 'undefined' || !navigator.geolocation) {
|
|
69
|
+
reject(new Error('Geolocation is unavailable'));
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
navigator.geolocation.getCurrentPosition((position) => resolve({ lat: position.coords.latitude, lng: position.coords.longitude }), (error) => reject(error), { enableHighAccuracy: false, maximumAge: 24 * 3_600_000, timeout: 10_000 });
|
|
73
|
+
});
|
|
74
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Vector3 } from 'three';
|
|
2
|
+
import type { SceneAtmosphereSource } from '../../components/viewer/scene-atmosphere';
|
|
3
|
+
/** Daylight-specific outputs the post-processing reads (white balance). */
|
|
4
|
+
export type DaylightAtmosphereSource = SceneAtmosphereSource & {
|
|
5
|
+
/** Linear RGB gains: eye-like partial chromatic adaptation to the current illuminant. */
|
|
6
|
+
whiteBalance: Vector3;
|
|
7
|
+
/** The key light's shadow (the sun, or the moon at night): map size per quality tier. */
|
|
8
|
+
shadow: {
|
|
9
|
+
mapSize: number;
|
|
10
|
+
bias: number;
|
|
11
|
+
normalBias: number;
|
|
12
|
+
radius: number;
|
|
13
|
+
};
|
|
14
|
+
/** Sun elevation in degrees (negative at night). */
|
|
15
|
+
elevation: number;
|
|
16
|
+
};
|
|
17
|
+
export declare function isDaylightAtmosphere(source: unknown): source is DaylightAtmosphereSource;
|
|
18
|
+
/** The colored appearance's grade, vignette and bloom (viewport and snapshots alike). */
|
|
19
|
+
export declare const DAYLIGHT_GRADE: {
|
|
20
|
+
contrast: number;
|
|
21
|
+
saturation: number;
|
|
22
|
+
vignette: number;
|
|
23
|
+
};
|
|
24
|
+
export declare const DAYLIGHT_BLOOM: {
|
|
25
|
+
strength: number;
|
|
26
|
+
radius: number;
|
|
27
|
+
softKnee: number;
|
|
28
|
+
};
|
|
29
|
+
/** The daylight look ignores the scene theme: its ink edges are always the light-backdrop ink. */
|
|
30
|
+
export declare const DAYLIGHT_INK_BACKDROP = "#d4d8dc";
|
|
31
|
+
/** Scene-referred daylight grade: white balance, contrast around mid-grey, saturation. */
|
|
32
|
+
export declare function daylightGradeRgb(rgb: any, whiteBalance: any): any;
|
|
33
|
+
//# sourceMappingURL=look.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"look.d.ts","sourceRoot":"","sources":["../../../src/lib/daylight/look.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAEpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAA;AAErF,2EAA2E;AAC3E,MAAM,MAAM,wBAAwB,GAAG,qBAAqB,GAAG;IAC7D,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAA;IACrB,yFAAyF;IACzF,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7E,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,wBAAwB,CAExF;AAED,yFAAyF;AACzF,eAAO,MAAM,cAAc;IAAK,QAAQ;IAAQ,UAAU;IAAQ,QAAQ;CAAQ,CAAA;AAClF,eAAO,MAAM,cAAc;IAAK,QAAQ;IAAQ,MAAM;IAAQ,QAAQ;CAAO,CAAA;AAC7E,kGAAkG;AAClG,eAAO,MAAM,qBAAqB,YAAY,CAAA;AAE9C,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,GAAG,GAAG,CAKjE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { saturation, vec3 } from 'three/tsl';
|
|
2
|
+
export function isDaylightAtmosphere(source) {
|
|
3
|
+
return Boolean(source && source.whiteBalance);
|
|
4
|
+
}
|
|
5
|
+
/** The colored appearance's grade, vignette and bloom (viewport and snapshots alike). */
|
|
6
|
+
export const DAYLIGHT_GRADE = { contrast: 1.06, saturation: 1.06, vignette: 0.12 };
|
|
7
|
+
export const DAYLIGHT_BLOOM = { strength: 0.12, radius: 0.18, softKnee: 0.4 };
|
|
8
|
+
/** The daylight look ignores the scene theme: its ink edges are always the light-backdrop ink. */
|
|
9
|
+
export const DAYLIGHT_INK_BACKDROP = '#d4d8dc';
|
|
10
|
+
/** Scene-referred daylight grade: white balance, contrast around mid-grey, saturation. */
|
|
11
|
+
export function daylightGradeRgb(rgb, whiteBalance) {
|
|
12
|
+
return saturation(rgb.max(0).mul(whiteBalance).div(0.18).pow(vec3(DAYLIGHT_GRADE.contrast)).mul(0.18), DAYLIGHT_GRADE.saturation);
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"material-hooks.d.ts","sourceRoot":"","sources":["../../../src/lib/daylight/material-hooks.ts"],"names":[],"mappings":"AAmIA,wBAAgB,4BAA4B,IAAI,IAAI,CA4FnD"}
|