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,6 +1,6 @@
1
1
  {
2
2
  "name": "angular-three-plugin",
3
- "version": "4.0.0-next.30",
3
+ "version": "4.0.0-next.32",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -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 gltf = await loadGLTF('');
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":";;AA2BA,sCA0BC;AApDD,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,IAAI,GAAG,MAAM,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEhC,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"}
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, isChildless, isTargetedLight, isInstancedMesh, sanitizeName } = await import('@rosskevin/gltfjsx');
19
+ const { nodeName, isRemoved, isTargetedLight, isInstancedMesh, sanitizeName } = await import('@rosskevin/gltfjsx');
17
20
  let result = '';
18
21
  let children = '';
19
- if (isRemoved(obj) && !isChildless(obj)) {
20
- obj.children.forEach((child) => (result += this.print(child)));
21
- return result;
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
- const oldResult = result;
64
- result += this.handleAngularInputs(obj);
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
- return '';
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":"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"}
1
+ {"version":3,"file":"generate-ngt.js","sourceRoot":"","sources":["../../../../../../../libs/plugin/src/generators/gltf/utils/generate-ngt.ts"],"names":[],"mappings":"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"}