brepjs 12.11.2 → 12.12.0
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/dist/brepjs.cjs +131 -8
- package/dist/brepjs.js +131 -8
- package/dist/{importFns-DGRxcYhI.cjs → importFns-CyPkUA_N.cjs} +76 -7
- package/dist/{importFns-DftUsaqx.js → importFns-beNdL_tU.js} +76 -7
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/io/threemfExportFns.d.ts +11 -0
- package/dist/io/threemfExportFns.d.ts.map +1 -1
- package/dist/io/threemfImportFns.d.ts.map +1 -1
- package/dist/io.cjs +1 -1
- package/dist/io.d.ts +1 -1
- package/dist/io.d.ts.map +1 -1
- package/dist/io.js +1 -1
- package/package.json +2 -1
package/dist/brepjs.cjs
CHANGED
|
@@ -21,7 +21,7 @@ const require_measureFns = require("./measureFns-Gmok6h3t.cjs");
|
|
|
21
21
|
const require_cornerFinder = require("./cornerFinder-D1iNCBMe.cjs");
|
|
22
22
|
const require_extrudeFns = require("./extrudeFns-C2Pmhe-R.cjs");
|
|
23
23
|
const require_blueprintFns = require("./blueprintFns-CxfjtauU.cjs");
|
|
24
|
-
const require_importFns = require("./importFns-
|
|
24
|
+
const require_importFns = require("./importFns-CyPkUA_N.cjs");
|
|
25
25
|
const require_workerHandler = require("./workerHandler-D9sQ2f5u.cjs");
|
|
26
26
|
//#region src/core/kernelCall.ts
|
|
27
27
|
var errorFactories = {
|
|
@@ -1825,9 +1825,86 @@ function findTags(xml, tagName) {
|
|
|
1825
1825
|
}
|
|
1826
1826
|
return tags;
|
|
1827
1827
|
}
|
|
1828
|
+
/**
|
|
1829
|
+
* Extract a block `<tagName ...>...</tagName>` from xml.
|
|
1830
|
+
* Returns the full block string including open/close tags, or null if not found.
|
|
1831
|
+
*/
|
|
1832
|
+
function findTagBlock(xml, tagName) {
|
|
1833
|
+
const open = xml.indexOf(`<${tagName}`);
|
|
1834
|
+
if (open < 0) return null;
|
|
1835
|
+
const close = xml.indexOf(`</${tagName}>`, open);
|
|
1836
|
+
if (close < 0) return null;
|
|
1837
|
+
return xml.slice(open, close + tagName.length + 3);
|
|
1838
|
+
}
|
|
1839
|
+
/** Parse a hex color string like #RRGGBB or #RRGGBBAA into [r,g,b,a] floats. */
|
|
1840
|
+
function parseHexColor(hex) {
|
|
1841
|
+
const h = hex.startsWith("#") ? hex.slice(1) : hex;
|
|
1842
|
+
return [
|
|
1843
|
+
parseInt(h.slice(0, 2), 16) / 255,
|
|
1844
|
+
parseInt(h.slice(2, 4), 16) / 255,
|
|
1845
|
+
parseInt(h.slice(4, 6), 16) / 255,
|
|
1846
|
+
h.length >= 8 ? parseInt(h.slice(6, 8), 16) / 255 : 1
|
|
1847
|
+
];
|
|
1848
|
+
}
|
|
1849
|
+
/**
|
|
1850
|
+
* Build a combined resource map from colorgroup and basematerials blocks.
|
|
1851
|
+
* Returns: Map<resourceId, Array<[r,g,b,a]>>
|
|
1852
|
+
*/
|
|
1853
|
+
function parseResourceColors(xml) {
|
|
1854
|
+
const resources = /* @__PURE__ */ new Map();
|
|
1855
|
+
let searchPos = 0;
|
|
1856
|
+
while (searchPos < xml.length) {
|
|
1857
|
+
const cgStart = xml.indexOf("<colorgroup", searchPos);
|
|
1858
|
+
if (cgStart < 0) break;
|
|
1859
|
+
const cgClose = xml.indexOf("</colorgroup>", cgStart);
|
|
1860
|
+
if (cgClose < 0) break;
|
|
1861
|
+
const cgBlock = xml.slice(cgStart, cgClose + 13);
|
|
1862
|
+
searchPos = cgClose + 13;
|
|
1863
|
+
const cgTagEnd = xml.indexOf(">", cgStart);
|
|
1864
|
+
if (cgTagEnd < 0) continue;
|
|
1865
|
+
const idStr = parseTagAttrs(xml.slice(cgStart, cgTagEnd + 1))["id"];
|
|
1866
|
+
if (idStr === void 0) continue;
|
|
1867
|
+
const resourceId = parseInt(idStr, 10);
|
|
1868
|
+
const colorArr = [];
|
|
1869
|
+
for (const colorTag of findTags(cgBlock, "color")) {
|
|
1870
|
+
const colorVal = parseTagAttrs(colorTag)["color"];
|
|
1871
|
+
if (colorVal !== void 0) colorArr.push(parseHexColor(colorVal));
|
|
1872
|
+
}
|
|
1873
|
+
resources.set(resourceId, colorArr);
|
|
1874
|
+
}
|
|
1875
|
+
let bmSearchPos = 0;
|
|
1876
|
+
while (bmSearchPos < xml.length) {
|
|
1877
|
+
const bmStart = xml.indexOf("<basematerials", bmSearchPos);
|
|
1878
|
+
if (bmStart < 0) break;
|
|
1879
|
+
const bmClose = xml.indexOf("</basematerials>", bmStart);
|
|
1880
|
+
if (bmClose < 0) break;
|
|
1881
|
+
const bmBlock = xml.slice(bmStart, bmClose + 16);
|
|
1882
|
+
bmSearchPos = bmClose + 16;
|
|
1883
|
+
const bmTagEnd = xml.indexOf(">", bmStart);
|
|
1884
|
+
if (bmTagEnd < 0) continue;
|
|
1885
|
+
const idStr = parseTagAttrs(xml.slice(bmStart, bmTagEnd + 1))["id"];
|
|
1886
|
+
if (idStr === void 0) continue;
|
|
1887
|
+
const resourceId = parseInt(idStr, 10);
|
|
1888
|
+
const colorArr = [];
|
|
1889
|
+
for (const baseTag of findTags(bmBlock, "base")) {
|
|
1890
|
+
const displayColor = parseTagAttrs(baseTag)["displaycolor"];
|
|
1891
|
+
if (displayColor !== void 0) colorArr.push(parseHexColor(displayColor));
|
|
1892
|
+
else colorArr.push([
|
|
1893
|
+
0,
|
|
1894
|
+
0,
|
|
1895
|
+
0,
|
|
1896
|
+
1
|
|
1897
|
+
]);
|
|
1898
|
+
}
|
|
1899
|
+
resources.set(resourceId, colorArr);
|
|
1900
|
+
}
|
|
1901
|
+
return resources;
|
|
1902
|
+
}
|
|
1828
1903
|
function parseModelXml(xml) {
|
|
1829
1904
|
const vertices = [];
|
|
1830
1905
|
const triangles = [];
|
|
1906
|
+
const triangleColors = [];
|
|
1907
|
+
const resourceColors = parseResourceColors(xml);
|
|
1831
1908
|
for (const tag of findTags(xml, "vertex")) {
|
|
1832
1909
|
const a = parseTagAttrs(tag);
|
|
1833
1910
|
if (a["x"] !== void 0 && a["y"] !== void 0 && a["z"] !== void 0) vertices.push([
|
|
@@ -1836,19 +1913,60 @@ function parseModelXml(xml) {
|
|
|
1836
1913
|
parseFloat(a["z"])
|
|
1837
1914
|
]);
|
|
1838
1915
|
}
|
|
1916
|
+
let objectDefaultPid = null;
|
|
1917
|
+
let objectDefaultPindex = null;
|
|
1918
|
+
const objectBlock = findTagBlock(xml, "object");
|
|
1919
|
+
if (objectBlock !== null) {
|
|
1920
|
+
const objTagEnd = objectBlock.indexOf(">");
|
|
1921
|
+
if (objTagEnd >= 0) {
|
|
1922
|
+
const objAttrs = parseTagAttrs(objectBlock.slice(0, objTagEnd + 1));
|
|
1923
|
+
if (objAttrs["pid"] !== void 0) objectDefaultPid = parseInt(objAttrs["pid"], 10);
|
|
1924
|
+
if (objAttrs["pindex"] !== void 0) objectDefaultPindex = parseInt(objAttrs["pindex"], 10);
|
|
1925
|
+
}
|
|
1926
|
+
}
|
|
1839
1927
|
for (const tag of findTags(xml, "triangle")) {
|
|
1840
1928
|
const a = parseTagAttrs(tag);
|
|
1841
|
-
if (a["v1"] !== void 0 && a["v2"] !== void 0 && a["v3"] !== void 0)
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1929
|
+
if (a["v1"] !== void 0 && a["v2"] !== void 0 && a["v3"] !== void 0) {
|
|
1930
|
+
triangles.push([
|
|
1931
|
+
parseInt(a["v1"], 10),
|
|
1932
|
+
parseInt(a["v2"], 10),
|
|
1933
|
+
parseInt(a["v3"], 10)
|
|
1934
|
+
]);
|
|
1935
|
+
let color = null;
|
|
1936
|
+
const pidStr = a["pid"] ?? (objectDefaultPid !== null ? String(objectDefaultPid) : void 0);
|
|
1937
|
+
const p1Str = a["p1"] ?? (objectDefaultPindex !== null ? String(objectDefaultPindex) : void 0);
|
|
1938
|
+
if (pidStr !== void 0 && p1Str !== void 0) {
|
|
1939
|
+
const pid = parseInt(pidStr, 10);
|
|
1940
|
+
const p1 = parseInt(p1Str, 10);
|
|
1941
|
+
const palette = resourceColors.get(pid);
|
|
1942
|
+
if (palette !== void 0 && p1 < palette.length) color = palette[p1] ?? null;
|
|
1943
|
+
}
|
|
1944
|
+
triangleColors.push(color);
|
|
1945
|
+
}
|
|
1846
1946
|
}
|
|
1847
1947
|
return {
|
|
1848
1948
|
vertices,
|
|
1849
|
-
triangles
|
|
1949
|
+
triangles,
|
|
1950
|
+
triangleColors
|
|
1850
1951
|
};
|
|
1851
1952
|
}
|
|
1953
|
+
/** Find the most common non-null color across all triangle colors. */
|
|
1954
|
+
function findDominantColor(triangleColors) {
|
|
1955
|
+
const counts = /* @__PURE__ */ new Map();
|
|
1956
|
+
for (const c of triangleColors) {
|
|
1957
|
+
if (c === null) continue;
|
|
1958
|
+
const key = c.join(",");
|
|
1959
|
+
const entry = counts.get(key);
|
|
1960
|
+
if (entry !== void 0) entry.count++;
|
|
1961
|
+
else counts.set(key, {
|
|
1962
|
+
count: 1,
|
|
1963
|
+
color: c
|
|
1964
|
+
});
|
|
1965
|
+
}
|
|
1966
|
+
let best = null;
|
|
1967
|
+
for (const entry of counts.values()) if (best === null || entry.count > best.count) best = entry;
|
|
1968
|
+
return best !== null ? best.color : null;
|
|
1969
|
+
}
|
|
1852
1970
|
function buildSolidFromMesh(mesh) {
|
|
1853
1971
|
const kernel = require_shapeTypes.getKernel();
|
|
1854
1972
|
const points = mesh.vertices.map(([x, y, z]) => ({
|
|
@@ -1897,7 +2015,12 @@ async function importThreeMF(blob) {
|
|
|
1897
2015
|
if (!modelData) return require_errors.err(require_errors.ioError(require_errors.BrepErrorCode.THREEMF_IMPORT_FAILED, "3MF archive does not contain 3D/3dmodel.model (or uses unsupported compression)"));
|
|
1898
2016
|
const parsed = parseModelXml(new TextDecoder().decode(modelData));
|
|
1899
2017
|
if (parsed.vertices.length === 0 || parsed.triangles.length === 0) return require_errors.err(require_errors.ioError(require_errors.BrepErrorCode.THREEMF_IMPORT_FAILED, "3MF model contains no valid geometry"));
|
|
1900
|
-
|
|
2018
|
+
const solid = buildSolidFromMesh(parsed);
|
|
2019
|
+
if (solid.ok) {
|
|
2020
|
+
const dominantColor = findDominantColor(parsed.triangleColors);
|
|
2021
|
+
if (dominantColor !== null) require_shapeFns.colorShape(solid.value, dominantColor);
|
|
2022
|
+
}
|
|
2023
|
+
return solid;
|
|
1901
2024
|
} catch (e) {
|
|
1902
2025
|
const msg = e instanceof Error ? e.message : String(e);
|
|
1903
2026
|
return require_errors.err(require_errors.ioError(require_errors.BrepErrorCode.THREEMF_IMPORT_FAILED, `3MF import failed: ${msg}`, e));
|
package/dist/brepjs.js
CHANGED
|
@@ -20,7 +20,7 @@ import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps,
|
|
|
20
20
|
import { t as cornerFinder } from "./cornerFinder-Bhpxe2GK.js";
|
|
21
21
|
import { a as multiSectionSweep, c as twistExtrude, i as guidedSweep, n as revolve$1, o as supportExtrude, r as complexExtrude, s as sweep, t as extrude$1 } from "./extrudeFns-GVLc2cLp.js";
|
|
22
22
|
import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, n as createCompoundBlueprint, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-bpyUa_XY.js";
|
|
23
|
-
import { a as importSVGPathD, c as exportDXF, d as exportOBJ, i as importSVG, l as exportGlb, n as importSTEP, o as exportThreeMF, r as importSTL, s as blueprintToDXF, t as importIGES, u as exportGltf } from "./importFns-
|
|
23
|
+
import { a as importSVGPathD, c as exportDXF, d as exportOBJ, i as importSVG, l as exportGlb, n as importSTEP, o as exportThreeMF, r as importSTL, s as blueprintToDXF, t as importIGES, u as exportGltf } from "./importFns-beNdL_tU.js";
|
|
24
24
|
import { a as createTaskQueue, c as isEmpty$1, d as isDisposeRequest, f as isErrorResponse, h as isSuccessResponse, i as createWorkerClient, l as pendingCount, m as isOperationRequest, n as createWorkerHandler, o as dequeueTask, p as isInitRequest, r as registerHandler, s as enqueueTask, t as createOperationRegistry, u as rejectAll } from "./workerHandler-Cv_6jKDO.js";
|
|
25
25
|
//#region src/core/kernelCall.ts
|
|
26
26
|
var errorFactories = {
|
|
@@ -1824,9 +1824,86 @@ function findTags(xml, tagName) {
|
|
|
1824
1824
|
}
|
|
1825
1825
|
return tags;
|
|
1826
1826
|
}
|
|
1827
|
+
/**
|
|
1828
|
+
* Extract a block `<tagName ...>...</tagName>` from xml.
|
|
1829
|
+
* Returns the full block string including open/close tags, or null if not found.
|
|
1830
|
+
*/
|
|
1831
|
+
function findTagBlock(xml, tagName) {
|
|
1832
|
+
const open = xml.indexOf(`<${tagName}`);
|
|
1833
|
+
if (open < 0) return null;
|
|
1834
|
+
const close = xml.indexOf(`</${tagName}>`, open);
|
|
1835
|
+
if (close < 0) return null;
|
|
1836
|
+
return xml.slice(open, close + tagName.length + 3);
|
|
1837
|
+
}
|
|
1838
|
+
/** Parse a hex color string like #RRGGBB or #RRGGBBAA into [r,g,b,a] floats. */
|
|
1839
|
+
function parseHexColor(hex) {
|
|
1840
|
+
const h = hex.startsWith("#") ? hex.slice(1) : hex;
|
|
1841
|
+
return [
|
|
1842
|
+
parseInt(h.slice(0, 2), 16) / 255,
|
|
1843
|
+
parseInt(h.slice(2, 4), 16) / 255,
|
|
1844
|
+
parseInt(h.slice(4, 6), 16) / 255,
|
|
1845
|
+
h.length >= 8 ? parseInt(h.slice(6, 8), 16) / 255 : 1
|
|
1846
|
+
];
|
|
1847
|
+
}
|
|
1848
|
+
/**
|
|
1849
|
+
* Build a combined resource map from colorgroup and basematerials blocks.
|
|
1850
|
+
* Returns: Map<resourceId, Array<[r,g,b,a]>>
|
|
1851
|
+
*/
|
|
1852
|
+
function parseResourceColors(xml) {
|
|
1853
|
+
const resources = /* @__PURE__ */ new Map();
|
|
1854
|
+
let searchPos = 0;
|
|
1855
|
+
while (searchPos < xml.length) {
|
|
1856
|
+
const cgStart = xml.indexOf("<colorgroup", searchPos);
|
|
1857
|
+
if (cgStart < 0) break;
|
|
1858
|
+
const cgClose = xml.indexOf("</colorgroup>", cgStart);
|
|
1859
|
+
if (cgClose < 0) break;
|
|
1860
|
+
const cgBlock = xml.slice(cgStart, cgClose + 13);
|
|
1861
|
+
searchPos = cgClose + 13;
|
|
1862
|
+
const cgTagEnd = xml.indexOf(">", cgStart);
|
|
1863
|
+
if (cgTagEnd < 0) continue;
|
|
1864
|
+
const idStr = parseTagAttrs(xml.slice(cgStart, cgTagEnd + 1))["id"];
|
|
1865
|
+
if (idStr === void 0) continue;
|
|
1866
|
+
const resourceId = parseInt(idStr, 10);
|
|
1867
|
+
const colorArr = [];
|
|
1868
|
+
for (const colorTag of findTags(cgBlock, "color")) {
|
|
1869
|
+
const colorVal = parseTagAttrs(colorTag)["color"];
|
|
1870
|
+
if (colorVal !== void 0) colorArr.push(parseHexColor(colorVal));
|
|
1871
|
+
}
|
|
1872
|
+
resources.set(resourceId, colorArr);
|
|
1873
|
+
}
|
|
1874
|
+
let bmSearchPos = 0;
|
|
1875
|
+
while (bmSearchPos < xml.length) {
|
|
1876
|
+
const bmStart = xml.indexOf("<basematerials", bmSearchPos);
|
|
1877
|
+
if (bmStart < 0) break;
|
|
1878
|
+
const bmClose = xml.indexOf("</basematerials>", bmStart);
|
|
1879
|
+
if (bmClose < 0) break;
|
|
1880
|
+
const bmBlock = xml.slice(bmStart, bmClose + 16);
|
|
1881
|
+
bmSearchPos = bmClose + 16;
|
|
1882
|
+
const bmTagEnd = xml.indexOf(">", bmStart);
|
|
1883
|
+
if (bmTagEnd < 0) continue;
|
|
1884
|
+
const idStr = parseTagAttrs(xml.slice(bmStart, bmTagEnd + 1))["id"];
|
|
1885
|
+
if (idStr === void 0) continue;
|
|
1886
|
+
const resourceId = parseInt(idStr, 10);
|
|
1887
|
+
const colorArr = [];
|
|
1888
|
+
for (const baseTag of findTags(bmBlock, "base")) {
|
|
1889
|
+
const displayColor = parseTagAttrs(baseTag)["displaycolor"];
|
|
1890
|
+
if (displayColor !== void 0) colorArr.push(parseHexColor(displayColor));
|
|
1891
|
+
else colorArr.push([
|
|
1892
|
+
0,
|
|
1893
|
+
0,
|
|
1894
|
+
0,
|
|
1895
|
+
1
|
|
1896
|
+
]);
|
|
1897
|
+
}
|
|
1898
|
+
resources.set(resourceId, colorArr);
|
|
1899
|
+
}
|
|
1900
|
+
return resources;
|
|
1901
|
+
}
|
|
1827
1902
|
function parseModelXml(xml) {
|
|
1828
1903
|
const vertices = [];
|
|
1829
1904
|
const triangles = [];
|
|
1905
|
+
const triangleColors = [];
|
|
1906
|
+
const resourceColors = parseResourceColors(xml);
|
|
1830
1907
|
for (const tag of findTags(xml, "vertex")) {
|
|
1831
1908
|
const a = parseTagAttrs(tag);
|
|
1832
1909
|
if (a["x"] !== void 0 && a["y"] !== void 0 && a["z"] !== void 0) vertices.push([
|
|
@@ -1835,19 +1912,60 @@ function parseModelXml(xml) {
|
|
|
1835
1912
|
parseFloat(a["z"])
|
|
1836
1913
|
]);
|
|
1837
1914
|
}
|
|
1915
|
+
let objectDefaultPid = null;
|
|
1916
|
+
let objectDefaultPindex = null;
|
|
1917
|
+
const objectBlock = findTagBlock(xml, "object");
|
|
1918
|
+
if (objectBlock !== null) {
|
|
1919
|
+
const objTagEnd = objectBlock.indexOf(">");
|
|
1920
|
+
if (objTagEnd >= 0) {
|
|
1921
|
+
const objAttrs = parseTagAttrs(objectBlock.slice(0, objTagEnd + 1));
|
|
1922
|
+
if (objAttrs["pid"] !== void 0) objectDefaultPid = parseInt(objAttrs["pid"], 10);
|
|
1923
|
+
if (objAttrs["pindex"] !== void 0) objectDefaultPindex = parseInt(objAttrs["pindex"], 10);
|
|
1924
|
+
}
|
|
1925
|
+
}
|
|
1838
1926
|
for (const tag of findTags(xml, "triangle")) {
|
|
1839
1927
|
const a = parseTagAttrs(tag);
|
|
1840
|
-
if (a["v1"] !== void 0 && a["v2"] !== void 0 && a["v3"] !== void 0)
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1928
|
+
if (a["v1"] !== void 0 && a["v2"] !== void 0 && a["v3"] !== void 0) {
|
|
1929
|
+
triangles.push([
|
|
1930
|
+
parseInt(a["v1"], 10),
|
|
1931
|
+
parseInt(a["v2"], 10),
|
|
1932
|
+
parseInt(a["v3"], 10)
|
|
1933
|
+
]);
|
|
1934
|
+
let color = null;
|
|
1935
|
+
const pidStr = a["pid"] ?? (objectDefaultPid !== null ? String(objectDefaultPid) : void 0);
|
|
1936
|
+
const p1Str = a["p1"] ?? (objectDefaultPindex !== null ? String(objectDefaultPindex) : void 0);
|
|
1937
|
+
if (pidStr !== void 0 && p1Str !== void 0) {
|
|
1938
|
+
const pid = parseInt(pidStr, 10);
|
|
1939
|
+
const p1 = parseInt(p1Str, 10);
|
|
1940
|
+
const palette = resourceColors.get(pid);
|
|
1941
|
+
if (palette !== void 0 && p1 < palette.length) color = palette[p1] ?? null;
|
|
1942
|
+
}
|
|
1943
|
+
triangleColors.push(color);
|
|
1944
|
+
}
|
|
1845
1945
|
}
|
|
1846
1946
|
return {
|
|
1847
1947
|
vertices,
|
|
1848
|
-
triangles
|
|
1948
|
+
triangles,
|
|
1949
|
+
triangleColors
|
|
1849
1950
|
};
|
|
1850
1951
|
}
|
|
1952
|
+
/** Find the most common non-null color across all triangle colors. */
|
|
1953
|
+
function findDominantColor(triangleColors) {
|
|
1954
|
+
const counts = /* @__PURE__ */ new Map();
|
|
1955
|
+
for (const c of triangleColors) {
|
|
1956
|
+
if (c === null) continue;
|
|
1957
|
+
const key = c.join(",");
|
|
1958
|
+
const entry = counts.get(key);
|
|
1959
|
+
if (entry !== void 0) entry.count++;
|
|
1960
|
+
else counts.set(key, {
|
|
1961
|
+
count: 1,
|
|
1962
|
+
color: c
|
|
1963
|
+
});
|
|
1964
|
+
}
|
|
1965
|
+
let best = null;
|
|
1966
|
+
for (const entry of counts.values()) if (best === null || entry.count > best.count) best = entry;
|
|
1967
|
+
return best !== null ? best.color : null;
|
|
1968
|
+
}
|
|
1851
1969
|
function buildSolidFromMesh(mesh) {
|
|
1852
1970
|
const kernel = getKernel();
|
|
1853
1971
|
const points = mesh.vertices.map(([x, y, z]) => ({
|
|
@@ -1896,7 +2014,12 @@ async function importThreeMF(blob) {
|
|
|
1896
2014
|
if (!modelData) return err(ioError(BrepErrorCode.THREEMF_IMPORT_FAILED, "3MF archive does not contain 3D/3dmodel.model (or uses unsupported compression)"));
|
|
1897
2015
|
const parsed = parseModelXml(new TextDecoder().decode(modelData));
|
|
1898
2016
|
if (parsed.vertices.length === 0 || parsed.triangles.length === 0) return err(ioError(BrepErrorCode.THREEMF_IMPORT_FAILED, "3MF model contains no valid geometry"));
|
|
1899
|
-
|
|
2017
|
+
const solid = buildSolidFromMesh(parsed);
|
|
2018
|
+
if (solid.ok) {
|
|
2019
|
+
const dominantColor = findDominantColor(parsed.triangleColors);
|
|
2020
|
+
if (dominantColor !== null) colorShape(solid.value, dominantColor);
|
|
2021
|
+
}
|
|
2022
|
+
return solid;
|
|
1900
2023
|
} catch (e) {
|
|
1901
2024
|
const msg = e instanceof Error ? e.message : String(e);
|
|
1902
2025
|
return err(ioError(BrepErrorCode.THREEMF_IMPORT_FAILED, `3MF import failed: ${msg}`, e));
|
|
@@ -695,7 +695,15 @@ function buildZip(entries) {
|
|
|
695
695
|
view.setUint16(pos, 0, true);
|
|
696
696
|
return buf;
|
|
697
697
|
}
|
|
698
|
-
|
|
698
|
+
/** Escape XML special characters in attribute values. */
|
|
699
|
+
function escapeXmlAttr(s) {
|
|
700
|
+
return s.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """);
|
|
701
|
+
}
|
|
702
|
+
function colorToHex(rgba) {
|
|
703
|
+
const to8 = (v) => Math.round(Math.max(0, Math.min(1, v)) * 255).toString(16).padStart(2, "0").toUpperCase();
|
|
704
|
+
return `#${to8(rgba[0])}${to8(rgba[1])}${to8(rgba[2])}${to8(rgba[3])}`;
|
|
705
|
+
}
|
|
706
|
+
function build3MFModel(mesh, name, unit, colors, materials) {
|
|
699
707
|
const vertices = [];
|
|
700
708
|
for (let i = 0; i < mesh.vertices.length; i += 3) {
|
|
701
709
|
const x = mesh.vertices[i] ?? 0;
|
|
@@ -703,17 +711,78 @@ function build3MFModel(mesh, name, unit) {
|
|
|
703
711
|
const z = mesh.vertices[i + 2] ?? 0;
|
|
704
712
|
vertices.push(` <vertex x="${x}" y="${y}" z="${z}" />`);
|
|
705
713
|
}
|
|
714
|
+
const colorIndexByHex = /* @__PURE__ */ new Map();
|
|
715
|
+
const colorHexList = [];
|
|
716
|
+
if (colors !== void 0 && colors.size > 0) for (const rgba of colors.values()) {
|
|
717
|
+
const hex = colorToHex(rgba);
|
|
718
|
+
if (!colorIndexByHex.has(hex)) {
|
|
719
|
+
colorIndexByHex.set(hex, colorHexList.length);
|
|
720
|
+
colorHexList.push(hex);
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
const materialIndexByName = /* @__PURE__ */ new Map();
|
|
724
|
+
const materialList = [];
|
|
725
|
+
if (materials !== void 0 && materials.size > 0) {
|
|
726
|
+
for (const mat of materials.values()) if (!materialIndexByName.has(mat.name)) {
|
|
727
|
+
materialIndexByName.set(mat.name, materialList.length);
|
|
728
|
+
materialList.push(mat);
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
const triangleAttrs = /* @__PURE__ */ new Map();
|
|
732
|
+
for (const group of mesh.faceGroups) {
|
|
733
|
+
const triStart = group.start / 3;
|
|
734
|
+
const triCount = group.count / 3;
|
|
735
|
+
const faceId = group.faceId;
|
|
736
|
+
let attrs;
|
|
737
|
+
if (materials !== void 0) {
|
|
738
|
+
const mat = materials.get(faceId);
|
|
739
|
+
if (mat !== void 0) {
|
|
740
|
+
const matIdx = materialIndexByName.get(mat.name);
|
|
741
|
+
if (matIdx !== void 0) attrs = {
|
|
742
|
+
pid: 3,
|
|
743
|
+
p1: matIdx
|
|
744
|
+
};
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
if (attrs === void 0 && colors !== void 0) {
|
|
748
|
+
const rgba = colors.get(faceId);
|
|
749
|
+
if (rgba !== void 0) {
|
|
750
|
+
const hex = colorToHex(rgba);
|
|
751
|
+
const colorIdx = colorIndexByHex.get(hex);
|
|
752
|
+
if (colorIdx !== void 0) attrs = {
|
|
753
|
+
pid: 2,
|
|
754
|
+
p1: colorIdx
|
|
755
|
+
};
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
if (attrs !== void 0) for (let t = triStart; t < triStart + triCount; t++) triangleAttrs.set(t, attrs);
|
|
759
|
+
}
|
|
706
760
|
const triangles = [];
|
|
707
761
|
for (let i = 0; i < mesh.triangles.length; i += 3) {
|
|
762
|
+
const triIdx = i / 3;
|
|
708
763
|
const v1 = mesh.triangles[i] ?? 0;
|
|
709
764
|
const v2 = mesh.triangles[i + 1] ?? 0;
|
|
710
765
|
const v3 = mesh.triangles[i + 2] ?? 0;
|
|
711
|
-
|
|
766
|
+
const attrs = triangleAttrs.get(triIdx);
|
|
767
|
+
if (attrs !== void 0) triangles.push(` <triangle v1="${v1}" v2="${v2}" v3="${v3}" pid="${attrs.pid}" p1="${attrs.p1}" />`);
|
|
768
|
+
else triangles.push(` <triangle v1="${v1}" v2="${v2}" v3="${v3}" />`);
|
|
769
|
+
}
|
|
770
|
+
const resourceBlocks = [];
|
|
771
|
+
if (colorHexList.length > 0) {
|
|
772
|
+
const colorItems = colorHexList.map((hex) => ` <color color="${hex}" />`).join("\n");
|
|
773
|
+
resourceBlocks.push(` <colorgroup id="2">\n${colorItems}\n </colorgroup>`);
|
|
774
|
+
}
|
|
775
|
+
if (materialList.length > 0) {
|
|
776
|
+
const matItems = materialList.map((mat) => {
|
|
777
|
+
const hexColor = mat.displayColor !== void 0 ? colorToHex(mat.displayColor) : "#FFFFFFFF";
|
|
778
|
+
return ` <base name="${escapeXmlAttr(mat.name)}" displaycolor="${hexColor}" />`;
|
|
779
|
+
}).join("\n");
|
|
780
|
+
resourceBlocks.push(` <basematerials id="3">\n${matItems}\n </basematerials>`);
|
|
712
781
|
}
|
|
713
782
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
714
|
-
<model unit="${unit}" xmlns="http://schemas.microsoft.com/3dmanufacturing/core/2015/02">
|
|
715
|
-
<resources>
|
|
716
|
-
<object id="1" name="${name}" type="model">
|
|
783
|
+
<model unit="${unit}" xmlns="http://schemas.microsoft.com/3dmanufacturing/core/2015/02"${materialList.length > 0 ? "\n xmlns:m=\"http://schemas.microsoft.com/3dmanufacturing/material/2015/02\"" : ""}>
|
|
784
|
+
<resources>${resourceBlocks.length > 0 ? "\n" + resourceBlocks.join("\n") : ""}
|
|
785
|
+
<object id="1" name="${escapeXmlAttr(name)}" type="model">
|
|
717
786
|
<mesh>
|
|
718
787
|
<vertices>
|
|
719
788
|
${vertices.join("\n")}
|
|
@@ -751,7 +820,7 @@ ${triangles.join("\n")}
|
|
|
751
820
|
* ```
|
|
752
821
|
*/
|
|
753
822
|
function exportThreeMF(mesh, options = {}) {
|
|
754
|
-
const { name = "model", unit = "millimeter" } = options;
|
|
823
|
+
const { name = "model", unit = "millimeter", colors, materials } = options;
|
|
755
824
|
const encoder = new TextEncoder();
|
|
756
825
|
const contentTypes = `<?xml version="1.0" encoding="UTF-8"?>
|
|
757
826
|
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
|
|
@@ -762,7 +831,7 @@ function exportThreeMF(mesh, options = {}) {
|
|
|
762
831
|
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
763
832
|
<Relationship Target="/3D/3dmodel.model" Id="rel0" Type="http://schemas.microsoft.com/3dmanufacturing/2013/01/3dmodel" />
|
|
764
833
|
</Relationships>`;
|
|
765
|
-
const model = build3MFModel(mesh, name, unit);
|
|
834
|
+
const model = build3MFModel(mesh, name, unit, colors, materials);
|
|
766
835
|
function entry(path, content) {
|
|
767
836
|
const nameBytes = encoder.encode(path);
|
|
768
837
|
const dataBytes = encoder.encode(content);
|
|
@@ -695,7 +695,15 @@ function buildZip(entries) {
|
|
|
695
695
|
view.setUint16(pos, 0, true);
|
|
696
696
|
return buf;
|
|
697
697
|
}
|
|
698
|
-
|
|
698
|
+
/** Escape XML special characters in attribute values. */
|
|
699
|
+
function escapeXmlAttr(s) {
|
|
700
|
+
return s.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """);
|
|
701
|
+
}
|
|
702
|
+
function colorToHex(rgba) {
|
|
703
|
+
const to8 = (v) => Math.round(Math.max(0, Math.min(1, v)) * 255).toString(16).padStart(2, "0").toUpperCase();
|
|
704
|
+
return `#${to8(rgba[0])}${to8(rgba[1])}${to8(rgba[2])}${to8(rgba[3])}`;
|
|
705
|
+
}
|
|
706
|
+
function build3MFModel(mesh, name, unit, colors, materials) {
|
|
699
707
|
const vertices = [];
|
|
700
708
|
for (let i = 0; i < mesh.vertices.length; i += 3) {
|
|
701
709
|
const x = mesh.vertices[i] ?? 0;
|
|
@@ -703,17 +711,78 @@ function build3MFModel(mesh, name, unit) {
|
|
|
703
711
|
const z = mesh.vertices[i + 2] ?? 0;
|
|
704
712
|
vertices.push(` <vertex x="${x}" y="${y}" z="${z}" />`);
|
|
705
713
|
}
|
|
714
|
+
const colorIndexByHex = /* @__PURE__ */ new Map();
|
|
715
|
+
const colorHexList = [];
|
|
716
|
+
if (colors !== void 0 && colors.size > 0) for (const rgba of colors.values()) {
|
|
717
|
+
const hex = colorToHex(rgba);
|
|
718
|
+
if (!colorIndexByHex.has(hex)) {
|
|
719
|
+
colorIndexByHex.set(hex, colorHexList.length);
|
|
720
|
+
colorHexList.push(hex);
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
const materialIndexByName = /* @__PURE__ */ new Map();
|
|
724
|
+
const materialList = [];
|
|
725
|
+
if (materials !== void 0 && materials.size > 0) {
|
|
726
|
+
for (const mat of materials.values()) if (!materialIndexByName.has(mat.name)) {
|
|
727
|
+
materialIndexByName.set(mat.name, materialList.length);
|
|
728
|
+
materialList.push(mat);
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
const triangleAttrs = /* @__PURE__ */ new Map();
|
|
732
|
+
for (const group of mesh.faceGroups) {
|
|
733
|
+
const triStart = group.start / 3;
|
|
734
|
+
const triCount = group.count / 3;
|
|
735
|
+
const faceId = group.faceId;
|
|
736
|
+
let attrs;
|
|
737
|
+
if (materials !== void 0) {
|
|
738
|
+
const mat = materials.get(faceId);
|
|
739
|
+
if (mat !== void 0) {
|
|
740
|
+
const matIdx = materialIndexByName.get(mat.name);
|
|
741
|
+
if (matIdx !== void 0) attrs = {
|
|
742
|
+
pid: 3,
|
|
743
|
+
p1: matIdx
|
|
744
|
+
};
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
if (attrs === void 0 && colors !== void 0) {
|
|
748
|
+
const rgba = colors.get(faceId);
|
|
749
|
+
if (rgba !== void 0) {
|
|
750
|
+
const hex = colorToHex(rgba);
|
|
751
|
+
const colorIdx = colorIndexByHex.get(hex);
|
|
752
|
+
if (colorIdx !== void 0) attrs = {
|
|
753
|
+
pid: 2,
|
|
754
|
+
p1: colorIdx
|
|
755
|
+
};
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
if (attrs !== void 0) for (let t = triStart; t < triStart + triCount; t++) triangleAttrs.set(t, attrs);
|
|
759
|
+
}
|
|
706
760
|
const triangles = [];
|
|
707
761
|
for (let i = 0; i < mesh.triangles.length; i += 3) {
|
|
762
|
+
const triIdx = i / 3;
|
|
708
763
|
const v1 = mesh.triangles[i] ?? 0;
|
|
709
764
|
const v2 = mesh.triangles[i + 1] ?? 0;
|
|
710
765
|
const v3 = mesh.triangles[i + 2] ?? 0;
|
|
711
|
-
|
|
766
|
+
const attrs = triangleAttrs.get(triIdx);
|
|
767
|
+
if (attrs !== void 0) triangles.push(` <triangle v1="${v1}" v2="${v2}" v3="${v3}" pid="${attrs.pid}" p1="${attrs.p1}" />`);
|
|
768
|
+
else triangles.push(` <triangle v1="${v1}" v2="${v2}" v3="${v3}" />`);
|
|
769
|
+
}
|
|
770
|
+
const resourceBlocks = [];
|
|
771
|
+
if (colorHexList.length > 0) {
|
|
772
|
+
const colorItems = colorHexList.map((hex) => ` <color color="${hex}" />`).join("\n");
|
|
773
|
+
resourceBlocks.push(` <colorgroup id="2">\n${colorItems}\n </colorgroup>`);
|
|
774
|
+
}
|
|
775
|
+
if (materialList.length > 0) {
|
|
776
|
+
const matItems = materialList.map((mat) => {
|
|
777
|
+
const hexColor = mat.displayColor !== void 0 ? colorToHex(mat.displayColor) : "#FFFFFFFF";
|
|
778
|
+
return ` <base name="${escapeXmlAttr(mat.name)}" displaycolor="${hexColor}" />`;
|
|
779
|
+
}).join("\n");
|
|
780
|
+
resourceBlocks.push(` <basematerials id="3">\n${matItems}\n </basematerials>`);
|
|
712
781
|
}
|
|
713
782
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
714
|
-
<model unit="${unit}" xmlns="http://schemas.microsoft.com/3dmanufacturing/core/2015/02">
|
|
715
|
-
<resources>
|
|
716
|
-
<object id="1" name="${name}" type="model">
|
|
783
|
+
<model unit="${unit}" xmlns="http://schemas.microsoft.com/3dmanufacturing/core/2015/02"${materialList.length > 0 ? "\n xmlns:m=\"http://schemas.microsoft.com/3dmanufacturing/material/2015/02\"" : ""}>
|
|
784
|
+
<resources>${resourceBlocks.length > 0 ? "\n" + resourceBlocks.join("\n") : ""}
|
|
785
|
+
<object id="1" name="${escapeXmlAttr(name)}" type="model">
|
|
717
786
|
<mesh>
|
|
718
787
|
<vertices>
|
|
719
788
|
${vertices.join("\n")}
|
|
@@ -751,7 +820,7 @@ ${triangles.join("\n")}
|
|
|
751
820
|
* ```
|
|
752
821
|
*/
|
|
753
822
|
function exportThreeMF(mesh, options = {}) {
|
|
754
|
-
const { name = "model", unit = "millimeter" } = options;
|
|
823
|
+
const { name = "model", unit = "millimeter", colors, materials } = options;
|
|
755
824
|
const encoder = new TextEncoder();
|
|
756
825
|
const contentTypes = `<?xml version="1.0" encoding="UTF-8"?>
|
|
757
826
|
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
|
|
@@ -762,7 +831,7 @@ function exportThreeMF(mesh, options = {}) {
|
|
|
762
831
|
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
763
832
|
<Relationship Target="/3D/3dmodel.model" Id="rel0" Type="http://schemas.microsoft.com/3dmanufacturing/2013/01/3dmodel" />
|
|
764
833
|
</Relationships>`;
|
|
765
|
-
const model = build3MFModel(mesh, name, unit);
|
|
834
|
+
const model = build3MFModel(mesh, name, unit, colors, materials);
|
|
766
835
|
function entry(path, content) {
|
|
767
836
|
const nameBytes = encoder.encode(path);
|
|
768
837
|
const dataBytes = encoder.encode(content);
|
package/dist/index.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ export { getSingleFace, type SingleFace } from './query/helpers.js';
|
|
|
32
32
|
export { exportOBJ } from './io/objExportFns.js';
|
|
33
33
|
export { exportGltf, exportGlb, type GltfMaterial, type GltfExportOptions, } from './io/gltfExportFns.js';
|
|
34
34
|
export { exportDXF, blueprintToDXF, type DXFEntity, type DXFExportOptions, } from './io/dxfExportFns.js';
|
|
35
|
-
export { exportThreeMF, type ThreeMFExportOptions } from './io/threemfExportFns.js';
|
|
35
|
+
export { exportThreeMF, type ThreeMFExportOptions, type ThreeMFMaterial, } from './io/threemfExportFns.js';
|
|
36
36
|
export { importSVGPathD, importSVG, type SVGImportOptions } from './io/svgImportFns.js';
|
|
37
37
|
export { Sketcher, FaceSketcher, BaseSketcher2d, BlueprintSketcher };
|
|
38
38
|
export type { GenericSketcher, SplineOptions };
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import { ShapeMesh } from '../topology/meshFns.js';
|
|
2
|
+
/** Named material for 3MF basematerials resource. */
|
|
3
|
+
export interface ThreeMFMaterial {
|
|
4
|
+
/** Display name (e.g. 'PLA-Red'). */
|
|
5
|
+
name: string;
|
|
6
|
+
/** Display color as RGBA 0-1. Falls back to white if omitted. */
|
|
7
|
+
displayColor?: [number, number, number, number];
|
|
8
|
+
}
|
|
2
9
|
/** Options controlling 3MF archive export. */
|
|
3
10
|
export interface ThreeMFExportOptions {
|
|
4
11
|
/** Name of the model object inside the 3MF archive. Default: `"model"`. */
|
|
5
12
|
name?: string;
|
|
6
13
|
/** Unit of measurement for vertex coordinates. Default: `"millimeter"`. */
|
|
7
14
|
unit?: 'micron' | 'millimeter' | 'centimeter' | 'meter' | 'inch' | 'foot';
|
|
15
|
+
/** Per-face colors keyed by faceId from ShapeMesh.faceGroups. RGBA 0-1 floats. */
|
|
16
|
+
colors?: Map<number, [number, number, number, number]>;
|
|
17
|
+
/** Per-face named materials keyed by faceId from ShapeMesh.faceGroups. */
|
|
18
|
+
materials?: Map<number, ThreeMFMaterial>;
|
|
8
19
|
}
|
|
9
20
|
/**
|
|
10
21
|
* Export a ShapeMesh to 3MF format (ArrayBuffer).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"threemfExportFns.d.ts","sourceRoot":"","sources":["../../src/io/threemfExportFns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMxD,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"threemfExportFns.d.ts","sourceRoot":"","sources":["../../src/io/threemfExportFns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMxD,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACjD;AAED,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1E,kFAAkF;IAClF,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,0EAA0E;IAC1E,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC1C;AAgUD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,oBAAyB,GAAG,WAAW,CA4B9F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"threemfImportFns.d.ts","sourceRoot":"","sources":["../../src/io/threemfImportFns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"threemfImportFns.d.ts","sourceRoot":"","sources":["../../src/io/threemfImportFns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,mBAAmB,CAAC;AAiVzD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAqChF"}
|
package/dist/io.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_meshFns = require("./meshFns-CW1EUdGe.cjs");
|
|
3
|
-
const require_importFns = require("./importFns-
|
|
3
|
+
const require_importFns = require("./importFns-CyPkUA_N.cjs");
|
|
4
4
|
exports.blueprintToDXF = require_importFns.blueprintToDXF;
|
|
5
5
|
exports.exportDXF = require_importFns.exportDXF;
|
|
6
6
|
exports.exportGlb = require_importFns.exportGlb;
|
package/dist/io.d.ts
CHANGED
|
@@ -11,6 +11,6 @@ export { exportSTEP, exportSTL, exportIGES } from './topology/meshFns.js';
|
|
|
11
11
|
export { exportOBJ } from './io/objExportFns.js';
|
|
12
12
|
export { exportGltf, exportGlb, type GltfMaterial, type GltfExportOptions, } from './io/gltfExportFns.js';
|
|
13
13
|
export { exportDXF, blueprintToDXF, type DXFEntity, type DXFExportOptions, } from './io/dxfExportFns.js';
|
|
14
|
-
export { exportThreeMF, type ThreeMFExportOptions } from './io/threemfExportFns.js';
|
|
14
|
+
export { exportThreeMF, type ThreeMFExportOptions, type ThreeMFMaterial, } from './io/threemfExportFns.js';
|
|
15
15
|
export { importSVGPathD, importSVG, type SVGImportOptions } from './io/svgImportFns.js';
|
|
16
16
|
//# sourceMappingURL=io.d.ts.map
|
package/dist/io.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAItE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAI1E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EACL,UAAU,EACV,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,SAAS,EACT,cAAc,EACd,KAAK,SAAS,EACd,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,
|
|
1
|
+
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAItE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAI1E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EACL,UAAU,EACV,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,SAAS,EACT,cAAc,EACd,KAAK,SAAS,EACd,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,eAAe,GACrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/io.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-D5CPzlWP.js";
|
|
2
|
-
import { a as importSVGPathD, c as exportDXF, d as exportOBJ, i as importSVG, l as exportGlb, n as importSTEP, o as exportThreeMF, r as importSTL, s as blueprintToDXF, t as importIGES, u as exportGltf } from "./importFns-
|
|
2
|
+
import { a as importSVGPathD, c as exportDXF, d as exportOBJ, i as importSVG, l as exportGlb, n as importSTEP, o as exportThreeMF, r as importSTL, s as blueprintToDXF, t as importIGES, u as exportGltf } from "./importFns-beNdL_tU.js";
|
|
3
3
|
export { blueprintToDXF, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTL, exportThreeMF, importIGES, importSTEP, importSTL, importSVG, importSVGPathD };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brepjs",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.12.0",
|
|
4
4
|
"description": "Web CAD library with pluggable geometry kernel",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cad",
|
|
@@ -173,6 +173,7 @@
|
|
|
173
173
|
"test:full": "vitest run --project occt --coverage",
|
|
174
174
|
"test:watch": "vitest --project occt",
|
|
175
175
|
"test:brepkit": "vitest run --project brepkit",
|
|
176
|
+
"test:stress": "vitest run --config vitest.stress.config.ts",
|
|
176
177
|
"check:boundaries": "bash scripts/check-layer-boundaries.sh",
|
|
177
178
|
"bench": "vitest run --config vitest.bench.config.ts",
|
|
178
179
|
"bench:compare": "BENCH_KERNELS=both vitest run --config vitest.bench.config.ts",
|