@mlightcad/data-model
Version:
The data-model package provides the core classes for interacting with AutoCAD's database and entities. This package mimics AutoCAD ObjectARX's AcDb (Database) classes and implements the drawing database structure that AutoCAD developers are familiar with.
813 lines • 92.9 kB
JavaScript
var S, Oe, O, T, Te, P, g, Y, V, ce, ve, Ne, ie, le, Se, xe, ye, A, j, h, de, ge, l, _, _e, L, Le, X, z, B, De, ue, k, K, pe, je, Xe, Z, $, Ae, ke, J, Me, ze, Ke, x, q, y, M, Ze, $e, Je, qe, Q, R, me, Re, fe, F, ee, C, re;
(S = {})[S.None = 0] = "None", S[S.Anonymous = 1] = "Anonymous", S[S.NonConstant = 2] = "NonConstant", S[S.Xref = 4] = "Xref", S[S.XrefOverlay = 8] = "XrefOverlay", S[S.ExternallyDependent = 16] = "ExternallyDependent", S[S.ResolvedOrDependent = 32] = "ResolvedOrDependent", S[S.ReferencedXref = 64] = "ReferencedXref";
(Oe = {})[Oe.BYBLOCK = 0] = "BYBLOCK", Oe[Oe.BYLAYER = 256] = "BYLAYER";
(O = {})[O.Rotated = 0] = "Rotated", O[O.Aligned = 1] = "Aligned", O[O.Angular = 2] = "Angular", O[O.Diameter = 3] = "Diameter", O[O.Radius = 4] = "Radius", O[O.Angular3Point = 5] = "Angular3Point", O[O.Ordinate = 6] = "Ordinate", O[O.ReferenceIsExclusive = 32] = "ReferenceIsExclusive", O[O.IsOrdinateXTypeFlag = 64] = "IsOrdinateXTypeFlag", O[O.IsCustomTextPositionFlag = 128] = "IsCustomTextPositionFlag";
(T = {})[T.TopLeft = 1] = "TopLeft", T[T.TopCenter = 2] = "TopCenter", T[T.TopRight = 3] = "TopRight", T[T.MiddleLeft = 4] = "MiddleLeft", T[T.MiddleCenter = 5] = "MiddleCenter", T[T.MiddleRight = 6] = "MiddleRight", T[T.BottomLeft = 7] = "BottomLeft", T[T.BottomCenter = 8] = "BottomCenter", T[T.BottomRight = 9] = "BottomRight";
(Te = {})[Te.AtLeast = 1] = "AtLeast", Te[Te.Exact = 2] = "Exact";
var sr = ((P = {})[P.Center = 0] = "Center", P[P.Above = 1] = "Above", P[P.Outside = 2] = "Outside", P[P.JIS = 3] = "JIS", P[P.Below = 4] = "Below", P), Ee = ((g = {})[g.Feet = 0] = "Feet", g[g.None = 1] = "None", g[g.Inch = 2] = "Inch", g[g.FeetAndInch = 3] = "FeetAndInch", g[g.Leading = 4] = "Leading", g[g.Trailing = 8] = "Trailing", g[g.LeadingAndTrailing = 12] = "LeadingAndTrailing", g), Na = ((Y = {})[Y.None = 0] = "None", Y[Y.Leading = 1] = "Leading", Y[Y.Trailing = 2] = "Trailing", Y[Y.LeadingAndTrailing = 3] = "LeadingAndTrailing", Y), Sa = ((V = {})[V.Center = 0] = "Center", V[V.Left = 1] = "Left", V[V.Right = 2] = "Right", V[V.OverFirst = 3] = "OverFirst", V[V.OverSecond = 4] = "OverSecond", V), xa = ((ce = {})[ce.Bottom = 0] = "Bottom", ce[ce.Center = 1] = "Center", ce[ce.Top = 2] = "Top", ce);
(ve = {})[ve.PatternFill = 0] = "PatternFill", ve[ve.SolidFill = 1] = "SolidFill";
(Ne = {})[Ne.NonAssociative = 0] = "NonAssociative", Ne[Ne.Associative = 1] = "Associative";
(ie = {})[ie.Normal = 0] = "Normal", ie[ie.Outer = 1] = "Outer", ie[ie.Ignore = 2] = "Ignore";
(le = {})[le.UserDefined = 0] = "UserDefined", le[le.Predefined = 1] = "Predefined", le[le.Custom = 2] = "Custom";
(Se = {})[Se.NotAnnotated = 0] = "NotAnnotated", Se[Se.Annotated = 1] = "Annotated";
(xe = {})[xe.Solid = 0] = "Solid", xe[xe.Gradient = 1] = "Gradient";
(ye = {})[ye.TwoColor = 0] = "TwoColor", ye[ye.OneColor = 1] = "OneColor";
var ya = ((A = {})[A.Default = 0] = "Default", A[A.External = 1] = "External", A[A.Polyline = 2] = "Polyline", A[A.Derived = 4] = "Derived", A[A.Textbox = 8] = "Textbox", A[A.Outermost = 16] = "Outermost", A), Pe = ((j = {})[j.Line = 1] = "Line", j[j.Circular = 2] = "Circular", j[j.Elliptic = 3] = "Elliptic", j[j.Spline = 4] = "Spline", j), ga = ((h = {})[h.Off = 0] = "Off", h[h.Solid = 1] = "Solid", h[h.Dashed = 2] = "Dashed", h[h.Dotted = 3] = "Dotted", h[h.ShotDash = 4] = "ShotDash", h[h.MediumDash = 5] = "MediumDash", h[h.LongDash = 6] = "LongDash", h[h.DoubleShortDash = 7] = "DoubleShortDash", h[h.DoubleMediumDash = 8] = "DoubleMediumDash", h[h.DoubleLongDash = 9] = "DoubleLongDash", h[h.DoubleMediumLongDash = 10] = "DoubleMediumLongDash", h[h.SparseDot = 11] = "SparseDot", h);
ga.Off;
(de = {})[de.Standard = -3] = "Standard", de[de.ByLayer = -2] = "ByLayer", de[de.ByBlock = -1] = "ByBlock";
(ge = {})[ge.English = 0] = "English", ge[ge.Metric = 1] = "Metric";
(l = {})[l.PERSPECTIVE_MODE = 1] = "PERSPECTIVE_MODE", l[l.FRONT_CLIPPING = 2] = "FRONT_CLIPPING", l[l.BACK_CLIPPING = 4] = "BACK_CLIPPING", l[l.UCS_FOLLOW = 8] = "UCS_FOLLOW", l[l.FRONT_CLIP_NOT_AT_EYE = 16] = "FRONT_CLIP_NOT_AT_EYE", l[l.UCS_ICON_VISIBILITY = 32] = "UCS_ICON_VISIBILITY", l[l.UCS_ICON_AT_ORIGIN = 64] = "UCS_ICON_AT_ORIGIN", l[l.FAST_ZOOM = 128] = "FAST_ZOOM", l[l.SNAP_MODE = 256] = "SNAP_MODE", l[l.GRID_MODE = 512] = "GRID_MODE", l[l.ISOMETRIC_SNAP_STYLE = 1024] = "ISOMETRIC_SNAP_STYLE", l[l.HIDE_PLOT_MODE = 2048] = "HIDE_PLOT_MODE", l[l.K_ISO_PAIR_TOP = 4096] = "K_ISO_PAIR_TOP", l[l.K_ISO_PAIR_RIGHT = 8192] = "K_ISO_PAIR_RIGHT", l[l.VIEWPORT_ZOOM_LOCKING = 16384] = "VIEWPORT_ZOOM_LOCKING", l[l.UNUSED = 32768] = "UNUSED", l[l.NON_RECTANGULAR_CLIPPING = 65536] = "NON_RECTANGULAR_CLIPPING", l[l.VIEWPORT_OFF = 131072] = "VIEWPORT_OFF", l[l.GRID_BEYOND_DRAWING_LIMITS = 262144] = "GRID_BEYOND_DRAWING_LIMITS", l[l.ADAPTIVE_GRID_DISPLAY = 524288] = "ADAPTIVE_GRID_DISPLAY", l[l.SUBDIVISION_BELOW_SPACING = 1048576] = "SUBDIVISION_BELOW_SPACING", l[l.GRID_FOLLOWS_WORKPLANE = 2097152] = "GRID_FOLLOWS_WORKPLANE";
(_ = {})[_.OPTIMIZED_2D = 0] = "OPTIMIZED_2D", _[_.WIREFRAME = 1] = "WIREFRAME", _[_.HIDDEN_LINE = 2] = "HIDDEN_LINE", _[_.FLAT_SHADED = 3] = "FLAT_SHADED", _[_.GOURAUD_SHADED = 4] = "GOURAUD_SHADED", _[_.FLAT_SHADED_WITH_WIREFRAME = 5] = "FLAT_SHADED_WITH_WIREFRAME", _[_.GOURAUD_SHADED_WITH_WIREFRAME = 6] = "GOURAUD_SHADED_WITH_WIREFRAME";
(_e = {})[_e.UCS_UNCHANGED = 0] = "UCS_UNCHANGED", _e[_e.HAS_OWN_UCS = 1] = "HAS_OWN_UCS";
(L = {})[L.NON_ORTHOGRAPHIC = 0] = "NON_ORTHOGRAPHIC", L[L.TOP = 1] = "TOP", L[L.BOTTOM = 2] = "BOTTOM", L[L.FRONT = 3] = "FRONT", L[L.BACK = 4] = "BACK", L[L.LEFT = 5] = "LEFT", L[L.RIGHT = 6] = "RIGHT";
(Le = {})[Le.ONE_DISTANT_LIGHT = 0] = "ONE_DISTANT_LIGHT", Le[Le.TWO_DISTANT_LIGHTS = 1] = "TWO_DISTANT_LIGHTS";
(X = {})[X.ByLayer = 0] = "ByLayer", X[X.ByBlock = 1] = "ByBlock", X[X.ByDictionaryDefault = 2] = "ByDictionaryDefault", X[X.ByObject = 3] = "ByObject";
function p(e, r, n) {
return e.code === r && (n == null || e.value === n);
}
function m(e) {
let r = {};
e.rewind();
let n = e.next(), t = n.code;
if (r.x = n.value, (n = e.next()).code !== t + 10) throw Error("Expected code for point value to be 20 but got " + n.code + ".");
return r.y = n.value, (n = e.next()).code !== t + 20 ? e.rewind() : r.z = n.value, r;
}
let rr = Symbol();
function u(e, r) {
return (n, t, s) => {
let o = function(d, N = !1) {
return d.reduce((v, E) => {
E.pushContext && v.push({});
let G = v[v.length - 1];
for (let se of typeof E.code == "number" ? [E.code] : E.code) {
let oe = G[se] ?? (G[se] = []);
E.isMultiple && oe.length && N && console.warn(`Snippet ${oe[oe.length - 1].name} for code(${se}) is shadowed by ${E.name}`), oe.push(E);
}
return v;
}, [{}]);
}(e, t.debug), i = !1, b = o.length - 1;
for (; !p(n, 0, "EOF"); ) {
let d = function(D, w, H) {
return D.find((he, ne) => {
var W;
return ne >= H && ((W = he[w]) == null ? void 0 : W.length);
});
}(o, n.code, b), N = d == null ? void 0 : d[n.code], v = N == null ? void 0 : N[N.length - 1];
if (!d || !v) {
t.rewind();
break;
}
v.isMultiple || d[n.code].pop();
let { name: E, parser: G, isMultiple: se, isReducible: oe } = v, U = G == null ? void 0 : G(n, t, s);
if (U === rr) {
t.rewind();
break;
}
if (E) {
let [D, w] = function(H, he) {
let ne = he.split(".");
if (!ne.length) throw Error("[parserGenerator::getObjectByPath] Invalid empty path");
let W = H;
for (let Ce = 0; Ce < ne.length - 1; ++Ce) {
let we = Qe(ne[Ce]), va = Qe(ne[Ce + 1]);
Object.prototype.hasOwnProperty.call(W, we) || (typeof va == "number" ? W[we] = [] : W[we] = {}), W = W[we];
}
return [W, Qe(ne[ne.length - 1])];
}(s, E);
se && !oe ? (Object.prototype.hasOwnProperty.call(D, w) || (D[w] = []), D[w].push(U)) : D[w] = U;
}
v.pushContext && (b -= 1), i = !0, n = t.next();
}
return r && Object.setPrototypeOf(s, r), i;
};
}
function Qe(e) {
let r = Number.parseInt(e);
return Number.isNaN(r) ? e : r;
}
function a({ value: e }) {
return e;
}
function c(e, r) {
return m(r);
}
function f({ value: e }) {
return !!e;
}
let _a = [{ code: 1001, name: "xdata", parser: ur }];
function ur(e, r) {
var s;
if (!p(e, 1001)) throw Error("XData must starts with code 1001");
let n = { appName: e.value, value: [] };
e = r.next();
let t = [n.value];
for (; !p(e, 0, "EOF") && e.code >= 1e3; ) {
let o = t[t.length - 1];
switch (e.code) {
case 1002:
e.value === "{" ? t.push([]) : (t.pop(), (s = t[t.length - 1]) == null || s.push(o));
break;
case 1e3:
case 1004:
case 1040:
case 1070:
case 1071:
o.push({ type: ae(e.code), value: e.value });
break;
case 1003:
o.push({ name: "layer", type: ae(e.code), value: e.value });
break;
case 1005:
o.push({ name: "handle", type: ae(e.code), value: e.value });
break;
case 1010:
o.push({ type: ae(e.code), value: m(r) });
break;
case 1011:
o.push({ name: "worldSpacePosition", type: ae(e.code), value: m(r) });
break;
case 1012:
o.push({ name: "worldSpaceDisplacement", type: ae(e.code), value: m(r) });
break;
case 1013:
o.push({ name: "worldSpaceDirection", type: ae(e.code), value: m(r) });
break;
case 1041:
o.push({ name: "distance", type: ae(e.code), value: e.value });
break;
case 1042:
o.push({ name: "scale", type: ae(e.code), value: e.value });
}
e = r.next();
}
return r.rewind(), n;
}
function ae(e) {
switch (e) {
case 1e3:
case 1003:
case 1005:
return "string";
case 1004:
return "hex";
case 1040:
case 1041:
case 1042:
return "real";
case 1070:
return "integer";
case 1071:
return "long";
case 1010:
case 1011:
case 1012:
case 1013:
return "point";
default:
return "";
}
}
function Ie(e, r, n) {
for (; p(e, 102); ) {
var t;
let s = e.value;
if (e = r.next(), !s.startsWith("{")) {
r.debug && console.warn(`Invalid application group, expected to start with "{" but received: ${s}`), function(i, b) {
for (; !p(i, 102) && !p(i, 0, "EOF"); ) i = b.next();
}(e, r), e = r.next();
continue;
}
let o = s.slice(1).trim();
n.extensions ?? (n.extensions = {}), (t = n.extensions)[o] ?? (t[o] = []), function(i, b, d) {
for (; !p(i, 102, "}") && !p(i, 0, "EOF"); ) d.push(i), i = b.next();
}(e, r, n.extensions[o]), e = r.next();
}
r.rewind();
}
let La = 0;
function pr(e) {
if (!e) throw TypeError("entity cannot be undefined or null");
e.handle || (e.handle = La++);
}
var Da = [0, 16711680, 16776960, 65280, 65535, 255, 16711935, 16777215, 8421504, 12632256, 16711680, 16744319, 13369344, 13395558, 10027008, 10046540, 8323072, 8339263, 4980736, 4990502, 16727808, 16752511, 13382400, 13401958, 10036736, 10051404, 8331008, 8343359, 4985600, 4992806, 16744192, 16760703, 13395456, 13408614, 10046464, 10056268, 8339200, 8347455, 4990464, 4995366, 16760576, 16768895, 13408512, 13415014, 10056192, 10061132, 8347392, 8351551, 4995328, 4997670, 16776960, 16777087, 13421568, 13421670, 10000384, 10000460, 8355584, 8355647, 5000192, 5000230, 12582656, 14679935, 10079232, 11717734, 7510016, 8755276, 6258432, 7307071, 3755008, 4344870, 8388352, 12582783, 6736896, 10079334, 5019648, 7510092, 4161280, 6258495, 2509824, 3755046, 4194048, 10485631, 3394560, 8375398, 2529280, 6264908, 2064128, 5209919, 1264640, 3099686, 65280, 8388479, 52224, 6736998, 38912, 5019724, 32512, 4161343, 19456, 2509862, 65343, 8388511, 52275, 6737023, 38950, 5019743, 32543, 4161359, 19475, 2509871, 65407, 8388543, 52326, 6737049, 38988, 5019762, 32575, 4161375, 19494, 2509881, 65471, 8388575, 52377, 6737074, 39026, 5019781, 32607, 4161391, 19513, 2509890, 65535, 8388607, 52428, 6737100, 39064, 5019800, 32639, 4161407, 19532, 2509900, 49151, 8380415, 39372, 6730444, 29336, 5014936, 24447, 4157311, 14668, 2507340, 32767, 8372223, 26316, 6724044, 19608, 5010072, 16255, 4153215, 9804, 2505036, 16383, 8364031, 13260, 6717388, 9880, 5005208, 8063, 4149119, 4940, 2502476, 255, 8355839, 204, 6710988, 152, 5000344, 127, 4145023, 76, 2500172, 4129023, 10452991, 3342540, 8349388, 2490520, 6245528, 2031743, 5193599, 1245260, 3089996, 8323327, 12550143, 6684876, 10053324, 4980888, 7490712, 4128895, 6242175, 2490444, 3745356, 12517631, 14647295, 10027212, 11691724, 7471256, 8735896, 6226047, 7290751, 3735628, 4335180, 16711935, 16744447, 13369548, 13395660, 9961624, 9981080, 8323199, 8339327, 4980812, 4990540, 16711871, 16744415, 13369497, 13395634, 9961586, 9981061, 8323167, 8339311, 4980793, 4990530, 16711807, 16744383, 13369446, 13395609, 9961548, 9981042, 8323135, 8339295, 4980774, 4990521, 16711743, 16744351, 13369395, 13395583, 9961510, 9981023, 8323103, 8339279, 4980755, 4990511, 3355443, 5987163, 8684676, 11382189, 14079702, 16777215];
function mr(e) {
return Da[e];
}
(z = {})[z.CAST_AND_RECEIVE = 0] = "CAST_AND_RECEIVE", z[z.CAST = 1] = "CAST", z[z.RECEIVE = 2] = "RECEIVE", z[z.IGNORE = 3] = "IGNORE";
let I = [..._a, { code: 284, name: "shadowMode", parser: a }, { code: 390, name: "plotStyleHardId", parser: a }, { code: 380, name: "plotStyleType", parser: a }, { code: 440, name: "transparency", parser: a }, { code: 430, name: "colorName", parser: a }, { code: 420, name: "color", parser: a }, { code: 310, name: "proxyEntity", isMultiple: !0, parser: a }, { code: 92, name: "proxyByte", parser: a }, { code: 60, name: "isVisible", parser: f }, { code: 48, name: "lineTypeScale", parser: a }, { code: 370, name: "lineweight", parser: a }, { code: 62, name: "colorIndex", parser(e, r, n) {
let t = e.value;
return t > 0 && t < 256 && (n.color = mr(Math.abs(t))), t;
} }, { code: 347, name: "materialObjectHardId", parser: a }, { code: 6, name: "lineType", parser: a }, { code: 8, name: "layer", parser: a }, { code: 410, name: "layoutTabName", parser: a }, { code: 67, name: "isInPaperSpace", parser: f }, { code: 100 }, { code: 160 }, { code: 330, name: "ownerBlockRecordSoftId", parser: a }, { code: 102, parser: Ie }, { code: 102, parser: Ie }, { code: 102, parser: Ie }, { code: 5, name: "handle", parser: a }];
function Ye(e) {
return [{ code: 3, name: e, parser: (r, n, t) => (t._code3text = (t._code3text ?? "") + r.value, t._code3text + (t._code1text ?? "")), isMultiple: !0, isReducible: !0 }, { code: 1, name: e, parser: (r, n, t) => (t._code1text = r.value, (t._code3text ?? "") + t._code1text) }];
}
function fr(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
let Aa = { extrusionDirection: { x: 0, y: 0, z: 1 } }, ka = [{ code: 210, name: "extrusionDirection", parser: c }, { code: 51, name: "endAngle", parser: a }, { code: 50, name: "startAngle", parser: a }, { code: 100, name: "subclassMarker", parser: a }, { code: 40, name: "radius", parser: a }, { code: 10, name: "center", parser: c }, { code: 39, name: "thickness", parser: a }, { code: 100 }, ...I];
class Ir {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
fr(this, "parser", u(ka, Aa));
}
}
fr(Ir, "ForEntityName", "ARC");
(B = {})[B.NONE = 0] = "NONE", B[B.INVISIBLE = 1] = "INVISIBLE", B[B.CONSTANT = 2] = "CONSTANT", B[B.VERIFICATION_REQUIRED = 4] = "VERIFICATION_REQUIRED", B[B.PRESET = 8] = "PRESET";
(De = {})[De.MULTILINE = 2] = "MULTILINE", De[De.CONSTANT_MULTILINE = 4] = "CONSTANT_MULTILINE";
(ue = {})[ue.NONE = 0] = "NONE", ue[ue.MIRRORED_X = 2] = "MIRRORED_X", ue[ue.MIRRORED_Y = 4] = "MIRRORED_Y";
var Ma = ((k = {})[k.LEFT = 0] = "LEFT", k[k.CENTER = 1] = "CENTER", k[k.RIGHT = 2] = "RIGHT", k[k.ALIGNED = 3] = "ALIGNED", k[k.MIDDLE = 4] = "MIDDLE", k[k.FIT = 5] = "FIT", k), Ra = ((K = {})[K.BASELINE = 0] = "BASELINE", K[K.BOTTOM = 1] = "BOTTOM", K[K.MIDDLE = 2] = "MIDDLE", K[K.TOP = 3] = "TOP", K);
function Er(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
let br = { thickness: 0, rotation: 0, xScale: 1, obliqueAngle: 0, styleName: "STANDARD", generationFlag: 0, halign: Ma.LEFT, valign: Ra.BASELINE, extrusionDirection: { x: 0, y: 0, z: 1 } }, hr = [{ code: 73, name: "valign", parser: a }, { code: 100 }, { code: 210, name: "extrusionDirection", parser: c }, { code: 11, name: "endPoint", parser: c }, { code: 72, name: "valign", parser: a }, { code: 72, name: "halign", parser: a }, { code: 71, name: "generationFlag", parser: a }, { code: 7, name: "styleName", parser: a }, { code: 51, name: "obliqueAngle", parser: a }, { code: 41, name: "xScale", parser: a }, { code: 50, name: "rotation", parser: a }, { code: 1, name: "text", parser: a }, { code: 40, name: "textHeight", parser: a }, { code: 10, name: "startPoint", parser: c }, { code: 39, name: "thickness", parser: a }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class Or {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
Er(this, "parser", u(hr, br));
}
}
function Tr(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
Er(Or, "ForEntityName", "TEXT");
let Fa = { ...br }, Ca = [{ code: 2 }, { code: 40, name: "annotationScale", parser: a }, { code: 10, name: "alignmentPoint", parser: c }, { code: 340, name: "secondaryAttributesHardIds", isMultiple: !0, parser: a }, { code: 70, name: "numberOfSecondaryAttributes", parser: a }, { code: 70, name: "isReallyLocked", parser: f }, { code: 70, name: "mtextFlag", parser: a }, { code: 280, name: "isDuplicatedRecord", parser: f }, { code: 100 }, { code: 280, name: "isLocked", parser: f }, { code: 74, name: "valign", parser: a }, { code: 73 }, { code: 70, name: "attributeFlag", parser: a }, { code: 2, name: "tag", parser: a }, { code: 3, name: "prompt", parser: a }, { code: 280 }, { code: 100, name: "subclassMarker", parser: a }, ...hr.slice(2)];
class vr {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
Tr(this, "parser", u(Ca, Fa));
}
}
Tr(vr, "ForEntityName", "ATTDEF");
(pe = {})[pe.LEFT_TO_RIGHT = 1] = "LEFT_TO_RIGHT", pe[pe.TOP_TO_BOTTOM = 3] = "TOP_TO_BOTTOM", pe[pe.BY_STYLE = 5] = "BY_STYLE";
function wa(e, r) {
let n = {};
for (let t of e) {
let s = r(t);
s != null && (n[s] ?? (n[s] = []), n[s].push(t));
}
return n;
}
function* We(e, r = 1 / 0, n = 1) {
for (let t = e; t !== r; t += n) yield t;
}
function te(e) {
return { x: e.x ?? 0, y: e.y ?? 0, z: e.z ?? 0 };
}
function ar(e, r, n) {
if (p(r, 102)) return Ie(r, n, e), !0;
switch (r.code) {
case 0:
e.type = r.value;
break;
case 5:
e.handle = r.value;
break;
case 330:
e.ownerBlockRecordSoftId = r.value;
break;
case 67:
e.isInPaperSpace = !!r.value;
break;
case 8:
e.layer = r.value;
break;
case 6:
e.lineType = r.value;
break;
case 347:
e.materialObjectHardId = r.value;
break;
case 62:
e.colorIndex = r.value, e.color = mr(Math.abs(r.value));
break;
case 370:
e.lineweight = r.value;
break;
case 48:
e.lineTypeScale = r.value;
break;
case 60:
e.isVisible = !!r.value;
break;
case 92:
e.proxyByte = r.value;
break;
case 310:
e.proxyEntity = r.value;
break;
case 100:
break;
case 420:
e.color = r.value;
break;
case 430:
e.transparency = r.value;
break;
case 390:
e.plotStyleHardId = r.value;
break;
case 284:
e.shadowMode = r.value;
break;
case 1001:
e.xdata = ur(r, n);
break;
default:
return !1;
}
return !0;
}
function Nr(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
let Pa = { textStyle: "STANDARD", extrusionDirection: { x: 0, y: 0, z: 1 }, rotation: 0 }, Ve = [{ code: 46, name: "annotationHeight", parser: a }, { code: 101, parser(e, r) {
(function(n) {
n.rewind();
let t = n.next();
if (t.code !== 101) throw Error("Bad call for skipEmbeddedObject()");
do
t = n.next();
while (t.code !== 0);
n.rewind();
})(r);
} }, { code: 50, name: "columnHeight", parser: a }, { code: 49, name: "columnGutter", parser: a }, { code: 48, name: "columnWidth", parser: a }, { code: 79, name: "columnAutoHeight", parser: a }, { code: 78, name: "columnFlowReversed", parser: a }, { code: 76, name: "columnCount", parser: a }, { code: 75, name: "columnType", parser: a }, { code: 441, name: "backgroundFillTransparency", parser: a }, { code: 63, name: "backgroundFillColor", parser: a }, { code: 45, name: "fillBoxScale", parser: a }, { code: [...We(430, 440)], name: "backgroundColor", parser: a }, { code: [...We(420, 430)], name: "backgroundColor", parser: a }, { code: 90, name: "backgroundFill", parser: a }, { code: 44, name: "lineSpacing", parser: a }, { code: 73, name: "lineSpacingStyle", parser: a }, { code: 50, name: "rotation", parser: a }, { code: 43 }, { code: 42 }, { code: 11, name: "direction", parser: c }, { code: 210, name: "extrusionDirection", parser: c }, { code: 7, name: "styleName", parser: a }, ...Ye("text"), { code: 72, name: "drawingDirection", parser: a }, { code: 71, name: "attachmentPoint", parser: a }, { code: 41, name: "width", parser: a }, { code: 40, name: "height", parser: a }, { code: 10, name: "insertionPoint", parser: c }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class Sr {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
Nr(this, "parser", u(Ve, Pa));
}
}
function xr(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
Nr(Sr, "ForEntityName", "MTEXT");
let Va = { thickness: 0, rotation: 0, scale: 1, obliqueAngle: 0, textStyle: "STANDARD", textGenerationFlag: 0, horizontalJustification: 0, verticalJustification: 0, extrusionDirection: { x: 0, y: 0, z: 1 } }, Ba = [...Ve.slice(Ve.findIndex(({ name: e }) => e === "columnType"), Ve.findIndex(({ name: e }) => e === "subclassMarker") + 1), { code: 100 }, { code: 0, parser(e) {
if (!p(e, 0, "MTEXT")) return rr;
} }, { code: 2, name: "definitionTag", parser: a }, { code: 40, name: "annotationScale", parser: a }, { code: 10, name: "alignmentPoint", parser: c }, { code: 340, name: "secondaryAttributesHardId", parser: a }, { code: 70, name: "numberOfSecondaryAttributes", parser: a }, { code: 70, name: "isReallyLocked", parser: f }, { code: 70, name: "mtextFlag", parser: a }, { code: 280, name: "isDuplicatedEntriesKeep", parser: f }, { code: 100 }, { code: 280, name: "lockPositionFlag", parser: f }, { code: 210, name: "extrusionDirection", parser: c }, { code: 11, name: "alignmentPoint", parser: c }, { code: 74, name: "verticalJustification", parser: a }, { code: 72, name: "horizontalJustification", parser: a }, { code: 71, name: "textGenerationFlag", parser: a }, { code: 7, name: "textStyle", parser: a }, { code: 51, name: "obliqueAngle", parser: a }, { code: 41, name: "scale", parser: a }, { code: 50, name: "rotation", parser: a }, { code: 73 }, { code: 70, name: "attributeFlag", parser: a }, { code: 2, name: "tag", parser: a }, { code: 280 }, { code: 100, name: "subclassMarker", parser: a }, { code: 1, name: "text", parser: a }, { code: 40, name: "textHeight", parser: a }, { code: 10, name: "startPoint", parser: c }, { code: 39, name: "thickness", parser: a }, { code: 100 }, ...I];
class yr {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
xr(this, "parser", u(Ba, Va));
}
}
function gr(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
xr(yr, "ForEntityName", "ATTRIB");
let Ua = [...Ye("data"), { code: 70, name: "version", parser: a }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class _r {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
gr(this, "parser", u(Ua));
}
}
function Lr(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
gr(_r, "ForEntityName", "BODY");
let Ga = { thickness: 0, extrusionDirection: { x: 0, y: 0, z: 1 } }, Ha = [{ code: 210, name: "extrusionDirection", parser: c }, { code: 40, name: "radius", parser: a }, { code: 10, name: "center", parser: c }, { code: 39, name: "thickness", parser: a }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class Dr {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
Lr(this, "parser", u(Ha, Ga));
}
}
Lr(Dr, "ForEntityName", "CIRCLE");
class Be {
parseEntity(r, n) {
let t = {};
for (; !p(n, 0, "EOF"); ) {
if (n.code === 0) {
r.rewind();
break;
}
(function(s, o, i) {
switch (o.code) {
case 100:
s.subclassMarker = o.value;
break;
case 280:
s.version = o.value;
break;
case 2:
s.name = o.value;
break;
case 10:
s.definitionPoint = m(i);
break;
case 11:
s.textPoint = m(i);
break;
case 12:
s.insertionPoint = m(i);
break;
case 13:
s.subDefinitionPoint1 = m(i);
break;
case 14:
s.subDefinitionPoint2 = m(i);
break;
case 15:
s.centerPoint = m(i);
break;
case 16:
s.arcPoint = m(i);
break;
case 70:
s.dimensionType = o.value;
break;
case 71:
s.attachmentPoint = o.value;
break;
case 72:
s.textLineSpacingStyle = o.value;
break;
case 40:
s.leaderLength = o.value;
break;
case 41:
s.textLineSpacingFactor = o.value;
break;
case 42:
s.measurement = o.value;
break;
case 1:
s.text = o.value;
break;
case 50:
s.rotationAngle = o.value;
break;
case 52:
s.obliqueAngle = o.value;
break;
case 53:
s.textRotation = o.value;
break;
case 51:
s.ocsRotation = o.value;
break;
case 210:
s.extrusionDirection = m(i);
break;
case 3:
s.styleName = o.value;
break;
default:
ar(s, o, i);
}
})(t, n, r), n = r.next();
}
return t;
}
}
function Ar(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
Xe = "DIMENSION", (je = "ForEntityName") in Be ? Object.defineProperty(Be, je, { value: Xe, enumerable: !0, configurable: !0, writable: !0 }) : Be[je] = Xe;
let Wa = { extrusionDirection: { x: 0, y: 0, z: 1 } }, Ya = [{ code: 42, name: "endAngle", parser: a }, { code: 41, name: "startAngle", parser: a }, { code: 40, name: "axisRatio", parser: a }, { code: 210, name: "extrusionDirection", parser: c }, { code: 11, name: "majorAxisEndPoint", parser: c }, { code: 10, name: "center", parser: c }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class kr {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
Ar(this, "parser", u(Ya, Wa));
}
}
Ar(kr, "ForEntityName", "ELLIPSE");
(Z = {})[Z.First = 1] = "First", Z[Z.Second = 2] = "Second", Z[Z.Third = 4] = "Third", Z[Z.Fourth = 8] = "Fourth";
function Mr(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
let ja = [{ code: 13, name: "vertices.3", parser: c }, { code: 12, name: "vertices.2", parser: c }, { code: 11, name: "vertices.1", parser: c }, { code: 10, name: "vertices.0", parser: c }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class Rr {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
Mr(this, "parser", u(ja));
}
}
Mr(Rr, "ForEntityName", "3DFACE");
let Fr = [{ code: 330, name: "sourceBoundaryObjects", parser: a, isMultiple: !0 }, { code: 97, name: "numberOfSourceBoundaryObjects", parser: a }], Xa = [{ code: 11, name: "end", parser: c }, { code: 10, name: "start", parser: c }], za = [{ code: 73, name: "isCCW", parser: f }, { code: 51, name: "endAngle", parser: a }, { code: 50, name: "startAngle", parser: a }, { code: 40, name: "radius", parser: a }, { code: 10, name: "center", parser: c }], Ka = [{ code: 73, name: "isCCW", parser: f }, { code: 51, name: "endAngle", parser: a }, { code: 50, name: "startAngle", parser: a }, { code: 40, name: "lengthOfMinorAxis", parser: a }, { code: 11, name: "end", parser: c }, { code: 10, name: "center", parser: c }], Za = [{ code: 13, name: "endTangent", parser: c }, { code: 12, name: "startTangent", parser: c }, { code: 11, name: "fitDatum", isMultiple: !0, parser: c }, { code: 97, name: "numberOfFitData", parser: a }, { code: 10, name: "controlPoints", isMultiple: !0, parser(e, r) {
let n = { ...m(r), weight: 1 };
return (e = r.next()).code === 42 ? n.weight = e.value : r.rewind(), n;
} }, { code: 40, name: "knots", isMultiple: !0, parser: a }, { code: 96, name: "numberOfControlPoints", parser: a }, { code: 95, name: "numberOfKnots", parser: a }, { code: 74, name: "isPeriodic", parser: f }, { code: 73, name: "splineFlag", parser: a }, { code: 94, name: "degree", parser: a }], $a = { [Pe.Line]: Xa, [Pe.Circular]: za, [Pe.Elliptic]: Ka, [Pe.Spline]: Za }, Ja = [...Fr, { code: 72, name: "edges", parser(e, r) {
let n = { type: e.value }, t = u($a[n.type]);
if (!t) throw Error(`Invalid edge type ${n.type}`);
return t(e = r.next(), r, n), n;
}, isMultiple: !0 }, { code: 93, name: "numberOfEdges", parser: a }], qa = [...Fr, { code: 10, name: "vertices", parser(e, r) {
let n = { ...m(r), bulge: 0 };
return (e = r.next()).code === 42 ? n.bulge = e.value : r.rewind(), n;
}, isMultiple: !0 }, { code: 93, name: "numberOfVertices", parser: a }, { code: 73, name: "isClosed", parser: f }, { code: 72, name: "hasBulge", parser: f }], Qa = [{ code: 49, name: "dashLengths", parser: a, isMultiple: !0 }, { code: 79, name: "numberOfDashLengths", parser: a }, { code: 45, name: "offset", parser: or }, { code: 43, name: "base", parser: or }, { code: 53, name: "angle", parser: a }];
function or(e, r) {
let n = e.code + 1, t = { x: e.value, y: 1 };
return (e = r.next()).code === n ? t.y = e.value : r.rewind(), t;
}
function Cr(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
let en = { extrusionDirection: { x: 0, y: 0, z: 1 }, gradientRotation: 0, colorTint: 0 }, rn = [{ code: 470 }, { code: 463 }, { code: 462, name: "colorTint", parser: a }, { code: 461, name: "gradientDefinition", parser: a }, { code: 460, name: "gradientRotation", parser: a }, { code: 453, name: "numberOfColors", parser: a }, { code: 452, name: "gradientColorFlag", parser: a }, { code: 451 }, { code: 450, name: "gradientFlag", parser: a }, { code: 10, name: "seedPoints", parser: c, isMultiple: !0 }, { code: 99 }, { code: 11, name: "offsetVector", parser: c }, { code: 98, name: "numberOfSeedPoints", parser: a }, { code: 47, name: "pixelSize", parser: a }, { code: 53, name: "definitionLines", parser: function(e, r) {
let n = {};
return u(Qa)(e, r, n), n;
}, isMultiple: !0 }, { code: 78, name: "numberOfDefinitionLines", parser: a }, { code: 77, name: "isDouble", parser: f }, { code: 73, name: "isAnnotated", parser: f }, { code: 41, name: "patternScale", parser: a }, { code: 52, name: "patternAngle", parser: a }, { code: 76, name: "patternType", parser: a }, { code: 75, name: "hatchStyle", parser: a }, { code: 92, name: "boundaryPaths", parser: function(e, r) {
let n = { boundaryPathTypeFlag: e.value }, t = n.boundaryPathTypeFlag & ya.Polyline;
return e = r.next(), t ? u(qa)(e, r, n) : u(Ja)(e, r, n), n;
}, isMultiple: !0 }, { code: 91, name: "numberOfBoundaryPaths", parser: a }, { code: 71, name: "associativity", parser: a }, { code: 63, name: "patternFillColor", parser: a }, { code: 70, name: "solidFill", parser: a }, { code: 2, name: "patternName", parser: a }, { code: 210, name: "extrusionDirection", parser: c }, { code: 10, name: "elevationPoint", parser: c }, { code: 100, name: "subclassMarker", parser: a, pushContext: !0 }, ...I];
class wr {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
Cr(this, "parser", u(rn, en));
}
}
Cr(wr, "ForEntityName", "HATCH");
($ = {})[$.ShowImage = 1] = "ShowImage", $[$.ShowImageWhenNotAlignedWithScreen = 2] = "ShowImageWhenNotAlignedWithScreen", $[$.UseClippingBoundary = 4] = "UseClippingBoundary", $[$.TransparencyIsOn = 8] = "TransparencyIsOn";
(Ae = {})[Ae.Rectangular = 1] = "Rectangular", Ae[Ae.Polygonal = 2] = "Polygonal";
(ke = {})[ke.Outside = 0] = "Outside", ke[ke.Inside = 1] = "Inside";
function Pr(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
let an = { brightness: 50, contrast: 50, fade: 0, clippingBoundaryPath: [] }, nn = [{ code: 290, name: "clipMode", parser: a }, { code: 14, name: "clippingBoundaryPath", isMultiple: !0, parser: c }, { code: 91, name: "countBoundaryPoints", parser: a }, { code: 71, name: "clippingBoundaryType", parser: a }, { code: 360, name: "imageDefReactorHandle", parser: a }, { code: 283, name: "fade", parser: a }, { code: 282, name: "contrast", parser: a }, { code: 281, name: "brightness", parser: a }, { code: 280, name: "isClipped", parser: f }, { code: 70, name: "flags", parser: a }, { code: 340, name: "imageDefHandle", parser: a }, { code: 13, name: "imageSize", parser: c }, { code: 12, name: "vPixel", parser: c }, { code: 11, name: "uPixel", parser: c }, { code: 10, name: "position", parser: c }, { code: 90, name: "version", parser: a }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class Vr {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
Pr(this, "parser", u(nn, an));
}
}
function Br(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
Pr(Vr, "ForEntityName", "IMAGE");
let tn = { xScale: 1, yScale: 1, zScale: 1, rotation: 0, columnCount: 0, rowCount: 0, columnSpacing: 0, rowSpacing: 0, extrusionDirection: { x: 0, y: 0, z: 1 } }, sn = [{ code: 210, name: "extrusionDirection", parser: c }, { code: 45, name: "rowSpacing", parser: a }, { code: 44, name: "columnSpacing", parser: a }, { code: 71, name: "rowCount", parser: a }, { code: 70, name: "columnCount", parser: a }, { code: 50, name: "rotation", parser: a }, { code: 43, name: "zScale", parser: a }, { code: 42, name: "yScale", parser: a }, { code: 41, name: "xScale", parser: a }, { code: 10, name: "insertionPoint", parser: c }, { code: 2, name: "name", parser: a }, { code: 66, name: "isVariableAttributes", parser: f }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class Ur {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
Br(this, "parser", u(sn, tn));
}
}
function Gr(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
Br(Ur, "ForEntityName", "INSERT");
let on = { isArrowheadEnabled: !0 }, cn = [{ code: 213, name: "offsetFromAnnotation", parser: c }, { code: 212, name: "offsetFromBlock", parser: c }, { code: 211, name: "horizontalDirection", parser: c }, { code: 210, name: "normal", parser: c }, { code: 340, name: "associatedAnnotation", parser: a }, { code: 77, name: "byBlockColor", parser: a }, { code: 10, name: "vertices", parser: c, isMultiple: !0 }, { code: 76, name: "numberOfVertices", parser: a }, { code: 41, name: "textWidth", parser: a }, { code: 40, name: "textHeight", parser: a }, { code: 75, name: "isHooklineExists", parser: f }, { code: 74, name: "isHooklineSameDirection", parser: f }, { code: 73, name: "leaderCreationFlag", parser: a }, { code: 72, name: "isSpline", parser: f }, { code: 71, name: "isArrowheadEnabled", parser: f }, { code: 3, name: "styleName", parser: a }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class Hr {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
Gr(this, "parser", u(cn, on));
}
}
Gr(Hr, "ForEntityName", "LEADER");
(J = {})[J.TextAnnotation = 0] = "TextAnnotation", J[J.ToleranceAnnotation = 1] = "ToleranceAnnotation", J[J.BlockReferenceAnnotation = 2] = "BlockReferenceAnnotation", J[J.NoAnnotation = 3] = "NoAnnotation";
function Wr(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
let ln = { thickness: 0, extrusionDirection: { x: 0, y: 0, z: 1 } }, dn = [{ code: 210, name: "extrusionDirection", parser: c }, { code: 11, name: "endPoint", parser: c }, { code: 10, name: "startPoint", parser: c }, { code: 39, name: "thickness", parser: a }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class Yr {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
Wr(this, "parser", u(dn, ln));
}
}
Wr(Yr, "ForEntityName", "LINE");
(Me = {})[Me.IS_CLOSED = 1] = "IS_CLOSED", Me[Me.PLINE_GEN = 128] = "PLINE_GEN";
let un = { flag: 0, elevation: 0, thickness: 0, extrusionDirection: { x: 0, y: 0, z: 1 }, vertices: [] }, pn = { bulge: 0 }, mn = [{ code: 42, name: "bulge", parser: a }, { code: 41, name: "endWidth", parser: a }, { code: 40, name: "startWidth", parser: a }, { code: 91, name: "id", parser: a }, { code: 20, name: "y", parser: a }, { code: 10, name: "x", parser: a }], fn = [{ code: 210, name: "extrusionDirection", parser: c }, { code: 10, name: "vertices", isMultiple: !0, parser(e, r) {
let n = {};
return u(mn, pn)(e, r, n), n;
} }, { code: 39, name: "thickness", parser: a }, { code: 38, name: "elevation", parser: a }, { code: 43, name: "constantWidth", parser: a }, { code: 70, name: "flag", parser: a }, { code: 90, name: "numberOfVertices", parser: a }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class Ue {
parseEntity(r, n) {
let t = {};
return u(fn, un)(n, r, t), t;
}
}
function jr(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
Ke = "LWPOLYLINE", (ze = "ForEntityName") in Ue ? Object.defineProperty(Ue, ze, { value: Ke, enumerable: !0, configurable: !0, writable: !0 }) : Ue[ze] = Ke;
let In = [{ code: 90, name: "overridenSubEntityCount", parser: a }, { code: 140, name: "edgeCreaseWeights", parser: a, isMultiple: !0 }, { code: 95, name: "edgeCreaseCount", parser: a }, { code: 94, parser(e, r, n) {
n.edgeCount = e.value, n.edgeIndices = [];
for (let t = 0; t < n.edgeCount; ++t) {
let s = [];
e = r.next(), s[0] = e.value, e = r.next(), s[1] = e.value, n.edgeIndices.push(s);
}
} }, { code: 93, parser(e, r, n) {
n.totalFaceIndices = e.value, n.faceIndices = [];
let t = [];
for (let o = 0; o < n.totalFaceIndices && !p(e, 0); ++o) e = r.next(), t.push(e.value);
let s = 0;
for (; s < t.length; ) {
let o = t[s++], i = [];
for (let b = 0; b < o; ++b) i.push(t[s++]);
n.faceIndices.push(i);
}
} }, { code: 10, name: "vertices", parser: c, isMultiple: !0 }, { code: 92, name: "verticesCount", parser: a }, { code: 91, name: "subdivisionLevel", parser: a }, { code: 40, name: "blendCrease", parser: a }, { code: 72, name: "isBlendCreased", parser: f }, { code: 71, name: "version", parser: a }, { code: 100, name: "subclassMarker", parser: function({ value: e }) {
return e.trim();
}, pushContext: !0 }, ...I];
class Xr {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
jr(this, "parser", u(In));
}
}
function zr(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
jr(Xr, "ForEntityName", "MESH");
let En = { thickness: 0, extrusionDirection: { x: 0, y: 0, z: 1 }, angle: 0 }, bn = [{ code: 50, name: "angle", parser: a }, { code: 210, name: "extrusionDirection", parser: c }, { code: 39, name: "thickness", parser: a }, { code: 10, name: "position", parser: c }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class Kr {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
zr(this, "parser", u(bn, En));
}
}
zr(Kr, "ForEntityName", "POINT");
(x = {})[x.CLOSED_POLYLINE = 1] = "CLOSED_POLYLINE", x[x.CURVE_FIT = 2] = "CURVE_FIT", x[x.SPLINE_FIT = 4] = "SPLINE_FIT", x[x.POLYLINE_3D = 8] = "POLYLINE_3D", x[x.POLYGON_3D = 16] = "POLYGON_3D", x[x.CLOSED_POLYGON = 32] = "CLOSED_POLYGON", x[x.POLYFACE = 64] = "POLYFACE", x[x.CONTINUOUS = 128] = "CONTINUOUS";
(q = {})[q.NONE = 0] = "NONE", q[q.QUADRATIC = 5] = "QUADRATIC", q[q.CUBIC = 6] = "CUBIC", q[q.BEZIER = 8] = "BEZIER";
(y = {})[y.CREATED_BY_CURVE_FIT = 1] = "CREATED_BY_CURVE_FIT", y[y.TANGENT_DEFINED = 2] = "TANGENT_DEFINED", y[y.NOT_USED = 4] = "NOT_USED", y[y.CREATED_BY_SPLINE_FIT = 8] = "CREATED_BY_SPLINE_FIT", y[y.SPLINE_CONTROL_POINT = 16] = "SPLINE_CONTROL_POINT", y[y.FOR_POLYLINE = 32] = "FOR_POLYLINE", y[y.FOR_POLYGON = 64] = "FOR_POLYGON", y[y.POLYFACE = 128] = "POLYFACE";
function Zr(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
let hn = { startWidth: 0, endWidth: 0, bulge: 0 }, On = [{ code: 91, name: "id", parser: a }, { code: [...We(71, 75)], name: "faces", isMultiple: !0, parser: a }, { code: 50, name: "tangentDirection", parser: a }, { code: 70, name: "flag", parser: a }, { code: 42, name: "bulge", parser: a }, { code: 41, name: "endWidth", parser: a }, { code: 40, name: "startWidth", parser: a }, { code: 30, name: "z", parser: a }, { code: 20, name: "y", parser: a }, { code: 10, name: "x", parser: a }, { code: 100, name: "subclassMarker", parser: a }, { code: 100 }, ...I];
class nr {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
Zr(this, "parser", u(On, hn));
}
}
function $r(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
Zr(nr, "ForEntityName", "VERTEX");
let Tn = { thickness: 0, flag: 0, startWidth: 0, endWidth: 0, meshMVertexCount: 0, meshNVertexCount: 0, surfaceMDensity: 0, surfaceNDensity: 0, smoothType: 0, extrusionDirection: { x: 0, y: 0, z: 1 }, vertices: [] }, vn = [{ code: 0, name: "vertices", isMultiple: !0, parser: (e, r) => p(e, 0, "VERTEX") ? (e = r.next(), new nr().parseEntity(r, e)) : rr }, { code: 210, name: "extrusionDirection", parser: c }, { code: 75, name: "smoothType", parser: a }, { code: 74, name: "surfaceNDensity", parser: a }, { code: 73, name: "surfaceMDensity", parser: a }, { code: 72, name: "meshNVertexCount", parser: a }, { code: 71, name: "meshMVertexCount", parser: a }, { code: 41, name: "endWidth", parser: a }, { code: 40, name: "startWidth", parser: a }, { code: 70, name: "flag", parser: a }, { code: 39, name: "thickness", parser: a }, { code: 30, name: "elevation", parser: a }, { code: 20 }, { code: 10 }, { code: 66 }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class Jr {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
$r(this, "parser", u(vn, Tn));
}
}
function qr(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
$r(Jr, "ForEntityName", "POLYLINE");
let Nn = [{ code: 11, name: "direction", parser: c }, { code: 10, name: "position", parser: c }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class Qr {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
qr(this, "parser", u(Nn));
}
}
function ea(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
qr(Qr, "ForEntityName", "RAY");
let Sn = [...Ye("data"), { code: 70, name: "version", parser: a }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class ra {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
ea(this, "parser", u(Sn));
}
}
function aa(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
ea(ra, "ForEntityName", "REGION");
let xn = { vertices: [], backLineVertices: [] }, yn = [{ code: 360, name: "geometrySettingHardId", parser: a }, { code: 12, name: "backLineVertices", isMultiple: !0, parser: c }, { code: 93, name: "numberOfBackLineVertices", parser: a }, { code: 11, name: "vertices", isMultiple: !0, parser: c }, { code: 92, name: "verticesCount", parser: a }, { code: [63, 411], name: "indicatorColor", parser: a }, { code: 70, name: "indicatorTransparency", parser: a }, { code: 41, name: "bottomHeight", parser: a }, { code: 40, name: "topHeight", parser: a }, { code: 10, name: "verticalDirection", parser: c }, { code: 1, name: "name", parser: a }, { code: 91, name: "flag", parser: a }, { code: 90, name: "state", parser: a }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class na {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
aa(this, "parser", u(yn, xn));
}
}
function ta(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
aa(na, "ForEntityName", "SECTION");
let gn = { points: [], thickness: 0, extrusionDirection: { x: 0, y: 0, z: 1 } }, _n = [{ code: 210, name: "extrusionDirection", parser: c }, { code: 39, name: "thickness", parser: a }, { code: [...We(10, 14)], name: "points", isMultiple: !0, parser: c }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class sa {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
ta(this, "parser", u(_n, gn));
}
}
function oa(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
ta(sa, "ForEntityName", "SOLID");
let Ln = [{ code: 350, name: "historyObjectSoftId", parser: a }, { code: 100, name: "subclassMarker", parser: a }, ...Ye("data"), { code: 70, name: "version", parser: a }, { code: 100 }, ...I];
class ca {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
oa(this, "parser", u(Ln));
}
}
oa(ca, "ForEntityName", "3DSOLID");
(M = {})[M.NONE = 0] = "NONE", M[M.CLOSED = 1] = "CLOSED", M[M.PERIODIC = 2] = "PERIODIC", M[M.RATIONAL = 4] = "RATIONAL", M[M.PLANAR = 8] = "PLANAR", M[M.LINEAR = 16] = "LINEAR";
function ia(e, r, n) {
return r in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, e;
}
let Dn = { knotTolerance: 1e-6, controlTolerance: 1e-6, fitTolerance: 1e-9, knotValues: [], controlPoints: [], fitPoints: [] }, An = [{ code: 11, name: "fitPoints", isMultiple: !0, parser: c }, { code: 10, name: "controlPoints", isMultiple: !0, parser: c }, { code: 41, name: "weights", isMultiple: !0, parser: a }, { code: 40, name: "knots", isMultiple: !0, parser: a }, { code: 13, name: "endTangent", parser: c }, { code: 12, name: "startTangent", parser: c }, { code: 44, name: "fitTolerance", parser: a }, { code: 43, name: "controlTolerance", parser: a }, { code: 42, name: "knotTolerance", parser: a }, { code: 74, name: "numberOfFitPoints", parser: a }, { code: 73, name: "numberOfControlPoints", parser: a }, { code: 72, name: "numberOfKnots", parser: a }, { code: 71, name: "degree", parser: a }, { code: 70, name: "flag", parser: a }, { code: 210, name: "normal", parser: c }, { code: 100, name: "subclassMarker", parser: a }, ...I];
class la {
parseEntity(r, n) {
let t = {};
return this.parser(n, r, t), t;
}
constructor() {
ia(this, "parser", u(An, Dn));
}
}
ia(la, "ForEntityName", "SPLINE");
class Ge {
parseEntity(r, n) {
let t = {};
for (; !r.isEOF(); ) {
if (n.code === 0) {
r.rewind();
break;
}
switch (n.code) {
case 100:
t.subclassMarker = n.value, n = r.next();
break;
case 2:
t.name = n.value, n = r.next();
break;
case 5:
t.handle = n.value, n = r.next();
break;
case 10:
t.startPoint = te(m(r)), n = r.lastReadGroup;
break;
case 11:
t.directionVector = te(m(r)), n = r.lastReadGroup;
break;
case 90:
t.tableValue = n.value, n = r.next();
break;
case 91:
t.rowCount = n.value, n = r.next();
break;
case 92: