angular-three-plugin 4.0.0-next.30 → 4.0.0-next.32
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/package.json
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.gltfGenerator = gltfGenerator;
|
|
4
|
+
const node_path_1 = require("node:path");
|
|
4
5
|
const generate_ngt_1 = require("./utils/generate-ngt");
|
|
5
6
|
async function gltfGenerator(tree, options) {
|
|
6
7
|
const { loadGLTF, AnalyzedGLTF, gltfTransform, Log, allPruneStrategies } = await import('@rosskevin/gltfjsx');
|
|
7
|
-
const
|
|
8
|
+
const modelPath = (0, node_path_1.join)(tree.root, options.modelPath);
|
|
9
|
+
const gltf = await loadGLTF(modelPath);
|
|
8
10
|
const analyzed = new AnalyzedGLTF(gltf, {
|
|
9
11
|
log: new Log({ debug: options.verbose, silent: false }),
|
|
10
12
|
bones: options.bones,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gltf.js","sourceRoot":"","sources":["../../../../../../libs/plugin/src/generators/gltf/gltf.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"gltf.js","sourceRoot":"","sources":["../../../../../../libs/plugin/src/generators/gltf/gltf.ts"],"names":[],"mappings":";;AA4BA,sCA4BC;AAvDD,yCAAiC;AACjC,uDAAmD;AA0B5C,KAAK,UAAU,aAAa,CAAC,IAAU,EAAE,OAA4B;IAC3E,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAE9G,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,IAAI,YAAY,CAChC,IAAI,EACJ;QACC,GAAG,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACvD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,OAAO,CAAC,SAAS;KAC5B,EACD,kBAAkB,CAClB,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,0BAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEvD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE1D,2BAA2B;AAC5B,CAAC;AAED,kBAAe,aAAa,CAAC"}
|
|
@@ -6,6 +6,7 @@ export declare class GenerateNGT {
|
|
|
6
6
|
ngtTypes: Set<string>;
|
|
7
7
|
args: boolean;
|
|
8
8
|
constructor(analyzedGLTF: import('@rosskevin/gltfjsx').AnalyzedGLTF, options: GltfGeneratorSchema);
|
|
9
|
+
generate(): Promise<string>;
|
|
9
10
|
print(obj: Object3D): Promise<string>;
|
|
10
11
|
private handleAngularInputs;
|
|
11
12
|
private getType;
|
|
@@ -12,14 +12,19 @@ class GenerateNGT {
|
|
|
12
12
|
this.analyzedGLTF = analyzedGLTF;
|
|
13
13
|
this.options = options;
|
|
14
14
|
}
|
|
15
|
+
async generate() {
|
|
16
|
+
return this.analyzedGLTF.gltf.scene.children.map((child) => this.print(child)).join('\n');
|
|
17
|
+
}
|
|
15
18
|
async print(obj) {
|
|
16
|
-
const { nodeName, isRemoved,
|
|
19
|
+
const { nodeName, isRemoved, isTargetedLight, isInstancedMesh, sanitizeName } = await import('@rosskevin/gltfjsx');
|
|
17
20
|
let result = '';
|
|
18
21
|
let children = '';
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
// Children
|
|
23
|
+
if (obj.children)
|
|
24
|
+
obj.children.forEach((child) => (children += this.print(child)));
|
|
25
|
+
// Bail out if the object was pruned
|
|
26
|
+
if (isRemoved(obj))
|
|
27
|
+
return children;
|
|
23
28
|
const { bones } = this.options;
|
|
24
29
|
const node = nodeName(obj);
|
|
25
30
|
const type = this.getType(obj);
|
|
@@ -35,10 +40,8 @@ class GenerateNGT {
|
|
|
35
40
|
<ngt-primitive *args="[gltf.${node}.target]" ${this.handleAngularInputs(obj.target)} />
|
|
36
41
|
</${ngtType}>`;
|
|
37
42
|
}
|
|
38
|
-
// Collect children
|
|
39
|
-
if (obj.children)
|
|
40
|
-
obj.children.forEach((child) => (children += this.print(child)));
|
|
41
43
|
// TODO: Instances are currently not supported for NGT components
|
|
44
|
+
//
|
|
42
45
|
if (isInstancedMesh(obj)) {
|
|
43
46
|
const geo = `gltf.${node}.geometry`;
|
|
44
47
|
const mat = 'name' in obj.material ? `gltf.materials${sanitizeName(obj.material.name)}` : `gltf.${node}.material`;
|
|
@@ -54,18 +57,46 @@ class GenerateNGT {
|
|
|
54
57
|
result = `<${this.getAngularThreeElement(type)} `;
|
|
55
58
|
}
|
|
56
59
|
}
|
|
60
|
+
let shoudSkipName = false;
|
|
57
61
|
if (obj.name.length &&
|
|
58
62
|
'morphTargetDictionary' in obj &&
|
|
59
63
|
!!obj.morphTargetDictionary &&
|
|
60
64
|
this.analyzedGLTF.hasAnimations()) {
|
|
65
|
+
shoudSkipName = true;
|
|
61
66
|
result += `name="${obj.name}" `;
|
|
62
67
|
}
|
|
63
|
-
|
|
64
|
-
|
|
68
|
+
result += this.handleAngularInputs(obj, shoudSkipName);
|
|
69
|
+
if (children.length) {
|
|
70
|
+
// Add children and close the element's tag
|
|
71
|
+
result += `>
|
|
72
|
+
${children}
|
|
73
|
+
</${ngtType}>`;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// Close this element's tag
|
|
77
|
+
result += `/>`;
|
|
78
|
+
}
|
|
65
79
|
return result;
|
|
66
80
|
}
|
|
67
|
-
handleAngularInputs(obj) {
|
|
68
|
-
|
|
81
|
+
handleAngularInputs(obj, skipName = false) {
|
|
82
|
+
const properties = this.analyzedGLTF.calculateProps(obj);
|
|
83
|
+
let propertiesString = '';
|
|
84
|
+
for (const key in properties) {
|
|
85
|
+
const value = properties[key];
|
|
86
|
+
if (key === 'name') {
|
|
87
|
+
if (skipName)
|
|
88
|
+
continue;
|
|
89
|
+
propertiesString += `name="${value}" `;
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
if (value === true) {
|
|
93
|
+
// i.e: castShadow, receiveShadow
|
|
94
|
+
propertiesString += `${key} `;
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
propertiesString += `[${key}]="${value}" `;
|
|
98
|
+
}
|
|
99
|
+
return propertiesString;
|
|
69
100
|
}
|
|
70
101
|
getType(obj) {
|
|
71
102
|
let type = obj.type.charAt(0).toLowerCase() + obj.type.slice(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-ngt.js","sourceRoot":"","sources":["../../../../../../../libs/plugin/src/generators/gltf/utils/generate-ngt.ts"],"names":[],"mappings":";;;AAGA,MAAa,WAAW;IAMd;IACA;IANT,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7B,IAAI,GAAG,KAAK,CAAC;IAEb;IACC,sCAAsC;IAC9B,YAAuD,EACvD,OAA4B;QAD5B,iBAAY,GAAZ,YAAY,CAA2C;QACvD,YAAO,GAAP,OAAO,CAAqB;IAClC,CAAC;IAEJ,KAAK,CAAC,KAAK,CAAC,GAAa;QACxB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"generate-ngt.js","sourceRoot":"","sources":["../../../../../../../libs/plugin/src/generators/gltf/utils/generate-ngt.ts"],"names":[],"mappings":"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"}
|