@needle-tools/engine 4.8.4-experimental.c93e134 → 4.8.4-next.68d6468
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/components.needle.json +1 -1
- package/dist/{needle-engine.bundle-BLVnT5UY.min.js → needle-engine.bundle-BoN_WoMd.min.js} +129 -129
- package/dist/{needle-engine.bundle-DhD3EKds.umd.cjs → needle-engine.bundle-C0vgs1VP.umd.cjs} +124 -124
- package/dist/{needle-engine.bundle-Bx5wfOs0.js → needle-engine.bundle-D5UIUwHv.js} +4857 -5074
- package/dist/needle-engine.js +409 -411
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/lib/engine/extensions/extensions.js +0 -2
- package/lib/engine/extensions/extensions.js.map +1 -1
- package/lib/engine/extensions/index.d.ts +0 -1
- package/lib/engine/extensions/index.js +0 -1
- package/lib/engine/extensions/index.js.map +1 -1
- package/lib/engine-components/DragControls.js +0 -1
- package/lib/engine-components/DragControls.js.map +1 -1
- package/lib/engine-components/TransformGizmo.js +9 -1
- package/lib/engine-components/TransformGizmo.js.map +1 -1
- package/lib/engine-components/codegen/components.d.ts +0 -1
- package/lib/engine-components/codegen/components.js +0 -1
- package/lib/engine-components/codegen/components.js.map +1 -1
- package/package.json +1 -1
- package/src/engine/extensions/extensions.ts +0 -2
- package/src/engine/extensions/index.ts +0 -1
- package/src/engine-components/DragControls.ts +0 -1
- package/src/engine-components/TransformGizmo.ts +9 -1
- package/src/engine-components/codegen/components.ts +0 -1
- package/lib/engine/extensions/KHR_materials_variants.d.ts +0 -25
- package/lib/engine/extensions/KHR_materials_variants.js +0 -113
- package/lib/engine/extensions/KHR_materials_variants.js.map +0 -1
- package/lib/engine-components/MaterialVariants.d.ts +0 -52
- package/lib/engine-components/MaterialVariants.js +0 -210
- package/lib/engine-components/MaterialVariants.js.map +0 -1
- package/src/engine/extensions/KHR_materials_variants.ts +0 -179
- package/src/engine-components/MaterialVariants.ts +0 -231
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/engine-components/codegen/components.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/engine-components/codegen/components.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "4.8.4-
|
|
3
|
+
"version": "4.8.4-next.68d6468",
|
|
4
4
|
"description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.",
|
|
5
5
|
"main": "dist/needle-engine.min.js",
|
|
6
6
|
"exports": {
|
|
@@ -9,7 +9,6 @@ import { type ConstructorConcrete, GLTF, type SourceIdentifier } from "../engine
|
|
|
9
9
|
import { getParam } from "../engine_utils.js";
|
|
10
10
|
import { NEEDLE_lightmaps } from "../extensions/NEEDLE_lightmaps.js";
|
|
11
11
|
import { EXT_texture_exr } from "./EXT_texture_exr.js";
|
|
12
|
-
import { NEEDLE_material_variants } from "./KHR_materials_variants.js";
|
|
13
12
|
import { NEEDLE_components } from "./NEEDLE_components.js";
|
|
14
13
|
import { NEEDLE_gameobject_data } from "./NEEDLE_gameobject_data.js";
|
|
15
14
|
import { NEEDLE_lighting_settings } from "./NEEDLE_lighting_settings.js";
|
|
@@ -106,7 +105,6 @@ export async function registerExtensions(loader: GLTFLoader, context: Context, u
|
|
|
106
105
|
loader.register(p => new NEEDLE_techniques_webgl(p, url));
|
|
107
106
|
loader.register(p => new NEEDLE_render_objects(p, url));
|
|
108
107
|
loader.register(p => new NEEDLE_progressive(p));
|
|
109
|
-
loader.register(p => new NEEDLE_material_variants(p));
|
|
110
108
|
loader.register(p => new EXT_texture_exr(p));
|
|
111
109
|
if (isResourceTrackingEnabled()) loader.register(p => new InternalUsageTrackerPlugin(p))
|
|
112
110
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { compareAssociation } from "./extension_utils.js"
|
|
2
2
|
export * from "./extensions.js"
|
|
3
|
-
export * from "./KHR_materials_variants.js"
|
|
4
3
|
export * from "./NEEDLE_animator_controller_model.js"
|
|
5
4
|
export { SceneLightSettings } from "./NEEDLE_lighting_settings.js"
|
|
6
5
|
export * from "./NEEDLE_progressive.js"
|
|
@@ -454,7 +454,6 @@ export class DragControls extends Behaviour implements IPointerEventHandler {
|
|
|
454
454
|
const sync = GameObject.getComponentInChildren(evt.object, SyncedTransform);
|
|
455
455
|
if (sync) {
|
|
456
456
|
sync.fastMode = false;
|
|
457
|
-
// sync?.requestOwnership();
|
|
458
457
|
}
|
|
459
458
|
}
|
|
460
459
|
if (this._marker)
|
|
@@ -130,12 +130,20 @@ export class TransformGizmo extends Behaviour {
|
|
|
130
130
|
const orbit = this.orbit;
|
|
131
131
|
if (orbit) orbit.enabled = !event.value;
|
|
132
132
|
if (event.value) {
|
|
133
|
-
//
|
|
133
|
+
// Start of interaction
|
|
134
134
|
const sync = GameObject.getComponentInParent(this.gameObject, SyncedTransform);
|
|
135
135
|
if (sync) {
|
|
136
|
+
sync.fastMode = true;
|
|
136
137
|
sync.requestOwnership();
|
|
137
138
|
}
|
|
138
139
|
}
|
|
140
|
+
else {
|
|
141
|
+
// End of interaction
|
|
142
|
+
const sync = GameObject.getComponentInParent(this.gameObject, SyncedTransform);
|
|
143
|
+
if (sync) {
|
|
144
|
+
sync.fastMode = false;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
139
147
|
}
|
|
140
148
|
|
|
141
149
|
/**
|
|
@@ -86,7 +86,6 @@ export { Light } from "../Light.js";
|
|
|
86
86
|
export { LODModel } from "../LODGroup.js";
|
|
87
87
|
export { LODGroup } from "../LODGroup.js";
|
|
88
88
|
export { LookAtConstraint } from "../LookAtConstraint.js";
|
|
89
|
-
export { MaterialVariants } from "../MaterialVariants.js";
|
|
90
89
|
export { NeedleMenu } from "../NeedleMenu.js";
|
|
91
90
|
export { NestedGltf } from "../NestedGltf.js";
|
|
92
91
|
export { Networking } from "../Networking.js";
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { type GLTFLoaderPlugin, GLTFParser } from "three/examples/jsm/loaders/GLTFLoader.js";
|
|
2
|
-
import { GLTF } from "../engine_types.js";
|
|
3
|
-
export interface MaterialVariant {
|
|
4
|
-
name: string;
|
|
5
|
-
}
|
|
6
|
-
export interface RootMaterialVariantsExtension {
|
|
7
|
-
variants: MaterialVariant[];
|
|
8
|
-
}
|
|
9
|
-
export interface PrimitiveMaterialVariantsExtension {
|
|
10
|
-
mappings: Array<{
|
|
11
|
-
variants: number[];
|
|
12
|
-
material: number;
|
|
13
|
-
}>;
|
|
14
|
-
}
|
|
15
|
-
export declare class NEEDLE_material_variants implements GLTFLoaderPlugin {
|
|
16
|
-
get name(): string;
|
|
17
|
-
private parser;
|
|
18
|
-
private variants;
|
|
19
|
-
private loadingMesh;
|
|
20
|
-
constructor(parser: GLTFParser);
|
|
21
|
-
beforeRoot(): Promise<void> | null;
|
|
22
|
-
afterRoot(result: GLTF): Promise<void> | null;
|
|
23
|
-
loadMesh(index: number): Promise<any> | null;
|
|
24
|
-
private attachVariantDataToMesh;
|
|
25
|
-
}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { MaterialVariants } from "../../engine-components/MaterialVariants.js";
|
|
2
|
-
import { addComponent } from "../engine_components.js";
|
|
3
|
-
import { InstantiateIdProvider } from "../engine_networking_instantiate.js";
|
|
4
|
-
import { getParam } from "../engine_utils.js";
|
|
5
|
-
const debug = getParam("debugmaterialvariants");
|
|
6
|
-
export class NEEDLE_material_variants {
|
|
7
|
-
get name() { return "KHR_materials_variants"; }
|
|
8
|
-
parser;
|
|
9
|
-
variants = [];
|
|
10
|
-
loadingMesh = false;
|
|
11
|
-
constructor(parser) {
|
|
12
|
-
this.parser = parser;
|
|
13
|
-
}
|
|
14
|
-
beforeRoot() {
|
|
15
|
-
const parser = this.parser;
|
|
16
|
-
const json = parser.json;
|
|
17
|
-
if (!json.extensions || !json.extensions[this.name]) {
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
const extension = json.extensions[this.name];
|
|
21
|
-
this.variants = extension.variants || [];
|
|
22
|
-
if (debug) {
|
|
23
|
-
console.log("KHR_materials_variants found variants:", this.variants);
|
|
24
|
-
}
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
afterRoot(result) {
|
|
28
|
-
if (this.variants.length > 0) {
|
|
29
|
-
// Store variants data on the GLTF result for components to access
|
|
30
|
-
if (!result.userData)
|
|
31
|
-
result.userData = {};
|
|
32
|
-
result.userData.materialVariants = {
|
|
33
|
-
variants: this.variants,
|
|
34
|
-
parser: this.parser
|
|
35
|
-
};
|
|
36
|
-
if (debug) {
|
|
37
|
-
console.log("KHR_materials_variants stored variants data:", result.userData.materialVariants);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
loadMesh(index) {
|
|
43
|
-
// Prevent infinite recursion
|
|
44
|
-
if (this.loadingMesh) {
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
|
-
const json = this.parser.json;
|
|
48
|
-
const meshDef = json.meshes[index];
|
|
49
|
-
if (!meshDef || !meshDef.primitives) {
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
// Check if any primitive has variant mappings
|
|
53
|
-
const allMappings = [];
|
|
54
|
-
meshDef.primitives.forEach((primitive, primitiveIndex) => {
|
|
55
|
-
if (primitive.extensions && primitive.extensions[this.name]) {
|
|
56
|
-
const extension = primitive.extensions[this.name];
|
|
57
|
-
extension.mappings.forEach(mapping => {
|
|
58
|
-
allMappings.push({
|
|
59
|
-
...mapping,
|
|
60
|
-
primitiveIndex
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
// If no variants, let normal loading proceed
|
|
66
|
-
if (allMappings.length === 0) {
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
// Load the mesh with recursion protection
|
|
70
|
-
this.loadingMesh = true;
|
|
71
|
-
return this.parser.loadMesh(index).then(mesh => {
|
|
72
|
-
if (mesh) {
|
|
73
|
-
// Attach variant data directly to the loaded mesh
|
|
74
|
-
this.attachVariantDataToMesh(mesh, index, allMappings);
|
|
75
|
-
if (debug) {
|
|
76
|
-
console.log(`KHR_materials_variants processed mesh ${index} with ${allMappings.length} variant mappings`);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return mesh;
|
|
80
|
-
}).finally(() => {
|
|
81
|
-
this.loadingMesh = false;
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
attachVariantDataToMesh(mesh, index, mappings) {
|
|
85
|
-
// Store variant mapping data on the mesh
|
|
86
|
-
if (!mesh.userData)
|
|
87
|
-
mesh.userData = {};
|
|
88
|
-
mesh.userData.materialVariants = {
|
|
89
|
-
mappings: mappings,
|
|
90
|
-
variants: this.variants,
|
|
91
|
-
parser: this.parser
|
|
92
|
-
};
|
|
93
|
-
const idProvider = new InstantiateIdProvider(index);
|
|
94
|
-
// Automatically add the MaterialVariants component
|
|
95
|
-
try {
|
|
96
|
-
const component = addComponent(mesh, MaterialVariants, {}, { callAwake: false });
|
|
97
|
-
component.guid = idProvider.generateUUID();
|
|
98
|
-
if (debug) {
|
|
99
|
-
console.log("KHR_materials_variants added MaterialVariants component to mesh:", mesh.name);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
catch (error) {
|
|
103
|
-
console.warn("Failed to add MaterialVariants component to mesh:", mesh.name, error);
|
|
104
|
-
}
|
|
105
|
-
if (debug) {
|
|
106
|
-
console.log("KHR_materials_variants processed mesh with variants:", mesh.name, {
|
|
107
|
-
variants: this.variants,
|
|
108
|
-
mappings: mappings
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=KHR_materials_variants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"KHR_materials_variants.js","sourceRoot":"","sources":["../../../src/engine/extensions/KHR_materials_variants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { Behaviour } from "./Component.js";
|
|
2
|
-
export declare class MaterialVariants extends Behaviour {
|
|
3
|
-
selectedVariant: string;
|
|
4
|
-
createMenu: boolean;
|
|
5
|
-
private _menu;
|
|
6
|
-
private _variants;
|
|
7
|
-
private _variantMappings;
|
|
8
|
-
private _originalMaterials;
|
|
9
|
-
private _mesh;
|
|
10
|
-
private _materialCache;
|
|
11
|
-
awake(): void;
|
|
12
|
-
onDestroy(): void;
|
|
13
|
-
private _createVariantSelectionMenu;
|
|
14
|
-
start(): Promise<void>;
|
|
15
|
-
private _initializeVariantData;
|
|
16
|
-
private _cacheOriginalMaterials;
|
|
17
|
-
/**
|
|
18
|
-
* Get all available variant names
|
|
19
|
-
*/
|
|
20
|
-
getVariantNames(): string[];
|
|
21
|
-
/**
|
|
22
|
-
* Get the currently selected variant name
|
|
23
|
-
*/
|
|
24
|
-
getCurrentVariant(): string;
|
|
25
|
-
/**
|
|
26
|
-
* Select a variant by name
|
|
27
|
-
* @param variantName The name of the variant to select
|
|
28
|
-
* @returns Promise that resolves to true if the variant was successfully selected, false otherwise
|
|
29
|
-
*/
|
|
30
|
-
selectVariant(variantName: string): Promise<boolean>;
|
|
31
|
-
/**
|
|
32
|
-
* Select a variant by index
|
|
33
|
-
* @param variantIndex The index of the variant to select
|
|
34
|
-
* @returns Promise that resolves to true if the variant was successfully selected, false otherwise
|
|
35
|
-
*/
|
|
36
|
-
selectVariantByIndex(variantIndex: number): Promise<boolean>;
|
|
37
|
-
/**
|
|
38
|
-
* Reset to the original materials
|
|
39
|
-
*/
|
|
40
|
-
resetToOriginal(): void;
|
|
41
|
-
private _getMaterial;
|
|
42
|
-
/**
|
|
43
|
-
* Check if a variant exists
|
|
44
|
-
* @param variantName The name of the variant to check
|
|
45
|
-
* @returns True if the variant exists
|
|
46
|
-
*/
|
|
47
|
-
hasVariant(variantName: string): boolean;
|
|
48
|
-
/**
|
|
49
|
-
* Get the number of available variants
|
|
50
|
-
*/
|
|
51
|
-
getVariantCount(): number;
|
|
52
|
-
}
|
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { syncField } from "../engine/engine_networking_auto.js";
|
|
8
|
-
import { serializable } from "../engine/engine_serialization_decorator.js";
|
|
9
|
-
import { Behaviour } from "./Component.js";
|
|
10
|
-
export class MaterialVariants extends Behaviour {
|
|
11
|
-
selectedVariant = "";
|
|
12
|
-
createMenu = true;
|
|
13
|
-
_menu = null;
|
|
14
|
-
_variants = [];
|
|
15
|
-
_variantMappings = [];
|
|
16
|
-
_originalMaterials = [];
|
|
17
|
-
_mesh = null;
|
|
18
|
-
_materialCache = new Map();
|
|
19
|
-
awake() {
|
|
20
|
-
this._mesh = this.gameObject;
|
|
21
|
-
if (!this._mesh || !this._mesh.isMesh) {
|
|
22
|
-
console.warn("MaterialVariants component must be attached to a Mesh object", this.gameObject);
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
this._initializeVariantData();
|
|
26
|
-
this._cacheOriginalMaterials();
|
|
27
|
-
if (this.createMenu)
|
|
28
|
-
this._createVariantSelectionMenu();
|
|
29
|
-
}
|
|
30
|
-
onDestroy() {
|
|
31
|
-
this._menu?.remove();
|
|
32
|
-
}
|
|
33
|
-
_createVariantSelectionMenu() {
|
|
34
|
-
const selectElement = document.createElement("select");
|
|
35
|
-
selectElement.addEventListener("change", (event) => {
|
|
36
|
-
const selectedVariant = event.target.value;
|
|
37
|
-
this.selectVariant(selectedVariant);
|
|
38
|
-
});
|
|
39
|
-
// Add options for each variant
|
|
40
|
-
this._variants.forEach(variant => {
|
|
41
|
-
const option = document.createElement("option");
|
|
42
|
-
option.value = variant.name;
|
|
43
|
-
option.textContent = this.name + ": " + variantNameToDisplayName(variant.name);
|
|
44
|
-
selectElement.appendChild(option);
|
|
45
|
-
});
|
|
46
|
-
this._menu = selectElement;
|
|
47
|
-
this.context.menu.appendChild(selectElement);
|
|
48
|
-
}
|
|
49
|
-
async start() {
|
|
50
|
-
if (this.selectedVariant && this.selectedVariant.length > 0) {
|
|
51
|
-
await this.selectVariant(this.selectedVariant);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
_initializeVariantData() {
|
|
55
|
-
if (!this._mesh)
|
|
56
|
-
return;
|
|
57
|
-
// Get variant data from the mesh userData (set by the extension)
|
|
58
|
-
const variantData = this._mesh.userData.materialVariants;
|
|
59
|
-
if (variantData) {
|
|
60
|
-
this._variants = variantData.variants || [];
|
|
61
|
-
this._variantMappings = variantData.mappings || [];
|
|
62
|
-
}
|
|
63
|
-
// Also check if the root GLTF has variant data
|
|
64
|
-
let current = this._mesh.parent;
|
|
65
|
-
while (current) {
|
|
66
|
-
if (current.userData.materialVariants) {
|
|
67
|
-
this._variants = current.userData.materialVariants.variants || [];
|
|
68
|
-
break;
|
|
69
|
-
}
|
|
70
|
-
current = current.parent;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
_cacheOriginalMaterials() {
|
|
74
|
-
if (!this._mesh)
|
|
75
|
-
return;
|
|
76
|
-
if (Array.isArray(this._mesh.material)) {
|
|
77
|
-
this._originalMaterials = [...this._mesh.material];
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
this._originalMaterials = [this._mesh.material];
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Get all available variant names
|
|
85
|
-
*/
|
|
86
|
-
getVariantNames() {
|
|
87
|
-
return this._variants.map(variant => variant.name);
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Get the currently selected variant name
|
|
91
|
-
*/
|
|
92
|
-
getCurrentVariant() {
|
|
93
|
-
return this.selectedVariant;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Select a variant by name
|
|
97
|
-
* @param variantName The name of the variant to select
|
|
98
|
-
* @returns Promise that resolves to true if the variant was successfully selected, false otherwise
|
|
99
|
-
*/
|
|
100
|
-
async selectVariant(variantName) {
|
|
101
|
-
if (!this._mesh || !variantName)
|
|
102
|
-
return false;
|
|
103
|
-
// Find the variant by name
|
|
104
|
-
const variantIndex = this._variants.findIndex(v => v.name === variantName);
|
|
105
|
-
if (variantIndex === -1) {
|
|
106
|
-
console.warn(`Material variant "${variantName}" not found. Available variants:`, this.getVariantNames());
|
|
107
|
-
return false;
|
|
108
|
-
}
|
|
109
|
-
return await this.selectVariantByIndex(variantIndex);
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Select a variant by index
|
|
113
|
-
* @param variantIndex The index of the variant to select
|
|
114
|
-
* @returns Promise that resolves to true if the variant was successfully selected, false otherwise
|
|
115
|
-
*/
|
|
116
|
-
async selectVariantByIndex(variantIndex) {
|
|
117
|
-
if (!this._mesh || variantIndex < 0 || variantIndex >= this._variants.length)
|
|
118
|
-
return false;
|
|
119
|
-
const variant = this._variants[variantIndex];
|
|
120
|
-
// Find mappings that include this variant
|
|
121
|
-
const applicableMappings = this._variantMappings.filter(mapping => mapping.variants.includes(variantIndex));
|
|
122
|
-
if (applicableMappings.length === 0) {
|
|
123
|
-
console.warn(`No material mappings found for variant "${variant.name}"`);
|
|
124
|
-
return false;
|
|
125
|
-
}
|
|
126
|
-
// Apply the variant materials to specific primitives
|
|
127
|
-
for (const mapping of applicableMappings) {
|
|
128
|
-
const materialIndex = mapping.material;
|
|
129
|
-
const primitiveIndex = mapping.primitiveIndex;
|
|
130
|
-
const material = await this._getMaterial(materialIndex);
|
|
131
|
-
if (material) {
|
|
132
|
-
if (Array.isArray(this._mesh.material)) {
|
|
133
|
-
// For multi-material meshes, update the specific primitive's material
|
|
134
|
-
if (primitiveIndex < this._mesh.material.length) {
|
|
135
|
-
this._mesh.material[primitiveIndex] = material;
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
console.warn(`Primitive index ${primitiveIndex} out of bounds for material array of length ${this._mesh.material.length}`);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
// Single material mesh - replace the entire material
|
|
143
|
-
this._mesh.material = material;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
this.selectedVariant = variant.name;
|
|
148
|
-
return true;
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Reset to the original materials
|
|
152
|
-
*/
|
|
153
|
-
resetToOriginal() {
|
|
154
|
-
if (!this._mesh)
|
|
155
|
-
return;
|
|
156
|
-
if (Array.isArray(this._mesh.material)) {
|
|
157
|
-
this._mesh.material = [...this._originalMaterials];
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
this._mesh.material = this._originalMaterials[0];
|
|
161
|
-
}
|
|
162
|
-
this.selectedVariant = "";
|
|
163
|
-
}
|
|
164
|
-
async _getMaterial(materialIndex) {
|
|
165
|
-
// First check if we have it cached
|
|
166
|
-
const cacheKey = `material_${materialIndex}`;
|
|
167
|
-
if (this._materialCache.has(cacheKey)) {
|
|
168
|
-
return this._materialCache.get(cacheKey);
|
|
169
|
-
}
|
|
170
|
-
// Try to get the material from the GLTF parser
|
|
171
|
-
const variantData = this._mesh?.userData.materialVariants;
|
|
172
|
-
if (variantData && variantData.parser) {
|
|
173
|
-
try {
|
|
174
|
-
const material = await variantData.parser.getDependency('material', materialIndex);
|
|
175
|
-
this._materialCache.set(cacheKey, material);
|
|
176
|
-
return material;
|
|
177
|
-
}
|
|
178
|
-
catch (error) {
|
|
179
|
-
console.warn(`Failed to load material at index ${materialIndex}:`, error);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
return null;
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Check if a variant exists
|
|
186
|
-
* @param variantName The name of the variant to check
|
|
187
|
-
* @returns True if the variant exists
|
|
188
|
-
*/
|
|
189
|
-
hasVariant(variantName) {
|
|
190
|
-
return this._variants.some(v => v.name === variantName);
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Get the number of available variants
|
|
194
|
-
*/
|
|
195
|
-
getVariantCount() {
|
|
196
|
-
return this._variants.length;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
__decorate([
|
|
200
|
-
syncField(),
|
|
201
|
-
serializable()
|
|
202
|
-
], MaterialVariants.prototype, "selectedVariant", void 0);
|
|
203
|
-
__decorate([
|
|
204
|
-
serializable()
|
|
205
|
-
], MaterialVariants.prototype, "createMenu", void 0);
|
|
206
|
-
function variantNameToDisplayName(name) {
|
|
207
|
-
// Make uppercase after space and beginning (unless number etc)
|
|
208
|
-
return name.replace(/(?:^|\s)\S/g, (match) => match.toUpperCase());
|
|
209
|
-
}
|
|
210
|
-
//# sourceMappingURL=MaterialVariants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialVariants.js","sourceRoot":"","sources":["../../src/engine-components/MaterialVariants.ts"],"names":[],"mappings":"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"}
|