Show assembly structure of step files #265
This commit is contained in:
parent
423c9dcce2
commit
9aff0be5f0
File diff suppressed because one or more lines are too long
Binary file not shown.
14
package-lock.json
generated
14
package-lock.json
generated
@ -12,7 +12,7 @@
|
||||
"@simonwep/pickr": "1.8.2",
|
||||
"draco3d": "1.5.2",
|
||||
"fflate": "0.7.3",
|
||||
"occt-import-js": "0.0.6",
|
||||
"occt-import-js": "0.0.7",
|
||||
"rhino3dm": "7.14.0",
|
||||
"three": "0.140.2",
|
||||
"web-ifc": "0.0.33"
|
||||
@ -3980,9 +3980,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/occt-import-js": {
|
||||
"version": "0.0.6",
|
||||
"resolved": "https://registry.npmjs.org/occt-import-js/-/occt-import-js-0.0.6.tgz",
|
||||
"integrity": "sha512-08L5VM/RtnZyW0gFfbqLn9ysDapPqc+yvfOOgPZoOnSr21S5cVEEvfkzstMUM5KV87QGh9/3w0pYCKrfvNAEoA=="
|
||||
"version": "0.0.7",
|
||||
"resolved": "https://registry.npmjs.org/occt-import-js/-/occt-import-js-0.0.7.tgz",
|
||||
"integrity": "sha512-yZzXJemSE11P3/7CX6lxI4S4n98jajXbFf/8Ih+WDAgBDHAA5VXUNVprPnTG/5P4rjzx0R/XkA9Ti93GW25Avg=="
|
||||
},
|
||||
"node_modules/omggif": {
|
||||
"version": "1.0.10",
|
||||
@ -8320,9 +8320,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"occt-import-js": {
|
||||
"version": "0.0.6",
|
||||
"resolved": "https://registry.npmjs.org/occt-import-js/-/occt-import-js-0.0.6.tgz",
|
||||
"integrity": "sha512-08L5VM/RtnZyW0gFfbqLn9ysDapPqc+yvfOOgPZoOnSr21S5cVEEvfkzstMUM5KV87QGh9/3w0pYCKrfvNAEoA=="
|
||||
"version": "0.0.7",
|
||||
"resolved": "https://registry.npmjs.org/occt-import-js/-/occt-import-js-0.0.7.tgz",
|
||||
"integrity": "sha512-yZzXJemSE11P3/7CX6lxI4S4n98jajXbFf/8Ih+WDAgBDHAA5VXUNVprPnTG/5P4rjzx0R/XkA9Ti93GW25Avg=="
|
||||
},
|
||||
"omggif": {
|
||||
"version": "1.0.10",
|
||||
|
||||
@ -43,7 +43,7 @@
|
||||
"rhino3dm": "7.14.0",
|
||||
"three": "0.140.2",
|
||||
"web-ifc": "0.0.33",
|
||||
"occt-import-js" : "0.0.6"
|
||||
"occt-import-js" : "0.0.7"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"env": {
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { Direction } from '../geometry/geometry.js';
|
||||
import { GetExternalLibPath } from '../io/externallibs.js';
|
||||
import { Node } from '../model/node.js';
|
||||
import { ColorFromFloatComponents, ColorToHexString } from '../model/color.js';
|
||||
import { PhongMaterial } from '../model/material.js';
|
||||
import { ConvertThreeGeometryToMesh } from '../threejs/threeutils.js';
|
||||
@ -68,28 +69,48 @@ export class ImporterStp extends ImporterBase
|
||||
material.color = color;
|
||||
return this.model.AddMaterial (material);
|
||||
});
|
||||
for (let occtMesh of stepContent.meshes) {
|
||||
let materialIndex = null;
|
||||
if (occtMesh.color) {
|
||||
let color = ColorFromFloatComponents (occtMesh.color[0], occtMesh.color[1], occtMesh.color[2]);
|
||||
materialIndex = colorToMaterial.GetMaterialIndex (color);
|
||||
}
|
||||
let mesh = ConvertThreeGeometryToMesh (occtMesh, materialIndex);
|
||||
if (occtMesh.name) {
|
||||
mesh.SetName (occtMesh.name);
|
||||
}
|
||||
if (occtMesh.face_colors) {
|
||||
for (let faceColorGroup of occtMesh.face_colors) {
|
||||
let faceColor = ColorFromFloatComponents (faceColorGroup.color[0], faceColorGroup.color[1], faceColorGroup.color[2]);
|
||||
let faceMaterialIndex = colorToMaterial.GetMaterialIndex (faceColor);
|
||||
for (let i = faceColorGroup.first; i <= faceColorGroup.last; i++) {
|
||||
let triangle = mesh.GetTriangle (i);
|
||||
triangle.SetMaterial (faceMaterialIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
this.model.AddMeshToRootNode (mesh);
|
||||
}
|
||||
let rootNode = this.model.GetRootNode ();
|
||||
this.ImportNode (stepContent, stepContent.root, rootNode, colorToMaterial);
|
||||
onFinish ();
|
||||
}
|
||||
|
||||
ImportNode (stepContent, occtNode, parentNode, colorToMaterial)
|
||||
{
|
||||
for (let nodeMeshIndex of occtNode.meshes) {
|
||||
let occtMesh = stepContent.meshes[nodeMeshIndex]
|
||||
let mesh = this.ImportMesh (occtMesh, colorToMaterial);
|
||||
let meshIndex = this.model.AddMesh (mesh);
|
||||
parentNode.AddMeshIndex (meshIndex);
|
||||
}
|
||||
for (let childOcctNode of occtNode.children) {
|
||||
let childNode = new Node ();
|
||||
childNode.SetName (childOcctNode.name);
|
||||
parentNode.AddChildNode (childNode);
|
||||
this.ImportNode (stepContent, childOcctNode, childNode, colorToMaterial);
|
||||
}
|
||||
}
|
||||
|
||||
ImportMesh (occtMesh, colorToMaterial)
|
||||
{
|
||||
let materialIndex = null;
|
||||
if (occtMesh.color) {
|
||||
let color = ColorFromFloatComponents (occtMesh.color[0], occtMesh.color[1], occtMesh.color[2]);
|
||||
materialIndex = colorToMaterial.GetMaterialIndex (color);
|
||||
}
|
||||
let mesh = ConvertThreeGeometryToMesh (occtMesh, materialIndex);
|
||||
if (occtMesh.name) {
|
||||
mesh.SetName (occtMesh.name);
|
||||
}
|
||||
if (occtMesh.face_colors) {
|
||||
for (let faceColorGroup of occtMesh.face_colors) {
|
||||
let faceColor = ColorFromFloatComponents (faceColorGroup.color[0], faceColorGroup.color[1], faceColorGroup.color[2]);
|
||||
let faceMaterialIndex = colorToMaterial.GetMaterialIndex (faceColor);
|
||||
for (let i = faceColorGroup.first; i <= faceColorGroup.last; i++) {
|
||||
let triangle = mesh.GetTriangle (i);
|
||||
triangle.SetMaterial (faceMaterialIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
return mesh;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user