@aura3d/engine 1.0.2 → 1.0.5
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 +331 -16
- package/dist/animation/AnimationClipEvents.d.ts +57 -0
- package/dist/animation/AnimationClipEvents.d.ts.map +1 -0
- package/dist/animation/AnimationClipEvents.js +171 -0
- package/dist/animation/AnimationClipEvents.js.map +1 -0
- package/dist/animation/AnimationClipRegistry.d.ts +76 -0
- package/dist/animation/AnimationClipRegistry.d.ts.map +1 -0
- package/dist/animation/AnimationClipRegistry.js +130 -0
- package/dist/animation/AnimationClipRegistry.js.map +1 -0
- package/dist/animation/AnimationController.d.ts +168 -0
- package/dist/animation/AnimationController.d.ts.map +1 -0
- package/dist/animation/AnimationController.js +619 -0
- package/dist/animation/AnimationController.js.map +1 -0
- package/dist/animation/HumanoidRetargeting.d.ts +76 -0
- package/dist/animation/HumanoidRetargeting.d.ts.map +1 -0
- package/dist/animation/HumanoidRetargeting.js +331 -0
- package/dist/animation/HumanoidRetargeting.js.map +1 -0
- package/dist/animation/browser-index.d.ts +18 -0
- package/dist/animation/browser-index.d.ts.map +1 -1
- package/dist/animation/browser-index.js +13 -0
- package/dist/animation/browser-index.js.map +1 -1
- package/dist/animation/index.d.ts +16 -1
- package/dist/animation/index.d.ts.map +1 -1
- package/dist/animation/index.js +11 -1
- package/dist/animation/index.js.map +1 -1
- package/dist/animation/threejs-compatibility/AnimationDiagnostics.d.ts.map +1 -1
- package/dist/animation/threejs-compatibility/AnimationDiagnostics.js +3 -5
- package/dist/animation/threejs-compatibility/AnimationDiagnostics.js.map +1 -1
- package/dist/assets/GLTFAnimationRuntime.js +1 -1
- package/dist/assets/GLTFLoader.js +1 -1
- package/dist/aura3d-cli/cli.js +194 -8
- package/dist/aura3d-cli/cli.js.map +1 -1
- package/dist/aura3d-cli/index.d.ts +280 -3
- package/dist/aura3d-cli/index.d.ts.map +1 -1
- package/dist/aura3d-cli/index.js +886 -4
- package/dist/aura3d-cli/index.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge.d.ts +95 -0
- package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -0
- package/dist/aura3d-cli/pull-bridge.js +247 -0
- package/dist/aura3d-cli/pull-bridge.js.map +1 -0
- package/dist/create-aura3d/index.d.ts +1 -1
- package/dist/create-aura3d/index.d.ts.map +1 -1
- package/dist/create-aura3d/index.js +9 -2
- package/dist/create-aura3d/index.js.map +1 -1
- package/dist/editor-runtime/ProjectSerializer.d.ts +74 -1
- package/dist/editor-runtime/ProjectSerializer.d.ts.map +1 -1
- package/dist/editor-runtime/ProjectSerializer.js +123 -6
- package/dist/editor-runtime/ProjectSerializer.js.map +1 -1
- package/dist/editor-runtime/TimelineModel.d.ts +18 -0
- package/dist/editor-runtime/TimelineModel.d.ts.map +1 -1
- package/dist/editor-runtime/TimelineModel.js +67 -3
- package/dist/editor-runtime/TimelineModel.js.map +1 -1
- package/dist/editor-runtime/TimelineRuntimeBridge.d.ts +98 -0
- package/dist/editor-runtime/TimelineRuntimeBridge.d.ts.map +1 -0
- package/dist/editor-runtime/TimelineRuntimeBridge.js +186 -0
- package/dist/editor-runtime/TimelineRuntimeBridge.js.map +1 -0
- package/dist/editor-runtime/index.d.ts +3 -1
- package/dist/editor-runtime/index.d.ts.map +1 -1
- package/dist/editor-runtime/index.js +1 -0
- package/dist/editor-runtime/index.js.map +1 -1
- package/dist/engine/agent-api/AnimationController.d.ts +607 -0
- package/dist/engine/agent-api/AnimationController.d.ts.map +1 -0
- package/dist/engine/agent-api/AnimationController.js +2192 -0
- package/dist/engine/agent-api/AnimationController.js.map +1 -0
- package/dist/engine/agent-api/AssetEvidence.d.ts +88 -0
- package/dist/engine/agent-api/AssetEvidence.d.ts.map +1 -0
- package/dist/engine/agent-api/AssetEvidence.js +157 -0
- package/dist/engine/agent-api/AssetEvidence.js.map +1 -0
- package/dist/engine/agent-api/AuraAppHandle.d.ts +55 -0
- package/dist/engine/agent-api/AuraAppHandle.d.ts.map +1 -0
- package/dist/engine/agent-api/AuraAppHandle.js +15 -0
- package/dist/engine/agent-api/AuraAppHandle.js.map +1 -0
- package/dist/engine/agent-api/AuraVoiceBridge.d.ts +96 -0
- package/dist/engine/agent-api/AuraVoiceBridge.d.ts.map +1 -0
- package/dist/engine/agent-api/AuraVoiceBridge.js +370 -0
- package/dist/engine/agent-api/AuraVoiceBridge.js.map +1 -0
- package/dist/engine/agent-api/CartoonDirector.d.ts +95 -0
- package/dist/engine/agent-api/CartoonDirector.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonDirector.js +342 -0
- package/dist/engine/agent-api/CartoonDirector.js.map +1 -0
- package/dist/engine/agent-api/CartoonPerformance.d.ts +149 -0
- package/dist/engine/agent-api/CartoonPerformance.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonPerformance.js +317 -0
- package/dist/engine/agent-api/CartoonPerformance.js.map +1 -0
- package/dist/engine/agent-api/CartoonRenderQueue.d.ts +132 -0
- package/dist/engine/agent-api/CartoonRenderQueue.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonRenderQueue.js +385 -0
- package/dist/engine/agent-api/CartoonRenderQueue.js.map +1 -0
- package/dist/engine/agent-api/CharacterAssembly.d.ts +126 -0
- package/dist/engine/agent-api/CharacterAssembly.d.ts.map +1 -0
- package/dist/engine/agent-api/CharacterAssembly.js +280 -0
- package/dist/engine/agent-api/CharacterAssembly.js.map +1 -0
- package/dist/engine/agent-api/DialoguePerformance.d.ts +150 -0
- package/dist/engine/agent-api/DialoguePerformance.d.ts.map +1 -0
- package/dist/engine/agent-api/DialoguePerformance.js +335 -0
- package/dist/engine/agent-api/DialoguePerformance.js.map +1 -0
- package/dist/engine/agent-api/FrameLoop.d.ts +70 -0
- package/dist/engine/agent-api/FrameLoop.d.ts.map +1 -0
- package/dist/engine/agent-api/FrameLoop.js +165 -0
- package/dist/engine/agent-api/FrameLoop.js.map +1 -0
- package/dist/engine/agent-api/GameAssetValidation.d.ts +279 -0
- package/dist/engine/agent-api/GameAssetValidation.d.ts.map +1 -0
- package/dist/engine/agent-api/GameAssetValidation.js +719 -0
- package/dist/engine/agent-api/GameAssetValidation.js.map +1 -0
- package/dist/engine/agent-api/GameEvidence.d.ts +148 -0
- package/dist/engine/agent-api/GameEvidence.d.ts.map +1 -0
- package/dist/engine/agent-api/GameEvidence.js +269 -0
- package/dist/engine/agent-api/GameEvidence.js.map +1 -0
- package/dist/engine/agent-api/GameRuntime.d.ts +931 -0
- package/dist/engine/agent-api/GameRuntime.d.ts.map +1 -0
- package/dist/engine/agent-api/GameRuntime.js +2229 -0
- package/dist/engine/agent-api/GameRuntime.js.map +1 -0
- package/dist/engine/agent-api/GameSceneBridge.d.ts +54 -0
- package/dist/engine/agent-api/GameSceneBridge.d.ts.map +1 -0
- package/dist/engine/agent-api/GameSceneBridge.js +110 -0
- package/dist/engine/agent-api/GameSceneBridge.js.map +1 -0
- package/dist/engine/agent-api/PromptAnimationContract.d.ts +278 -0
- package/dist/engine/agent-api/PromptAnimationContract.d.ts.map +1 -0
- package/dist/engine/agent-api/PromptAnimationContract.js +238 -0
- package/dist/engine/agent-api/PromptAnimationContract.js.map +1 -0
- package/dist/engine/agent-api/PromptAnimationEvidence.d.ts +183 -0
- package/dist/engine/agent-api/PromptAnimationEvidence.d.ts.map +1 -0
- package/dist/engine/agent-api/PromptAnimationEvidence.js +454 -0
- package/dist/engine/agent-api/PromptAnimationEvidence.js.map +1 -0
- package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +100 -0
- package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -0
- package/dist/engine/agent-api/RuntimeNodeHandle.js +36 -0
- package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -0
- package/dist/engine/agent-api/ShotTimeline.d.ts +179 -0
- package/dist/engine/agent-api/ShotTimeline.d.ts.map +1 -0
- package/dist/engine/agent-api/ShotTimeline.js +264 -0
- package/dist/engine/agent-api/ShotTimeline.js.map +1 -0
- package/dist/engine/agent-api/VisemeController.d.ts +89 -0
- package/dist/engine/agent-api/VisemeController.d.ts.map +1 -0
- package/dist/engine/agent-api/VisemeController.js +207 -0
- package/dist/engine/agent-api/VisemeController.js.map +1 -0
- package/dist/engine/agent-api/game-kits/fighting.d.ts +123 -0
- package/dist/engine/agent-api/game-kits/fighting.d.ts.map +1 -0
- package/dist/engine/agent-api/game-kits/fighting.js +483 -0
- package/dist/engine/agent-api/game-kits/fighting.js.map +1 -0
- package/dist/engine/agent-api/game-kits/index.d.ts +15 -0
- package/dist/engine/agent-api/game-kits/index.d.ts.map +1 -0
- package/dist/engine/agent-api/game-kits/index.js +6 -0
- package/dist/engine/agent-api/game-kits/index.js.map +1 -0
- package/dist/engine/agent-api/humanoid-walk-runtime.d.ts +18 -81
- package/dist/engine/agent-api/humanoid-walk-runtime.d.ts.map +1 -1
- package/dist/engine/agent-api/humanoid-walk-runtime.js +4 -279
- package/dist/engine/agent-api/humanoid-walk-runtime.js.map +1 -1
- package/dist/engine/agent-api/index.d.ts +490 -4
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +759 -1802
- package/dist/engine/agent-api/index.js.map +1 -1
- package/dist/engine/agent-api/particle-fountain-runtime.d.ts +5 -80
- package/dist/engine/agent-api/particle-fountain-runtime.d.ts.map +1 -1
- package/dist/engine/agent-api/particle-fountain-runtime.js +7 -291
- package/dist/engine/agent-api/particle-fountain-runtime.js.map +1 -1
- package/dist/engine/agent-api/product-viewer-runtime.d.ts +17 -107
- package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
- package/dist/engine/agent-api/product-viewer-runtime.js +4 -330
- package/dist/engine/agent-api/product-viewer-runtime.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/physics/CollisionVolumes.d.ts +57 -0
- package/dist/physics/CollisionVolumes.d.ts.map +1 -0
- package/dist/physics/CollisionVolumes.js +159 -0
- package/dist/physics/CollisionVolumes.js.map +1 -0
- package/dist/physics/HitboxWorld.d.ts +229 -0
- package/dist/physics/HitboxWorld.d.ts.map +1 -0
- package/dist/physics/HitboxWorld.js +640 -0
- package/dist/physics/HitboxWorld.js.map +1 -0
- package/dist/physics/KinematicBody.d.ts +157 -0
- package/dist/physics/KinematicBody.d.ts.map +1 -0
- package/dist/physics/KinematicBody.js +405 -0
- package/dist/physics/KinematicBody.js.map +1 -0
- package/dist/physics/KinematicWorld.d.ts +58 -0
- package/dist/physics/KinematicWorld.d.ts.map +1 -0
- package/dist/physics/KinematicWorld.js +246 -0
- package/dist/physics/KinematicWorld.js.map +1 -0
- package/dist/physics/index.d.ts +4 -0
- package/dist/physics/index.d.ts.map +1 -1
- package/dist/physics/index.js +4 -0
- package/dist/physics/index.js.map +1 -1
- package/dist/rendering/ForwardPass.js +2 -2
- package/dist/rendering/ShaderLibrary.js +2 -2
- package/dist/rendering/SkinnedLitMaterial.js +3 -3
- package/dist/rendering/SkinnedUnlitMaterial.js +3 -3
- package/dist/scene/Renderable.js +2 -2
- package/dist/scripting/VisualGraph.d.ts +2 -1
- package/dist/scripting/VisualGraph.d.ts.map +1 -1
- package/dist/scripting/VisualGraph.js +118 -1
- package/dist/scripting/VisualGraph.js.map +1 -1
- package/dist/scripting/VisualGraphContext.d.ts +123 -0
- package/dist/scripting/VisualGraphContext.d.ts.map +1 -0
- package/dist/scripting/VisualGraphContext.js +2 -0
- package/dist/scripting/VisualGraphContext.js.map +1 -0
- package/dist/scripting/VisualGraphExecutor.d.ts +6 -1
- package/dist/scripting/VisualGraphExecutor.d.ts.map +1 -1
- package/dist/scripting/VisualGraphExecutor.js +364 -7
- package/dist/scripting/VisualGraphExecutor.js.map +1 -1
- package/dist/scripting/VisualNodeCatalog.d.ts +1 -1
- package/dist/scripting/VisualNodeCatalog.d.ts.map +1 -1
- package/dist/scripting/VisualNodeCatalog.js +61 -1
- package/dist/scripting/VisualNodeCatalog.js.map +1 -1
- package/dist/scripting/index.d.ts +1 -0
- package/dist/scripting/index.d.ts.map +1 -1
- package/dist/scripting/index.js.map +1 -1
- package/package.json +193 -121
- package/templates/product-viewer/src/main.ts +1 -0
- package/dist/three-compat/ThreeApiInventory.d.ts +0 -18
- package/dist/three-compat/ThreeApiInventory.d.ts.map +0 -1
- package/dist/three-compat/ThreeApiInventory.js +0 -99
- package/dist/three-compat/ThreeApiInventory.js.map +0 -1
- package/dist/three-compat/ThreeCompatibilityMatrix.d.ts +0 -30
- package/dist/three-compat/ThreeCompatibilityMatrix.d.ts.map +0 -1
- package/dist/three-compat/ThreeCompatibilityMatrix.js +0 -69
- package/dist/three-compat/ThreeCompatibilityMatrix.js.map +0 -1
- package/dist/three-compat/animation/index.d.ts +0 -3
- package/dist/three-compat/animation/index.d.ts.map +0 -1
- package/dist/three-compat/animation/index.js +0 -2
- package/dist/three-compat/animation/index.js.map +0 -1
- package/dist/three-compat/cameras/index.d.ts +0 -24
- package/dist/three-compat/cameras/index.d.ts.map +0 -1
- package/dist/three-compat/cameras/index.js +0 -44
- package/dist/three-compat/cameras/index.js.map +0 -1
- package/dist/three-compat/controls/index.d.ts +0 -3
- package/dist/three-compat/controls/index.d.ts.map +0 -1
- package/dist/three-compat/controls/index.js +0 -2
- package/dist/three-compat/controls/index.js.map +0 -1
- package/dist/three-compat/core/Object3DCompat.d.ts +0 -62
- package/dist/three-compat/core/Object3DCompat.d.ts.map +0 -1
- package/dist/three-compat/core/Object3DCompat.js +0 -112
- package/dist/three-compat/core/Object3DCompat.js.map +0 -1
- package/dist/three-compat/core/RaycasterCompat.d.ts +0 -18
- package/dist/three-compat/core/RaycasterCompat.d.ts.map +0 -1
- package/dist/three-compat/core/RaycasterCompat.js +0 -28
- package/dist/three-compat/core/RaycasterCompat.js.map +0 -1
- package/dist/three-compat/core/SceneCompat.d.ts +0 -8
- package/dist/three-compat/core/SceneCompat.d.ts.map +0 -1
- package/dist/three-compat/core/SceneCompat.js +0 -8
- package/dist/three-compat/core/SceneCompat.js.map +0 -1
- package/dist/three-compat/geometries/index.d.ts +0 -67
- package/dist/three-compat/geometries/index.d.ts.map +0 -1
- package/dist/three-compat/geometries/index.js +0 -114
- package/dist/three-compat/geometries/index.js.map +0 -1
- package/dist/three-compat/helpers/index.d.ts +0 -40
- package/dist/three-compat/helpers/index.d.ts.map +0 -1
- package/dist/three-compat/helpers/index.js +0 -129
- package/dist/three-compat/helpers/index.js.map +0 -1
- package/dist/three-compat/index.d.ts +0 -32
- package/dist/three-compat/index.d.ts.map +0 -1
- package/dist/three-compat/index.js +0 -22
- package/dist/three-compat/index.js.map +0 -1
- package/dist/three-compat/lights/index.d.ts +0 -35
- package/dist/three-compat/lights/index.d.ts.map +0 -1
- package/dist/three-compat/lights/index.js +0 -39
- package/dist/three-compat/lights/index.js.map +0 -1
- package/dist/three-compat/loaders/index.d.ts +0 -54
- package/dist/three-compat/loaders/index.d.ts.map +0 -1
- package/dist/three-compat/loaders/index.js +0 -79
- package/dist/three-compat/loaders/index.js.map +0 -1
- package/dist/three-compat/materials/index.d.ts +0 -70
- package/dist/three-compat/materials/index.d.ts.map +0 -1
- package/dist/three-compat/materials/index.js +0 -85
- package/dist/three-compat/materials/index.js.map +0 -1
- package/dist/three-compat/math/index.d.ts +0 -34
- package/dist/three-compat/math/index.d.ts.map +0 -1
- package/dist/three-compat/math/index.js +0 -90
- package/dist/three-compat/math/index.js.map +0 -1
- package/dist/three-compat/migration/CompatibilityWarnings.d.ts +0 -6
- package/dist/three-compat/migration/CompatibilityWarnings.d.ts.map +0 -1
- package/dist/three-compat/migration/CompatibilityWarnings.js +0 -8
- package/dist/three-compat/migration/CompatibilityWarnings.js.map +0 -1
- package/dist/three-compat/migration/ImportMap.d.ts +0 -2
- package/dist/three-compat/migration/ImportMap.d.ts.map +0 -1
- package/dist/three-compat/migration/ImportMap.js +0 -10
- package/dist/three-compat/migration/ImportMap.js.map +0 -1
- package/dist/three-compat/migration/ThreeToA3DAdapter.d.ts +0 -8
- package/dist/three-compat/migration/ThreeToA3DAdapter.d.ts.map +0 -1
- package/dist/three-compat/migration/ThreeToA3DAdapter.js +0 -20
- package/dist/three-compat/migration/ThreeToA3DAdapter.js.map +0 -1
- package/dist/three-compat/postprocessing/index.d.ts +0 -2
- package/dist/three-compat/postprocessing/index.d.ts.map +0 -1
- package/dist/three-compat/postprocessing/index.js +0 -2
- package/dist/three-compat/postprocessing/index.js.map +0 -1
- package/dist/three-compat/render-targets/index.d.ts +0 -17
- package/dist/three-compat/render-targets/index.d.ts.map +0 -1
- package/dist/three-compat/render-targets/index.js +0 -29
- package/dist/three-compat/render-targets/index.js.map +0 -1
- package/dist/three-compat/shaders/index.d.ts +0 -3
- package/dist/three-compat/shaders/index.d.ts.map +0 -1
- package/dist/three-compat/shaders/index.js +0 -3
- package/dist/three-compat/shaders/index.js.map +0 -1
- package/dist/three-compat/textures/index.d.ts +0 -19
- package/dist/three-compat/textures/index.d.ts.map +0 -1
- package/dist/three-compat/textures/index.js +0 -24
- package/dist/three-compat/textures/index.js.map +0 -1
|
@@ -1,338 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const auraAssetRefBrand = Symbol("AuraAssetRef");
|
|
5
|
-
export function defineAuraAssets(definitions) {
|
|
6
|
-
const refs = {};
|
|
7
|
-
for (const [id, definition] of Object.entries(definitions)) {
|
|
8
|
-
refs[id] = {
|
|
9
|
-
...definition,
|
|
10
|
-
kind: "aura-asset-ref",
|
|
11
|
-
id,
|
|
12
|
-
[auraAssetRefBrand]: {
|
|
13
|
-
type: definition.type,
|
|
14
|
-
id
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
return refs;
|
|
19
|
-
}
|
|
1
|
+
import { product as rootProduct, sceneKits as rootSceneKits } from "./index.js";
|
|
2
|
+
export { createAuraApp, defineAuraAssets } from "./index.js";
|
|
3
|
+
export const product = rootProduct;
|
|
20
4
|
export const sceneKits = {
|
|
21
5
|
productViewer(asset, options = {}) {
|
|
22
6
|
return productViewer(asset, options);
|
|
23
7
|
}
|
|
24
8
|
};
|
|
25
|
-
export const product = {
|
|
26
|
-
visualQA(nodes) {
|
|
27
|
-
const hasModel = nodes.some((node) => node.kind === "model");
|
|
28
|
-
const hasStage = nodes.some((node) => String(node.name ?? "").includes("studio plinth"));
|
|
29
|
-
const problems = [
|
|
30
|
-
...(hasModel ? [] : ["missing typed product model node"]),
|
|
31
|
-
...(hasStage ? [] : ["missing studio plinth node"])
|
|
32
|
-
];
|
|
33
|
-
return {
|
|
34
|
-
score: problems.length === 0 ? 5 : 2,
|
|
35
|
-
problems
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
9
|
export function productViewer(asset, options = {}) {
|
|
40
|
-
return
|
|
41
|
-
}
|
|
42
|
-
export function createAuraApp(target, options) {
|
|
43
|
-
const canvas = resolveCanvas(target);
|
|
44
|
-
const scene = options.scene;
|
|
45
|
-
const renderer = new THREE.WebGLRenderer({ canvas, antialias: true, alpha: false, preserveDrawingBuffer: true });
|
|
46
|
-
const pixelRatio = Math.min(2, Math.max(1, options.pixelRatio ?? window.devicePixelRatio ?? 1));
|
|
47
|
-
renderer.setPixelRatio(pixelRatio);
|
|
48
|
-
renderer.outputColorSpace = THREE.SRGBColorSpace;
|
|
49
|
-
renderer.toneMapping = THREE.ACESFilmicToneMapping;
|
|
50
|
-
renderer.toneMappingExposure = 0.95;
|
|
51
|
-
renderer.setClearColor("#071017", 1);
|
|
52
|
-
const threeScene = new THREE.Scene();
|
|
53
|
-
threeScene.background = new THREE.Color("#071017");
|
|
54
|
-
const pmrem = new THREE.PMREMGenerator(renderer);
|
|
55
|
-
const environment = pmrem.fromScene(new RoomEnvironment(), 0.04).texture;
|
|
56
|
-
threeScene.environment = environment;
|
|
57
|
-
const camera = new THREE.PerspectiveCamera(42, 1, 0.05, 100);
|
|
58
|
-
camera.position.set(1.55, 1.35, 3.4);
|
|
59
|
-
camera.lookAt(0, 0.62, -0.25);
|
|
60
|
-
const ambient = new THREE.AmbientLight("#e8f1ff", 0.46);
|
|
61
|
-
threeScene.add(ambient);
|
|
62
|
-
const key = new THREE.DirectionalLight("#ffffff", 1.22);
|
|
63
|
-
key.position.set(-2.4, 3.2, 2.2);
|
|
64
|
-
threeScene.add(key);
|
|
65
|
-
const fill = new THREE.DirectionalLight("#dbeafe", 0.62);
|
|
66
|
-
fill.position.set(2.2, 1.8, 1.7);
|
|
67
|
-
threeScene.add(fill);
|
|
68
|
-
const rim = new THREE.DirectionalLight("#ffd9aa", 0.46);
|
|
69
|
-
rim.position.set(2.6, 1.4, -1.4);
|
|
70
|
-
threeScene.add(rim);
|
|
71
|
-
buildProductStage(threeScene);
|
|
72
|
-
const readoutElement = createProductReadout();
|
|
73
|
-
let disposed = false;
|
|
74
|
-
let model;
|
|
75
|
-
let modelLoaded = false;
|
|
76
|
-
let routePublished = false;
|
|
77
|
-
let lastFrameTime = performance.now();
|
|
78
|
-
const diagnostics = {
|
|
79
|
-
backend: "three",
|
|
80
|
-
fps: 60,
|
|
81
|
-
drawCalls: 1,
|
|
82
|
-
renderSize: [canvas.width, canvas.height],
|
|
83
|
-
warnings: [],
|
|
84
|
-
errors: [],
|
|
85
|
-
renderer: {
|
|
86
|
-
kind: "aura-renderer-diagnostics",
|
|
87
|
-
backend: "three-lean-product-viewer",
|
|
88
|
-
runtimeStatus: "loading",
|
|
89
|
-
postprocess: {
|
|
90
|
-
enabled: false,
|
|
91
|
-
actualPasses: []
|
|
92
|
-
},
|
|
93
|
-
assets: {
|
|
94
|
-
modelLoaded: false,
|
|
95
|
-
assetId: scene.asset.id,
|
|
96
|
-
assetUrl: scene.asset.url
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
const resize = () => {
|
|
101
|
-
const parent = canvas.parentElement;
|
|
102
|
-
const width = Math.max(1, Math.round(parent?.clientWidth || window.innerWidth || 1440));
|
|
103
|
-
const height = Math.max(1, Math.round(parent?.clientHeight || window.innerHeight || 960));
|
|
104
|
-
renderer.setSize(width, height, false);
|
|
105
|
-
canvas.style.width = "100%";
|
|
106
|
-
canvas.style.height = "100%";
|
|
107
|
-
camera.aspect = width / Math.max(1, height);
|
|
108
|
-
camera.updateProjectionMatrix();
|
|
109
|
-
diagnostics.renderSize = [canvas.width, canvas.height];
|
|
110
|
-
};
|
|
111
|
-
resize();
|
|
112
|
-
if (options.resize !== false)
|
|
113
|
-
window.addEventListener("resize", resize);
|
|
114
|
-
void loadProductModel(scene.asset)
|
|
115
|
-
.then((loadedModel) => {
|
|
116
|
-
if (disposed)
|
|
117
|
-
return;
|
|
118
|
-
model = loadedModel;
|
|
119
|
-
threeScene.add(model);
|
|
120
|
-
modelLoaded = true;
|
|
121
|
-
diagnostics.renderer.runtimeStatus = "ready";
|
|
122
|
-
diagnostics.renderer.assets.modelLoaded = true;
|
|
123
|
-
})
|
|
124
|
-
.catch((error) => {
|
|
125
|
-
if (disposed)
|
|
126
|
-
return;
|
|
127
|
-
diagnostics.renderer.runtimeStatus = "error";
|
|
128
|
-
diagnostics.errors = [productLoadErrorMessage(scene.asset, error)];
|
|
129
|
-
markRouteError(scene, diagnostics);
|
|
130
|
-
});
|
|
131
|
-
const render = (time = performance.now()) => {
|
|
132
|
-
if (disposed)
|
|
133
|
-
return;
|
|
134
|
-
const delta = Math.max(1, time - lastFrameTime);
|
|
135
|
-
lastFrameTime = time;
|
|
136
|
-
diagnostics.fps = Math.round(1000 / delta);
|
|
137
|
-
if (model)
|
|
138
|
-
model.rotation.y += 0.004;
|
|
139
|
-
renderer.render(threeScene, camera);
|
|
140
|
-
diagnostics.drawCalls = Math.max(1, renderer.info.render.calls);
|
|
141
|
-
diagnostics.renderSize = [canvas.width, canvas.height];
|
|
142
|
-
if (modelLoaded && !routePublished) {
|
|
143
|
-
routePublished = true;
|
|
144
|
-
markRouteReady(scene, diagnostics);
|
|
145
|
-
}
|
|
146
|
-
if (options.autoStart !== false)
|
|
147
|
-
requestAnimationFrame(render);
|
|
148
|
-
};
|
|
149
|
-
render();
|
|
150
|
-
return {
|
|
151
|
-
canvas,
|
|
152
|
-
scene,
|
|
153
|
-
backend: "three",
|
|
154
|
-
diagnostics: () => diagnostics,
|
|
155
|
-
screenshot: () => ({
|
|
156
|
-
mimeType: "image/png",
|
|
157
|
-
dataUrl: canvas.toDataURL("image/png"),
|
|
158
|
-
width: canvas.width,
|
|
159
|
-
height: canvas.height
|
|
160
|
-
}),
|
|
161
|
-
dispose: () => {
|
|
162
|
-
disposed = true;
|
|
163
|
-
if (options.resize !== false)
|
|
164
|
-
window.removeEventListener("resize", resize);
|
|
165
|
-
readoutElement?.remove();
|
|
166
|
-
disposeThreeScene(threeScene);
|
|
167
|
-
environment.dispose();
|
|
168
|
-
pmrem.dispose();
|
|
169
|
-
renderer.dispose();
|
|
170
|
-
}
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
function createProductViewerKit(asset, options) {
|
|
174
|
-
const scene = normalizeProductViewerScene(asset, options);
|
|
175
|
-
const nodes = [
|
|
176
|
-
{ kind: "primitive", name: "studio plinth" },
|
|
177
|
-
{ kind: "light", name: "off camera left product softbox" },
|
|
178
|
-
{ kind: "light", name: "off camera right product fill" },
|
|
179
|
-
{ kind: "model", name: "typed sneaker asset", assetId: scene.asset.id, assetUrl: scene.asset.url },
|
|
180
|
-
{ kind: "label", name: "typed sneaker asset label", text: "typed sneaker asset | orbit | studio" }
|
|
181
|
-
];
|
|
182
|
-
const evidence = [
|
|
183
|
-
"typed GLB asset loaded through GLTFLoader",
|
|
184
|
-
"normalized authored sneaker model scale",
|
|
185
|
-
"dark studio plinth with off-camera softbox lighting",
|
|
186
|
-
"lean product-viewer subpath avoids unrelated humanoid and procedural scene-kit imports"
|
|
187
|
-
];
|
|
188
|
-
return {
|
|
189
|
-
kind: "aura-scene-kit",
|
|
190
|
-
id: "productViewer",
|
|
191
|
-
nodes,
|
|
192
|
-
evidence,
|
|
193
|
-
acceptanceEvidence: evidence,
|
|
194
|
-
diagnostics: {
|
|
195
|
-
kind: "aura-scene-kit-diagnostics",
|
|
196
|
-
id: "productViewer",
|
|
197
|
-
structuralScore: 5,
|
|
198
|
-
problems: []
|
|
199
|
-
},
|
|
200
|
-
scene: () => scene,
|
|
201
|
-
toAppOptions: () => ({ scene, diagnostics: false }),
|
|
202
|
-
customize: (next) => createProductViewerKit(asset, { ...options, ...next })
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
function normalizeProductViewerScene(asset, options) {
|
|
206
|
-
if (asset.type !== "model" || !["glb", "gltf"].includes(asset.format)) {
|
|
207
|
-
throw new Error(`Aura3D product viewer requires a typed GLB/glTF model asset. Received ${asset.type}:${asset.format}.`);
|
|
208
|
-
}
|
|
209
|
-
return {
|
|
210
|
-
kind: "aura3d-product-viewer-scene",
|
|
211
|
-
asset,
|
|
212
|
-
options: {
|
|
213
|
-
captureFrame: options.captureFrame ?? 0.32
|
|
214
|
-
}
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
function resolveCanvas(target) {
|
|
218
|
-
if (target instanceof HTMLCanvasElement)
|
|
219
|
-
return target;
|
|
220
|
-
const host = typeof target === "string" ? document.querySelector(target) : target;
|
|
221
|
-
const parent = host ?? document.body;
|
|
222
|
-
if (parent instanceof HTMLCanvasElement)
|
|
223
|
-
return parent;
|
|
224
|
-
let canvas = parent.querySelector("canvas[data-aura3d-lean-product-viewer]");
|
|
225
|
-
if (!canvas) {
|
|
226
|
-
canvas = document.createElement("canvas");
|
|
227
|
-
canvas.dataset.aura3dLeanProductViewer = "true";
|
|
228
|
-
canvas.style.display = "block";
|
|
229
|
-
canvas.style.width = "100%";
|
|
230
|
-
canvas.style.height = "100%";
|
|
231
|
-
parent.appendChild(canvas);
|
|
232
|
-
}
|
|
233
|
-
return canvas;
|
|
234
|
-
}
|
|
235
|
-
function buildProductStage(scene) {
|
|
236
|
-
scene.add(productBox("studio plinth", "#d8dde6", [0, 0.04, -0.25], [2.4, 0.08, 1.8], false));
|
|
237
|
-
}
|
|
238
|
-
function productBox(name, color, position, scale, emissive) {
|
|
239
|
-
const material = emissive
|
|
240
|
-
? new THREE.MeshBasicMaterial({ color, transparent: true, opacity: 0.68 })
|
|
241
|
-
: new THREE.MeshStandardMaterial({ color, roughness: 0.62, metalness: 0.04 });
|
|
242
|
-
const mesh = new THREE.Mesh(new THREE.BoxGeometry(1, 1, 1), material);
|
|
243
|
-
mesh.name = name;
|
|
244
|
-
mesh.position.set(...position);
|
|
245
|
-
mesh.scale.set(...scale);
|
|
246
|
-
return mesh;
|
|
247
|
-
}
|
|
248
|
-
async function loadProductModel(asset) {
|
|
249
|
-
const loader = new GLTFLoader();
|
|
250
|
-
const url = new URL(asset.url, document.baseURI).href;
|
|
251
|
-
const gltf = await loader.loadAsync(url);
|
|
252
|
-
const root = gltf.scene ?? gltf.scenes?.[0];
|
|
253
|
-
if (!root)
|
|
254
|
-
throw new Error("GLB loaded but did not contain a scene");
|
|
255
|
-
root.traverse((child) => {
|
|
256
|
-
const mesh = child;
|
|
257
|
-
if (!mesh.isMesh)
|
|
258
|
-
return;
|
|
259
|
-
mesh.castShadow = true;
|
|
260
|
-
mesh.receiveShadow = true;
|
|
261
|
-
const materials = Array.isArray(mesh.material) ? mesh.material : mesh.material ? [mesh.material] : [];
|
|
262
|
-
for (const material of materials) {
|
|
263
|
-
if ("roughness" in material && typeof material.roughness === "number")
|
|
264
|
-
material.roughness = Math.min(material.roughness, 0.82);
|
|
265
|
-
if ("metalness" in material && typeof material.metalness === "number")
|
|
266
|
-
material.metalness = Math.max(material.metalness, 0.02);
|
|
267
|
-
material.needsUpdate = true;
|
|
268
|
-
}
|
|
269
|
-
});
|
|
270
|
-
normalizeProductModel(root);
|
|
271
|
-
return root;
|
|
272
|
-
}
|
|
273
|
-
function normalizeProductModel(model) {
|
|
274
|
-
const bounds = new THREE.Box3().setFromObject(model);
|
|
275
|
-
const size = bounds.getSize(new THREE.Vector3());
|
|
276
|
-
const center = bounds.getCenter(new THREE.Vector3());
|
|
277
|
-
const scale = 1.55 / Math.max(size.x, size.y, size.z, 0.001);
|
|
278
|
-
model.scale.setScalar(scale);
|
|
279
|
-
model.position.sub(center.multiplyScalar(scale));
|
|
280
|
-
model.position.y += 0.1;
|
|
281
|
-
model.position.z -= 0.25;
|
|
282
|
-
}
|
|
283
|
-
function createProductReadout() {
|
|
284
|
-
if (typeof document === "undefined")
|
|
285
|
-
return undefined;
|
|
286
|
-
const label = document.createElement("div");
|
|
287
|
-
label.className = "label prompt-readout";
|
|
288
|
-
label.textContent = "typed sneaker asset | orbit | studio";
|
|
289
|
-
document.body.appendChild(label);
|
|
290
|
-
return label;
|
|
291
|
-
}
|
|
292
|
-
function markRouteReady(scene, diagnostics) {
|
|
293
|
-
const readout = {
|
|
294
|
-
ready: true,
|
|
295
|
-
status: "pass",
|
|
296
|
-
scene: scene.kind,
|
|
297
|
-
promptFamily: "product-viewer",
|
|
298
|
-
diagnostics,
|
|
299
|
-
evidence: [
|
|
300
|
-
"lean product-viewer runtime rendered a Three.js scene",
|
|
301
|
-
"typed GLB asset loaded and visible before readiness",
|
|
302
|
-
"readiness is pixel-backed, not a structural QA counter"
|
|
303
|
-
]
|
|
304
|
-
};
|
|
305
|
-
window.__AURA3D_ROUTE_READY__ = readout;
|
|
306
|
-
window.__ENGINE_READY__ = () => true;
|
|
307
|
-
window.__ENGINE_READOUT__ = () => readout;
|
|
308
|
-
}
|
|
309
|
-
function markRouteError(scene, diagnostics) {
|
|
310
|
-
const readout = {
|
|
311
|
-
ready: false,
|
|
312
|
-
status: "error",
|
|
313
|
-
scene: scene.kind,
|
|
314
|
-
promptFamily: "product-viewer",
|
|
315
|
-
diagnostics,
|
|
316
|
-
evidence: ["typed GLB asset failed to load before readiness"]
|
|
317
|
-
};
|
|
318
|
-
window.__AURA3D_ROUTE_READY__ = readout;
|
|
319
|
-
window.__ENGINE_READY__ = () => false;
|
|
320
|
-
window.__ENGINE_READOUT__ = () => readout;
|
|
321
|
-
}
|
|
322
|
-
function productLoadErrorMessage(asset, error) {
|
|
323
|
-
const reason = error instanceof Error ? error.message : String(error);
|
|
324
|
-
return `Aura3D product-viewer failed to load typed model "${asset.id}" from "${asset.url}": ${reason}`;
|
|
325
|
-
}
|
|
326
|
-
function disposeThreeScene(scene) {
|
|
327
|
-
scene.traverse((object) => {
|
|
328
|
-
const mesh = object;
|
|
329
|
-
if (mesh.geometry)
|
|
330
|
-
mesh.geometry.dispose();
|
|
331
|
-
const material = mesh.material;
|
|
332
|
-
if (Array.isArray(material))
|
|
333
|
-
material.forEach((entry) => entry.dispose());
|
|
334
|
-
else if (material)
|
|
335
|
-
material.dispose();
|
|
336
|
-
});
|
|
10
|
+
return rootSceneKits.productViewer(asset, options);
|
|
337
11
|
}
|
|
338
12
|
//# sourceMappingURL=product-viewer-runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-viewer-runtime.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/product-viewer-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"product-viewer-runtime.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/product-viewer-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,YAAY,CAAC;AAahF,OAAO,EACL,aAAa,EACb,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAoBpB,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC;AAEnC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,aAAa,CAAC,KAA4B,EAAE,UAAgC,EAAE;QAC5E,OAAO,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;CACO,CAAC;AAEX,MAAM,UAAU,aAAa,CAAC,KAA4B,EAAE,UAAgC,EAAE;IAC5F,OAAO,aAAa,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type Bounds, type Vec3 } from "./Shape.js";
|
|
2
|
+
export type CombatFacing = -1 | 1;
|
|
3
|
+
export type CollisionOwnerId = string | number;
|
|
4
|
+
export type CollisionVolumeKind = "hitbox" | "hurtbox" | "pushbox" | "guardbox";
|
|
5
|
+
export type CollisionVolumeDescriptor = {
|
|
6
|
+
readonly id?: string;
|
|
7
|
+
readonly ownerId?: CollisionOwnerId;
|
|
8
|
+
readonly offset?: Vec3;
|
|
9
|
+
readonly halfExtents: Vec3;
|
|
10
|
+
readonly enabled?: boolean;
|
|
11
|
+
readonly tags?: readonly string[];
|
|
12
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
13
|
+
};
|
|
14
|
+
export type CollisionVolume = {
|
|
15
|
+
readonly id: string;
|
|
16
|
+
readonly kind: CollisionVolumeKind;
|
|
17
|
+
readonly offset: Vec3;
|
|
18
|
+
readonly halfExtents: Vec3;
|
|
19
|
+
readonly enabled: boolean;
|
|
20
|
+
readonly tags: readonly string[];
|
|
21
|
+
readonly ownerId?: CollisionOwnerId;
|
|
22
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
23
|
+
};
|
|
24
|
+
export type ResolvedCollisionVolume = CollisionVolume & {
|
|
25
|
+
readonly center: Vec3;
|
|
26
|
+
readonly facing: CombatFacing;
|
|
27
|
+
readonly bounds: Bounds;
|
|
28
|
+
};
|
|
29
|
+
export type CollisionPenetration = {
|
|
30
|
+
readonly normal: Vec3;
|
|
31
|
+
readonly depth: number;
|
|
32
|
+
readonly axis: 0 | 1 | 2;
|
|
33
|
+
readonly overlap: Vec3;
|
|
34
|
+
};
|
|
35
|
+
export declare function collisionVolume(kind: CollisionVolumeKind, descriptor: CollisionVolumeDescriptor): CollisionVolume;
|
|
36
|
+
export declare function hitbox(descriptor: CollisionVolumeDescriptor): CollisionVolume;
|
|
37
|
+
export declare function hurtbox(descriptor: CollisionVolumeDescriptor): CollisionVolume;
|
|
38
|
+
export declare function pushbox(descriptor: CollisionVolumeDescriptor): CollisionVolume;
|
|
39
|
+
export declare function guardbox(descriptor: CollisionVolumeDescriptor): CollisionVolume;
|
|
40
|
+
export declare const createHitbox: typeof hitbox;
|
|
41
|
+
export declare const createHurtbox: typeof hurtbox;
|
|
42
|
+
export declare const createPushbox: typeof pushbox;
|
|
43
|
+
export declare const createGuardbox: typeof guardbox;
|
|
44
|
+
export declare const createGuardBox: typeof guardbox;
|
|
45
|
+
export declare function cloneCollisionVolume(volume: CollisionVolume): CollisionVolume;
|
|
46
|
+
export declare function withVolumeOwner(volume: CollisionVolume, ownerId: CollisionOwnerId): CollisionVolume;
|
|
47
|
+
export declare function resolveCollisionVolume(volume: CollisionVolume, ownerPosition: Vec3, facing?: CombatFacing): ResolvedCollisionVolume;
|
|
48
|
+
export declare function aabbFromCenter(center: Vec3, halfExtents: Vec3): Bounds;
|
|
49
|
+
export declare function boundsCenter(bounds: Bounds): Vec3;
|
|
50
|
+
export declare function boundsHalfExtents(bounds: Bounds): Vec3;
|
|
51
|
+
export declare function overlapsAabb(a: Bounds, b: Bounds): boolean;
|
|
52
|
+
export declare function overlapsVolume(a: ResolvedCollisionVolume, b: ResolvedCollisionVolume): boolean;
|
|
53
|
+
export declare function aabbPenetration(a: Bounds, b: Bounds): CollisionPenetration | null;
|
|
54
|
+
export declare function volumePairKey(a: CollisionVolume | ResolvedCollisionVolume, b: CollisionVolume | ResolvedCollisionVolume): string;
|
|
55
|
+
export declare function normalizeFacing(value: number): CombatFacing;
|
|
56
|
+
export declare function validateBounds(bounds: Bounds, name: string): void;
|
|
57
|
+
//# sourceMappingURL=CollisionVolumes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollisionVolumes.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/CollisionVolumes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAEnF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAC;AAC/C,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAEhF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG;IACtD,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;CACxB,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,yBAAyB,GAAG,eAAe,CAcjH;AAED,wBAAgB,MAAM,CAAC,UAAU,EAAE,yBAAyB,GAAG,eAAe,CAE7E;AAED,wBAAgB,OAAO,CAAC,UAAU,EAAE,yBAAyB,GAAG,eAAe,CAE9E;AAED,wBAAgB,OAAO,CAAC,UAAU,EAAE,yBAAyB,GAAG,eAAe,CAE9E;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,yBAAyB,GAAG,eAAe,CAE/E;AAED,eAAO,MAAM,YAAY,eAAS,CAAC;AACnC,eAAO,MAAM,aAAa,gBAAU,CAAC;AACrC,eAAO,MAAM,aAAa,gBAAU,CAAC;AACrC,eAAO,MAAM,cAAc,iBAAW,CAAC;AACvC,eAAO,MAAM,cAAc,iBAAW,CAAC;AAEvC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAW7E;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,GAAG,eAAe,CAKnG;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAE,YAAgB,GAAG,uBAAuB,CActI;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,GAAG,MAAM,CAOtE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAOjD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAOtD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAW1D;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,uBAAuB,EAAE,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAK9F;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CA0BjF;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,eAAe,GAAG,uBAAuB,EAAE,CAAC,EAAE,eAAe,GAAG,uBAAuB,GAAG,MAAM,CAIhI;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAE3D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAMjE"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { cloneVec3, validateFiniteVec3 } from "./Shape.js";
|
|
2
|
+
export function collisionVolume(kind, descriptor) {
|
|
3
|
+
validateHalfExtents(descriptor.halfExtents, `${kind} halfExtents`);
|
|
4
|
+
const volume = {
|
|
5
|
+
id: descriptor.id ?? kind,
|
|
6
|
+
kind,
|
|
7
|
+
offset: cloneVec3(descriptor.offset ?? [0, 0, 0]),
|
|
8
|
+
halfExtents: cloneVec3(descriptor.halfExtents),
|
|
9
|
+
enabled: descriptor.enabled ?? true,
|
|
10
|
+
tags: [...(descriptor.tags ?? [])],
|
|
11
|
+
...(descriptor.ownerId === undefined ? {} : { ownerId: descriptor.ownerId }),
|
|
12
|
+
...(descriptor.metadata === undefined ? {} : { metadata: { ...descriptor.metadata } })
|
|
13
|
+
};
|
|
14
|
+
validateFiniteVec3(volume.offset, `${kind} offset`);
|
|
15
|
+
return volume;
|
|
16
|
+
}
|
|
17
|
+
export function hitbox(descriptor) {
|
|
18
|
+
return collisionVolume("hitbox", descriptor);
|
|
19
|
+
}
|
|
20
|
+
export function hurtbox(descriptor) {
|
|
21
|
+
return collisionVolume("hurtbox", descriptor);
|
|
22
|
+
}
|
|
23
|
+
export function pushbox(descriptor) {
|
|
24
|
+
return collisionVolume("pushbox", descriptor);
|
|
25
|
+
}
|
|
26
|
+
export function guardbox(descriptor) {
|
|
27
|
+
return collisionVolume("guardbox", descriptor);
|
|
28
|
+
}
|
|
29
|
+
export const createHitbox = hitbox;
|
|
30
|
+
export const createHurtbox = hurtbox;
|
|
31
|
+
export const createPushbox = pushbox;
|
|
32
|
+
export const createGuardbox = guardbox;
|
|
33
|
+
export const createGuardBox = guardbox;
|
|
34
|
+
export function cloneCollisionVolume(volume) {
|
|
35
|
+
return {
|
|
36
|
+
id: volume.id,
|
|
37
|
+
kind: volume.kind,
|
|
38
|
+
offset: cloneVec3(volume.offset),
|
|
39
|
+
halfExtents: cloneVec3(volume.halfExtents),
|
|
40
|
+
enabled: volume.enabled,
|
|
41
|
+
tags: [...volume.tags],
|
|
42
|
+
...(volume.ownerId === undefined ? {} : { ownerId: volume.ownerId }),
|
|
43
|
+
...(volume.metadata === undefined ? {} : { metadata: { ...volume.metadata } })
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export function withVolumeOwner(volume, ownerId) {
|
|
47
|
+
return {
|
|
48
|
+
...cloneCollisionVolume(volume),
|
|
49
|
+
ownerId
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export function resolveCollisionVolume(volume, ownerPosition, facing = 1) {
|
|
53
|
+
validateFiniteVec3(ownerPosition, "volume owner position");
|
|
54
|
+
const resolvedFacing = normalizeFacing(facing);
|
|
55
|
+
const center = [
|
|
56
|
+
ownerPosition[0] + volume.offset[0] * resolvedFacing,
|
|
57
|
+
ownerPosition[1] + volume.offset[1],
|
|
58
|
+
ownerPosition[2] + volume.offset[2]
|
|
59
|
+
];
|
|
60
|
+
return {
|
|
61
|
+
...cloneCollisionVolume(volume),
|
|
62
|
+
center,
|
|
63
|
+
facing: resolvedFacing,
|
|
64
|
+
bounds: aabbFromCenter(center, volume.halfExtents)
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export function aabbFromCenter(center, halfExtents) {
|
|
68
|
+
validateFiniteVec3(center, "aabb center");
|
|
69
|
+
validateHalfExtents(halfExtents, "aabb halfExtents");
|
|
70
|
+
return {
|
|
71
|
+
min: [center[0] - halfExtents[0], center[1] - halfExtents[1], center[2] - halfExtents[2]],
|
|
72
|
+
max: [center[0] + halfExtents[0], center[1] + halfExtents[1], center[2] + halfExtents[2]]
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export function boundsCenter(bounds) {
|
|
76
|
+
validateBounds(bounds, "bounds");
|
|
77
|
+
return [
|
|
78
|
+
(bounds.min[0] + bounds.max[0]) * 0.5,
|
|
79
|
+
(bounds.min[1] + bounds.max[1]) * 0.5,
|
|
80
|
+
(bounds.min[2] + bounds.max[2]) * 0.5
|
|
81
|
+
];
|
|
82
|
+
}
|
|
83
|
+
export function boundsHalfExtents(bounds) {
|
|
84
|
+
validateBounds(bounds, "bounds");
|
|
85
|
+
return [
|
|
86
|
+
(bounds.max[0] - bounds.min[0]) * 0.5,
|
|
87
|
+
(bounds.max[1] - bounds.min[1]) * 0.5,
|
|
88
|
+
(bounds.max[2] - bounds.min[2]) * 0.5
|
|
89
|
+
];
|
|
90
|
+
}
|
|
91
|
+
export function overlapsAabb(a, b) {
|
|
92
|
+
validateBounds(a, "a bounds");
|
|
93
|
+
validateBounds(b, "b bounds");
|
|
94
|
+
return (a.min[0] < b.max[0] &&
|
|
95
|
+
a.max[0] > b.min[0] &&
|
|
96
|
+
a.min[1] < b.max[1] &&
|
|
97
|
+
a.max[1] > b.min[1] &&
|
|
98
|
+
a.min[2] < b.max[2] &&
|
|
99
|
+
a.max[2] > b.min[2]);
|
|
100
|
+
}
|
|
101
|
+
export function overlapsVolume(a, b) {
|
|
102
|
+
if (!a.enabled || !b.enabled) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
return overlapsAabb(a.bounds, b.bounds);
|
|
106
|
+
}
|
|
107
|
+
export function aabbPenetration(a, b) {
|
|
108
|
+
if (!overlapsAabb(a, b)) {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
const overlap = [
|
|
112
|
+
Math.min(a.max[0] - b.min[0], b.max[0] - a.min[0]),
|
|
113
|
+
Math.min(a.max[1] - b.min[1], b.max[1] - a.min[1]),
|
|
114
|
+
Math.min(a.max[2] - b.min[2], b.max[2] - a.min[2])
|
|
115
|
+
];
|
|
116
|
+
let axis = 0;
|
|
117
|
+
if (overlap[1] < overlap[axis]) {
|
|
118
|
+
axis = 1;
|
|
119
|
+
}
|
|
120
|
+
if (overlap[2] < overlap[axis]) {
|
|
121
|
+
axis = 2;
|
|
122
|
+
}
|
|
123
|
+
const centerA = boundsCenter(a);
|
|
124
|
+
const centerB = boundsCenter(b);
|
|
125
|
+
const normal = [0, 0, 0];
|
|
126
|
+
normal[axis] = centerA[axis] <= centerB[axis] ? -1 : 1;
|
|
127
|
+
return {
|
|
128
|
+
normal,
|
|
129
|
+
depth: overlap[axis],
|
|
130
|
+
axis,
|
|
131
|
+
overlap
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
export function volumePairKey(a, b) {
|
|
135
|
+
const keyA = volumeKey(a);
|
|
136
|
+
const keyB = volumeKey(b);
|
|
137
|
+
return keyA < keyB ? `${keyA}:${keyB}` : `${keyB}:${keyA}`;
|
|
138
|
+
}
|
|
139
|
+
export function normalizeFacing(value) {
|
|
140
|
+
return value < 0 ? -1 : 1;
|
|
141
|
+
}
|
|
142
|
+
export function validateBounds(bounds, name) {
|
|
143
|
+
validateFiniteVec3(bounds.min, `${name} min`);
|
|
144
|
+
validateFiniteVec3(bounds.max, `${name} max`);
|
|
145
|
+
if (bounds.min[0] > bounds.max[0] || bounds.min[1] > bounds.max[1] || bounds.min[2] > bounds.max[2]) {
|
|
146
|
+
throw new Error(`${name} min values must be less than or equal to max values.`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function validateHalfExtents(value, name) {
|
|
150
|
+
validateFiniteVec3(value, name);
|
|
151
|
+
if (value[0] <= 0 || value[1] <= 0 || value[2] <= 0) {
|
|
152
|
+
throw new Error(`${name} must contain finite positive values.`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function volumeKey(volume) {
|
|
156
|
+
const owner = volume.ownerId === undefined ? "none" : String(volume.ownerId);
|
|
157
|
+
return `${owner}/${volume.kind}/${volume.id}`;
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=CollisionVolumes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollisionVolumes.js","sourceRoot":"","sources":["../../../../packages/physics/src/CollisionVolumes.ts"],"names":[],"mappings":"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"}
|