@onerjs/serializers 8.41.5 → 8.41.7
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/3MF/3mfSerializer.configuration.d.ts +9 -0
- package/3MF/3mfSerializer.configuration.js +11 -0
- package/3MF/3mfSerializer.configuration.js.map +1 -0
- package/3MF/3mfSerializer.d.ts +132 -0
- package/3MF/3mfSerializer.js +328 -0
- package/3MF/3mfSerializer.js.map +1 -0
- package/3MF/core/index.d.ts +2 -0
- package/3MF/core/index.js +4 -0
- package/3MF/core/index.js.map +1 -0
- package/3MF/core/model/3mf.builder.d.ts +231 -0
- package/3MF/core/model/3mf.builder.js +403 -0
- package/3MF/core/model/3mf.builder.js.map +1 -0
- package/3MF/core/model/3mf.d.ts +329 -0
- package/3MF/core/model/3mf.interfaces.d.ts +321 -0
- package/3MF/core/model/3mf.interfaces.js +39 -0
- package/3MF/core/model/3mf.interfaces.js.map +1 -0
- package/3MF/core/model/3mf.js +377 -0
- package/3MF/core/model/3mf.js.map +1 -0
- package/3MF/core/model/3mf.opc.d.ts +66 -0
- package/3MF/core/model/3mf.opc.interfaces.d.ts +126 -0
- package/3MF/core/model/3mf.opc.interfaces.js +75 -0
- package/3MF/core/model/3mf.opc.interfaces.js.map +1 -0
- package/3MF/core/model/3mf.opc.js +91 -0
- package/3MF/core/model/3mf.opc.js.map +1 -0
- package/3MF/core/model/3mf.serializer.d.ts +118 -0
- package/3MF/core/model/3mf.serializer.js +171 -0
- package/3MF/core/model/3mf.serializer.js.map +1 -0
- package/3MF/core/model/3mf.types.d.ts +46 -0
- package/3MF/core/model/3mf.types.js +2 -0
- package/3MF/core/model/3mf.types.js.map +1 -0
- package/3MF/core/model/index.d.ts +7 -0
- package/3MF/core/model/index.js +8 -0
- package/3MF/core/model/index.js.map +1 -0
- package/3MF/core/xml/index.d.ts +6 -0
- package/3MF/core/xml/index.js +7 -0
- package/3MF/core/xml/index.js.map +1 -0
- package/3MF/core/xml/xml.builder.bytes.d.ts +33 -0
- package/3MF/core/xml/xml.builder.bytes.js +60 -0
- package/3MF/core/xml/xml.builder.bytes.js.map +1 -0
- package/3MF/core/xml/xml.builder.d.ts +94 -0
- package/3MF/core/xml/xml.builder.js +286 -0
- package/3MF/core/xml/xml.builder.js.map +1 -0
- package/3MF/core/xml/xml.builder.string.d.ts +19 -0
- package/3MF/core/xml/xml.builder.string.js +35 -0
- package/3MF/core/xml/xml.builder.string.js.map +1 -0
- package/3MF/core/xml/xml.interfaces.d.ts +91 -0
- package/3MF/core/xml/xml.interfaces.js +110 -0
- package/3MF/core/xml/xml.interfaces.js.map +1 -0
- package/3MF/core/xml/xml.serializer.d.ts +39 -0
- package/3MF/core/xml/xml.serializer.format.d.ts +92 -0
- package/3MF/core/xml/xml.serializer.format.js +122 -0
- package/3MF/core/xml/xml.serializer.format.js.map +1 -0
- package/3MF/core/xml/xml.serializer.js +261 -0
- package/3MF/core/xml/xml.serializer.js.map +1 -0
- package/3MF/index.d.ts +3 -0
- package/3MF/index.js +5 -0
- package/3MF/index.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/legacy/legacy-3mfSerializer.d.ts +1 -0
- package/legacy/legacy-3mfSerializer.js +20 -0
- package/legacy/legacy-3mfSerializer.js.map +1 -0
- package/legacy/legacy.d.ts +1 -0
- package/legacy/legacy.js +1 -0
- package/legacy/legacy.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"3mf.interfaces.js","sourceRoot":"","sources":["../../../../../../dev/serializers/src/3MF/core/model/3mf.interfaces.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,2DAA2D,CAAC;AAElG;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,mEAAmE,CAAC;AAEzG,yDAAyD;AAEzD;;;;GAIG;AACH,MAAM,CAAN,IAAY,OAOX;AAPD,WAAY,OAAO;IACf,4BAAiB,CAAA;IACjB,oCAAyB,CAAA;IACzB,oCAAyB,CAAA;IACzB,wBAAa,CAAA;IACb,wBAAa,CAAA;IACb,0BAAe,CAAA;AACnB,CAAC,EAPW,OAAO,KAAP,OAAO,QAOlB;AA+CD;;;GAGG;AACH,MAAM,CAAN,IAAY,aAMX;AAND,WAAY,aAAa;IACrB,gCAAe,CAAA;IACf,8CAA6B,CAAA;IAC7B,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,gCAAe,CAAA;AACnB,CAAC,EANW,aAAa,KAAb,aAAa,QAMxB","sourcesContent":["/**\r\n * XML namespace for the core 3MF model schema.\r\n * This is the default namespace used by <model> and most standard 3MF elements.\r\n */\r\nexport const ThreeDimModelNamespace = \"http://schemas.microsoft.com/3dmanufacturing/core/2015/02\";\r\n\r\n/**\r\n * XML namespace for the TriangleSets extension (2021/07).\r\n * This extension is used for more advanced triangle/property use cases.\r\n * Only declare/use it when you actually emit elements/attributes that require it.\r\n */\r\nexport const TriangleSetsNamespace = \"http://schemas.microsoft.com/3dmanufacturing/trianglesets/2021/07\";\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n\r\n/**\r\n * 3MF model units.\r\n * The unit affects interpretation of vertex coordinates (x,y,z).\r\n * Most pipelines use millimeter, but the writer should match the upstream scene unit expectations.\r\n */\r\nexport enum ST_Unit {\r\n micron = \"micron\",\r\n millimeter = \"millimeter\",\r\n centimeter = \"centimeter\",\r\n inch = \"inch\",\r\n foot = \"foot\",\r\n meter = \"meter\",\r\n}\r\n\r\n/**\r\n * In the XSD, ST_Matrix3D is a whitespace separated list of numbers.\r\n * The official 3MF core spec uses a 3x4 matrix (12 numbers).\r\n */\r\nexport type ST_Matrix3D = [number, number, number, number, number, number, number, number, number, number, number, number];\r\n\r\n/**\r\n *\r\n */\r\nexport interface IMatrix3d {\r\n /** */\r\n values: ST_Matrix3D;\r\n}\r\n\r\n/**\r\n * 3MF color value.\r\n * In the 3MF core spec, colors are typically expressed as sRGB hex strings: \"#RRGGBB\" (and sometimes \"#AARRGGBB\").\r\n * This type is kept as string because we serialize directly into XML and want to avoid coupling to a specific color class.\r\n */\r\nexport type ST_ColorValue = string;\r\n\r\n/**\r\n * URI reference type used by attributes like thumbnail.\r\n * Usually a relative package path inside the OPC container, for example \"/Metadata/thumbnail.png\".\r\n */\r\nexport type ST_UriReference = string;\r\n\r\n/**\r\n * Numeric type used for coordinates and similar scalar values.\r\n * 3MF stores numbers as XML attributes/text; here we represent them as JS numbers.\r\n */\r\nexport type ST_Number = number;\r\n\r\n/**\r\n * Resource identifiers used by <object id=\"...\">, property groups, etc.\r\n * This is usually a positive integer unique within the model.\r\n */\r\nexport type ST_ResourceID = number;\r\n\r\n/**\r\n * Resource index used to reference an entry within a resource list.\r\n * For example, triangle v1/v2/v3 reference indices into <vertices>.\r\n */\r\nexport type ST_ResourceIndex = number;\r\n\r\n/**\r\n * Standard 3MF object type.\r\n * This is optional in 3MF; if omitted, consumers often treat it as \"model\".\r\n */\r\nexport enum ST_ObjectType {\r\n model = \"model\",\r\n solidsupport = \"solidsupport\",\r\n support = \"support\",\r\n surface = \"surface\",\r\n other = \"other\",\r\n}\r\n\r\n/**\r\n * Generic metadata entry.\r\n * Metadata can appear at the model level (<metadata>) and inside metadata groups (<metadatagroup>).\r\n *\r\n * Notes:\r\n * - \"name\" is the metadata key.\r\n * - \"type\" is optional and can be a MIME type or a schema indicator depending on usage.\r\n * - \"preserve\" instructs consumers whether to keep metadata when modifying the model.\r\n */\r\nexport interface I3mfMetadata {\r\n /** Metadata key (required). */\r\n name: string;\r\n\r\n /** If true, indicates the metadata should be preserved by consumers (optional). */\r\n preserve?: boolean;\r\n\r\n /** Optional type information for the value. */\r\n type?: string;\r\n\r\n /** Metadata value (required). */\r\n value: string;\r\n}\r\n\r\n/**\r\n * A grouping element for metadata.\r\n * Used in some places where the schema allows a metadata group rather than raw metadata entries.\r\n */\r\nexport interface I3mfMetadataGroup {\r\n /** The list of metadata entries contained in the group. */\r\n metadata: Array<I3mfMetadata>;\r\n}\r\n\r\n/**\r\n * 3MF vertex.\r\n * Coordinates are expressed in the model unit (I3mfModel.unit).\r\n */\r\nexport interface I3mfVertex {\r\n /** X coordinate. */\r\n x: ST_Number;\r\n /** Y coordinate. */\r\n y: ST_Number;\r\n /** Z coordinate. */\r\n z: ST_Number;\r\n}\r\n\r\n/**\r\n * 3MF triangle.\r\n * v1/v2/v3 are indices into the vertices list (<vertices> \\<vertex .../\\>...</vertices>).\r\n *\r\n * Property assignment:\r\n * - pid and p1/p2/p3 are used to assign per-triangle or per-vertex properties (like materials or colors),\r\n * depending on which property group pid refers to.\r\n */\r\nexport interface I3mfTriangle {\r\n /** Index of first vertex in the vertices array. */\r\n v1: ST_ResourceIndex;\r\n /** Index of second vertex in the vertices array. */\r\n v2: ST_ResourceIndex;\r\n /** Index of third vertex in the vertices array. */\r\n v3: ST_ResourceIndex;\r\n\r\n /**\r\n * Optional per-vertex property indices for v1/v2/v3.\r\n * These are indices into the property group's entry list (the group referenced by pid).\r\n */\r\n p1?: ST_ResourceIndex;\r\n /** */\r\n p2?: ST_ResourceIndex;\r\n /** */\r\n p3?: ST_ResourceIndex;\r\n\r\n /**\r\n * Property group id for this triangle.\r\n * If present, it overrides the object-level pid for this specific triangle.\r\n */\r\n pid?: ST_ResourceID;\r\n}\r\n\r\n/**\r\n * Container for vertices.\r\n * Matches the XML structure <vertices>\\<vertex .../\\>...</vertices>.\r\n */\r\nexport interface I3mfVertices {\r\n /** Array of vertices. Order matters because triangles reference indices. */\r\n vertex: Array<I3mfVertex>;\r\n}\r\n\r\n/**\r\n * Container for triangles.\r\n * Matches the XML structure <triangles>\\<triangle .../\\>...</triangles>.\r\n */\r\nexport interface I3mfTriangles {\r\n /** Array of triangles. */\r\n triangle: Array<I3mfTriangle>;\r\n}\r\n\r\n/**\r\n * Mesh geometry content for an object.\r\n * Exactly one of: mesh content OR components content should be provided in an object.\r\n */\r\nexport interface I3mfMesh {\r\n /** Vertex list. */\r\n vertices: I3mfVertices;\r\n\r\n /** Triangle list. */\r\n triangles: I3mfTriangles;\r\n}\r\n\r\n/**\r\n * Component reference inside a composite object.\r\n * A composite object is an object whose content is <components> rather than <mesh>.\r\n *\r\n * objectid references another object in resources.\r\n * transform (3x4) positions that referenced object within the composite.\r\n */\r\nexport interface I3mfComponent {\r\n /** Referenced object id. */\r\n objectid: ST_ResourceID;\r\n\r\n /**\r\n * Optional transform applied to the referenced object within the component.\r\n * Represented as a 3x4 matrix.\r\n */\r\n transform?: IMatrix3d;\r\n}\r\n\r\n/**\r\n * Container for components.\r\n * Matches <components><component objectid=\"...\"/></components>.\r\n */\r\nexport interface I3mfComponents {\r\n /** Array of component references. */\r\n component: Array<I3mfComponent>;\r\n}\r\n\r\n/**\r\n * Object resource.\r\n * An object either contains a mesh (geometry) or components (composite object).\r\n *\r\n * Properties (pid/pindex):\r\n * - pid references a property group (e.g. basematerials id).\r\n * - pindex is an index within that group.\r\n * - If pindex is used, pid is required.\r\n *\r\n * Metadata:\r\n * - metadatagroup is optional and can store additional object-level metadata.\r\n */\r\nexport interface I3mfObject {\r\n /** Unique object id within the model. */\r\n id: ST_ResourceID;\r\n\r\n /** Optional object type hint. */\r\n type?: ST_ObjectType;\r\n\r\n /** Optional thumbnail reference (usually a package path). */\r\n thumbnail?: ST_UriReference;\r\n\r\n /** Optional part number (often used by manufacturing systems). */\r\n partnumber?: string;\r\n\r\n /** Optional human-readable name. */\r\n name?: string;\r\n\r\n /**\r\n * Property group reference.\r\n * Example: <basematerials id=\"5\"> ... </basematerials> then pid=5.\r\n * Required if pindex is specified.\r\n */\r\n pid?: ST_ResourceID;\r\n\r\n /**\r\n * Index inside the property group referenced by pid.\r\n * Meaning depends on the property group type (base materials, color group, etc.).\r\n */\r\n pindex?: ST_ResourceIndex;\r\n\r\n /** Optional grouped metadata for the object. */\r\n metadatagroup?: I3mfMetadataGroup;\r\n\r\n /**\r\n * Content of the object:\r\n * - Mesh geometry OR\r\n * - Components (composite object).\r\n *\r\n * In the 3MF XML schema, this corresponds to having either a <mesh> element or a <components> element.\r\n */\r\n content?: I3mfMesh | I3mfComponents;\r\n}\r\n\r\n/**\r\n * A single base material entry.\r\n * \"name\" is a label, \"displaycolor\" provides the color used for rendering previews.\r\n */\r\nexport interface I3mfBase {\r\n /** Material name/label. */\r\n name: string;\r\n\r\n /** Display color for the base material. */\r\n displaycolor: ST_ColorValue;\r\n}\r\n\r\n/**\r\n * Base materials property group.\r\n * Triangles or objects can reference this group via pid, and then a specific entry via pindex (or p1/p2/p3).\r\n */\r\nexport interface I3mfBaseMaterials {\r\n /** Property group id. Must be unique within resources. */\r\n id: ST_ResourceID;\r\n\r\n /** List of base material entries. */\r\n base: Array<I3mfBase>;\r\n}\r\n\r\n/**\r\n * Model resources container.\r\n * Holds object resources and optional property groups such as basematerials.\r\n */\r\nexport interface I3mfResources {\r\n /** All objects available for build items and components. */\r\n object: Array<I3mfObject>;\r\n\r\n /**\r\n * Optional base materials groups.\r\n * Other property groups may exist in 3MF (colors, textures, etc.) but are not modeled here.\r\n */\r\n basematerials?: Array<I3mfBaseMaterials>;\r\n}\r\n\r\n/**\r\n * Build item.\r\n * The build section describes what to \"print\" or \"instantiate\" from the resources.\r\n *\r\n * objectid references a resource object, and transform places it in the world.\r\n * partnumber and metadatagroup allow attaching build-item specific info.\r\n */\r\nexport interface I3mfItem {\r\n /** Referenced object id to build. */\r\n objectid: ST_ResourceID;\r\n\r\n /** Optional placement transform (3x4). */\r\n transform?: IMatrix3d;\r\n\r\n /** Optional part number at the build item level. */\r\n partnumber?: string;\r\n\r\n /** Optional build-item metadata. */\r\n metadatagroup?: I3mfMetadataGroup;\r\n}\r\n\r\n/**\r\n * Build container.\r\n * Contains all build items.\r\n */\r\nexport interface I3mfBuild {\r\n /** Array of build items. */\r\n item: Array<I3mfItem>;\r\n}\r\n\r\n/**\r\n * Root model element.\r\n *\r\n * Extensions:\r\n * - requiredextensions: a space-separated list of prefixes (or namespaces depending on your serializer conventions)\r\n * that are required to interpret the model.\r\n * - recommendedextensions: extensions that improve fidelity but are not required.\r\n *\r\n * Notes:\r\n * - resources and build are typically present in a valid printable model.\r\n * - metadata at the model level stores global information like title, author, etc.\r\n */\r\nexport interface I3mfModel {\r\n /** Unit used for all coordinates in the model. */\r\n unit?: ST_Unit;\r\n\r\n /** Declares extensions that must be understood by consumers. */\r\n requiredextensions?: string;\r\n\r\n /** Declares extensions that may be used for better results. */\r\n recommendedextensions?: string;\r\n\r\n /** Optional model-level metadata entries. */\r\n metadata?: Array<I3mfMetadata>;\r\n\r\n /** Optional resources section (objects, materials, etc.). */\r\n resources?: I3mfResources;\r\n\r\n /** Optional build section (what to instantiate/print). */\r\n build?: I3mfBuild;\r\n}\r\n"]}
|
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
import { __decorate } from "@onerjs/core/tslib.es6.js";
|
|
2
|
+
import { XmlAttr, XmlName } from "../xml/xml.interfaces.js";
|
|
3
|
+
import { NumberFormatter } from "../xml/xml.serializer.format.js";
|
|
4
|
+
import { ST_Unit, ThreeDimModelNamespace, ST_ObjectType } from "./3mf.interfaces.js";
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
export class Matrix3d {
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
static Zero() {
|
|
14
|
+
return new Matrix3d([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @param values
|
|
19
|
+
*/
|
|
20
|
+
constructor(values) {
|
|
21
|
+
this.values = values;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
toString() {
|
|
28
|
+
return this.values.join(" ");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
export class MatrixFormatter {
|
|
35
|
+
constructor(o) {
|
|
36
|
+
this.o = o;
|
|
37
|
+
this._f = new NumberFormatter(o);
|
|
38
|
+
}
|
|
39
|
+
toString(x) {
|
|
40
|
+
return x.values.map((v) => this._f.toString(v)).join(" ");
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
*
|
|
45
|
+
*/
|
|
46
|
+
let ThreeMfModel = class ThreeMfModel {
|
|
47
|
+
constructor() {
|
|
48
|
+
/**
|
|
49
|
+
*
|
|
50
|
+
*/
|
|
51
|
+
this.unit = ST_Unit.millimeter;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
*
|
|
56
|
+
*/
|
|
57
|
+
ThreeMfModel.KnownMeta = ["Title", "Designer", "Description", "Copyright", "LicenseTerms", "Rating", "CreationDate", "ModificationDate", "Application"];
|
|
58
|
+
__decorate([
|
|
59
|
+
XmlAttr({ name: "unit" })
|
|
60
|
+
], ThreeMfModel.prototype, "unit", void 0);
|
|
61
|
+
__decorate([
|
|
62
|
+
XmlAttr({ name: "requiredextensions" })
|
|
63
|
+
], ThreeMfModel.prototype, "requiredextensions", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
XmlAttr({ name: "recommendedextensions" })
|
|
66
|
+
], ThreeMfModel.prototype, "recommendedextensions", void 0);
|
|
67
|
+
ThreeMfModel = __decorate([
|
|
68
|
+
XmlName({ ns: ThreeDimModelNamespace, name: "model" })
|
|
69
|
+
], ThreeMfModel);
|
|
70
|
+
export { ThreeMfModel };
|
|
71
|
+
/**
|
|
72
|
+
*
|
|
73
|
+
*/
|
|
74
|
+
let ThreeMfMeta = class ThreeMfMeta {
|
|
75
|
+
/**
|
|
76
|
+
*
|
|
77
|
+
* @param name
|
|
78
|
+
* @param value
|
|
79
|
+
* @param preserve
|
|
80
|
+
* @param type
|
|
81
|
+
*/
|
|
82
|
+
constructor(name, value, preserve, type) {
|
|
83
|
+
this.name = name;
|
|
84
|
+
this.value = value;
|
|
85
|
+
this.preserve = preserve;
|
|
86
|
+
this.type = type;
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
__decorate([
|
|
90
|
+
XmlAttr({ name: "name" })
|
|
91
|
+
], ThreeMfMeta.prototype, "name", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
XmlAttr({ name: "preserve" })
|
|
94
|
+
], ThreeMfMeta.prototype, "preserve", void 0);
|
|
95
|
+
__decorate([
|
|
96
|
+
XmlAttr({ name: "type" })
|
|
97
|
+
], ThreeMfMeta.prototype, "type", void 0);
|
|
98
|
+
ThreeMfMeta = __decorate([
|
|
99
|
+
XmlName({ ns: ThreeDimModelNamespace, name: "meta" })
|
|
100
|
+
], ThreeMfMeta);
|
|
101
|
+
export { ThreeMfMeta };
|
|
102
|
+
/**
|
|
103
|
+
*
|
|
104
|
+
*/
|
|
105
|
+
let ThreeMfMetadataGroup = class ThreeMfMetadataGroup {
|
|
106
|
+
constructor() {
|
|
107
|
+
/**
|
|
108
|
+
*
|
|
109
|
+
*/
|
|
110
|
+
this.metadata = [];
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
ThreeMfMetadataGroup = __decorate([
|
|
114
|
+
XmlName({ ns: ThreeDimModelNamespace, name: "metadatagroup" })
|
|
115
|
+
], ThreeMfMetadataGroup);
|
|
116
|
+
export { ThreeMfMetadataGroup };
|
|
117
|
+
/**
|
|
118
|
+
*
|
|
119
|
+
*/
|
|
120
|
+
let ThreeMfResources = class ThreeMfResources {
|
|
121
|
+
constructor() {
|
|
122
|
+
/**
|
|
123
|
+
*
|
|
124
|
+
*/
|
|
125
|
+
this.object = [];
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
ThreeMfResources = __decorate([
|
|
129
|
+
XmlName({ ns: ThreeDimModelNamespace, name: "resources" })
|
|
130
|
+
], ThreeMfResources);
|
|
131
|
+
export { ThreeMfResources };
|
|
132
|
+
/**
|
|
133
|
+
*
|
|
134
|
+
*/
|
|
135
|
+
let ThreeMfObject = class ThreeMfObject {
|
|
136
|
+
constructor(id, type = ST_ObjectType.model) {
|
|
137
|
+
this.id = id;
|
|
138
|
+
this.type = type;
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
__decorate([
|
|
142
|
+
XmlAttr({ name: "id" })
|
|
143
|
+
], ThreeMfObject.prototype, "id", void 0);
|
|
144
|
+
__decorate([
|
|
145
|
+
XmlAttr({ name: "type" })
|
|
146
|
+
], ThreeMfObject.prototype, "type", void 0);
|
|
147
|
+
__decorate([
|
|
148
|
+
XmlAttr({ name: "thumbnail" })
|
|
149
|
+
], ThreeMfObject.prototype, "thumbnail", void 0);
|
|
150
|
+
__decorate([
|
|
151
|
+
XmlAttr({ name: "partnumber" })
|
|
152
|
+
], ThreeMfObject.prototype, "partnumber", void 0);
|
|
153
|
+
__decorate([
|
|
154
|
+
XmlAttr({ name: "name" })
|
|
155
|
+
], ThreeMfObject.prototype, "name", void 0);
|
|
156
|
+
__decorate([
|
|
157
|
+
XmlAttr({ name: "pid" })
|
|
158
|
+
], ThreeMfObject.prototype, "pid", void 0);
|
|
159
|
+
__decorate([
|
|
160
|
+
XmlAttr({ name: "pindex" })
|
|
161
|
+
], ThreeMfObject.prototype, "pindex", void 0);
|
|
162
|
+
ThreeMfObject = __decorate([
|
|
163
|
+
XmlName({ ns: ThreeDimModelNamespace, name: "object" })
|
|
164
|
+
], ThreeMfObject);
|
|
165
|
+
export { ThreeMfObject };
|
|
166
|
+
/**
|
|
167
|
+
*
|
|
168
|
+
*/
|
|
169
|
+
let ThreeMfMesh = class ThreeMfMesh {
|
|
170
|
+
constructor(vertices, triangles) {
|
|
171
|
+
this.vertices = vertices ?? new ThreeMfVertices();
|
|
172
|
+
this.triangles = triangles ?? new ThreeMfTriangles();
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
ThreeMfMesh = __decorate([
|
|
176
|
+
XmlName({ ns: ThreeDimModelNamespace, name: "mesh" })
|
|
177
|
+
], ThreeMfMesh);
|
|
178
|
+
export { ThreeMfMesh };
|
|
179
|
+
/**
|
|
180
|
+
*
|
|
181
|
+
*/
|
|
182
|
+
let ThreeMfVertices = class ThreeMfVertices {
|
|
183
|
+
constructor() {
|
|
184
|
+
/**
|
|
185
|
+
*
|
|
186
|
+
*/
|
|
187
|
+
this.vertex = [];
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
ThreeMfVertices = __decorate([
|
|
191
|
+
XmlName({ ns: ThreeDimModelNamespace, name: "vertices" })
|
|
192
|
+
], ThreeMfVertices);
|
|
193
|
+
export { ThreeMfVertices };
|
|
194
|
+
/**
|
|
195
|
+
*
|
|
196
|
+
*/
|
|
197
|
+
let ThreeMfVertex = class ThreeMfVertex {
|
|
198
|
+
constructor(x = 0, y = 0, z = 0) {
|
|
199
|
+
this.x = x;
|
|
200
|
+
this.y = y;
|
|
201
|
+
this.z = z;
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
__decorate([
|
|
205
|
+
XmlAttr({ name: "x" })
|
|
206
|
+
], ThreeMfVertex.prototype, "x", void 0);
|
|
207
|
+
__decorate([
|
|
208
|
+
XmlAttr({ name: "y" })
|
|
209
|
+
], ThreeMfVertex.prototype, "y", void 0);
|
|
210
|
+
__decorate([
|
|
211
|
+
XmlAttr({ name: "z" })
|
|
212
|
+
], ThreeMfVertex.prototype, "z", void 0);
|
|
213
|
+
ThreeMfVertex = __decorate([
|
|
214
|
+
XmlName({ ns: ThreeDimModelNamespace, name: "vertex" })
|
|
215
|
+
], ThreeMfVertex);
|
|
216
|
+
export { ThreeMfVertex };
|
|
217
|
+
/**
|
|
218
|
+
*
|
|
219
|
+
*/
|
|
220
|
+
let ThreeMfTriangles = class ThreeMfTriangles {
|
|
221
|
+
constructor() {
|
|
222
|
+
/**
|
|
223
|
+
*
|
|
224
|
+
*/
|
|
225
|
+
this.triangle = [];
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
ThreeMfTriangles = __decorate([
|
|
229
|
+
XmlName({ ns: ThreeDimModelNamespace, name: "triangles" })
|
|
230
|
+
], ThreeMfTriangles);
|
|
231
|
+
export { ThreeMfTriangles };
|
|
232
|
+
/**
|
|
233
|
+
*
|
|
234
|
+
*/
|
|
235
|
+
let ThreeMfTriangle = class ThreeMfTriangle {
|
|
236
|
+
constructor(v1, v2, v3) {
|
|
237
|
+
this.v1 = v1;
|
|
238
|
+
this.v2 = v2;
|
|
239
|
+
this.v3 = v3;
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
__decorate([
|
|
243
|
+
XmlAttr({ name: "v1" })
|
|
244
|
+
], ThreeMfTriangle.prototype, "v1", void 0);
|
|
245
|
+
__decorate([
|
|
246
|
+
XmlAttr({ name: "v2" })
|
|
247
|
+
], ThreeMfTriangle.prototype, "v2", void 0);
|
|
248
|
+
__decorate([
|
|
249
|
+
XmlAttr({ name: "v3" })
|
|
250
|
+
], ThreeMfTriangle.prototype, "v3", void 0);
|
|
251
|
+
__decorate([
|
|
252
|
+
XmlAttr({ name: "p1" })
|
|
253
|
+
], ThreeMfTriangle.prototype, "p1", void 0);
|
|
254
|
+
__decorate([
|
|
255
|
+
XmlAttr({ name: "p2" })
|
|
256
|
+
], ThreeMfTriangle.prototype, "p2", void 0);
|
|
257
|
+
__decorate([
|
|
258
|
+
XmlAttr({ name: "p3" })
|
|
259
|
+
], ThreeMfTriangle.prototype, "p3", void 0);
|
|
260
|
+
__decorate([
|
|
261
|
+
XmlAttr({ name: "pid" })
|
|
262
|
+
], ThreeMfTriangle.prototype, "pid", void 0);
|
|
263
|
+
ThreeMfTriangle = __decorate([
|
|
264
|
+
XmlName({ ns: ThreeDimModelNamespace, name: "triangle" })
|
|
265
|
+
], ThreeMfTriangle);
|
|
266
|
+
export { ThreeMfTriangle };
|
|
267
|
+
/**
|
|
268
|
+
*
|
|
269
|
+
*/
|
|
270
|
+
let ThreeMfComponents = class ThreeMfComponents {
|
|
271
|
+
constructor() {
|
|
272
|
+
/**
|
|
273
|
+
*
|
|
274
|
+
*/
|
|
275
|
+
this.component = [];
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
ThreeMfComponents = __decorate([
|
|
279
|
+
XmlName({ ns: ThreeDimModelNamespace, name: "components" })
|
|
280
|
+
], ThreeMfComponents);
|
|
281
|
+
export { ThreeMfComponents };
|
|
282
|
+
/**
|
|
283
|
+
*
|
|
284
|
+
*/
|
|
285
|
+
let ThreeMfComponent = class ThreeMfComponent {
|
|
286
|
+
constructor(objectid, transform) {
|
|
287
|
+
this.objectid = objectid;
|
|
288
|
+
this.transform = transform;
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
__decorate([
|
|
292
|
+
XmlAttr({ name: "objectid" })
|
|
293
|
+
], ThreeMfComponent.prototype, "objectid", void 0);
|
|
294
|
+
__decorate([
|
|
295
|
+
XmlAttr({ name: "transform", formatter: MatrixFormatter })
|
|
296
|
+
], ThreeMfComponent.prototype, "transform", void 0);
|
|
297
|
+
ThreeMfComponent = __decorate([
|
|
298
|
+
XmlName({ ns: ThreeDimModelNamespace, name: "component" })
|
|
299
|
+
], ThreeMfComponent);
|
|
300
|
+
export { ThreeMfComponent };
|
|
301
|
+
/**
|
|
302
|
+
*
|
|
303
|
+
*/
|
|
304
|
+
let ThreeMfBaseMaterials = class ThreeMfBaseMaterials {
|
|
305
|
+
constructor(id) {
|
|
306
|
+
/**
|
|
307
|
+
*
|
|
308
|
+
*/
|
|
309
|
+
this.base = [];
|
|
310
|
+
this.id = id;
|
|
311
|
+
}
|
|
312
|
+
};
|
|
313
|
+
__decorate([
|
|
314
|
+
XmlAttr({ name: "id" })
|
|
315
|
+
], ThreeMfBaseMaterials.prototype, "id", void 0);
|
|
316
|
+
ThreeMfBaseMaterials = __decorate([
|
|
317
|
+
XmlName({ ns: ThreeDimModelNamespace, name: "basematerials" })
|
|
318
|
+
], ThreeMfBaseMaterials);
|
|
319
|
+
export { ThreeMfBaseMaterials };
|
|
320
|
+
/**
|
|
321
|
+
*
|
|
322
|
+
*/
|
|
323
|
+
let ThreeMfBase = class ThreeMfBase {
|
|
324
|
+
constructor(name, displaycolor) {
|
|
325
|
+
this.name = name;
|
|
326
|
+
this.displaycolor = displaycolor;
|
|
327
|
+
}
|
|
328
|
+
};
|
|
329
|
+
__decorate([
|
|
330
|
+
XmlAttr({ name: "name" })
|
|
331
|
+
], ThreeMfBase.prototype, "name", void 0);
|
|
332
|
+
__decorate([
|
|
333
|
+
XmlAttr({ name: "displaycolor" })
|
|
334
|
+
], ThreeMfBase.prototype, "displaycolor", void 0);
|
|
335
|
+
ThreeMfBase = __decorate([
|
|
336
|
+
XmlName({ ns: ThreeDimModelNamespace, name: "base" })
|
|
337
|
+
], ThreeMfBase);
|
|
338
|
+
export { ThreeMfBase };
|
|
339
|
+
/**
|
|
340
|
+
*
|
|
341
|
+
*/
|
|
342
|
+
let ThreeMfBuild = class ThreeMfBuild {
|
|
343
|
+
constructor() {
|
|
344
|
+
/**
|
|
345
|
+
*
|
|
346
|
+
*/
|
|
347
|
+
this.item = [];
|
|
348
|
+
}
|
|
349
|
+
};
|
|
350
|
+
ThreeMfBuild = __decorate([
|
|
351
|
+
XmlName({ ns: ThreeDimModelNamespace, name: "build" })
|
|
352
|
+
], ThreeMfBuild);
|
|
353
|
+
export { ThreeMfBuild };
|
|
354
|
+
/**
|
|
355
|
+
*
|
|
356
|
+
*/
|
|
357
|
+
let ThreeMfItem = class ThreeMfItem {
|
|
358
|
+
constructor(objectid, transform, partnumber) {
|
|
359
|
+
this.objectid = objectid;
|
|
360
|
+
this.transform = transform;
|
|
361
|
+
this.partnumber = partnumber;
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
__decorate([
|
|
365
|
+
XmlAttr({ name: "objectid" })
|
|
366
|
+
], ThreeMfItem.prototype, "objectid", void 0);
|
|
367
|
+
__decorate([
|
|
368
|
+
XmlAttr({ name: "transform", formatter: MatrixFormatter })
|
|
369
|
+
], ThreeMfItem.prototype, "transform", void 0);
|
|
370
|
+
__decorate([
|
|
371
|
+
XmlAttr({ name: "partnumber" })
|
|
372
|
+
], ThreeMfItem.prototype, "partnumber", void 0);
|
|
373
|
+
ThreeMfItem = __decorate([
|
|
374
|
+
XmlName({ ns: ThreeDimModelNamespace, name: "item" })
|
|
375
|
+
], ThreeMfItem);
|
|
376
|
+
export { ThreeMfItem };
|
|
377
|
+
//# sourceMappingURL=3mf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"3mf.js","sourceRoot":"","sources":["../../../../../../dev/serializers/src/3MF/core/model/3mf.ts"],"names":[],"mappings":"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","sourcesContent":["import { type IFormatter, XmlAttr, XmlName } from \"../xml/xml.interfaces\";\nimport { type IXmlSerializerFormatOptions, NumberFormatter } from \"../xml/xml.serializer.format\";\nimport type {\n I3mfBase,\n I3mfBaseMaterials,\n I3mfBuild,\n I3mfComponent,\n I3mfComponents,\n I3mfItem,\n I3mfMesh,\n I3mfMetadata,\n I3mfMetadataGroup,\n I3mfModel,\n I3mfObject,\n I3mfResources,\n I3mfTriangle,\n I3mfTriangles,\n I3mfVertex,\n I3mfVertices,\n ST_ColorValue,\n ST_Number,\n ST_ResourceID,\n ST_ResourceIndex,\n ST_UriReference,\n IMatrix3d,\n ST_Matrix3D,\n} from \"./3mf.interfaces\";\nimport { ST_Unit, ThreeDimModelNamespace, ST_ObjectType } from \"./3mf.interfaces\";\n\n/**\n *\n */\nexport class Matrix3d implements IMatrix3d {\n /**\n *\n * @returns\n */\n public static Zero() {\n return new Matrix3d([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);\n }\n /**\n *\n * @param values\n */\n public constructor(public values: ST_Matrix3D) {}\n\n /**\n *\n * @returns\n */\n public toString(): string {\n return this.values.join(\" \");\n }\n}\n\n/**\n *\n */\nexport class MatrixFormatter implements IFormatter<Matrix3d> {\n /**\n *\n */\n _f: NumberFormatter;\n\n public constructor(public o: IXmlSerializerFormatOptions) {\n this._f = new NumberFormatter(o);\n }\n\n public toString(x: Matrix3d): string {\n return x.values.map((v) => this._f.toString(v)).join(\" \");\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"model\" })\nexport class ThreeMfModel implements I3mfModel {\n /**\n *\n */\n public static KnownMeta: Array<string> = [\"Title\", \"Designer\", \"Description\", \"Copyright\", \"LicenseTerms\", \"Rating\", \"CreationDate\", \"ModificationDate\", \"Application\"];\n\n /**\n *\n */\n @XmlAttr({ name: \"unit\" })\n unit: ST_Unit = ST_Unit.millimeter;\n\n /**\n *\n */\n @XmlAttr({ name: \"requiredextensions\" })\n requiredextensions?: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"recommendedextensions\" })\n recommendedextensions?: string;\n\n /**\n *\n */\n metadata?: Array<I3mfMetadata>;\n /**\n *\n */\n resources?: I3mfResources;\n /**\n *\n */\n build?: I3mfBuild;\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"meta\" })\nexport class ThreeMfMeta implements I3mfMetadata {\n /**\n *\n */\n @XmlAttr({ name: \"name\" })\n name: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"preserve\" })\n preserve?: boolean;\n\n /**\n *\n */\n @XmlAttr({ name: \"type\" })\n type?: string;\n\n /**\n *\n */\n value: string;\n\n /**\n *\n * @param name\n * @param value\n * @param preserve\n * @param type\n */\n public constructor(name: string, value: string, preserve?: boolean, type?: string) {\n this.name = name;\n this.value = value;\n this.preserve = preserve;\n this.type = type;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"metadatagroup\" })\nexport class ThreeMfMetadataGroup implements I3mfMetadataGroup {\n /**\n *\n */\n metadata: Array<I3mfMetadata> = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"resources\" })\nexport class ThreeMfResources implements I3mfResources {\n /**\n *\n */\n object: Array<I3mfObject> = [];\n /**\n *\n */\n basematerials?: Array<I3mfBaseMaterials>;\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"object\" })\nexport class ThreeMfObject implements I3mfObject {\n /**\n *\n */\n @XmlAttr({ name: \"id\" })\n id: ST_ResourceID;\n\n /**\n *\n */\n @XmlAttr({ name: \"type\" })\n type?: ST_ObjectType;\n\n /**\n *\n */\n @XmlAttr({ name: \"thumbnail\" })\n thumbnail?: ST_UriReference;\n\n /**\n *\n */\n @XmlAttr({ name: \"partnumber\" })\n partnumber?: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"name\" })\n name?: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"pid\" })\n pid?: ST_ResourceID;\n\n /**\n *\n */\n @XmlAttr({ name: \"pindex\" })\n pindex?: ST_ResourceIndex;\n\n /**\n *\n */\n metadatagroup?: I3mfMetadataGroup;\n\n /**\n *\n */\n content?: I3mfMesh | I3mfComponents;\n\n public constructor(id: ST_ResourceID, type = ST_ObjectType.model) {\n this.id = id;\n this.type = type;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"mesh\" })\nexport class ThreeMfMesh implements I3mfMesh {\n /**\n *\n */\n vertices: I3mfVertices;\n /**\n *\n */\n triangles: I3mfTriangles;\n\n public constructor(vertices?: I3mfVertices, triangles?: I3mfTriangles) {\n this.vertices = vertices ?? new ThreeMfVertices();\n this.triangles = triangles ?? new ThreeMfTriangles();\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"vertices\" })\nexport class ThreeMfVertices implements I3mfVertices {\n /**\n *\n */\n vertex: Array<I3mfVertex> = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"vertex\" })\nexport class ThreeMfVertex implements I3mfVertex {\n /**\n *\n */\n @XmlAttr({ name: \"x\" })\n x: ST_Number;\n\n /**\n *\n */\n @XmlAttr({ name: \"y\" })\n y: ST_Number;\n\n /**\n *\n */\n @XmlAttr({ name: \"z\" })\n z: ST_Number;\n\n public constructor(x: ST_Number = 0, y: ST_Number = 0, z: ST_Number = 0) {\n this.x = x;\n this.y = y;\n this.z = z;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"triangles\" })\nexport class ThreeMfTriangles implements I3mfTriangles {\n /**\n *\n */\n triangle: Array<I3mfTriangle> = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"triangle\" })\nexport class ThreeMfTriangle implements I3mfTriangle {\n /**\n *\n */\n @XmlAttr({ name: \"v1\" })\n v1: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"v2\" })\n v2: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"v3\" })\n v3: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"p1\" })\n p1?: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"p2\" })\n p2?: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"p3\" })\n p3?: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"pid\" })\n pid?: ST_ResourceID;\n\n public constructor(v1: ST_ResourceIndex, v2: ST_ResourceIndex, v3: ST_ResourceIndex) {\n this.v1 = v1;\n this.v2 = v2;\n this.v3 = v3;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"components\" })\nexport class ThreeMfComponents implements I3mfComponents {\n /**\n *\n */\n component: Array<I3mfComponent> = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"component\" })\nexport class ThreeMfComponent implements I3mfComponent {\n /**\n *\n */\n @XmlAttr({ name: \"objectid\" })\n objectid: ST_ResourceID;\n\n /**\n *\n */\n @XmlAttr({ name: \"transform\", formatter: MatrixFormatter })\n transform?: Matrix3d;\n\n public constructor(objectid: ST_ResourceID, transform?: Matrix3d) {\n this.objectid = objectid;\n this.transform = transform;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"basematerials\" })\nexport class ThreeMfBaseMaterials implements I3mfBaseMaterials {\n /**\n *\n */\n @XmlAttr({ name: \"id\" })\n id: ST_ResourceID;\n\n /**\n *\n */\n base: Array<I3mfBase> = [];\n\n public constructor(id: ST_ResourceID) {\n this.id = id;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"base\" })\nexport class ThreeMfBase implements I3mfBase {\n /**\n *\n */\n @XmlAttr({ name: \"name\" })\n name: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"displaycolor\" })\n displaycolor: ST_ColorValue;\n\n public constructor(name: string, displaycolor: ST_ColorValue) {\n this.name = name;\n this.displaycolor = displaycolor;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"build\" })\nexport class ThreeMfBuild implements I3mfBuild {\n /**\n *\n */\n item: Array<I3mfItem> = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"item\" })\nexport class ThreeMfItem implements I3mfItem {\n /**\n *\n */\n @XmlAttr({ name: \"objectid\" })\n objectid: ST_ResourceID;\n\n /**\n *\n */\n @XmlAttr({ name: \"transform\", formatter: MatrixFormatter })\n transform?: Matrix3d;\n\n /**\n *\n */\n @XmlAttr({ name: \"partnumber\" })\n partnumber?: string;\n\n /**\n *\n */\n metadatagroup?: I3mfMetadataGroup;\n\n public constructor(objectid: ST_ResourceID, transform?: Matrix3d, partnumber?: string) {\n this.objectid = objectid;\n this.transform = transform;\n this.partnumber = partnumber;\n }\n}\n"]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { I3mfModel } from "./3mf.interfaces.js";
|
|
2
|
+
import type { I3mfContentTypes, I3mfContentType, I3mfRelationships, I3mfRelationship, I3mfDocument } from "./3mf.opc.interfaces.js";
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
export declare class ThreeMfContentTypes implements I3mfContentTypes {
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
items: ThreeMfContentType[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
export declare class ThreeMfContentType implements I3mfContentType {
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
ext: string;
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
*/
|
|
23
|
+
ct: string;
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @param ext
|
|
27
|
+
* @param ct
|
|
28
|
+
*/
|
|
29
|
+
constructor(ext: string, ct: string);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
export declare class ThreeMfRelationships implements I3mfRelationships {
|
|
35
|
+
/**
|
|
36
|
+
*
|
|
37
|
+
*/
|
|
38
|
+
items: ThreeMfRelationship[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
*
|
|
42
|
+
*/
|
|
43
|
+
export declare class ThreeMfRelationship implements I3mfRelationship {
|
|
44
|
+
/**
|
|
45
|
+
*
|
|
46
|
+
*/
|
|
47
|
+
id: string;
|
|
48
|
+
/**
|
|
49
|
+
*
|
|
50
|
+
*/
|
|
51
|
+
type?: string;
|
|
52
|
+
/**
|
|
53
|
+
*
|
|
54
|
+
*/
|
|
55
|
+
target?: string;
|
|
56
|
+
constructor(id: string, type: string, target: string);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
*
|
|
60
|
+
*/
|
|
61
|
+
export declare class ThreeMfDocument implements I3mfDocument {
|
|
62
|
+
contentTypes: I3mfContentTypes;
|
|
63
|
+
relationships: I3mfRelationships;
|
|
64
|
+
model: I3mfModel;
|
|
65
|
+
constructor(contentTypes: I3mfContentTypes, relationships: I3mfRelationships, model: I3mfModel);
|
|
66
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import type { I3mfModel } from "./3mf.interfaces.js";
|
|
2
|
+
export declare const OpenXmlContentTypesNamespace = "http://schemas.openxmlformats.org/package/2006/content-types";
|
|
3
|
+
export declare const OpenXmlRelationshipsNamespace = "http://schemas.openxmlformats.org/package/2006/relationships";
|
|
4
|
+
export declare enum KnownI3mfContentType {
|
|
5
|
+
Relationships = "application/vnd.openxmlformats-package.relationships+xml",
|
|
6
|
+
Model = "application/vnd.ms-package.3dmanufacturing-3dmodel+xml",
|
|
7
|
+
Materials = "application/vnd.ms-package.3dmanufacturing-material+xml",
|
|
8
|
+
Colors = "application/vnd.ms-package.3dmanufacturing-colors+xml",
|
|
9
|
+
Texture = "application/vnd.ms-package.3dmanufacturing-texture+xml",
|
|
10
|
+
Texture2D = "application/vnd.ms-package.3dmanufacturing-texture2d+xml",
|
|
11
|
+
Production = "application/vnd.ms-package.3dmanufacturing-production+xml",
|
|
12
|
+
Slice = "application/vnd.ms-package.3dmanufacturing-slice+xml",
|
|
13
|
+
BeamLattice = "application/vnd.ms-package.3dmanufacturing-beamlattice+xml",
|
|
14
|
+
SecureContent = "application/vnd.ms-package.3dmanufacturing-securecontent+xml",
|
|
15
|
+
Png = "image/png",
|
|
16
|
+
Jpeg = "image/jpeg",
|
|
17
|
+
Tiff = "image/tiff",
|
|
18
|
+
Xml = "application/xml"
|
|
19
|
+
}
|
|
20
|
+
export declare const RelationshipDirName = "_rels/";
|
|
21
|
+
export declare const Object3dDirName = "3D/";
|
|
22
|
+
export declare const ModelFileName = "3dmodel.model";
|
|
23
|
+
export declare const RelationshipFileName = ".rels";
|
|
24
|
+
export declare const ContentTypeFileName = "[Content_Types].xml";
|
|
25
|
+
/**
|
|
26
|
+
* Common OPC and 3MF relationship Type URIs.
|
|
27
|
+
*/
|
|
28
|
+
export declare class Known3mfRelationshipTypes {
|
|
29
|
+
/**
|
|
30
|
+
* 3MF core: points to the main .model part of the package
|
|
31
|
+
*/
|
|
32
|
+
static readonly ThreeDimModel = "http://schemas.microsoft.com/3dmanufacturing/2013/01/3dmodel";
|
|
33
|
+
/**
|
|
34
|
+
* OPC core: points to a package thumbnail (often used by 3MF packages)
|
|
35
|
+
*/
|
|
36
|
+
static readonly Thumbnail = "http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail";
|
|
37
|
+
/**
|
|
38
|
+
* 3MF (print ticket): optional printing settings part (rarely used by slicers)
|
|
39
|
+
*/
|
|
40
|
+
static readonly PrintTicket = "http://schemas.microsoft.com/3dmanufacturing/2013/01/printticket";
|
|
41
|
+
/**
|
|
42
|
+
* OPC core: indicates parts that must be preserved when editing the package
|
|
43
|
+
*/
|
|
44
|
+
static readonly MustPreserve = "http://schemas.openxmlformats.org/package/2006/relationships/mustpreserve";
|
|
45
|
+
/**
|
|
46
|
+
* Convenience set for quick checks
|
|
47
|
+
*/
|
|
48
|
+
static readonly Known: ReadonlySet<string>;
|
|
49
|
+
/**
|
|
50
|
+
* Test if the relationship Type is one of the common known URIs above
|
|
51
|
+
* @param type
|
|
52
|
+
* @returns true if the relationship Type is one of the common known URIs above
|
|
53
|
+
*/
|
|
54
|
+
static IsKnown(type: string): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* test if the relationship Type is the main 3MF model entry point
|
|
57
|
+
* @param type
|
|
58
|
+
* @returns true if the relationship Type is the main 3MF model entry point
|
|
59
|
+
*/
|
|
60
|
+
static IsThreeDimModel(type: string): boolean;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
*
|
|
64
|
+
*/
|
|
65
|
+
export interface I3mfContentTypes {
|
|
66
|
+
/**
|
|
67
|
+
*
|
|
68
|
+
*/
|
|
69
|
+
items: I3mfContentType[];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
*
|
|
73
|
+
*/
|
|
74
|
+
export interface I3mfContentType {
|
|
75
|
+
/**
|
|
76
|
+
*
|
|
77
|
+
*/
|
|
78
|
+
ext: string;
|
|
79
|
+
/**
|
|
80
|
+
*
|
|
81
|
+
*/
|
|
82
|
+
ct: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
*
|
|
86
|
+
*/
|
|
87
|
+
export interface I3mfRelationships {
|
|
88
|
+
/**
|
|
89
|
+
*
|
|
90
|
+
*/
|
|
91
|
+
items: I3mfRelationship[];
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
*
|
|
95
|
+
*/
|
|
96
|
+
export interface I3mfRelationship {
|
|
97
|
+
/**
|
|
98
|
+
*
|
|
99
|
+
*/
|
|
100
|
+
id: string;
|
|
101
|
+
/**
|
|
102
|
+
*
|
|
103
|
+
*/
|
|
104
|
+
type?: string;
|
|
105
|
+
/**
|
|
106
|
+
*
|
|
107
|
+
*/
|
|
108
|
+
target?: string;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
*
|
|
112
|
+
*/
|
|
113
|
+
export interface I3mfDocument {
|
|
114
|
+
/**
|
|
115
|
+
*
|
|
116
|
+
*/
|
|
117
|
+
contentTypes: I3mfContentTypes;
|
|
118
|
+
/**
|
|
119
|
+
*
|
|
120
|
+
*/
|
|
121
|
+
relationships: I3mfRelationships;
|
|
122
|
+
/**
|
|
123
|
+
*
|
|
124
|
+
*/
|
|
125
|
+
model: I3mfModel;
|
|
126
|
+
}
|