4162 lines
168 KiB
JavaScript
4162 lines
168 KiB
JavaScript
var Sn = Object.defineProperty;
|
||
var Nn = (n, t, e) => t in n ? Sn(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
|
||
var N = (n, t, e) => Nn(n, typeof t != "symbol" ? t + "" : t, e);
|
||
var It;
|
||
(function(n) {
|
||
n[n.CP_UTF8 = 0] = "CP_UTF8", n[n.CP_US_ASCII = 1] = "CP_US_ASCII", n[n.CP_ISO_8859_1 = 2] = "CP_ISO_8859_1", n[n.CP_ISO_8859_2 = 3] = "CP_ISO_8859_2", n[n.CP_ISO_8859_3 = 4] = "CP_ISO_8859_3", n[n.CP_ISO_8859_4 = 5] = "CP_ISO_8859_4", n[n.CP_ISO_8859_5 = 6] = "CP_ISO_8859_5", n[n.CP_ISO_8859_6 = 7] = "CP_ISO_8859_6", n[n.CP_ISO_8859_7 = 8] = "CP_ISO_8859_7", n[n.CP_ISO_8859_8 = 9] = "CP_ISO_8859_8", n[n.CP_ISO_8859_9 = 10] = "CP_ISO_8859_9", n[n.CP_CP437 = 11] = "CP_CP437", n[n.CP_CP850 = 12] = "CP_CP850", n[n.CP_CP852 = 13] = "CP_CP852", n[n.CP_CP855 = 14] = "CP_CP855", n[n.CP_CP857 = 15] = "CP_CP857", n[n.CP_CP860 = 16] = "CP_CP860", n[n.CP_CP861 = 17] = "CP_CP861", n[n.CP_CP863 = 18] = "CP_CP863", n[n.CP_CP864 = 19] = "CP_CP864", n[n.CP_CP865 = 20] = "CP_CP865", n[n.CP_CP869 = 21] = "CP_CP869", n[n.CP_CP932 = 22] = "CP_CP932", n[n.CP_MACINTOSH = 23] = "CP_MACINTOSH", n[n.CP_BIG5 = 24] = "CP_BIG5", n[n.CP_CP949 = 25] = "CP_CP949", n[n.CP_JOHAB = 26] = "CP_JOHAB", n[n.CP_CP866 = 27] = "CP_CP866", n[n.CP_ANSI_1250 = 28] = "CP_ANSI_1250", n[n.CP_ANSI_1251 = 29] = "CP_ANSI_1251", n[n.CP_ANSI_1252 = 30] = "CP_ANSI_1252", n[n.CP_GB2312 = 31] = "CP_GB2312", n[n.CP_ANSI_1253 = 32] = "CP_ANSI_1253", n[n.CP_ANSI_1254 = 33] = "CP_ANSI_1254", n[n.CP_ANSI_1255 = 34] = "CP_ANSI_1255", n[n.CP_ANSI_1256 = 35] = "CP_ANSI_1256", n[n.CP_ANSI_1257 = 36] = "CP_ANSI_1257", n[n.CP_ANSI_874 = 37] = "CP_ANSI_874", n[n.CP_ANSI_932 = 38] = "CP_ANSI_932", n[n.CP_ANSI_936 = 39] = "CP_ANSI_936", n[n.CP_ANSI_949 = 40] = "CP_ANSI_949", n[n.CP_ANSI_950 = 41] = "CP_ANSI_950", n[n.CP_ANSI_1361 = 42] = "CP_ANSI_1361", n[n.CP_UTF16 = 43] = "CP_UTF16", n[n.CP_ANSI_1258 = 44] = "CP_ANSI_1258", n[n.CP_UNDEFINED = 255] = "CP_UNDEFINED";
|
||
})(It || (It = {}));
|
||
const Gn = [
|
||
"utf-8",
|
||
// 0
|
||
"utf-8",
|
||
// US ASCII
|
||
"iso-8859-1",
|
||
"iso-8859-2",
|
||
"iso-8859-3",
|
||
"iso-8859-4",
|
||
"iso-8859-5",
|
||
"iso-8859-6",
|
||
"iso-8859-7",
|
||
"iso-8859-8",
|
||
"iso-8859-9",
|
||
// 10
|
||
"utf-8",
|
||
// DOS English
|
||
"utf-8",
|
||
// 12 DOS Latin-1
|
||
"utf-8",
|
||
// DOS Central European
|
||
"utf-8",
|
||
// DOS Cyrillic
|
||
"utf-8",
|
||
// DOS Turkish
|
||
"utf-8",
|
||
// DOS Portoguese
|
||
"utf-8",
|
||
// DOS Icelandic
|
||
"utf-8",
|
||
// DOS Hebrew
|
||
"utf-8",
|
||
// DOS Arabic (IBM)
|
||
"utf-8",
|
||
// DOS Nordic
|
||
"utf-8",
|
||
// DOS Greek
|
||
"shift-jis",
|
||
// DOS Japanese (shiftjis)
|
||
"macintosh",
|
||
// 23
|
||
"big5",
|
||
"utf-8",
|
||
// Korean (Wansung + Johab)
|
||
"utf-8",
|
||
// Johab?
|
||
"ibm866",
|
||
// Russian
|
||
"windows-1250",
|
||
// Central + Eastern European
|
||
"windows-1251",
|
||
// Cyrillic
|
||
"windows-1252",
|
||
// Western European
|
||
"gbk",
|
||
// EUC-CN Chinese
|
||
"windows-1253",
|
||
// Greek
|
||
"windows-1254",
|
||
// Turkish
|
||
"windows-1255",
|
||
// Hebrew
|
||
"windows-1256",
|
||
// Arabic
|
||
"windows-1257",
|
||
// Baltic
|
||
"windows-874",
|
||
// Thai
|
||
"shift-jis",
|
||
// 38 Japanese (extended shiftjis, windows-31j)
|
||
"gbk",
|
||
// 39 Simplified Chinese
|
||
"euc-kr",
|
||
// 40 Korean Wansung
|
||
"big5",
|
||
// 41 Trad Chinese
|
||
"utf-8",
|
||
// 42 Korean Wansung
|
||
"utf-16le",
|
||
"windows-1258"
|
||
// Vietnamese
|
||
], At = (n) => Gn[n];
|
||
var Pt;
|
||
(function(n) {
|
||
n[n.Rotated = 0] = "Rotated", n[n.Aligned = 1] = "Aligned", n[n.Angular = 2] = "Angular", n[n.Diameter = 3] = "Diameter", n[n.Radius = 4] = "Radius", n[n.Angular3Point = 5] = "Angular3Point", n[n.Ordinate = 6] = "Ordinate", n[n.ReferenceIsExclusive = 32] = "ReferenceIsExclusive", n[n.IsOrdinateXTypeFlag = 64] = "IsOrdinateXTypeFlag", n[n.IsCustomTextPositionFlag = 128] = "IsCustomTextPositionFlag";
|
||
})(Pt || (Pt = {}));
|
||
var m;
|
||
(function(n) {
|
||
n[n.TopLeft = 1] = "TopLeft", n[n.TopCenter = 2] = "TopCenter", n[n.TopRight = 3] = "TopRight", n[n.MiddleLeft = 4] = "MiddleLeft", n[n.MiddleCenter = 5] = "MiddleCenter", n[n.MiddleRight = 6] = "MiddleRight", n[n.BottomLeft = 7] = "BottomLeft", n[n.BottomCenter = 8] = "BottomCenter", n[n.BottomRight = 9] = "BottomRight";
|
||
})(m || (m = {}));
|
||
var Tt;
|
||
(function(n) {
|
||
n[n.AtLeast = 1] = "AtLeast", n[n.Exact = 2] = "Exact";
|
||
})(Tt || (Tt = {}));
|
||
var Ct;
|
||
(function(n) {
|
||
n[n.Center = 0] = "Center", n[n.Above = 1] = "Above", n[n.Outside = 2] = "Outside", n[n.JIS = 3] = "JIS", n[n.Below = 4] = "Below";
|
||
})(Ct || (Ct = {}));
|
||
var ht;
|
||
(function(n) {
|
||
n[n.Feet = 0] = "Feet", n[n.None = 1] = "None", n[n.Inch = 2] = "Inch", n[n.FeetAndInch = 3] = "FeetAndInch", n[n.Leading = 4] = "Leading", n[n.Trailing = 8] = "Trailing", n[n.LeadingAndTrailing = 12] = "LeadingAndTrailing";
|
||
})(ht || (ht = {}));
|
||
var Yt;
|
||
(function(n) {
|
||
n[n.None = 0] = "None", n[n.Leading = 1] = "Leading", n[n.Trailing = 2] = "Trailing", n[n.LeadingAndTrailing = 3] = "LeadingAndTrailing";
|
||
})(Yt || (Yt = {}));
|
||
var Rt;
|
||
(function(n) {
|
||
n[n.Center = 0] = "Center", n[n.Left = 1] = "Left", n[n.Right = 2] = "Right", n[n.OverFirst = 3] = "OverFirst", n[n.OverSecond = 4] = "OverSecond";
|
||
})(Rt || (Rt = {}));
|
||
var ft;
|
||
(function(n) {
|
||
n[n.Bottom = 0] = "Bottom", n[n.Center = 1] = "Center", n[n.Top = 2] = "Top";
|
||
})(ft || (ft = {}));
|
||
var z;
|
||
(function(n) {
|
||
n[n.PatternFill = 0] = "PatternFill", n[n.SolidFill = 1] = "SolidFill";
|
||
})(z || (z = {}));
|
||
var Z;
|
||
(function(n) {
|
||
n[n.NonAssociative = 0] = "NonAssociative", n[n.Associative = 1] = "Associative";
|
||
})(Z || (Z = {}));
|
||
var vt;
|
||
(function(n) {
|
||
n[n.Normal = 0] = "Normal", n[n.Outer = 1] = "Outer", n[n.Ignore = 2] = "Ignore";
|
||
})(vt || (vt = {}));
|
||
var Lt;
|
||
(function(n) {
|
||
n[n.UserDefined = 0] = "UserDefined", n[n.Predefined = 1] = "Predefined", n[n.Custom = 2] = "Custom";
|
||
})(Lt || (Lt = {}));
|
||
var St;
|
||
(function(n) {
|
||
n[n.NotAnnotated = 0] = "NotAnnotated", n[n.Annotated = 1] = "Annotated";
|
||
})(St || (St = {}));
|
||
var Et;
|
||
(function(n) {
|
||
n[n.Solid = 0] = "Solid", n[n.Gradient = 1] = "Gradient";
|
||
})(Et || (Et = {}));
|
||
var q;
|
||
(function(n) {
|
||
n[n.TwoColor = 0] = "TwoColor", n[n.OneColor = 1] = "OneColor";
|
||
})(q || (q = {}));
|
||
var Nt;
|
||
(function(n) {
|
||
n[n.Default = 0] = "Default", n[n.External = 1] = "External", n[n.Polyline = 2] = "Polyline", n[n.Derived = 4] = "Derived", n[n.Textbox = 8] = "Textbox", n[n.Outermost = 16] = "Outermost";
|
||
})(Nt || (Nt = {}));
|
||
var F;
|
||
(function(n) {
|
||
n[n.Line = 1] = "Line", n[n.Circular = 2] = "Circular", n[n.Elliptic = 3] = "Elliptic", n[n.Spline = 4] = "Spline";
|
||
})(F || (F = {}));
|
||
var Gt;
|
||
(function(n) {
|
||
n[n.CLOSED_POLYLINE = 1] = "CLOSED_POLYLINE", n[n.CURVE_FIT = 2] = "CURVE_FIT", n[n.SPLINE_FIT = 4] = "SPLINE_FIT", n[n.POLYLINE_3D = 8] = "POLYLINE_3D", n[n.POLYGON_3D = 16] = "POLYGON_3D", n[n.CLOSED_POLYGON = 32] = "CLOSED_POLYGON", n[n.POLYFACE = 64] = "POLYFACE", n[n.CONTINUOUS = 128] = "CONTINUOUS";
|
||
})(Gt || (Gt = {}));
|
||
var Dt;
|
||
(function(n) {
|
||
n[n.NONE = 0] = "NONE", n[n.QUADRATIC = 5] = "QUADRATIC", n[n.CUBIC = 6] = "CUBIC", n[n.BEZIER = 8] = "BEZIER";
|
||
})(Dt || (Dt = {}));
|
||
var Wt;
|
||
(function(n) {
|
||
n[n.NONE = 0] = "NONE", n[n.MIRRORED_X = 2] = "MIRRORED_X", n[n.MIRRORED_Y = 4] = "MIRRORED_Y";
|
||
})(Wt || (Wt = {}));
|
||
var Q;
|
||
(function(n) {
|
||
n[n.LEFT = 0] = "LEFT", n[n.CENTER = 1] = "CENTER", n[n.RIGHT = 2] = "RIGHT", n[n.ALIGNED = 3] = "ALIGNED", n[n.MIDDLE = 4] = "MIDDLE", n[n.FIT = 5] = "FIT";
|
||
})(Q || (Q = {}));
|
||
var Mt;
|
||
(function(n) {
|
||
n[n.BASELINE = 0] = "BASELINE", n[n.BOTTOM = 1] = "BOTTOM", n[n.MIDDLE = 2] = "MIDDLE", n[n.TOP = 3] = "TOP";
|
||
})(Mt || (Mt = {}));
|
||
const Dn = Object.freeze([
|
||
"ACADMAINTVER",
|
||
"ACADVER",
|
||
"ANGBASE",
|
||
"ANGDIR",
|
||
"ATTMODE",
|
||
"AUNITS",
|
||
"AUPREC",
|
||
"CECOLOR",
|
||
"CELTSCALE",
|
||
"CELTYPE",
|
||
"CELWEIGHT",
|
||
"CEPSNID",
|
||
"CEPSNTYPE",
|
||
"CHAMFERA",
|
||
"CHAMFERB",
|
||
"CHAMFERC",
|
||
"CHAMFERD",
|
||
"CLAYER",
|
||
"CMLJUST",
|
||
"CMLSCALE",
|
||
"CMLSTYLE",
|
||
"CSHADOW",
|
||
"DIMADEC",
|
||
"DIMALT",
|
||
"DIMALTD",
|
||
"DIMALTF",
|
||
"DIMALTRND",
|
||
"DIMALTTD",
|
||
"DIMALTTZ",
|
||
"DIMALTU",
|
||
"DIMALTZ",
|
||
"DIMAPOST",
|
||
"DIMASO",
|
||
"DIMASSOC",
|
||
"DIMASZ",
|
||
"DIMATFIT",
|
||
"DIMAUNIT",
|
||
"DIMAZIN",
|
||
"DIMBLK",
|
||
"DIMBLK1",
|
||
"DIMBLK2",
|
||
"DIMCEN",
|
||
"DIMCLRD",
|
||
"DIMCLRE",
|
||
"DIMCLRT",
|
||
"DIMDEC",
|
||
"DIMDLE",
|
||
"DIMDLI",
|
||
"DIMDSEP",
|
||
"DIMEXE",
|
||
"DIMEXO",
|
||
"DIMFAC",
|
||
"DIMGAP",
|
||
"DIMJUST",
|
||
"DIMLDRBLK",
|
||
"DIMLFAC",
|
||
"DIMLIM",
|
||
"DIMLUNIT",
|
||
"DIMLWD",
|
||
"DIMLWE",
|
||
"DIMPOST",
|
||
"DIMRND",
|
||
"DIMSAH",
|
||
"DIMSCALE",
|
||
"DIMSD1",
|
||
"DIMSD2",
|
||
"DIMSE1",
|
||
"DIMSE2",
|
||
"DIMSHO",
|
||
"DIMSOXD",
|
||
"DIMSTYLE",
|
||
"DIMTAD",
|
||
"DIMTDEC",
|
||
"DIMTFAC",
|
||
"DIMTIH",
|
||
"DIMTIX",
|
||
"DIMTM",
|
||
"DIMTMOVE",
|
||
"DIMTOFL",
|
||
"DIMTOH",
|
||
"DIMTOL",
|
||
"DIMTOLJ",
|
||
"DIMTP",
|
||
"DIMTSZ",
|
||
"DIMTVP",
|
||
"DIMTXSTY",
|
||
"DIMTXT",
|
||
"DIMTZIN",
|
||
"DIMUPT",
|
||
"DIMZIN",
|
||
"DISPSILH",
|
||
"DRAGVS",
|
||
"DWGCODEPAGE",
|
||
"ELEVATION",
|
||
"ENDCAPS",
|
||
"EXTMAX",
|
||
"EXTMIN",
|
||
"EXTNAMES",
|
||
"FILLETRAD",
|
||
"FILLMODE",
|
||
"FINGERPRINTGUID",
|
||
"HALOGAP",
|
||
"HANDSEED",
|
||
"HIDETEXT",
|
||
"HYPERLINKBASE",
|
||
"INDEXCTL",
|
||
"INSBASE",
|
||
"INSUNITS",
|
||
"INTERFERECOLOR",
|
||
"INTERFEREOBJVS",
|
||
"INTERFEREVPVS",
|
||
"INTERSECTIONCOLOR",
|
||
"INTERSECTIONDISPLAY",
|
||
"JOINSTYLE",
|
||
"LIMCHECK",
|
||
"LIMMAX",
|
||
"LIMMIN",
|
||
"LTSCALE",
|
||
"LUNITS",
|
||
"LUPREC",
|
||
"LWDISPLAY",
|
||
"MAXACTVP",
|
||
"MEASUREMENT",
|
||
"MENU",
|
||
"MIRRTEXT",
|
||
"OBSCOLOR",
|
||
"OBSLTYPE",
|
||
"ORTHOMODE",
|
||
"PDMODE",
|
||
"PDSIZE",
|
||
"PELEVATION",
|
||
"PEXTMAX",
|
||
"PEXTMIN",
|
||
"PINSBASE",
|
||
"PLIMCHECK",
|
||
"PLIMMAX",
|
||
"PLIMMIN",
|
||
"PLINEGEN",
|
||
"PLINEWID",
|
||
"PROJECTNAME",
|
||
"PROXYGRAPHICS",
|
||
"PSLTSCALE",
|
||
"PSTYLEMODE",
|
||
"PSVPSCALE",
|
||
"PUCSBASE",
|
||
"PUCSNAME",
|
||
"PUCSORG",
|
||
"PUCSORGBACK",
|
||
"PUCSORGBOTTOM",
|
||
"PUCSORGFRONT",
|
||
"PUCSORGLEFT",
|
||
"PUCSORGRIGHT",
|
||
"PUCSORGTOP",
|
||
"PUCSORTHOREF",
|
||
"PUCSORTHOVIEW",
|
||
"PUCSXDIR",
|
||
"PUCSYDIR",
|
||
"QTEXTMODE",
|
||
"REGENMODE",
|
||
"SHADEDGE",
|
||
"SHADEDIF",
|
||
"SHADOWPLANELOCATION",
|
||
"SKETCHINC",
|
||
"SKPOLY",
|
||
"SORTENTS",
|
||
"SPLINESEGS",
|
||
"SPLINETYPE",
|
||
"SURFTAB1",
|
||
"SURFTAB2",
|
||
"SURFTYPE",
|
||
"SURFU",
|
||
"SURFV",
|
||
"TDCREATE",
|
||
"TDINDWG",
|
||
"TDUCREATE",
|
||
"TDUPDATE",
|
||
"TDUSRTIMER",
|
||
"TDUUPDATE",
|
||
"TEXTSIZE",
|
||
"TEXTSTYLE",
|
||
"THICKNESS",
|
||
"TILEMODE",
|
||
"TRACEWID",
|
||
"TREEDEPTH",
|
||
"UCSBASE",
|
||
"UCSNAME",
|
||
"UCSORG",
|
||
"UCSORGBACK",
|
||
"UCSORGBOTTOM",
|
||
"UCSORGFRONT",
|
||
"UCSORGLEFT",
|
||
"UCSORGRIGHT",
|
||
"UCSORGTOP",
|
||
"UCSORTHOREF",
|
||
"UCSORTHOVIEW",
|
||
"UCSXDIR",
|
||
"UCSYDIR",
|
||
"UNITMODE",
|
||
"USERI1",
|
||
"USERI2",
|
||
"USERI3",
|
||
"USERI4",
|
||
"USERI5",
|
||
"USERR1",
|
||
"USERR2",
|
||
"USERR3",
|
||
"USERR4",
|
||
"USERR5",
|
||
"USRTIMER",
|
||
"VERSIONGUID",
|
||
"VISRETAIN",
|
||
"WORLDVIEW",
|
||
"XCLIPFRAME",
|
||
"XEDIT"
|
||
]);
|
||
var gt;
|
||
(function(n) {
|
||
n[n.NotApplicable = 0] = "NotApplicable", n[n.KeepExisting = 1] = "KeepExisting", n[n.UseClone = 2] = "UseClone", n[n.XrefName = 3] = "XrefName", n[n.Name = 4] = "Name", n[n.UnmangleName = 5] = "UnmangleName";
|
||
})(gt || (gt = {}));
|
||
const Wn = [
|
||
{
|
||
type: "invalid",
|
||
hdr: "INVALI",
|
||
description: "No DWG",
|
||
version: 0
|
||
},
|
||
{
|
||
type: "r1.1",
|
||
hdr: "MC0.0",
|
||
description: "MicroCAD Release 1.1",
|
||
version: 0
|
||
},
|
||
{
|
||
type: "r1.2",
|
||
hdr: "AC1.2",
|
||
description: "AutoCAD Release 1.2",
|
||
version: 0
|
||
},
|
||
{
|
||
type: "r1.3",
|
||
hdr: "AC1.3",
|
||
description: "AutoCAD Release 1.3",
|
||
version: 1
|
||
},
|
||
{
|
||
type: "r1.4",
|
||
hdr: "AC1.40",
|
||
description: "AutoCAD Release 1.4",
|
||
version: 2
|
||
},
|
||
{ type: "r2.0b", hdr: "AC1.50", description: "AutoCAD 2.0 beta", version: 3 },
|
||
// not seen
|
||
{
|
||
type: "r2.0",
|
||
hdr: "AC1.50",
|
||
description: "AutoCAD Release 2.0",
|
||
version: 4
|
||
},
|
||
{
|
||
type: "r2.10",
|
||
hdr: "AC2.10",
|
||
description: "AutoCAD Release 2.10",
|
||
version: 5
|
||
},
|
||
{
|
||
type: "r2.21",
|
||
hdr: "AC2.21",
|
||
description: "AutoCAD Release 2.21",
|
||
version: 6
|
||
},
|
||
{
|
||
type: "r2.22",
|
||
hdr: "AC2.22",
|
||
description: "AutoCAD Release 2.22",
|
||
version: 7
|
||
},
|
||
{
|
||
type: "r2.4",
|
||
hdr: "AC1001",
|
||
description: "AutoCAD Release 2.4",
|
||
version: 8
|
||
},
|
||
{
|
||
type: "r2.5",
|
||
hdr: "AC1002",
|
||
description: "AutoCAD Release 2.5",
|
||
version: 9
|
||
},
|
||
{
|
||
type: "r2.6",
|
||
hdr: "AC1003",
|
||
description: "AutoCAD Release 2.6",
|
||
version: 10
|
||
},
|
||
{ type: "r9", hdr: "AC1004", description: "AutoCAD Release 9", version: 11 },
|
||
{
|
||
type: "r9c1",
|
||
hdr: "AC1005",
|
||
description: "AutoCAD Release 9c1",
|
||
version: 12
|
||
},
|
||
{
|
||
type: "r10",
|
||
hdr: "AC1006",
|
||
description: "AutoCAD Release 10",
|
||
version: 13
|
||
},
|
||
{
|
||
type: "r11b1",
|
||
hdr: "AC1007",
|
||
description: "AutoCAD 11 beta 1",
|
||
version: 14
|
||
},
|
||
{
|
||
type: "r11b2",
|
||
hdr: "AC1008",
|
||
description: "AutoCAD 11 beta 2",
|
||
version: 15
|
||
},
|
||
{
|
||
type: "r11",
|
||
hdr: "AC1009",
|
||
description: "AutoCAD Release 11/12 (LT R1/R2)",
|
||
version: 16
|
||
},
|
||
{
|
||
type: "r13b1",
|
||
hdr: "AC1010",
|
||
description: "AutoCAD pre-R13 a",
|
||
version: 17
|
||
},
|
||
{
|
||
type: "r13b2",
|
||
hdr: "AC1011",
|
||
description: "AutoCAD pre-R13 b",
|
||
version: 18
|
||
},
|
||
{
|
||
type: "r13",
|
||
hdr: "AC1012",
|
||
description: "AutoCAD Release 13",
|
||
version: 19
|
||
},
|
||
{
|
||
type: "r13c3",
|
||
hdr: "AC1013",
|
||
description: "AutoCAD Release 13c3",
|
||
version: 20
|
||
},
|
||
{
|
||
type: "r14",
|
||
hdr: "AC1014",
|
||
description: "AutoCAD Release 14",
|
||
version: 21
|
||
},
|
||
{
|
||
type: "r2000b",
|
||
hdr: "AC1500",
|
||
description: "AutoCAD 2000 beta",
|
||
version: 22
|
||
},
|
||
{
|
||
type: "r2000",
|
||
hdr: "AC1015",
|
||
description: "AutoCAD Release 2000",
|
||
version: 23
|
||
},
|
||
{
|
||
type: "r2000i",
|
||
hdr: "AC1016",
|
||
description: "AutoCAD Release 2000i",
|
||
version: 23
|
||
},
|
||
{
|
||
type: "r2002",
|
||
hdr: "AC1017",
|
||
description: "AutoCAD Release 2002",
|
||
version: 23
|
||
},
|
||
{
|
||
type: "r2004a",
|
||
hdr: "AC402a",
|
||
description: "AutoCAD 2004 alpha a",
|
||
version: 24
|
||
},
|
||
{
|
||
type: "r2004b",
|
||
hdr: "AC402b",
|
||
description: "AutoCAD 2004 alpha b",
|
||
version: 24
|
||
},
|
||
{
|
||
type: "r2004c",
|
||
hdr: "AC1018",
|
||
description: "AutoCAD 2004 beta",
|
||
version: 24
|
||
},
|
||
// (includes versions AC1019/0x19 and AC1020/0x1a)
|
||
{
|
||
type: "r2004",
|
||
hdr: "AC1018",
|
||
description: "AutoCAD Release 2004",
|
||
version: 25
|
||
},
|
||
//{ type: "r2005", hdr: "AC1019", description: "AutoCAD 2005", version: 0x19 }, // not seen
|
||
//{ type: "r2006", hdr: "AC1020", description: "AutoCAD 2006", version: 0x19 }, // not seen
|
||
{
|
||
type: "r2007a",
|
||
hdr: "AC701a",
|
||
description: "AutoCAD 2007 alpha",
|
||
version: 26
|
||
},
|
||
{
|
||
type: "r2007b",
|
||
hdr: "AC1021",
|
||
description: "AutoCAD 2007 beta",
|
||
version: 26
|
||
},
|
||
{
|
||
type: "r2007",
|
||
hdr: "AC1021",
|
||
description: "AutoCAD Release 2007",
|
||
version: 27
|
||
},
|
||
//{ type: "r2008", hdr: "AC1022", description: "AutoCAD 2008", version: 0x1b }, // not seen
|
||
//{ type: "r2009", hdr: "AC1023", description: "AutoCAD 2009", version: 0x1b }, // not seen
|
||
{
|
||
type: "r2010b",
|
||
hdr: "AC1024",
|
||
description: "AutoCAD 2010 beta",
|
||
version: 28
|
||
},
|
||
{
|
||
type: "r2010",
|
||
hdr: "AC1024",
|
||
description: "AutoCAD Release 2010",
|
||
version: 29
|
||
},
|
||
//{ type: "r2011", hdr: "AC1025", description: "AutoCAD 2011", version: 0x1d }, // not seen
|
||
//{ type: "r2012", hdr: "AC1026", description: "AutoCAD 2012", version: 0x1e }, // not seen
|
||
{
|
||
type: "r2013b",
|
||
hdr: "AC1027",
|
||
description: "AutoCAD 2013 beta",
|
||
version: 30
|
||
},
|
||
{
|
||
type: "r2013",
|
||
hdr: "AC1027",
|
||
description: "AutoCAD Release 2013",
|
||
version: 31
|
||
},
|
||
//{ type: "r2014", hdr: "AC1028", description: "AutoCAD 2014", version: 0x1f }, // not seen
|
||
//{ type: "r2015", hdr: "AC1029", description: "AutoCAD 2015", version: 0x1f }, // not seen
|
||
//{ type: "r2016", hdr: "AC1030", description: "AutoCAD 2016", version: 0x1f }, // not seen
|
||
//{ type: "r2017", hdr: "AC1031", description: "AutoCAD 2017", version: 0x20 }, // not seen
|
||
{
|
||
type: "r2018b",
|
||
hdr: "AC1032",
|
||
description: "AutoCAD 2018 beta",
|
||
version: 32
|
||
},
|
||
{
|
||
type: "r2018",
|
||
hdr: "AC1032",
|
||
description: "AutoCAD Release 2018",
|
||
version: 33
|
||
},
|
||
//{ type: "r2019", "AC1033", description: "AutoCAD Release 2019", version: 0x22 }, // not seen
|
||
//{ type: "r2020", "AC1034", description: "AutoCAD Release 2020", version: 0x23 }, // not seen
|
||
//{ type: "r2021", "AC1035", description: "AutoCAD Release 2021", version: 0x23 }, // not seen
|
||
{
|
||
type: "r2022b",
|
||
hdr: "AC103-4",
|
||
description: "AutoCAD 2022 beta",
|
||
version: 36
|
||
},
|
||
{ type: "r>2022", hdr: "", description: "AutoCAD Release >2022", version: 0 }
|
||
];
|
||
async function yt(n = {}) {
|
||
const t = Mn(n), e = await import(
|
||
/* @vite-ignore */
|
||
t
|
||
), a = e.default ?? e.createModule ?? e;
|
||
if (typeof a != "function")
|
||
throw new Error(`LibreDWG runtime module at ${t} did not export a createModule function.`);
|
||
return a(n);
|
||
}
|
||
function Mn(n) {
|
||
const t = n.locateFile;
|
||
if (typeof t == "function")
|
||
try {
|
||
const e = t("libredwg-web.js", "");
|
||
if (typeof e == "string" && e.length > 0) return e;
|
||
} catch {
|
||
}
|
||
return typeof document < "u" && document.baseURI ? new URL("wasm/libredwg-web.js", document.baseURI).href : typeof location < "u" && location.href ? new URL("/wasm/libredwg-web.js", location.origin).href : "/wasm/libredwg-web.js";
|
||
}
|
||
var xt;
|
||
(function(n) {
|
||
n[n.DWG_SUPERTYPE_ENTITY = 0] = "DWG_SUPERTYPE_ENTITY", n[n.DWG_SUPERTYPE_OBJECT = 1] = "DWG_SUPERTYPE_OBJECT";
|
||
})(xt || (xt = {}));
|
||
var P;
|
||
(function(n) {
|
||
n[n.DWG_TYPE_UNUSED = 0] = "DWG_TYPE_UNUSED", n[n.DWG_TYPE_TEXT = 1] = "DWG_TYPE_TEXT", n[n.DWG_TYPE_ATTRIB = 2] = "DWG_TYPE_ATTRIB", n[n.DWG_TYPE_ATTDEF = 3] = "DWG_TYPE_ATTDEF", n[n.DWG_TYPE_BLOCK = 4] = "DWG_TYPE_BLOCK", n[n.DWG_TYPE_ENDBLK = 5] = "DWG_TYPE_ENDBLK", n[n.DWG_TYPE_SEQEND = 6] = "DWG_TYPE_SEQEND", n[n.DWG_TYPE_INSERT = 7] = "DWG_TYPE_INSERT", n[n.DWG_TYPE_MINSERT = 8] = "DWG_TYPE_MINSERT", n[n.DWG_TYPE_VERTEX_2D = 10] = "DWG_TYPE_VERTEX_2D", n[n.DWG_TYPE_VERTEX_3D = 11] = "DWG_TYPE_VERTEX_3D", n[n.DWG_TYPE_VERTEX_MESH = 12] = "DWG_TYPE_VERTEX_MESH", n[n.DWG_TYPE_VERTEX_PFACE = 13] = "DWG_TYPE_VERTEX_PFACE", n[n.DWG_TYPE_VERTEX_PFACE_FACE = 14] = "DWG_TYPE_VERTEX_PFACE_FACE", n[n.DWG_TYPE_POLYLINE_2D = 15] = "DWG_TYPE_POLYLINE_2D", n[n.DWG_TYPE_POLYLINE_3D = 16] = "DWG_TYPE_POLYLINE_3D", n[n.DWG_TYPE_ARC = 17] = "DWG_TYPE_ARC", n[n.DWG_TYPE_CIRCLE = 18] = "DWG_TYPE_CIRCLE", n[n.DWG_TYPE_LINE = 19] = "DWG_TYPE_LINE", n[n.DWG_TYPE_DIMENSION_ORDINATE = 20] = "DWG_TYPE_DIMENSION_ORDINATE", n[n.DWG_TYPE_DIMENSION_LINEAR = 21] = "DWG_TYPE_DIMENSION_LINEAR", n[n.DWG_TYPE_DIMENSION_ALIGNED = 22] = "DWG_TYPE_DIMENSION_ALIGNED", n[n.DWG_TYPE_DIMENSION_ANG3PT = 23] = "DWG_TYPE_DIMENSION_ANG3PT", n[n.DWG_TYPE_DIMENSION_ANG2LN = 24] = "DWG_TYPE_DIMENSION_ANG2LN", n[n.DWG_TYPE_DIMENSION_RADIUS = 25] = "DWG_TYPE_DIMENSION_RADIUS", n[n.DWG_TYPE_DIMENSION_DIAMETER = 26] = "DWG_TYPE_DIMENSION_DIAMETER", n[n.DWG_TYPE_POINT = 27] = "DWG_TYPE_POINT", n[n.DWG_TYPE_3DFACE = 28] = "DWG_TYPE_3DFACE", n[n.DWG_TYPE_POLYLINE_PFACE = 29] = "DWG_TYPE_POLYLINE_PFACE", n[n.DWG_TYPE_POLYLINE_MESH = 30] = "DWG_TYPE_POLYLINE_MESH", n[n.DWG_TYPE_SOLID = 31] = "DWG_TYPE_SOLID", n[n.DWG_TYPE_TRACE = 32] = "DWG_TYPE_TRACE", n[n.DWG_TYPE_SHAPE = 33] = "DWG_TYPE_SHAPE", n[n.DWG_TYPE_VIEWPORT = 34] = "DWG_TYPE_VIEWPORT", n[n.DWG_TYPE_ELLIPSE = 35] = "DWG_TYPE_ELLIPSE", n[n.DWG_TYPE_SPLINE = 36] = "DWG_TYPE_SPLINE", n[n.DWG_TYPE_REGION = 37] = "DWG_TYPE_REGION", n[n.DWG_TYPE_3DSOLID = 38] = "DWG_TYPE_3DSOLID", n[n.DWG_TYPE_BODY = 39] = "DWG_TYPE_BODY", n[n.DWG_TYPE_RAY = 40] = "DWG_TYPE_RAY", n[n.DWG_TYPE_XLINE = 41] = "DWG_TYPE_XLINE", n[n.DWG_TYPE_DICTIONARY = 42] = "DWG_TYPE_DICTIONARY", n[n.DWG_TYPE_OLEFRAME = 43] = "DWG_TYPE_OLEFRAME", n[n.DWG_TYPE_MTEXT = 44] = "DWG_TYPE_MTEXT", n[n.DWG_TYPE_LEADER = 45] = "DWG_TYPE_LEADER", n[n.DWG_TYPE_TOLERANCE = 46] = "DWG_TYPE_TOLERANCE", n[n.DWG_TYPE_MLINE = 47] = "DWG_TYPE_MLINE", n[n.DWG_TYPE_BLOCK_CONTROL = 48] = "DWG_TYPE_BLOCK_CONTROL", n[n.DWG_TYPE_BLOCK_HEADER = 49] = "DWG_TYPE_BLOCK_HEADER", n[n.DWG_TYPE_LAYER_CONTROL = 50] = "DWG_TYPE_LAYER_CONTROL", n[n.DWG_TYPE_LAYER = 51] = "DWG_TYPE_LAYER", n[n.DWG_TYPE_STYLE_CONTROL = 52] = "DWG_TYPE_STYLE_CONTROL", n[n.DWG_TYPE_STYLE = 53] = "DWG_TYPE_STYLE", n[n.DWG_TYPE_LTYPE_CONTROL = 56] = "DWG_TYPE_LTYPE_CONTROL", n[n.DWG_TYPE_LTYPE = 57] = "DWG_TYPE_LTYPE", n[n.DWG_TYPE_VIEW_CONTROL = 60] = "DWG_TYPE_VIEW_CONTROL", n[n.DWG_TYPE_VIEW = 61] = "DWG_TYPE_VIEW", n[n.DWG_TYPE_UCS_CONTROL = 62] = "DWG_TYPE_UCS_CONTROL", n[n.DWG_TYPE_UCS = 63] = "DWG_TYPE_UCS", n[n.DWG_TYPE_VPORT_CONTROL = 64] = "DWG_TYPE_VPORT_CONTROL", n[n.DWG_TYPE_VPORT = 65] = "DWG_TYPE_VPORT", n[n.DWG_TYPE_APPID_CONTROL = 66] = "DWG_TYPE_APPID_CONTROL", n[n.DWG_TYPE_APPID = 67] = "DWG_TYPE_APPID", n[n.DWG_TYPE_DIMSTYLE_CONTROL = 68] = "DWG_TYPE_DIMSTYLE_CONTROL", n[n.DWG_TYPE_DIMSTYLE = 69] = "DWG_TYPE_DIMSTYLE", n[n.DWG_TYPE_VX_CONTROL = 70] = "DWG_TYPE_VX_CONTROL", n[n.DWG_TYPE_VX_TABLE_RECORD = 71] = "DWG_TYPE_VX_TABLE_RECORD", n[n.DWG_TYPE_GROUP = 72] = "DWG_TYPE_GROUP", n[n.DWG_TYPE_MLINESTYLE = 73] = "DWG_TYPE_MLINESTYLE", n[n.DWG_TYPE_OLE2FRAME = 74] = "DWG_TYPE_OLE2FRAME", n[n.DWG_TYPE_DUMMY = 75] = "DWG_TYPE_DUMMY", n[n.DWG_TYPE_LONG_TRANSACTION = 76] = "DWG_TYPE_LONG_TRANSACTION", n[n.DWG_TYPE_LWPOLYLINE = 77] = "DWG_TYPE_LWPOLYLINE", n[n.DWG_TYPE_HATCH = 78] = "DWG_TYPE_HATCH", n[n.DWG_TYPE_XRECORD = 79] = "DWG_TYPE_XRECORD", n[n.DWG_TYPE_PLACEHOLDER = 80] = "DWG_TYPE_PLACEHOLDER", n[n.DWG_TYPE_VBA_PROJECT = 81] = "DWG_TYPE_VBA_PROJECT", n[n.DWG_TYPE_LAYOUT = 82] = "DWG_TYPE_LAYOUT", n[n.DWG_TYPE_PROXY_ENTITY = 498] = "DWG_TYPE_PROXY_ENTITY", n[n.DWG_TYPE_PROXY_OBJECT = 499] = "DWG_TYPE_PROXY_OBJECT", n[n.DWG_TYPE_ACDSRECORD = 500] = "DWG_TYPE_ACDSRECORD", n[n.DWG_TYPE_ACDSSCHEMA = 501] = "DWG_TYPE_ACDSSCHEMA", n[n.DWG_TYPE_ACMECOMMANDHISTORY = 502] = "DWG_TYPE_ACMECOMMANDHISTORY", n[n.DWG_TYPE_ACMESCOPE = 503] = "DWG_TYPE_ACMESCOPE", n[n.DWG_TYPE_ACMESTATEMGR = 504] = "DWG_TYPE_ACMESTATEMGR", n[n.DWG_TYPE_ACSH_BOOLEAN_CLASS = 505] = "DWG_TYPE_ACSH_BOOLEAN_CLASS", n[n.DWG_TYPE_ACSH_BOX_CLASS = 506] = "DWG_TYPE_ACSH_BOX_CLASS", n[n.DWG_TYPE_ACSH_BREP_CLASS = 507] = "DWG_TYPE_ACSH_BREP_CLASS", n[n.DWG_TYPE_ACSH_CHAMFER_CLASS = 508] = "DWG_TYPE_ACSH_CHAMFER_CLASS", n[n.DWG_TYPE_ACSH_CONE_CLASS = 509] = "DWG_TYPE_ACSH_CONE_CLASS", n[n.DWG_TYPE_ACSH_CYLINDER_CLASS = 510] = "DWG_TYPE_ACSH_CYLINDER_CLASS", n[n.DWG_TYPE_ACSH_EXTRUSION_CLASS = 511] = "DWG_TYPE_ACSH_EXTRUSION_CLASS", n[n.DWG_TYPE_ACSH_FILLET_CLASS = 512] = "DWG_TYPE_ACSH_FILLET_CLASS", n[n.DWG_TYPE_ACSH_HISTORY_CLASS = 513] = "DWG_TYPE_ACSH_HISTORY_CLASS", n[n.DWG_TYPE_ACSH_LOFT_CLASS = 514] = "DWG_TYPE_ACSH_LOFT_CLASS", n[n.DWG_TYPE_ACSH_PYRAMID_CLASS = 515] = "DWG_TYPE_ACSH_PYRAMID_CLASS", n[n.DWG_TYPE_ACSH_REVOLVE_CLASS = 516] = "DWG_TYPE_ACSH_REVOLVE_CLASS", n[n.DWG_TYPE_ACSH_SPHERE_CLASS = 517] = "DWG_TYPE_ACSH_SPHERE_CLASS", n[n.DWG_TYPE_ACSH_SWEEP_CLASS = 518] = "DWG_TYPE_ACSH_SWEEP_CLASS", n[n.DWG_TYPE_ACSH_TORUS_CLASS = 519] = "DWG_TYPE_ACSH_TORUS_CLASS", n[n.DWG_TYPE_ACSH_WEDGE_CLASS = 520] = "DWG_TYPE_ACSH_WEDGE_CLASS", n[n.DWG_TYPE_ALDIMOBJECTCONTEXTDATA = 521] = "DWG_TYPE_ALDIMOBJECTCONTEXTDATA", n[n.DWG_TYPE_ALIGNMENTPARAMETERENTITY = 522] = "DWG_TYPE_ALIGNMENTPARAMETERENTITY", n[n.DWG_TYPE_ANGDIMOBJECTCONTEXTDATA = 523] = "DWG_TYPE_ANGDIMOBJECTCONTEXTDATA", n[n.DWG_TYPE_ANNOTSCALEOBJECTCONTEXTDATA = 524] = "DWG_TYPE_ANNOTSCALEOBJECTCONTEXTDATA", n[n.DWG_TYPE_ARCALIGNEDTEXT = 525] = "DWG_TYPE_ARCALIGNEDTEXT", n[n.DWG_TYPE_ARC_DIMENSION = 526] = "DWG_TYPE_ARC_DIMENSION", n[n.DWG_TYPE_ASSOC2DCONSTRAINTGROUP = 527] = "DWG_TYPE_ASSOC2DCONSTRAINTGROUP", n[n.DWG_TYPE_ASSOC3POINTANGULARDIMACTIONBODY = 528] = "DWG_TYPE_ASSOC3POINTANGULARDIMACTIONBODY", n[n.DWG_TYPE_ASSOCACTION = 529] = "DWG_TYPE_ASSOCACTION", n[n.DWG_TYPE_ASSOCACTIONPARAM = 530] = "DWG_TYPE_ASSOCACTIONPARAM", n[n.DWG_TYPE_ASSOCALIGNEDDIMACTIONBODY = 531] = "DWG_TYPE_ASSOCALIGNEDDIMACTIONBODY", n[n.DWG_TYPE_ASSOCARRAYACTIONBODY = 532] = "DWG_TYPE_ASSOCARRAYACTIONBODY", n[n.DWG_TYPE_ASSOCARRAYMODIFYACTIONBODY = 533] = "DWG_TYPE_ASSOCARRAYMODIFYACTIONBODY", n[n.DWG_TYPE_ASSOCARRAYMODIFYPARAMETERS = 534] = "DWG_TYPE_ASSOCARRAYMODIFYPARAMETERS", n[n.DWG_TYPE_ASSOCARRAYPATHPARAMETERS = 535] = "DWG_TYPE_ASSOCARRAYPATHPARAMETERS", n[n.DWG_TYPE_ASSOCARRAYPOLARPARAMETERS = 536] = "DWG_TYPE_ASSOCARRAYPOLARPARAMETERS", n[n.DWG_TYPE_ASSOCARRAYRECTANGULARPARAMETERS = 537] = "DWG_TYPE_ASSOCARRAYRECTANGULARPARAMETERS", n[n.DWG_TYPE_ASSOCASMBODYACTIONPARAM = 538] = "DWG_TYPE_ASSOCASMBODYACTIONPARAM", n[n.DWG_TYPE_ASSOCBLENDSURFACEACTIONBODY = 539] = "DWG_TYPE_ASSOCBLENDSURFACEACTIONBODY", n[n.DWG_TYPE_ASSOCCOMPOUNDACTIONPARAM = 540] = "DWG_TYPE_ASSOCCOMPOUNDACTIONPARAM", n[n.DWG_TYPE_ASSOCDEPENDENCY = 541] = "DWG_TYPE_ASSOCDEPENDENCY", n[n.DWG_TYPE_ASSOCDIMDEPENDENCYBODY = 542] = "DWG_TYPE_ASSOCDIMDEPENDENCYBODY", n[n.DWG_TYPE_ASSOCEDGEACTIONPARAM = 543] = "DWG_TYPE_ASSOCEDGEACTIONPARAM", n[n.DWG_TYPE_ASSOCEDGECHAMFERACTIONBODY = 544] = "DWG_TYPE_ASSOCEDGECHAMFERACTIONBODY", n[n.DWG_TYPE_ASSOCEDGEFILLETACTIONBODY = 545] = "DWG_TYPE_ASSOCEDGEFILLETACTIONBODY", n[n.DWG_TYPE_ASSOCEXTENDSURFACEACTIONBODY = 546] = "DWG_TYPE_ASSOCEXTENDSURFACEACTIONBODY", n[n.DWG_TYPE_ASSOCEXTRUDEDSURFACEACTIONBODY = 547] = "DWG_TYPE_ASSOCEXTRUDEDSURFACEACTIONBODY", n[n.DWG_TYPE_ASSOCFACEACTIONPARAM = 548] = "DWG_TYPE_ASSOCFACEACTIONPARAM", n[n.DWG_TYPE_ASSOCFILLETSURFACEACTIONBODY = 549] = "DWG_TYPE_ASSOCFILLETSURFACEACTIONBODY", n[n.DWG_TYPE_ASSOCGEOMDEPENDENCY = 550] = "DWG_TYPE_ASSOCGEOMDEPENDENCY", n[n.DWG_TYPE_ASSOCLOFTEDSURFACEACTIONBODY = 551] = "DWG_TYPE_ASSOCLOFTEDSURFACEACTIONBODY", n[n.DWG_TYPE_ASSOCMLEADERACTIONBODY = 552] = "DWG_TYPE_ASSOCMLEADERACTIONBODY", n[n.DWG_TYPE_ASSOCNETWORK = 553] = "DWG_TYPE_ASSOCNETWORK", n[n.DWG_TYPE_ASSOCNETWORKSURFACEACTIONBODY = 554] = "DWG_TYPE_ASSOCNETWORKSURFACEACTIONBODY", n[n.DWG_TYPE_ASSOCOBJECTACTIONPARAM = 555] = "DWG_TYPE_ASSOCOBJECTACTIONPARAM", n[n.DWG_TYPE_ASSOCOFFSETSURFACEACTIONBODY = 556] = "DWG_TYPE_ASSOCOFFSETSURFACEACTIONBODY", n[n.DWG_TYPE_ASSOCORDINATEDIMACTIONBODY = 557] = "DWG_TYPE_ASSOCORDINATEDIMACTIONBODY", n[n.DWG_TYPE_ASSOCOSNAPPOINTREFACTIONPARAM = 558] = "DWG_TYPE_ASSOCOSNAPPOINTREFACTIONPARAM", n[n.DWG_TYPE_ASSOCPATCHSURFACEACTIONBODY = 559] = "DWG_TYPE_ASSOCPATCHSURFACEACTIONBODY", n[n.DWG_TYPE_ASSOCPATHACTIONPARAM = 560] = "DWG_TYPE_ASSOCPATHACTIONPARAM", n[n.DWG_TYPE_ASSOCPERSSUBENTMANAGER = 561] = "DWG_TYPE_ASSOCPERSSUBENTMANAGER", n[n.DWG_TYPE_ASSOCPLANESURFACEACTIONBODY = 562] = "DWG_TYPE_ASSOCPLANESURFACEACTIONBODY", n[n.DWG_TYPE_ASSOCPOINTREFACTIONPARAM = 563] = "DWG_TYPE_ASSOCPOINTREFACTIONPARAM", n[n.DWG_TYPE_ASSOCRESTOREENTITYSTATEACTIONBODY = 564] = "DWG_TYPE_ASSOCRESTOREENTITYSTATEACTIONBODY", n[n.DWG_TYPE_ASSOCREVOLVEDSURFACEACTIONBODY = 565] = "DWG_TYPE_ASSOCREVOLVEDSURFACEACTIONBODY", n[n.DWG_TYPE_ASSOCROTATEDDIMACTIONBODY = 566] = "DWG_TYPE_ASSOCROTATEDDIMACTIONBODY", n[n.DWG_TYPE_ASSOCSWEPTSURFACEACTIONBODY = 567] = "DWG_TYPE_ASSOCSWEPTSURFACEACTIONBODY", n[n.DWG_TYPE_ASSOCTRIMSURFACEACTIONBODY = 568] = "DWG_TYPE_ASSOCTRIMSURFACEACTIONBODY", n[n.DWG_TYPE_ASSOCVALUEDEPENDENCY = 569] = "DWG_TYPE_ASSOCVALUEDEPENDENCY", n[n.DWG_TYPE_ASSOCVARIABLE = 570] = "DWG_TYPE_ASSOCVARIABLE", n[n.DWG_TYPE_ASSOCVERTEXACTIONPARAM = 571] = "DWG_TYPE_ASSOCVERTEXACTIONPARAM", n[n.DWG_TYPE_BASEPOINTPARAMETERENTITY = 572] = "DWG_TYPE_BASEPOINTPARAMETERENTITY", n[n.DWG_TYPE_BLKREFOBJECTCONTEXTDATA = 573] = "DWG_TYPE_BLKREFOBJECTCONTEXTDATA", n[n.DWG_TYPE_BLOCKALIGNEDCONSTRAINTPARAMETER = 574] = "DWG_TYPE_BLOCKALIGNEDCONSTRAINTPARAMETER", n[n.DWG_TYPE_BLOCKALIGNMENTGRIP = 575] = "DWG_TYPE_BLOCKALIGNMENTGRIP", n[n.DWG_TYPE_BLOCKALIGNMENTPARAMETER = 576] = "DWG_TYPE_BLOCKALIGNMENTPARAMETER", n[n.DWG_TYPE_BLOCKANGULARCONSTRAINTPARAMETER = 577] = "DWG_TYPE_BLOCKANGULARCONSTRAINTPARAMETER", n[n.DWG_TYPE_BLOCKARRAYACTION = 578] = "DWG_TYPE_BLOCKARRAYACTION", n[n.DWG_TYPE_BLOCKBASEPOINTPARAMETER = 579] = "DWG_TYPE_BLOCKBASEPOINTPARAMETER", n[n.DWG_TYPE_BLOCKDIAMETRICCONSTRAINTPARAMETER = 580] = "DWG_TYPE_BLOCKDIAMETRICCONSTRAINTPARAMETER", n[n.DWG_TYPE_BLOCKFLIPACTION = 581] = "DWG_TYPE_BLOCKFLIPACTION", n[n.DWG_TYPE_BLOCKFLIPGRIP = 582] = "DWG_TYPE_BLOCKFLIPGRIP", n[n.DWG_TYPE_BLOCKFLIPPARAMETER = 583] = "DWG_TYPE_BLOCKFLIPPARAMETER", n[n.DWG_TYPE_BLOCKGRIPLOCATIONCOMPONENT = 584] = "DWG_TYPE_BLOCKGRIPLOCATIONCOMPONENT", n[n.DWG_TYPE_BLOCKHORIZONTALCONSTRAINTPARAMETER = 585] = "DWG_TYPE_BLOCKHORIZONTALCONSTRAINTPARAMETER", n[n.DWG_TYPE_BLOCKLINEARCONSTRAINTPARAMETER = 586] = "DWG_TYPE_BLOCKLINEARCONSTRAINTPARAMETER", n[n.DWG_TYPE_BLOCKLINEARGRIP = 587] = "DWG_TYPE_BLOCKLINEARGRIP", n[n.DWG_TYPE_BLOCKLINEARPARAMETER = 588] = "DWG_TYPE_BLOCKLINEARPARAMETER", n[n.DWG_TYPE_BLOCKLOOKUPACTION = 589] = "DWG_TYPE_BLOCKLOOKUPACTION", n[n.DWG_TYPE_BLOCKLOOKUPGRIP = 590] = "DWG_TYPE_BLOCKLOOKUPGRIP", n[n.DWG_TYPE_BLOCKLOOKUPPARAMETER = 591] = "DWG_TYPE_BLOCKLOOKUPPARAMETER", n[n.DWG_TYPE_BLOCKMOVEACTION = 592] = "DWG_TYPE_BLOCKMOVEACTION", n[n.DWG_TYPE_BLOCKPARAMDEPENDENCYBODY = 593] = "DWG_TYPE_BLOCKPARAMDEPENDENCYBODY", n[n.DWG_TYPE_BLOCKPOINTPARAMETER = 594] = "DWG_TYPE_BLOCKPOINTPARAMETER", n[n.DWG_TYPE_BLOCKPOLARGRIP = 595] = "DWG_TYPE_BLOCKPOLARGRIP", n[n.DWG_TYPE_BLOCKPOLARPARAMETER = 596] = "DWG_TYPE_BLOCKPOLARPARAMETER", n[n.DWG_TYPE_BLOCKPOLARSTRETCHACTION = 597] = "DWG_TYPE_BLOCKPOLARSTRETCHACTION", n[n.DWG_TYPE_BLOCKPROPERTIESTABLE = 598] = "DWG_TYPE_BLOCKPROPERTIESTABLE", n[n.DWG_TYPE_BLOCKPROPERTIESTABLEGRIP = 599] = "DWG_TYPE_BLOCKPROPERTIESTABLEGRIP", n[n.DWG_TYPE_BLOCKRADIALCONSTRAINTPARAMETER = 600] = "DWG_TYPE_BLOCKRADIALCONSTRAINTPARAMETER", n[n.DWG_TYPE_BLOCKREPRESENTATION = 601] = "DWG_TYPE_BLOCKREPRESENTATION", n[n.DWG_TYPE_BLOCKROTATEACTION = 602] = "DWG_TYPE_BLOCKROTATEACTION", n[n.DWG_TYPE_BLOCKROTATIONGRIP = 603] = "DWG_TYPE_BLOCKROTATIONGRIP", n[n.DWG_TYPE_BLOCKROTATIONPARAMETER = 604] = "DWG_TYPE_BLOCKROTATIONPARAMETER", n[n.DWG_TYPE_BLOCKSCALEACTION = 605] = "DWG_TYPE_BLOCKSCALEACTION", n[n.DWG_TYPE_BLOCKSTRETCHACTION = 606] = "DWG_TYPE_BLOCKSTRETCHACTION", n[n.DWG_TYPE_BLOCKUSERPARAMETER = 607] = "DWG_TYPE_BLOCKUSERPARAMETER", n[n.DWG_TYPE_BLOCKVERTICALCONSTRAINTPARAMETER = 608] = "DWG_TYPE_BLOCKVERTICALCONSTRAINTPARAMETER", n[n.DWG_TYPE_BLOCKVISIBILITYGRIP = 609] = "DWG_TYPE_BLOCKVISIBILITYGRIP", n[n.DWG_TYPE_BLOCKVISIBILITYPARAMETER = 610] = "DWG_TYPE_BLOCKVISIBILITYPARAMETER", n[n.DWG_TYPE_BLOCKXYGRIP = 611] = "DWG_TYPE_BLOCKXYGRIP", n[n.DWG_TYPE_BLOCKXYPARAMETER = 612] = "DWG_TYPE_BLOCKXYPARAMETER", n[n.DWG_TYPE_CAMERA = 613] = "DWG_TYPE_CAMERA", n[n.DWG_TYPE_CELLSTYLEMAP = 614] = "DWG_TYPE_CELLSTYLEMAP", n[n.DWG_TYPE_CONTEXTDATAMANAGER = 615] = "DWG_TYPE_CONTEXTDATAMANAGER", n[n.DWG_TYPE_CSACDOCUMENTOPTIONS = 616] = "DWG_TYPE_CSACDOCUMENTOPTIONS", n[n.DWG_TYPE_CURVEPATH = 617] = "DWG_TYPE_CURVEPATH", n[n.DWG_TYPE_DATALINK = 618] = "DWG_TYPE_DATALINK", n[n.DWG_TYPE_DATATABLE = 619] = "DWG_TYPE_DATATABLE", n[n.DWG_TYPE_DBCOLOR = 620] = "DWG_TYPE_DBCOLOR", n[n.DWG_TYPE_DETAILVIEWSTYLE = 621] = "DWG_TYPE_DETAILVIEWSTYLE", n[n.DWG_TYPE_DGNDEFINITION = 622] = "DWG_TYPE_DGNDEFINITION", n[n.DWG_TYPE_DGNUNDERLAY = 623] = "DWG_TYPE_DGNUNDERLAY", n[n.DWG_TYPE_DICTIONARYVAR = 624] = "DWG_TYPE_DICTIONARYVAR", n[n.DWG_TYPE_DICTIONARYWDFLT = 625] = "DWG_TYPE_DICTIONARYWDFLT", n[n.DWG_TYPE_DIMASSOC = 626] = "DWG_TYPE_DIMASSOC", n[n.DWG_TYPE_DMDIMOBJECTCONTEXTDATA = 627] = "DWG_TYPE_DMDIMOBJECTCONTEXTDATA", n[n.DWG_TYPE_DWFDEFINITION = 628] = "DWG_TYPE_DWFDEFINITION", n[n.DWG_TYPE_DWFUNDERLAY = 629] = "DWG_TYPE_DWFUNDERLAY", n[n.DWG_TYPE_DYNAMICBLOCKPROXYNODE = 630] = "DWG_TYPE_DYNAMICBLOCKPROXYNODE", n[n.DWG_TYPE_DYNAMICBLOCKPURGEPREVENTER = 631] = "DWG_TYPE_DYNAMICBLOCKPURGEPREVENTER", n[n.DWG_TYPE_EVALUATION_GRAPH = 632] = "DWG_TYPE_EVALUATION_GRAPH", n[n.DWG_TYPE_EXTRUDEDSURFACE = 633] = "DWG_TYPE_EXTRUDEDSURFACE", n[n.DWG_TYPE_FCFOBJECTCONTEXTDATA = 634] = "DWG_TYPE_FCFOBJECTCONTEXTDATA", n[n.DWG_TYPE_FIELD = 635] = "DWG_TYPE_FIELD", n[n.DWG_TYPE_FIELDLIST = 636] = "DWG_TYPE_FIELDLIST", n[n.DWG_TYPE_FLIPPARAMETERENTITY = 637] = "DWG_TYPE_FLIPPARAMETERENTITY", n[n.DWG_TYPE_FLIPACTIONENTITY = 638] = "DWG_TYPE_FLIPACTIONENTITY", n[n.DWG_TYPE_GEODATA = 639] = "DWG_TYPE_GEODATA", n[n.DWG_TYPE_GEOMAPIMAGE = 640] = "DWG_TYPE_GEOMAPIMAGE", n[n.DWG_TYPE_GEOPOSITIONMARKER = 641] = "DWG_TYPE_GEOPOSITIONMARKER", n[n.DWG_TYPE_GRADIENT_BACKGROUND = 642] = "DWG_TYPE_GRADIENT_BACKGROUND", n[n.DWG_TYPE_GROUND_PLANE_BACKGROUND = 643] = "DWG_TYPE_GROUND_PLANE_BACKGROUND", n[n.DWG_TYPE_HELIX = 644] = "DWG_TYPE_HELIX", n[n.DWG_TYPE_IBL_BACKGROUND = 645] = "DWG_TYPE_IBL_BACKGROUND", n[n.DWG_TYPE_IDBUFFER = 646] = "DWG_TYPE_IDBUFFER", n[n.DWG_TYPE_IMAGE = 647] = "DWG_TYPE_IMAGE", n[n.DWG_TYPE_IMAGEDEF = 648] = "DWG_TYPE_IMAGEDEF", n[n.DWG_TYPE_IMAGEDEF_REACTOR = 649] = "DWG_TYPE_IMAGEDEF_REACTOR", n[n.DWG_TYPE_IMAGE_BACKGROUND = 650] = "DWG_TYPE_IMAGE_BACKGROUND", n[n.DWG_TYPE_INDEX = 651] = "DWG_TYPE_INDEX", n[n.DWG_TYPE_LARGE_RADIAL_DIMENSION = 652] = "DWG_TYPE_LARGE_RADIAL_DIMENSION", n[n.DWG_TYPE_LAYERFILTER = 653] = "DWG_TYPE_LAYERFILTER", n[n.DWG_TYPE_LAYER_INDEX = 654] = "DWG_TYPE_LAYER_INDEX", n[n.DWG_TYPE_LAYOUTPRINTCONFIG = 655] = "DWG_TYPE_LAYOUTPRINTCONFIG", n[n.DWG_TYPE_LEADEROBJECTCONTEXTDATA = 656] = "DWG_TYPE_LEADEROBJECTCONTEXTDATA", n[n.DWG_TYPE_LIGHT = 657] = "DWG_TYPE_LIGHT", n[n.DWG_TYPE_LIGHTLIST = 658] = "DWG_TYPE_LIGHTLIST", n[n.DWG_TYPE_LINEARPARAMETERENTITY = 659] = "DWG_TYPE_LINEARPARAMETERENTITY", n[n.DWG_TYPE_LOFTEDSURFACE = 660] = "DWG_TYPE_LOFTEDSURFACE", n[n.DWG_TYPE_MATERIAL = 661] = "DWG_TYPE_MATERIAL", n[n.DWG_TYPE_MENTALRAYRENDERSETTINGS = 662] = "DWG_TYPE_MENTALRAYRENDERSETTINGS", n[n.DWG_TYPE_MESH = 663] = "DWG_TYPE_MESH", n[n.DWG_TYPE_MLEADEROBJECTCONTEXTDATA = 664] = "DWG_TYPE_MLEADEROBJECTCONTEXTDATA", n[n.DWG_TYPE_MLEADERSTYLE = 665] = "DWG_TYPE_MLEADERSTYLE", n[n.DWG_TYPE_MOVEACTIONENTITY = 666] = "DWG_TYPE_MOVEACTIONENTITY", n[n.DWG_TYPE_MOTIONPATH = 667] = "DWG_TYPE_MOTIONPATH", n[n.DWG_TYPE_MPOLYGON = 668] = "DWG_TYPE_MPOLYGON", n[n.DWG_TYPE_MTEXTATTRIBUTEOBJECTCONTEXTDATA = 669] = "DWG_TYPE_MTEXTATTRIBUTEOBJECTCONTEXTDATA", n[n.DWG_TYPE_MTEXTOBJECTCONTEXTDATA = 670] = "DWG_TYPE_MTEXTOBJECTCONTEXTDATA", n[n.DWG_TYPE_MULTILEADER = 671] = "DWG_TYPE_MULTILEADER", n[n.DWG_TYPE_NAVISWORKSMODEL = 672] = "DWG_TYPE_NAVISWORKSMODEL", n[n.DWG_TYPE_NAVISWORKSMODELDEF = 673] = "DWG_TYPE_NAVISWORKSMODELDEF", n[n.DWG_TYPE_NPOCOLLECTION = 674] = "DWG_TYPE_NPOCOLLECTION", n[n.DWG_TYPE_NURBSURFACE = 675] = "DWG_TYPE_NURBSURFACE", n[n.DWG_TYPE_OBJECT_PTR = 676] = "DWG_TYPE_OBJECT_PTR", n[n.DWG_TYPE_ORDDIMOBJECTCONTEXTDATA = 677] = "DWG_TYPE_ORDDIMOBJECTCONTEXTDATA", n[n.DWG_TYPE_PARTIAL_VIEWING_INDEX = 678] = "DWG_TYPE_PARTIAL_VIEWING_INDEX", n[n.DWG_TYPE_PDFDEFINITION = 679] = "DWG_TYPE_PDFDEFINITION", n[n.DWG_TYPE_PDFUNDERLAY = 680] = "DWG_TYPE_PDFUNDERLAY", n[n.DWG_TYPE_PERSUBENTMGR = 681] = "DWG_TYPE_PERSUBENTMGR", n[n.DWG_TYPE_PLANESURFACE = 682] = "DWG_TYPE_PLANESURFACE", n[n.DWG_TYPE_PLOTSETTINGS = 683] = "DWG_TYPE_PLOTSETTINGS", n[n.DWG_TYPE_POINTCLOUD = 684] = "DWG_TYPE_POINTCLOUD", n[n.DWG_TYPE_POINTCLOUDCOLORMAP = 685] = "DWG_TYPE_POINTCLOUDCOLORMAP", n[n.DWG_TYPE_POINTCLOUDDEF = 686] = "DWG_TYPE_POINTCLOUDDEF", n[n.DWG_TYPE_POINTCLOUDDEFEX = 687] = "DWG_TYPE_POINTCLOUDDEFEX", n[n.DWG_TYPE_POINTCLOUDDEF_REACTOR = 688] = "DWG_TYPE_POINTCLOUDDEF_REACTOR", n[n.DWG_TYPE_POINTCLOUDDEF_REACTOR_EX = 689] = "DWG_TYPE_POINTCLOUDDEF_REACTOR_EX", n[n.DWG_TYPE_POINTCLOUDEX = 690] = "DWG_TYPE_POINTCLOUDEX", n[n.DWG_TYPE_POINTPARAMETERENTITY = 691] = "DWG_TYPE_POINTPARAMETERENTITY", n[n.DWG_TYPE_POINTPATH = 692] = "DWG_TYPE_POINTPATH", n[n.DWG_TYPE_POLARGRIPENTITY = 693] = "DWG_TYPE_POLARGRIPENTITY", n[n.DWG_TYPE_RADIMLGOBJECTCONTEXTDATA = 694] = "DWG_TYPE_RADIMLGOBJECTCONTEXTDATA", n[n.DWG_TYPE_RADIMOBJECTCONTEXTDATA = 695] = "DWG_TYPE_RADIMOBJECTCONTEXTDATA", n[n.DWG_TYPE_RAPIDRTRENDERSETTINGS = 696] = "DWG_TYPE_RAPIDRTRENDERSETTINGS", n[n.DWG_TYPE_RASTERVARIABLES = 697] = "DWG_TYPE_RASTERVARIABLES", n[n.DWG_TYPE_RENDERENTRY = 698] = "DWG_TYPE_RENDERENTRY", n[n.DWG_TYPE_RENDERENVIRONMENT = 699] = "DWG_TYPE_RENDERENVIRONMENT", n[n.DWG_TYPE_RENDERGLOBAL = 700] = "DWG_TYPE_RENDERGLOBAL", n[n.DWG_TYPE_RENDERSETTINGS = 701] = "DWG_TYPE_RENDERSETTINGS", n[n.DWG_TYPE_REVOLVEDSURFACE = 702] = "DWG_TYPE_REVOLVEDSURFACE", n[n.DWG_TYPE_ROTATIONPARAMETERENTITY = 703] = "DWG_TYPE_ROTATIONPARAMETERENTITY", n[n.DWG_TYPE_ROTATEACTIONENTITY = 704] = "DWG_TYPE_ROTATEACTIONENTITY", n[n.DWG_TYPE_RTEXT = 705] = "DWG_TYPE_RTEXT", n[n.DWG_TYPE_SCALE = 706] = "DWG_TYPE_SCALE", n[n.DWG_TYPE_SCALEACTIONENTITY = 707] = "DWG_TYPE_SCALEACTIONENTITY", n[n.DWG_TYPE_SECTIONOBJECT = 708] = "DWG_TYPE_SECTIONOBJECT", n[n.DWG_TYPE_SECTIONVIEWSTYLE = 709] = "DWG_TYPE_SECTIONVIEWSTYLE", n[n.DWG_TYPE_SECTION_MANAGER = 710] = "DWG_TYPE_SECTION_MANAGER", n[n.DWG_TYPE_SECTION_SETTINGS = 711] = "DWG_TYPE_SECTION_SETTINGS", n[n.DWG_TYPE_SKYLIGHT_BACKGROUND = 712] = "DWG_TYPE_SKYLIGHT_BACKGROUND", n[n.DWG_TYPE_SOLID_BACKGROUND = 713] = "DWG_TYPE_SOLID_BACKGROUND", n[n.DWG_TYPE_SORTENTSTABLE = 714] = "DWG_TYPE_SORTENTSTABLE", n[n.DWG_TYPE_SPATIAL_FILTER = 715] = "DWG_TYPE_SPATIAL_FILTER", n[n.DWG_TYPE_SPATIAL_INDEX = 716] = "DWG_TYPE_SPATIAL_INDEX", n[n.DWG_TYPE_STRETCHACTIONENTITY = 717] = "DWG_TYPE_STRETCHACTIONENTITY", n[n.DWG_TYPE_SUN = 718] = "DWG_TYPE_SUN", n[n.DWG_TYPE_SUNSTUDY = 719] = "DWG_TYPE_SUNSTUDY", n[n.DWG_TYPE_SWEPTSURFACE = 720] = "DWG_TYPE_SWEPTSURFACE", n[n.DWG_TYPE_TABLE = 721] = "DWG_TYPE_TABLE", n[n.DWG_TYPE_TABLECONTENT = 722] = "DWG_TYPE_TABLECONTENT", n[n.DWG_TYPE_TABLEGEOMETRY = 723] = "DWG_TYPE_TABLEGEOMETRY", n[n.DWG_TYPE_TABLESTYLE = 724] = "DWG_TYPE_TABLESTYLE", n[n.DWG_TYPE_TEXTOBJECTCONTEXTDATA = 725] = "DWG_TYPE_TEXTOBJECTCONTEXTDATA", n[n.DWG_TYPE_TVDEVICEPROPERTIES = 726] = "DWG_TYPE_TVDEVICEPROPERTIES", n[n.DWG_TYPE_VISIBILITYGRIPENTITY = 727] = "DWG_TYPE_VISIBILITYGRIPENTITY", n[n.DWG_TYPE_VISIBILITYPARAMETERENTITY = 728] = "DWG_TYPE_VISIBILITYPARAMETERENTITY", n[n.DWG_TYPE_VISUALSTYLE = 729] = "DWG_TYPE_VISUALSTYLE", n[n.DWG_TYPE_WIPEOUT = 730] = "DWG_TYPE_WIPEOUT", n[n.DWG_TYPE_WIPEOUTVARIABLES = 731] = "DWG_TYPE_WIPEOUTVARIABLES", n[n.DWG_TYPE_XREFPANELOBJECT = 732] = "DWG_TYPE_XREFPANELOBJECT", n[n.DWG_TYPE_XYPARAMETERENTITY = 733] = "DWG_TYPE_XYPARAMETERENTITY", n[n.DWG_TYPE_BREAKDATA = 734] = "DWG_TYPE_BREAKDATA", n[n.DWG_TYPE_BREAKPOINTREF = 735] = "DWG_TYPE_BREAKPOINTREF", n[n.DWG_TYPE_FLIPGRIPENTITY = 736] = "DWG_TYPE_FLIPGRIPENTITY", n[n.DWG_TYPE_LINEARGRIPENTITY = 737] = "DWG_TYPE_LINEARGRIPENTITY", n[n.DWG_TYPE_ROTATIONGRIPENTITY = 738] = "DWG_TYPE_ROTATIONGRIPENTITY", n[n.DWG_TYPE_XYGRIPENTITY = 739] = "DWG_TYPE_XYGRIPENTITY", n[n.DWG_TYPE__3DLINE = 740] = "DWG_TYPE__3DLINE", n[n.DWG_TYPE_REPEAT = 741] = "DWG_TYPE_REPEAT", n[n.DWG_TYPE_ENDREP = 742] = "DWG_TYPE_ENDREP", n[n.DWG_TYPE_JUMP = 743] = "DWG_TYPE_JUMP", n[n.DWG_TYPE_LOAD = 744] = "DWG_TYPE_LOAD", n[n.DWG_TYPE_FREED = 65533] = "DWG_TYPE_FREED", n[n.DWG_TYPE_UNKNOWN_ENT = 65534] = "DWG_TYPE_UNKNOWN_ENT", n[n.DWG_TYPE_UNKNOWN_OBJ = 65535] = "DWG_TYPE_UNKNOWN_OBJ";
|
||
})(P || (P = {}));
|
||
const bn = Object.fromEntries(Object.entries(P).map(([n, t]) => [t, n]));
|
||
var ct;
|
||
(function(n) {
|
||
n[n.DWG = 0] = "DWG", n[n.DXF = 1] = "DXF";
|
||
})(ct || (ct = {}));
|
||
var U;
|
||
(function(n) {
|
||
n[n.Line = 1] = "Line", n[n.CircularArc = 2] = "CircularArc", n[n.EllipticArc = 3] = "EllipticArc", n[n.Spline = 4] = "Spline";
|
||
})(U || (U = {}));
|
||
var pt;
|
||
(function(n) {
|
||
n[n.ByLayer = 192] = "ByLayer", n[n.ByBlock = 193] = "ByBlock", n[n.Entities = 194] = "Entities", n[n.TrueColor = 195] = "TrueColor", n[n.ForegroundColor = 197] = "ForegroundColor", n[n.None = 200] = "None";
|
||
})(pt || (pt = {}));
|
||
const gn = "*MODEL_SPACE", yn = "*PAPER_SPACE", Bt = (n) => n && n.toUpperCase() == gn, xn = (n) => n && n.toUpperCase().startsWith(yn), L = (n) => n.toString(16).toUpperCase();
|
||
class pn {
|
||
constructor(t) {
|
||
N(this, "libredwg");
|
||
N(this, "layers", /* @__PURE__ */ new Map());
|
||
N(this, "ltypes", /* @__PURE__ */ new Map());
|
||
N(this, "unknownEntityCount");
|
||
this.libredwg = t, this.unknownEntityCount = 0;
|
||
}
|
||
prepare(t, e = !1) {
|
||
(e || this.layers.size == 0) && (this.layers.clear(), t.tables.LAYER.entries.forEach((a) => {
|
||
this.layers.set(a.handle, a.name);
|
||
})), (e || this.ltypes.size == 0) && (this.ltypes.clear(), t.tables.LTYPE.entries.forEach((a) => {
|
||
this.ltypes.set(a.handle, a.name);
|
||
})), this.unknownEntityCount = 0;
|
||
}
|
||
clear() {
|
||
this.layers.clear(), this.ltypes.clear(), this.unknownEntityCount = 0;
|
||
}
|
||
convert(t) {
|
||
const e = this.libredwg, a = e.dwg_object_to_entity(t), _ = e.dwg_object_to_entity_tio(t);
|
||
if (a && _) {
|
||
const o = this.getCommonAttrs(a), i = e.dwg_object_get_fixedtype(t);
|
||
if (i == P.DWG_TYPE_3DFACE)
|
||
return this.convert3dFace(_, o);
|
||
if (i == P.DWG_TYPE_ARC)
|
||
return this.convertArc(_, o);
|
||
if (i == P.DWG_TYPE_ATTDEF)
|
||
return this.convertAttdef(_, o);
|
||
if (i == P.DWG_TYPE_CIRCLE)
|
||
return this.convertCircle(_, o);
|
||
if (i == P.DWG_TYPE_DIMENSION_ALIGNED || i == P.DWG_TYPE_DIMENSION_LINEAR)
|
||
return this.convertAlignedDimension(_, o);
|
||
if (i == P.DWG_TYPE_DIMENSION_ANG3PT)
|
||
return this.convert3PointAngularDimension(_, o);
|
||
if (i == P.DWG_TYPE_DIMENSION_DIAMETER)
|
||
return this.convertDiameterDimension(_, o);
|
||
if (i == P.DWG_TYPE_DIMENSION_ORDINATE)
|
||
return this.convertOrdinateDimension(_, o);
|
||
if (i == P.DWG_TYPE_DIMENSION_RADIUS)
|
||
return this.convertRadiusDimension(_, o);
|
||
if (i == P.DWG_TYPE_ELLIPSE)
|
||
return this.convertEllise(_, o);
|
||
if (i == P.DWG_TYPE_HATCH)
|
||
return this.convertHatch(_, o);
|
||
if (i == P.DWG_TYPE_IMAGE)
|
||
return this.convertImage(_, o);
|
||
if (i == P.DWG_TYPE_INSERT)
|
||
return this.convertInsert(_, o);
|
||
if (i == P.DWG_TYPE_LEADER)
|
||
return this.convertLeader(_, o);
|
||
if (i == P.DWG_TYPE_LINE)
|
||
return this.convertLine(_, o);
|
||
if (i == P.DWG_TYPE_LWPOLYLINE)
|
||
return this.convertLWPolyline(_, o);
|
||
if (i == P.DWG_TYPE_MLINE)
|
||
return this.convertMLine(_, o);
|
||
if (i == P.DWG_TYPE_MTEXT)
|
||
return this.convertMText(_, o);
|
||
if (i == P.DWG_TYPE_OLE2FRAME)
|
||
return this.convertOle2Frame(_, o);
|
||
if (i == P.DWG_TYPE_OLEFRAME)
|
||
return this.convertOleFrame(_, o);
|
||
if (i == P.DWG_TYPE_POINT)
|
||
return this.convertPoint(_, o);
|
||
if (i == P.DWG_TYPE_POLYLINE_2D)
|
||
return this.convertPolyline2d(_, o, t);
|
||
if (i == P.DWG_TYPE_POLYLINE_3D)
|
||
return this.convertPolyline3d(_, o, t);
|
||
if (i == P.DWG_TYPE_PROXY_ENTITY)
|
||
return this.convertProxy(_, o);
|
||
if (i == P.DWG_TYPE_RAY)
|
||
return this.convertRay(_, o);
|
||
if (i == P.DWG_TYPE_SECTIONOBJECT)
|
||
return this.convertSection(_, o);
|
||
if (i == P.DWG_TYPE_SOLID)
|
||
return this.convertSolid(_, o);
|
||
if (i == P.DWG_TYPE_SPLINE)
|
||
return this.convertSpline(_, o);
|
||
if (i == P.DWG_TYPE_TABLE)
|
||
return this.convertTable(_, o);
|
||
if (i == P.DWG_TYPE_TEXT)
|
||
return this.convertText(_, o);
|
||
if (i == P.DWG_TYPE_TOLERANCE)
|
||
return this.convertTolerance(_, o);
|
||
if (i == P.DWG_TYPE_VIEWPORT)
|
||
return this.convertViewport(_, o);
|
||
if (i == P.DWG_TYPE_WIPEOUT)
|
||
return this.convertWipeout(_, o);
|
||
if (i == P.DWG_TYPE_XLINE)
|
||
return this.convertXline(_, o);
|
||
i === P.DWG_TYPE_UNKNOWN_ENT && this.unknownEntityCount++;
|
||
}
|
||
}
|
||
convert3dFace(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "corner1").data, o = a.dwg_dynapi_entity_value(t, "corner2").data, i = a.dwg_dynapi_entity_value(t, "corner3").data, s = a.dwg_dynapi_entity_value(t, "corner4").data, r = a.dwg_dynapi_entity_value(t, "invis_flags").data;
|
||
return {
|
||
type: "3DFACE",
|
||
...e,
|
||
corner1: _,
|
||
corner2: o,
|
||
corner3: i,
|
||
corner4: s,
|
||
flag: r
|
||
};
|
||
}
|
||
convertArc(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "center").data, o = a.dwg_dynapi_entity_value(t, "radius").data, i = a.dwg_dynapi_entity_value(t, "thickness").data, s = a.dwg_dynapi_entity_value(t, "extrusion").data, r = a.dwg_dynapi_entity_value(t, "start_angle").data, l = a.dwg_dynapi_entity_value(t, "end_angle").data;
|
||
return {
|
||
type: "ARC",
|
||
...e,
|
||
thickness: i,
|
||
center: _,
|
||
radius: o,
|
||
startAngle: r,
|
||
endAngle: l,
|
||
extrusionDirection: s
|
||
};
|
||
}
|
||
convertEmbeddedMText(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_subclass_value(t, e, "attachment").data, o = a.dwg_dynapi_subclass_value(t, e, "ins_pt").data, i = a.dwg_dynapi_subclass_value(t, e, "x_axis_dir").data, s = a.dwg_dynapi_subclass_value(t, e, "rect_height").data, r = a.dwg_dynapi_subclass_value(t, e, "rect_width").data, l = a.dwg_dynapi_subclass_value(t, e, "extents_height").data, d = a.dwg_dynapi_subclass_value(t, e, "extents_width").data;
|
||
return {
|
||
insertionPoint: o,
|
||
rectHeight: s,
|
||
rectWidth: r,
|
||
extentsHeight: l,
|
||
extentsWidth: d,
|
||
attachmentPoint: _,
|
||
direction: i
|
||
// columnType: columnType,
|
||
// columnFlowReversed: columnFlowReversed,
|
||
// columnAutoHeight: columnAutoHeight,
|
||
// columnWidth: columnWidth,
|
||
// columnGutter: columnGutter,
|
||
// columnHeightCount: columnHeightCount,
|
||
// columnHeights: columnHeights
|
||
};
|
||
}
|
||
convertAttdef(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "default_value").data, o = this.convertTextBase(t);
|
||
o.text = _;
|
||
const i = a.dwg_dynapi_entity_value(t, "prompt").data, s = a.dwg_dynapi_entity_value(t, "tag").data, r = a.dwg_dynapi_entity_value(t, "flags").data, l = a.dwg_dynapi_entity_value(t, "field_length").data, d = a.dwg_dynapi_entity_value(t, "lock_position_flag").data, I = a.dwg_dynapi_entity_value(t, "keep_duplicate_records").data, c = a.dwg_dynapi_entity_value(t, "is_really_locked").data, E = a.dwg_dynapi_entity_value(t, "mtext_type").data, C = a.dwg_dynapi_entity_value(t, "alignment_pt").data;
|
||
return {
|
||
type: "ATTDEF",
|
||
...e,
|
||
text: this.convertTextBase(t),
|
||
prompt: i,
|
||
tag: s,
|
||
flags: r,
|
||
fieldLength: l,
|
||
lockPositionFlag: d > 0,
|
||
duplicateRecordCloningFlag: I > 0,
|
||
mtextFlag: E,
|
||
isReallyLocked: c > 0,
|
||
alignmentPoint: C,
|
||
annotationScale: 1,
|
||
// TODO: Set the correct value
|
||
attrTag: "",
|
||
// TODO: Set the correct value
|
||
mtext: this.convertEmbeddedMText(t, "ATTDEF_mtext")
|
||
};
|
||
}
|
||
convertAttrib(t, e) {
|
||
const a = this.libredwg, _ = this.convertTextBase(t), o = a.dwg_dynapi_entity_value(t, "tag").data, i = a.dwg_dynapi_entity_value(t, "flags").data, s = a.dwg_dynapi_entity_value(t, "field_length").data, r = a.dwg_dynapi_entity_value(t, "lock_position_flag").data, l = a.dwg_dynapi_entity_value(t, "keep_duplicate_records").data, d = a.dwg_dynapi_entity_value(t, "mtext_type").data, I = a.dwg_dynapi_entity_value(t, "is_really_locked").data, c = a.dwg_dynapi_entity_value(t, "alignment_pt").data;
|
||
return {
|
||
type: "ATTRIB",
|
||
...e,
|
||
text: _,
|
||
tag: o,
|
||
flags: i,
|
||
fieldLength: s,
|
||
lockPositionFlag: !!r,
|
||
duplicateRecordCloningFlag: !!l,
|
||
mtextFlag: d,
|
||
isReallyLocked: !!I,
|
||
numberOfSecondaryAttrs: 0,
|
||
// TODO: libredwg doesn't support it yet.
|
||
secondaryAttrsHardId: "0",
|
||
// TODO: libredwg doesn't support it yet.
|
||
alignmentPoint: { ...c, z: 0 },
|
||
annotationScale: 1,
|
||
// TODO: Set the correct value
|
||
attrTag: "",
|
||
// TODO: Set the correct value
|
||
mtext: this.convertEmbeddedMText(t, "ATTDEF_mtext")
|
||
};
|
||
}
|
||
convertCircle(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "center").data, o = a.dwg_dynapi_entity_value(t, "radius").data, i = a.dwg_dynapi_entity_value(t, "thickness").data, s = a.dwg_dynapi_entity_value(t, "extrusion").data;
|
||
return {
|
||
type: "CIRCLE",
|
||
...e,
|
||
thickness: i,
|
||
center: _,
|
||
radius: o,
|
||
extrusionDirection: s
|
||
};
|
||
}
|
||
convertAlignedDimension(t, e) {
|
||
const a = this.libredwg, _ = this.getDimensionCommonAttrs(t), o = a.dwg_dynapi_entity_value(t, "clone_ins_pt").data, i = a.dwg_dynapi_entity_value(t, "xline1_pt").data, s = a.dwg_dynapi_entity_value(t, "xline2_pt").data, r = a.dwg_dynapi_entity_value(t, "ins_rotation").data, l = a.dwg_dynapi_entity_value(t, "oblique_angle").data;
|
||
return {
|
||
subclassMarker: "AcDbAlignedDimension",
|
||
...e,
|
||
..._,
|
||
insertionPoint: o,
|
||
subDefinitionPoint1: i,
|
||
subDefinitionPoint2: s,
|
||
rotationAngle: r ?? 0,
|
||
obliqueAngle: l
|
||
};
|
||
}
|
||
convert3PointAngularDimension(t, e) {
|
||
const a = this.libredwg, _ = this.getDimensionCommonAttrs(t), o = a.dwg_dynapi_entity_value(t, "xline1_pt").data, i = a.dwg_dynapi_entity_value(t, "xline2_pt").data, s = a.dwg_dynapi_entity_value(t, "center_pt").data, r = a.dwg_dynapi_entity_value(t, "xline2end_pt").data;
|
||
return {
|
||
subclassMarker: "AcDb3PointAngularDimension",
|
||
...e,
|
||
..._,
|
||
subDefinitionPoint1: o,
|
||
subDefinitionPoint2: i,
|
||
centerPoint: s,
|
||
arcPoint: r
|
||
};
|
||
}
|
||
convertDiameterDimension(t, e) {
|
||
const a = this.libredwg, _ = this.getDimensionCommonAttrs(t), o = a.dwg_dynapi_entity_value(t, "first_arc_pt").data, i = a.dwg_dynapi_entity_value(t, "leader_len").data;
|
||
return {
|
||
subclassMarker: "AcDbDiametricDimension",
|
||
...e,
|
||
..._,
|
||
centerPoint: o,
|
||
leaderLength: i
|
||
};
|
||
}
|
||
convertOrdinateDimension(t, e) {
|
||
const a = this.libredwg, _ = this.getDimensionCommonAttrs(t), o = a.dwg_dynapi_entity_value(t, "feature_location_pt").data, i = a.dwg_dynapi_entity_value(t, "leader_endpt").data;
|
||
return {
|
||
subclassMarker: "AcDbOrdinateDimension",
|
||
...e,
|
||
..._,
|
||
subDefinitionPoint1: o,
|
||
subDefinitionPoint2: i
|
||
};
|
||
}
|
||
convertRadiusDimension(t, e) {
|
||
const a = this.libredwg, _ = this.getDimensionCommonAttrs(t), o = a.dwg_dynapi_entity_value(t, "first_arc_pt").data, i = a.dwg_dynapi_entity_value(t, "leader_len").data;
|
||
return {
|
||
subclassMarker: "AcDbRadialDimension",
|
||
...e,
|
||
..._,
|
||
centerPoint: o,
|
||
leaderLength: i
|
||
};
|
||
}
|
||
convertEllise(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "center").data, o = a.dwg_dynapi_entity_value(t, "sm_axis").data, i = a.dwg_dynapi_entity_value(t, "extrusion").data, s = a.dwg_dynapi_entity_value(t, "axis_ratio").data, r = a.dwg_dynapi_entity_value(t, "start_angle").data, l = a.dwg_dynapi_entity_value(t, "end_angle").data;
|
||
return {
|
||
type: "ELLIPSE",
|
||
...e,
|
||
center: _,
|
||
majorAxisEndPoint: o,
|
||
extrusionDirection: i,
|
||
axisRatio: s,
|
||
startAngle: r,
|
||
endAngle: l
|
||
};
|
||
}
|
||
convertHatch(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "extrusion").data, o = a.dwg_dynapi_entity_value(t, "name").data, i = a.dwg_dynapi_entity_value(t, "is_solid_fill").data, s = a.dwg_dynapi_entity_value(t, "is_associative").data, r = a.dwg_dynapi_entity_value(t, "num_paths").data, l = a.dwg_dynapi_entity_value(t, "paths").data, d = a.dwg_ptr_to_hatch_path_array(l, r), I = a.dwg_dynapi_entity_value(t, "style").data, c = a.dwg_dynapi_entity_value(t, "pattern_type").data, E = a.dwg_dynapi_entity_value(t, "angle").data, C = a.dwg_dynapi_entity_value(t, "scale_spacing").data, A = a.dwg_dynapi_entity_value(t, "num_deflines").data, u = a.dwg_dynapi_entity_value(t, "deflines").data, T = a.dwg_ptr_to_hatch_defline_array(u, A), h = a.dwg_dynapi_entity_value(t, "pixel_size").data, Y = a.dwg_dynapi_entity_value(t, "num_seeds").data, R = a.dwg_dynapi_entity_value(t, "seeds").data, f = a.dwg_ptr_to_point2d_array(R, Y), v = {
|
||
...e,
|
||
// elevationPoint: DwgPoint3D
|
||
extrusionDirection: _,
|
||
patternName: o,
|
||
solidFill: i ? z.SolidFill : z.PatternFill,
|
||
// patternFillColor: number
|
||
associativity: s ? Z.Associative : Z.NonAssociative,
|
||
numberOfBoundaryPaths: r,
|
||
boundaryPaths: this.convertHatchBoundaryPaths(d),
|
||
hatchStyle: I,
|
||
patternType: c,
|
||
patternAngle: E,
|
||
patternScale: C,
|
||
numberOfDefinitionLines: A,
|
||
definitionLines: T.map((S) => ({
|
||
angle: S.angle,
|
||
base: S.pt0,
|
||
offset: S.offset,
|
||
numberOfDashLengths: S.dashes.length,
|
||
dashLengths: S.dashes
|
||
})),
|
||
pixelSize: h,
|
||
numberOfSeedPoints: Y,
|
||
// offsetVector?: DwgPoint3D
|
||
seedPoints: f
|
||
// gradientFlag?: DwgHatchGradientFlag
|
||
};
|
||
if (a.dwg_dynapi_entity_value(t, "is_gradient_fill").data > 0) {
|
||
const S = a.dwg_dynapi_entity_value(t, "gradient_name").data, y = a.dwg_dynapi_entity_value(t, "gradient_angle").data, x = a.dwg_dynapi_entity_value(t, "gradient_shift").data, M = a.dwg_dynapi_entity_value(t, "gradient_tint").data, g = a.dwg_dynapi_entity_value(t, "single_color_gradient").data, p = a.dwg_dynapi_entity_value(t, "colors").data, O = a.dwg_ptr_to_hatch_gradient_color_array(p, g == 1 ? 1 : 2);
|
||
return {
|
||
type: "HATCH",
|
||
...v,
|
||
gradientFlag: Et.Gradient,
|
||
gradientColorFlag: g == 1 ? q.OneColor : q.TwoColor,
|
||
gradientName: S,
|
||
gradientRotation: y,
|
||
gradientDefinition: x,
|
||
colorTint: M,
|
||
gradientColors: O
|
||
};
|
||
} else
|
||
return {
|
||
type: "HATCH",
|
||
...v
|
||
};
|
||
}
|
||
convertHatchBoundaryPaths(t) {
|
||
return t.filter((a) => a.num_segs_or_paths > 0).map((a) => {
|
||
const _ = {
|
||
boundaryPathTypeFlag: a.flag
|
||
};
|
||
if (a.flag & 2)
|
||
return {
|
||
..._,
|
||
hasBulge: a.bulges_present,
|
||
isClosed: a.closed,
|
||
numberOfVertices: a.num_segs_or_paths,
|
||
vertices: a.polyline_paths.map((o) => ({
|
||
x: o.point.x,
|
||
y: o.point.y,
|
||
bulge: o.bulge
|
||
}))
|
||
};
|
||
{
|
||
const o = a.segs.map((i) => {
|
||
if (i.curve_type == U.Line)
|
||
return {
|
||
type: F.Line,
|
||
start: i.first_endpoint,
|
||
end: i.second_endpoint
|
||
};
|
||
if (i.curve_type == U.CircularArc)
|
||
return {
|
||
type: F.Circular,
|
||
center: i.center,
|
||
radius: i.radius,
|
||
startAngle: i.start_angle,
|
||
endAngle: i.end_angle,
|
||
isCCW: i.is_ccw
|
||
};
|
||
if (i.curve_type == U.EllipticArc)
|
||
return {
|
||
type: F.Elliptic,
|
||
center: i.center,
|
||
end: i.endpoint,
|
||
lengthOfMinorAxis: i.minor_major_ratio,
|
||
startAngle: i.start_angle,
|
||
endAngle: i.end_angle,
|
||
isCCW: i.is_ccw
|
||
};
|
||
if (i.curve_type == U.Spline)
|
||
return {
|
||
type: F.Spline,
|
||
degree: i.degree,
|
||
isRational: i.is_rational,
|
||
isPeriodic: i.is_periodic,
|
||
numberOfKnots: i.num_knots,
|
||
numberOfControlPoints: i.num_control_points,
|
||
knots: i.knots,
|
||
controlPoints: i.control_points,
|
||
numberOfFitData: i.num_fitpts,
|
||
fitDatum: i.fitpts,
|
||
startTangent: i.start_tangent,
|
||
endTangent: i.end_tangent
|
||
};
|
||
});
|
||
return {
|
||
..._,
|
||
numberOfEdges: a.num_segs_or_paths,
|
||
edges: o
|
||
};
|
||
}
|
||
});
|
||
}
|
||
convertImage(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "class_version").data, o = a.dwg_dynapi_entity_value(t, "pt0").data, i = a.dwg_dynapi_entity_value(t, "uvec").data, s = a.dwg_dynapi_entity_value(t, "vvec").data, r = a.dwg_dynapi_entity_value(t, "image_size").data, l = a.dwg_dynapi_entity_value(t, "display_props").data, d = a.dwg_dynapi_entity_value(t, "clipping").data, I = a.dwg_dynapi_entity_value(t, "brightness").data, c = a.dwg_dynapi_entity_value(t, "contrast").data, E = a.dwg_dynapi_entity_value(t, "fade").data, C = a.dwg_dynapi_entity_value(t, "clip_mode").data, A = a.dwg_dynapi_entity_value(t, "clip_boundary_type").data, u = a.dwg_dynapi_entity_value(t, "num_clip_verts").data, T = a.dwg_dynapi_entity_value(t, "clip_verts").data, h = a.dwg_ptr_to_point3d_array(T, u), Y = a.dwg_dynapi_entity_value(t, "imagedef").data, R = L(a.dwg_ref_get_absref(Y)), f = a.dwg_dynapi_entity_value(t, "imagedefreactor").data, v = L(a.dwg_ref_get_absref(f));
|
||
return {
|
||
type: "IMAGE",
|
||
...e,
|
||
version: _,
|
||
position: o,
|
||
uPixel: i,
|
||
vPixel: s,
|
||
imageSize: r,
|
||
imageDefHandle: R,
|
||
flags: l,
|
||
clipping: d,
|
||
brightness: I,
|
||
contrast: c,
|
||
fade: E,
|
||
imageDefReactorHandle: v,
|
||
clippingBoundaryType: A,
|
||
countBoundaryPoints: u,
|
||
clippingBoundaryPath: h,
|
||
clipMode: C
|
||
};
|
||
}
|
||
convertInsert(t, e) {
|
||
const a = this.libredwg;
|
||
let _ = "";
|
||
const o = a.dwg_dynapi_entity_value(t, "block_header").data;
|
||
if (o) {
|
||
const u = a.dwg_ref_get_object(o);
|
||
if (u) {
|
||
const T = a.dwg_object_to_object_tio(u);
|
||
T && (_ = a.dwg_entity_block_header_get_block(T).name);
|
||
}
|
||
}
|
||
_ || (_ = a.dwg_dynapi_entity_value(t, "block_name").data);
|
||
const i = a.dwg_dynapi_entity_value(t, "ins_pt").data, s = a.dwg_dynapi_entity_value(t, "scale").data, r = a.dwg_dynapi_entity_value(t, "rotation").data, l = a.dwg_dynapi_entity_value(t, "num_cols").data, d = a.dwg_dynapi_entity_value(t, "num_rows").data, I = a.dwg_dynapi_entity_value(t, "col_spacing").data, c = a.dwg_dynapi_entity_value(t, "row_spacing").data, E = a.dwg_dynapi_entity_value(t, "extrusion").data, C = a.dwg_entity_insert_get_attribs(t), A = [];
|
||
return C.forEach((u) => {
|
||
const T = a.dwg_object_to_entity(u), h = a.dwg_object_to_entity_tio(u);
|
||
if (T && h) {
|
||
const Y = this.getCommonAttrs(T);
|
||
a.dwg_object_get_fixedtype(u) == P.DWG_TYPE_ATTRIB && A.push(this.convertAttrib(h, Y));
|
||
}
|
||
}), {
|
||
type: "INSERT",
|
||
...e,
|
||
name: _,
|
||
insertionPoint: i,
|
||
xScale: s ? s.x : 1,
|
||
yScale: s ? s.y : 1,
|
||
zScale: s ? s.z : 1,
|
||
rotation: r,
|
||
columnCount: l,
|
||
rowCount: d,
|
||
columnSpacing: I,
|
||
rowSpacing: c,
|
||
extrusionDirection: E,
|
||
attribs: A
|
||
};
|
||
}
|
||
convertLeader(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_entity_mtext_get_style_name(t), o = a.dwg_dynapi_entity_value(t, "arrowhead_type").data, i = a.dwg_dynapi_entity_value(t, "path_type").data, s = a.dwg_dynapi_entity_value(t, "annot_type").data, r = a.dwg_dynapi_entity_value(t, "hookline_dir").data, l = a.dwg_dynapi_entity_value(t, "hookline_on").data, d = a.dwg_dynapi_entity_value(t, "box_height").data, I = a.dwg_dynapi_entity_value(t, "box_width").data, c = a.dwg_dynapi_entity_value(t, "num_points").data, E = a.dwg_dynapi_entity_value(t, "points").data, C = c > 0 ? a.dwg_ptr_to_point3d_array(E, c) : [], A = a.dwg_dynapi_entity_value(t, "byblock_color").data, u = a.dwg_dynapi_entity_value(t, "extrusion").data, T = a.dwg_dynapi_entity_value(t, "x_direction").data, h = a.dwg_dynapi_entity_value(t, "inspt_offset").data, Y = a.dwg_dynapi_entity_value(t, "endptproj").data;
|
||
return {
|
||
type: "LEADER",
|
||
...e,
|
||
styleName: _,
|
||
isArrowheadEnabled: o > 0,
|
||
isSpline: i > 0,
|
||
leaderCreationFlag: s,
|
||
isHooklineSameDirection: r > 0,
|
||
isHooklineExists: l > 0,
|
||
textHeight: d,
|
||
textWidth: I,
|
||
numberOfVertices: c,
|
||
vertices: C,
|
||
byBlockColor: A,
|
||
normal: u,
|
||
horizontalDirection: T,
|
||
offsetFromBlock: h,
|
||
offsetFromAnnotation: Y
|
||
};
|
||
}
|
||
convertLine(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "start").data, o = a.dwg_dynapi_entity_value(t, "end").data, i = a.dwg_dynapi_entity_value(t, "thickness").data, s = a.dwg_dynapi_entity_value(t, "extrusion").data;
|
||
return {
|
||
type: "LINE",
|
||
...e,
|
||
thickness: i,
|
||
startPoint: _,
|
||
endPoint: o,
|
||
extrusionDirection: s
|
||
};
|
||
}
|
||
convertLWPolyline(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "num_points").data, o = a.dwg_dynapi_entity_value(t, "flag").data, i = a.dwg_dynapi_entity_value(t, "const_width").data, s = a.dwg_dynapi_entity_value(t, "elevation").data, r = a.dwg_dynapi_entity_value(t, "thickness").data, l = a.dwg_dynapi_entity_value(t, "extrusion").data, d = [], I = a.dwg_dynapi_entity_value(t, "num_points").data, c = a.dwg_dynapi_entity_value(t, "points").data, E = a.dwg_ptr_to_point2d_array(c, I), C = a.dwg_dynapi_entity_value(t, "num_bulges").data, A = a.dwg_dynapi_entity_value(t, "bulges").data, u = a.dwg_ptr_to_double_array(A, C);
|
||
return E.forEach((T, h) => {
|
||
d.push({
|
||
id: h,
|
||
x: T.x,
|
||
y: T.y,
|
||
bulge: u.length > h ? u[h] : 0
|
||
});
|
||
}), {
|
||
type: "LWPOLYLINE",
|
||
...e,
|
||
numberOfVertices: _,
|
||
flag: o,
|
||
constantWidth: i,
|
||
elevation: s,
|
||
thickness: r,
|
||
extrusionDirection: l,
|
||
vertices: d
|
||
};
|
||
}
|
||
convertMLine(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "scale").data, o = a.dwg_dynapi_entity_value(t, "flags").data, i = a.dwg_dynapi_entity_value(t, "justification").data, s = a.dwg_dynapi_entity_value(t, "base_point").data, r = a.dwg_dynapi_entity_value(t, "extrusion").data, l = a.dwg_dynapi_entity_value(t, "num_lines").data, d = a.dwg_dynapi_entity_value(t, "num_verts").data, I = a.dwg_dynapi_entity_value(t, "verts").data, c = a.dwg_ptr_to_mline_vertex_array(I, d), E = [];
|
||
return c.forEach((C) => {
|
||
E.push({
|
||
vertex: C.vertex,
|
||
vertexDirection: C.vertex_direction,
|
||
miterDirection: C.miter_direction,
|
||
numberOfLines: C.num_lines,
|
||
lines: C.lines.map((A) => ({
|
||
numberOfSegmentParams: A.num_segparms,
|
||
segmentParams: A.segparms,
|
||
numberOfAreaFillParams: A.num_areafillparms,
|
||
areaFillParams: A.areafillparms
|
||
}))
|
||
});
|
||
}), {
|
||
type: "MLINE",
|
||
...e,
|
||
scale: _,
|
||
flags: o,
|
||
justification: i,
|
||
startPoint: s,
|
||
extrusionDirection: r,
|
||
numberOfLines: l,
|
||
numberOfVertices: d,
|
||
vertices: E,
|
||
mlineStyle: ""
|
||
// TODO: Set the correct value
|
||
};
|
||
}
|
||
convertOle2Frame(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "oleversion").data, o = a.dwg_dynapi_entity_value(t, "oleclient").data, i = a.dwg_dynapi_entity_value(t, "data_size").data, s = a.dwg_dynapi_entity_value(t, "pt1").data, r = a.dwg_dynapi_entity_value(t, "pt2").data, l = a.dwg_dynapi_entity_value(t, "lock_aspect").data, d = a.dwg_dynapi_entity_value(t, "type").data, I = a.dwg_dynapi_entity_value(t, "mode").data, c = a.dwg_dynapi_entity_value(t, "data").data;
|
||
return {
|
||
type: "OLE2FRAME",
|
||
...e,
|
||
oleVersion: _,
|
||
oleClient: o,
|
||
dataSize: i,
|
||
leftUpPoint: s,
|
||
rightDownPoint: r,
|
||
lockAspect: l,
|
||
oleObjectType: d,
|
||
tileModeDescriptor: I,
|
||
binaryData: c
|
||
};
|
||
}
|
||
convertOleFrame(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "flag").data, o = a.dwg_dynapi_entity_value(t, "mode").data, i = a.dwg_dynapi_entity_value(t, "data_size").data, s = a.dwg_dynapi_entity_value(t, "data").data;
|
||
return {
|
||
type: "OLEFRAME",
|
||
...e,
|
||
flag: _,
|
||
mode: o,
|
||
dataSize: i,
|
||
binaryData: s
|
||
};
|
||
}
|
||
convertMText(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "ins_pt").data, o = a.dwg_dynapi_entity_value(t, "text_height").data, i = a.dwg_dynapi_entity_value(t, "rect_height").data, s = a.dwg_dynapi_entity_value(t, "rect_width").data, r = a.dwg_dynapi_entity_value(t, "extents_width").data, l = a.dwg_dynapi_entity_value(t, "extents_height").data, d = a.dwg_dynapi_entity_value(t, "attachment").data, I = a.dwg_dynapi_entity_value(t, "flow_dir").data, c = a.dwg_dynapi_entity_value(t, "text").data, E = a.dwg_entity_mtext_get_style_name(t), C = a.dwg_dynapi_entity_value(t, "extrusion").data, A = a.dwg_dynapi_entity_value(t, "x_axis_dir").data, u = a.dwg_dynapi_entity_value(t, "linespace_style").data, T = a.dwg_dynapi_entity_value(t, "linespace_factor").data, h = a.dwg_dynapi_entity_value(t, "bg_fill_flag").data, Y = a.dwg_dynapi_entity_value(t, "bg_fill_scale").data, R = a.dwg_dynapi_entity_value(t, "bg_fill_color").data, f = a.dwg_dynapi_entity_value(t, "bg_fill_trans").data, v = a.dwg_dynapi_entity_value(t, "column_type").data, G = a.dwg_dynapi_entity_value(t, "flow_reversed").data, S = a.dwg_dynapi_entity_value(t, "auto_height").data, y = a.dwg_dynapi_entity_value(t, "column_width").data, x = a.dwg_dynapi_entity_value(t, "gutter").data, M = a.dwg_dynapi_entity_value(t, "num_column_heights").data, g = a.dwg_dynapi_entity_value(t, "column_heights").data, p = a.dwg_ptr_to_double_array(g, M);
|
||
return {
|
||
type: "MTEXT",
|
||
...e,
|
||
insertionPoint: _,
|
||
textHeight: o,
|
||
rectHeight: i,
|
||
rectWidth: s,
|
||
extentsHeight: l,
|
||
extentsWidth: r,
|
||
attachmentPoint: d,
|
||
drawingDirection: I,
|
||
text: c,
|
||
styleName: E,
|
||
extrusionDirection: C,
|
||
direction: A,
|
||
rotation: 0,
|
||
// TODO: Didn't find the corresponding field in libredwg
|
||
lineSpacingStyle: u,
|
||
lineSpacing: T,
|
||
backgroundFill: h,
|
||
// backgroundColor: backgroundColor.rgb, // TODO: Double check whether it should be color index
|
||
fillBoxScale: Y,
|
||
backgroundFillColor: R.rgb,
|
||
// TODO: Double check whether it should be color index
|
||
backgroundFillTransparency: f,
|
||
columnType: v,
|
||
// columnCount: columnCount,
|
||
columnFlowReversed: G,
|
||
columnAutoHeight: S,
|
||
columnWidth: y,
|
||
columnGutter: x,
|
||
columnHeightCount: M,
|
||
columnHeights: p
|
||
};
|
||
}
|
||
convertPoint(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "x").data, o = a.dwg_dynapi_entity_value(t, "y").data, i = a.dwg_dynapi_entity_value(t, "z").data, s = a.dwg_dynapi_entity_value(t, "thickness").data, r = a.dwg_dynapi_entity_value(t, "extrusion").data, l = a.dwg_dynapi_entity_value(t, "x_ang").data;
|
||
return {
|
||
type: "POINT",
|
||
...e,
|
||
position: { x: _, y: o, z: i },
|
||
thickness: s,
|
||
extrusionDirection: r,
|
||
angle: l
|
||
};
|
||
}
|
||
convertPolyline2d(t, e, a) {
|
||
const _ = this.libredwg, o = _.dwg_dynapi_entity_value(t, "flag").data, i = _.dwg_dynapi_entity_value(t, "curve_type").data, s = _.dwg_dynapi_entity_value(t, "start_width").data, r = _.dwg_dynapi_entity_value(t, "end_width").data, l = _.dwg_dynapi_entity_value(t, "elevation").data, d = _.dwg_dynapi_entity_value(t, "thickness").data, I = _.dwg_dynapi_entity_value(t, "extrusion").data, c = _.dwg_entity_polyline_2d_get_vertices(a);
|
||
return {
|
||
type: "POLYLINE2D",
|
||
...e,
|
||
flag: o,
|
||
smoothType: i,
|
||
startWidth: s,
|
||
endWidth: r,
|
||
elevation: l,
|
||
thickness: d,
|
||
extrusionDirection: I,
|
||
vertices: c.map((E) => ({
|
||
x: E.point.x,
|
||
y: E.point.y,
|
||
z: E.point.z,
|
||
startWidth: E.start_width,
|
||
endWidth: E.end_width,
|
||
bulge: E.bulge,
|
||
flag: E.flag,
|
||
tangentDirection: E.tangent_dir
|
||
})),
|
||
meshMVertexCount: 0,
|
||
meshNVertexCount: 0,
|
||
surfaceMDensity: 0,
|
||
surfaceNDensity: 0
|
||
};
|
||
}
|
||
convertPolyline3d(t, e, a) {
|
||
const _ = this.libredwg, o = _.dwg_dynapi_entity_value(t, "flag").data, i = _.dwg_dynapi_entity_value(t, "curve_type").data, s = _.dwg_dynapi_entity_value(t, "start_width").data, r = _.dwg_dynapi_entity_value(t, "end_width").data, l = _.dwg_dynapi_entity_value(t, "extrusion").data, d = _.dwg_entity_polyline_3d_get_vertices(a);
|
||
return {
|
||
type: "POLYLINE3D",
|
||
...e,
|
||
flag: o,
|
||
smoothType: i,
|
||
startWidth: s,
|
||
endWidth: r,
|
||
extrusionDirection: l,
|
||
vertices: d.map((I) => ({
|
||
x: I.point.x,
|
||
y: I.point.y,
|
||
z: I.point.z,
|
||
flag: I.flag
|
||
}))
|
||
};
|
||
}
|
||
convertProxy(t, e) {
|
||
const _ = this.libredwg.dwg_dynapi_entity_value(t, "class_id").data;
|
||
return {
|
||
type: "PROXY",
|
||
...e,
|
||
applicationEntityClassId: _
|
||
};
|
||
}
|
||
convertRay(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "point").data, o = a.dwg_dynapi_entity_value(t, "vector").data;
|
||
return {
|
||
type: "RAY",
|
||
...e,
|
||
firstPoint: _,
|
||
unitDirection: o
|
||
};
|
||
}
|
||
convertSection(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "state").data, o = a.dwg_dynapi_entity_value(t, "flag").data, i = a.dwg_dynapi_entity_value(t, "name").data, s = a.dwg_dynapi_entity_value(t, "vert_dir").data, r = a.dwg_dynapi_entity_value(t, "top_height").data, l = a.dwg_dynapi_entity_value(t, "bottom_height").data, d = a.dwg_dynapi_entity_value(t, "indicator_alpha").data, I = a.dwg_dynapi_entity_value(t, "indicator_color").data, c = a.dwg_dynapi_entity_value(t, "num_verts").data, E = a.dwg_dynapi_entity_value(t, "verts").data, C = c > 0 ? a.dwg_ptr_to_point3d_array(E, c) : [], A = a.dwg_dynapi_entity_value(t, "num_blverts").data, u = a.dwg_dynapi_entity_value(t, "blverts").data, T = A > 0 ? a.dwg_ptr_to_point3d_array(u, A) : [], h = a.dwg_dynapi_entity_value(t, "geometrySettingHardId").data, Y = a.dwg_ref_get_handle_absolute_ref(h);
|
||
return {
|
||
type: "SECTION",
|
||
...e,
|
||
state: _,
|
||
flags: o,
|
||
name: i,
|
||
verticalDirection: s,
|
||
topHeight: r,
|
||
bottomHeight: l,
|
||
indicatorTransparency: d,
|
||
indicatorColor: I.rgb,
|
||
numberOfVertices: c,
|
||
vertices: C,
|
||
numberOfBackLineVertices: A,
|
||
backLineVertices: T,
|
||
geometrySettingHardId: Y
|
||
};
|
||
}
|
||
convertSolid(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "corner1").data, o = a.dwg_dynapi_entity_value(t, "corner2").data, i = a.dwg_dynapi_entity_value(t, "corner3").data, s = a.dwg_dynapi_entity_value(t, "corner4").data, r = a.dwg_dynapi_entity_value(t, "thickness").data, l = a.dwg_dynapi_entity_value(t, "extrusion").data;
|
||
return {
|
||
type: "SOLID",
|
||
...e,
|
||
corner1: _,
|
||
corner2: o,
|
||
corner3: i,
|
||
corner4: s,
|
||
thickness: r,
|
||
extrusionDirection: l
|
||
};
|
||
}
|
||
convertSpline(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "splineflags").data, o = a.dwg_dynapi_entity_value(t, "degree").data, i = a.dwg_dynapi_entity_value(t, "knot_tol").data, s = a.dwg_dynapi_entity_value(t, "num_knots").data, r = a.dwg_dynapi_entity_value(t, "knots").data, l = a.dwg_ptr_to_double_array(r, s), d = a.dwg_dynapi_entity_value(t, "fit_tol").data, I = a.dwg_dynapi_entity_value(t, "num_fit_pts").data, c = a.dwg_dynapi_entity_value(t, "fit_pts").data, E = a.dwg_ptr_to_point3d_array(c, I), C = a.dwg_dynapi_entity_value(t, "weighted").data, A = a.dwg_dynapi_entity_value(t, "ctrl_tol").data, u = a.dwg_dynapi_entity_value(t, "num_ctrl_pts").data, T = a.dwg_dynapi_entity_value(t, "ctrl_pts").data, h = a.dwg_ptr_to_point4d_array(T, u), Y = a.dwg_dynapi_entity_value(t, "beg_tan_vec").data, R = a.dwg_dynapi_entity_value(t, "end_tan_vec").data;
|
||
return {
|
||
type: "SPLINE",
|
||
...e,
|
||
// normal?: DwgPoint3D
|
||
flag: _,
|
||
degree: o,
|
||
numberOfKnots: s,
|
||
numberOfControlPoints: u,
|
||
numberOfFitPoints: I,
|
||
knotTolerance: i,
|
||
controlTolerance: A,
|
||
fitTolerance: d,
|
||
startTangent: Y,
|
||
endTangent: R,
|
||
knots: l,
|
||
weights: C ? h.map((f) => f.w) : void 0,
|
||
controlPoints: h.map((f) => ({
|
||
x: f.x,
|
||
y: f.y,
|
||
z: f.z
|
||
})),
|
||
fitPoints: E
|
||
};
|
||
}
|
||
convertTable(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_subclass_value(t, "ldata", "name").data, o = a.dwg_dynapi_entity_value(t, "ins_pt").data, i = a.dwg_dynapi_entity_value(t, "horiz_direction").data, s = a.dwg_dynapi_entity_value(t, "flag_for_table_value").data, r = a.dwg_dynapi_entity_value(t, "num_rows").data, l = a.dwg_dynapi_entity_value(t, "num_cols").data, d = a.dwg_dynapi_entity_value(t, "row_heights").data, I = a.dwg_ptr_to_double_array(d, r), c = a.dwg_dynapi_entity_value(t, "col_widths").data, E = a.dwg_ptr_to_double_array(c, l), C = a.dwg_dynapi_entity_value(t, "tablestyle").data, A = L(a.dwg_ref_get_absref(C)), u = a.dwg_dynapi_entity_value(t, "block_header").data, T = L(a.dwg_ref_get_absref(u)), h = a.dwg_dynapi_entity_value(t, "table_flag_override").data, Y = a.dwg_dynapi_entity_value(t, "border_color_overrides_flag").data, R = a.dwg_dynapi_entity_value(t, "border_lineweight_overrides_flag").data, f = a.dwg_dynapi_entity_value(t, "border_visibility_overrides_flag").data, v = a.dwg_dynapi_entity_value(t, "num_cells").data, G = a.dwg_dynapi_entity_value(t, "cells").data, S = a.dwg_ptr_to_table_cell_array(G, v);
|
||
return {
|
||
type: "ACAD_TABLE",
|
||
...e,
|
||
name: _,
|
||
startPoint: o,
|
||
directionVector: i,
|
||
// attachmentPoint: DwgAttachmentPoint
|
||
tableValue: s,
|
||
rowCount: r,
|
||
columnCount: l,
|
||
overrideFlag: h,
|
||
borderColorOverrideFlag: Y,
|
||
borderLineWeightOverrideFlag: R,
|
||
borderVisibilityOverrideFlag: f,
|
||
rowHeightArr: I,
|
||
columnWidthArr: E,
|
||
tableStyleId: A,
|
||
blockRecordHandle: T,
|
||
cells: this.convertTableCells(S),
|
||
bmpPreview: ""
|
||
};
|
||
}
|
||
convertTableCells(t) {
|
||
const e = [];
|
||
return t.forEach((a) => ({
|
||
text: a.text_value,
|
||
attachmentPoint: a.cell_alignment,
|
||
textStyle: a.text_style,
|
||
// TODO: Set the text style name instead of handle
|
||
rotation: a.rotation,
|
||
cellType: a.type,
|
||
flagValue: a.flags,
|
||
mergedValue: a.is_merged_value,
|
||
autoFit: a.is_autofit_flag,
|
||
// borderWidth?: number
|
||
// borderHeight?: number
|
||
topBorderVisibility: a.top_visibility,
|
||
bottomBorderVisibility: a.bottom_visibility,
|
||
leftBorderVisibility: a.left_visibility,
|
||
rightBorderVisibility: a.right_visibility,
|
||
overrideFlag: a.cell_flag_override,
|
||
virtualEdgeFlag: a.virtual_edge_flag,
|
||
// fieldObjetId?: string
|
||
blockTableRecordI: a.block_handle.absolute_ref,
|
||
blockScale: a.block_scale,
|
||
blockAttrNum: a.attr_defs.length,
|
||
attrDefineId: a.attr_defs.map((_) => _.attdef.absolute_ref),
|
||
// attrText?: string
|
||
// textHeight: number
|
||
extendedCellFlags: a.additional_data_flag
|
||
})), e;
|
||
}
|
||
convertTextBase(t) {
|
||
const e = this.libredwg, a = e.dwg_dynapi_entity_value(t, "text_value").data, _ = e.dwg_dynapi_entity_value(t, "thickness").data, o = e.dwg_dynapi_entity_value(t, "ins_pt").data, i = e.dwg_dynapi_entity_value(t, "alignment_pt").data, s = e.dwg_dynapi_entity_value(t, "rotation").data, r = e.dwg_dynapi_entity_value(t, "height").data, l = e.dwg_dynapi_entity_value(t, "width_factor").data, d = e.dwg_dynapi_entity_value(t, "oblique_angle").data, I = e.dwg_entity_text_get_style_name(t), c = e.dwg_dynapi_entity_value(t, "generation").data, E = e.dwg_dynapi_entity_value(t, "horiz_alignment").data, C = e.dwg_dynapi_entity_value(t, "vert_alignment").data, A = e.dwg_dynapi_entity_value(t, "extrusion").data;
|
||
return {
|
||
text: a,
|
||
thickness: _,
|
||
startPoint: o,
|
||
endPoint: i,
|
||
textHeight: r,
|
||
rotation: s,
|
||
xScale: l,
|
||
obliqueAngle: d,
|
||
styleName: I,
|
||
generationFlag: c,
|
||
halign: E,
|
||
valign: C,
|
||
extrusionDirection: A
|
||
};
|
||
}
|
||
convertText(t, e) {
|
||
return {
|
||
type: "TEXT",
|
||
...e,
|
||
...this.convertTextBase(t)
|
||
};
|
||
}
|
||
convertTolerance(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "ins_pt").data, o = a.dwg_dynapi_entity_value(t, "text_value").data, i = a.dwg_dynapi_entity_value(t, "x_direction").data, s = a.dwg_dynapi_entity_value(t, "extrusion").data, r = a.dwg_entity_get_dimstyle_name(t);
|
||
return {
|
||
type: "TOLERANCE",
|
||
...e,
|
||
styleName: r,
|
||
insertionPoint: _,
|
||
text: o,
|
||
extrusionDirection: s,
|
||
xAxisDirection: i
|
||
};
|
||
}
|
||
convertViewport(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "center").data, o = a.dwg_dynapi_entity_value(t, "width").data, i = a.dwg_dynapi_entity_value(t, "height").data, s = a.dwg_dynapi_entity_value(t, "on_off").data, r = a.dwg_dynapi_entity_value(t, "VIEWCTR").data, l = a.dwg_dynapi_entity_value(t, "SNAPBASE").data, d = a.dwg_dynapi_entity_value(t, "SNAPUNIT").data, I = a.dwg_dynapi_entity_value(t, "GRIDUNIT").data, c = a.dwg_dynapi_entity_value(t, "VIEWDIR").data, E = a.dwg_dynapi_entity_value(t, "view_target").data, C = a.dwg_dynapi_entity_value(t, "lens_length").data, A = a.dwg_dynapi_entity_value(t, "front_clip_z").data, u = a.dwg_dynapi_entity_value(t, "back_clip_z").data, T = a.dwg_dynapi_entity_value(t, "VIEWSIZE").data, h = a.dwg_dynapi_entity_value(t, "SNAPANG").data, Y = a.dwg_dynapi_entity_value(t, "twist_angle").data, R = a.dwg_dynapi_entity_value(t, "circle_zoom").data, f = a.dwg_dynapi_entity_value(t, "status_flag").data, v = a.dwg_dynapi_entity_value(t, "style_sheet").data, G = a.dwg_dynapi_entity_value(t, "render_mode").data, S = a.dwg_dynapi_entity_value(t, "UCSVP").data, y = a.dwg_dynapi_entity_value(t, "ucsorg").data, x = a.dwg_dynapi_entity_value(t, "ucsxdir").data, M = a.dwg_dynapi_entity_value(t, "ucsydir").data, g = a.dwg_dynapi_entity_value(t, "named_ucs").data, p = a.dwg_ref_get_absref(g), O = a.dwg_dynapi_entity_value(t, "base_ucs").data, b = a.dwg_ref_get_absref(O), k = a.dwg_dynapi_entity_value(t, "UCSORTHOVIEW").data, X = a.dwg_dynapi_entity_value(t, "ucs_elevation").data, H = a.dwg_dynapi_entity_value(t, "shadeplot_mode").data, w = a.dwg_dynapi_entity_value(t, "use_default_lights").data, K = a.dwg_dynapi_entity_value(t, "default_lighting_type").data, B = a.dwg_dynapi_entity_value(t, "brightness").data, V = a.dwg_dynapi_entity_value(t, "contrast").data, nt = a.dwg_dynapi_entity_value(t, "grid_major").data, at = a.dwg_dynapi_entity_value(t, "background").data, et = a.dwg_ref_get_absref(at), _t = a.dwg_dynapi_entity_value(t, "shadeplot").data, it = a.dwg_ref_get_absref(_t), ot = a.dwg_dynapi_entity_value(t, "visualstyle").data, st = a.dwg_ref_get_absref(ot), rt = a.dwg_dynapi_entity_value(t, "sun").data, dt = a.dwg_ref_get_absref(rt);
|
||
return {
|
||
type: "VIEWPORT",
|
||
...e,
|
||
viewportCenter: _,
|
||
width: o,
|
||
height: i,
|
||
status: s,
|
||
viewportId: 0,
|
||
// Will be set later in LibreDwgConverter.convert
|
||
displayCenter: r,
|
||
snapBase: l,
|
||
snapSpacing: d,
|
||
gridSpacing: I,
|
||
viewDirection: c,
|
||
targetPoint: E,
|
||
perspectiveLensLength: C,
|
||
frontClipZ: A,
|
||
backClipZ: u,
|
||
viewHeight: T,
|
||
snapAngle: h,
|
||
viewTwistAngle: Y,
|
||
circleZoomPercent: R,
|
||
statusBitFlags: f,
|
||
sheetName: v,
|
||
renderMode: G,
|
||
ucsPerViewport: S,
|
||
ucsOrigin: y,
|
||
ucsXAxis: x,
|
||
ucsYAxis: M,
|
||
ucsId: L(p),
|
||
ucsBaseId: L(b),
|
||
orthographicType: k,
|
||
elevation: X,
|
||
shadePlotMode: H,
|
||
majorGridFrequency: nt,
|
||
backgroundId: L(et),
|
||
shadePlotId: L(it),
|
||
visualStyleId: L(st),
|
||
isDefaultLighting: !!w,
|
||
defaultLightingType: K,
|
||
brightness: B,
|
||
contrast: V,
|
||
sunId: L(dt)
|
||
};
|
||
}
|
||
convertWipeout(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "class_version").data, o = a.dwg_dynapi_entity_value(t, "pt0").data, i = a.dwg_dynapi_entity_value(t, "uvec").data, s = a.dwg_dynapi_entity_value(t, "vvec").data, r = a.dwg_dynapi_entity_value(t, "image_size").data, l = a.dwg_dynapi_entity_value(t, "display_props").data, d = a.dwg_dynapi_entity_value(t, "clipping").data, I = a.dwg_dynapi_entity_value(t, "brightness").data, c = a.dwg_dynapi_entity_value(t, "contrast").data, E = a.dwg_dynapi_entity_value(t, "fade").data, C = a.dwg_dynapi_entity_value(t, "clip_mode").data, A = a.dwg_dynapi_entity_value(t, "clip_boundary_type").data, u = a.dwg_dynapi_entity_value(t, "num_clip_verts").data, T = a.dwg_dynapi_entity_value(t, "clip_verts").data, h = a.dwg_ptr_to_point2d_array(T, u), Y = a.dwg_dynapi_entity_value(t, "imagedef").data, R = a.dwg_ref_get_absref(Y), f = a.dwg_dynapi_entity_value(t, "imagedefreactor").data, v = a.dwg_ref_get_absref(f);
|
||
return {
|
||
type: "WIPEOUT",
|
||
...e,
|
||
version: _,
|
||
position: o,
|
||
uPixel: i,
|
||
vPixel: s,
|
||
imageSize: r,
|
||
imageDefHandle: R,
|
||
flags: l,
|
||
clipping: d,
|
||
brightness: I,
|
||
contrast: c,
|
||
fade: E,
|
||
imageDefReactorHandle: v,
|
||
clippingBoundaryType: A,
|
||
countBoundaryPoints: u,
|
||
clippingBoundaryPath: h,
|
||
clipMode: C
|
||
};
|
||
}
|
||
convertXline(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_dynapi_entity_value(t, "point").data, o = a.dwg_dynapi_entity_value(t, "vector").data;
|
||
return {
|
||
type: "XLINE",
|
||
...e,
|
||
firstPoint: _,
|
||
unitDirection: o
|
||
};
|
||
}
|
||
getDimensionCommonAttrs(t) {
|
||
const e = this.libredwg, a = e.dwg_dynapi_entity_value(t, "class_version").data, _ = e.dwg_entity_get_block_name(t, "block"), o = e.dwg_dynapi_entity_value(t, "def_pt").data, i = e.dwg_dynapi_entity_value(t, "text_midpt").data, s = e.dwg_dynapi_entity_value(t, "attachmentPoint").data, r = e.dwg_dynapi_entity_value(t, "flag").data, l = e.dwg_dynapi_entity_value(t, "lspace_factor").data, d = e.dwg_dynapi_entity_value(t, "lspace_factor").data, I = e.dwg_dynapi_entity_value(t, "act_measurement").data, c = e.dwg_dynapi_entity_value(t, "user_text").data, E = e.dwg_dynapi_entity_value(t, "text_rotation").data, C = e.dwg_dynapi_entity_value(t, "ins_rotation").data, A = e.dwg_dynapi_entity_value(t, "extrusion").data, u = e.dwg_entity_get_dimstyle_name(t);
|
||
return {
|
||
type: "DIMENSION",
|
||
version: a,
|
||
name: _,
|
||
definitionPoint: o,
|
||
textPoint: i,
|
||
dimensionType: r,
|
||
attachmentPoint: s,
|
||
textLineSpacingStyle: l,
|
||
textLineSpacingFactor: d || 1,
|
||
measurement: I,
|
||
text: c,
|
||
textRotation: E,
|
||
ocsRotation: C,
|
||
extrusionDirection: A,
|
||
styleName: u
|
||
};
|
||
}
|
||
getCommonAttrs(t) {
|
||
const e = this.libredwg, a = e.dwg_object_entity_get_color_object(t), _ = a.method, o = a.index;
|
||
let i;
|
||
(_ == 194 || (a.rgb >>> 24 & 255) === 194) && (i = a.rgb & 16777215);
|
||
const s = this.getLayerName(t), r = e.dwg_object_entity_get_handle_object(t), l = e.dwg_object_entity_get_ownerhandle_object(t), d = e.dwg_object_entity_get_xdicobjhandle_object(t), I = this.getLtypeName(t), c = e.dwg_object_entity_get_line_weight(t), E = e.dwg_object_entity_get_ltype_scale(t), C = !e.dwg_object_entity_get_invisible(t), A = e.dwg_object_entity_get_xdata(t);
|
||
return {
|
||
handle: L(r.value),
|
||
ownerDictionaryHardId: L(d.absolute_ref),
|
||
ownerBlockRecordSoftId: L(l.absolute_ref),
|
||
layer: s,
|
||
color: i,
|
||
colorIndex: o,
|
||
colorName: a.name,
|
||
lineType: I,
|
||
lineweight: c,
|
||
lineTypeScale: E,
|
||
isVisible: C,
|
||
transparency: a.alpha,
|
||
transparencyType: a.alpha_type,
|
||
xdata: A
|
||
};
|
||
}
|
||
getLayerName(t) {
|
||
const a = this.libredwg.dwg_object_entity_get_layer_object_ref(t);
|
||
return this.layers.get(L(a.handleref.value)) ?? "0";
|
||
}
|
||
getLtypeName(t) {
|
||
const a = this.libredwg.dwg_object_entity_get_ltype_object_ref(t);
|
||
return this.ltypes.get(L(a.handleref.value)) ?? "";
|
||
}
|
||
}
|
||
class mt {
|
||
constructor(t) {
|
||
N(this, "libredwg");
|
||
N(this, "entityConverter");
|
||
this.libredwg = t, this.entityConverter = new pn(t);
|
||
}
|
||
convert(t) {
|
||
this.entityConverter.clear();
|
||
const e = {
|
||
tables: {
|
||
APPID: {
|
||
entries: []
|
||
},
|
||
BLOCK_RECORD: {
|
||
entries: []
|
||
},
|
||
DIMSTYLE: {
|
||
entries: []
|
||
},
|
||
LAYER: {
|
||
entries: []
|
||
},
|
||
LTYPE: {
|
||
entries: []
|
||
},
|
||
STYLE: {
|
||
entries: []
|
||
},
|
||
VPORT: {
|
||
entries: []
|
||
}
|
||
},
|
||
objects: {
|
||
DICTIONARY: [],
|
||
IMAGEDEF: [],
|
||
LAYOUT: [],
|
||
SPATIAL_FILTER: []
|
||
},
|
||
header: {},
|
||
entities: [],
|
||
classes: []
|
||
}, a = this.libredwg;
|
||
this.convertHeader(t, e.header), this.convertClasses(t, e.classes);
|
||
const _ = a.dwg_get_num_objects(t);
|
||
for (let i = 0; i < _; i++) {
|
||
const s = a.dwg_get_object(t, i);
|
||
if (s) {
|
||
const r = a.dwg_object_to_object_tio(s);
|
||
if (r)
|
||
switch (a.dwg_object_get_fixedtype(s)) {
|
||
case P.DWG_TYPE_LAYER:
|
||
{
|
||
const d = this.convertLayer(r, s);
|
||
e.tables.LAYER.entries.push(d), this.entityConverter.layers.set(d.handle, d.name);
|
||
}
|
||
break;
|
||
case P.DWG_TYPE_LTYPE:
|
||
{
|
||
const d = this.convertLineType(r, s);
|
||
e.tables.LTYPE.entries.push(d), this.entityConverter.ltypes.set(d.handle, d.name);
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
for (let i = 0; i < _; i++) {
|
||
const s = a.dwg_get_object(t, i);
|
||
if (s) {
|
||
const r = a.dwg_object_to_object_tio(s);
|
||
if (r)
|
||
switch (a.dwg_object_get_fixedtype(s)) {
|
||
case P.DWG_TYPE_APPID:
|
||
e.tables.APPID.entries.push(this.convertAppId(r));
|
||
break;
|
||
case P.DWG_TYPE_BLOCK_HEADER:
|
||
{
|
||
const d = this.convertBlockRecord(r, s);
|
||
e.tables.BLOCK_RECORD.entries.push(d), (Bt(d.name) || xn(d.name)) && d.entities.forEach((I) => {
|
||
e.entities.push(I), I.type === "INSERT" && I.attribs.forEach((c) => {
|
||
e.entities.push(c);
|
||
});
|
||
});
|
||
}
|
||
break;
|
||
case P.DWG_TYPE_DIMSTYLE:
|
||
e.tables.DIMSTYLE.entries.push(this.convertDimStyle(r, s));
|
||
break;
|
||
case P.DWG_TYPE_STYLE:
|
||
e.tables.STYLE.entries.push(this.convertStyle(r, s));
|
||
break;
|
||
case P.DWG_TYPE_VPORT:
|
||
e.tables.VPORT.entries.push(this.convertViewport(r, s));
|
||
break;
|
||
case P.DWG_TYPE_DICTIONARY:
|
||
e.objects.DICTIONARY.push(this.convertDictionary(r, s));
|
||
break;
|
||
case P.DWG_TYPE_IMAGEDEF:
|
||
e.objects.IMAGEDEF.push(this.convertImageDef(r, s));
|
||
break;
|
||
case P.DWG_TYPE_LAYOUT:
|
||
e.objects.LAYOUT.push(this.convertLayout(r, s));
|
||
break;
|
||
case P.DWG_TYPE_SPATIAL_FILTER:
|
||
e.objects.SPATIAL_FILTER.push(this.convertSpatialFilter(r, s));
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
const o = e.entities.filter((i) => i.type === "VIEWPORT");
|
||
return o.sort((i, s) => {
|
||
const r = parseInt(i.handle, 16), l = parseInt(s.handle, 16);
|
||
return r - l;
|
||
}), o.forEach((i, s) => {
|
||
i.viewportId = s + 1;
|
||
}), e;
|
||
}
|
||
getConversionStats() {
|
||
return {
|
||
unknownEntityCount: this.entityConverter.unknownEntityCount
|
||
};
|
||
}
|
||
convertHeader(t, e) {
|
||
const a = this.libredwg;
|
||
Dn.forEach((_) => {
|
||
let o = _;
|
||
(_ == "DIMBLK" || _ == "DIMBLK1" || _ == "DIMBLK2") && (o = o + "_T");
|
||
let i = a.dwg_dynapi_header_value(t, o).data;
|
||
_ == "CELTYPE" || _ == "CLAYER" || _ == "CLAYER" || _ == "DIMSTYLE" || _ == "DIMTXSTY" || _ == "TEXTSTYLE" ? i = i ? a.dwg_ref_get_object_name(i) : "" : _ == "DRAGVS" && (i = i ? a.dwg_ref_get_absref(i) : 2), e[_] = i;
|
||
});
|
||
}
|
||
convertClasses(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_get_num_classes(t);
|
||
for (let o = 0; o < _; o++) {
|
||
const i = a.dwg_get_class(t, o);
|
||
e.push({
|
||
dxfName: i.dxfname,
|
||
cppName: i.cppname,
|
||
appName: i.appname,
|
||
capabilitiesFlag: i.proxyflag,
|
||
instanceCount: i.num_instances,
|
||
wasAProxyFlag: i.s_zombie,
|
||
// DWG_TYPE_PROXY_ENTITY = 0x1F2 /* 498 */,
|
||
// DWG_TYPE_PROXY_OBJECT = 0x1F3 /* 499 */,
|
||
isAnEntityFlag: i.item_class_id === 498
|
||
});
|
||
}
|
||
}
|
||
convertAppId(t) {
|
||
const e = this.libredwg, a = e.dwg_dynapi_entity_value(t, "name").data, _ = e.dwg_dynapi_entity_value(t, "flag").data;
|
||
return {
|
||
name: a,
|
||
standardFlag: _
|
||
};
|
||
}
|
||
convertBlockRecord(t, e) {
|
||
const a = this.libredwg, _ = this.getCommonTableEntryAttrs(t, e), o = a.dwg_entity_block_header_get_block(t);
|
||
o.name && (_.name = o.name);
|
||
const i = a.dwg_dynapi_entity_value(t, "num_owned").data, s = a.dwg_dynapi_entity_value(t, "flag").data, r = a.dwg_dynapi_entity_value(t, "description").data, l = a.dwg_dynapi_entity_value(t, "base_pt").data, d = a.dwg_dynapi_entity_value(t, "insert_units").data, I = a.dwg_dynapi_entity_value(t, "explodable").data, c = a.dwg_dynapi_entity_value(t, "block_scaling").data, E = a.dwg_dynapi_entity_value(t, "layout").data, C = L(a.dwg_ref_get_absref(E));
|
||
let A = "";
|
||
const u = (Y) => {
|
||
const R = new Array(Y.length);
|
||
for (let f = 0; f < Y.length; f++)
|
||
R[f] = Y[f].toString(16).toUpperCase();
|
||
return R.join("");
|
||
}, T = a.dwg_entity_block_header_get_preview(t);
|
||
T && T.length > 0 && (A = u(T));
|
||
let h = this.convertEntities(e, _.handle);
|
||
if (!h || h.length == 0) {
|
||
h = [];
|
||
const Y = a.dwg_dynapi_entity_value(t, "entities").data;
|
||
if (Y) {
|
||
const R = a.dwg_ptr_to_object_ref_ptr_array(Y, i), f = this.entityConverter;
|
||
for (let v = 0; v < i; v++) {
|
||
const G = a.dwg_ref_get_object(R[v]), S = f.convert(G);
|
||
S && (S.ownerBlockRecordSoftId = _.handle, h.push(S));
|
||
}
|
||
}
|
||
}
|
||
return {
|
||
..._,
|
||
flags: s,
|
||
description: r,
|
||
basePoint: l,
|
||
layout: C,
|
||
insertionUnits: d,
|
||
explodability: I,
|
||
scalability: c,
|
||
bmpPreview: A,
|
||
entities: h
|
||
};
|
||
}
|
||
convertEntities(t, e) {
|
||
const a = this.libredwg, _ = this.entityConverter, o = [];
|
||
let i = a.get_first_owned_entity(t);
|
||
for (; i; ) {
|
||
const s = _.convert(i);
|
||
s && (s.ownerBlockRecordSoftId = e, o.push(s)), i = a.get_next_owned_entity(t, i);
|
||
}
|
||
return o;
|
||
}
|
||
convertDimStyle(t, e) {
|
||
const a = this.libredwg, _ = this.getCommonTableEntryAttrs(t, e), o = a.dwg_dynapi_entity_value(t, "DIMTOL").data, i = a.dwg_dynapi_entity_value(t, "DIMLIM").data, s = a.dwg_dynapi_entity_value(t, "DIMTIH").data, r = a.dwg_dynapi_entity_value(t, "DIMTOH").data, l = a.dwg_dynapi_entity_value(t, "DIMSE1").data, d = a.dwg_dynapi_entity_value(t, "DIMSE2").data, I = a.dwg_dynapi_entity_value(t, "DIMALT").data, c = a.dwg_dynapi_entity_value(t, "DIMTOFL").data, E = a.dwg_dynapi_entity_value(t, "DIMSAH").data, C = a.dwg_dynapi_entity_value(t, "DIMTIX").data, A = a.dwg_dynapi_entity_value(t, "DIMSOXD").data, u = a.dwg_dynapi_entity_value(t, "DIMALTD").data, T = a.dwg_dynapi_entity_value(t, "DIMZIN").data, h = a.dwg_dynapi_entity_value(t, "DIMSD1").data, Y = a.dwg_dynapi_entity_value(t, "DIMSD2").data, R = a.dwg_dynapi_entity_value(t, "DIMTOLJ").data, f = a.dwg_dynapi_entity_value(t, "DIMJUST").data, v = a.dwg_dynapi_entity_value(t, "DIMFIT").data, G = a.dwg_dynapi_entity_value(t, "DIMUPT").data, S = a.dwg_dynapi_entity_value(t, "DIMTZIN").data, y = a.dwg_dynapi_entity_value(t, "DIMALTZ").data, x = a.dwg_dynapi_entity_value(t, "DIMALTTZ").data, M = a.dwg_dynapi_entity_value(t, "DIMTAD").data, g = a.dwg_dynapi_entity_value(t, "DIMUNIT").data, p = a.dwg_dynapi_entity_value(t, "DIMAUNIT").data, O = a.dwg_dynapi_entity_value(t, "DIMDEC").data, b = a.dwg_dynapi_entity_value(t, "DIMTDEC").data, k = a.dwg_dynapi_entity_value(t, "DIMALTU").data, X = a.dwg_dynapi_entity_value(t, "DIMALTTD").data, H = a.dwg_dynapi_entity_value(t, "DIMSCALE").data, w = a.dwg_dynapi_entity_value(t, "DIMASZ").data, K = a.dwg_dynapi_entity_value(t, "DIMEXO").data, B = a.dwg_dynapi_entity_value(t, "DIMDLI").data, V = a.dwg_dynapi_entity_value(t, "DIMEXE").data, nt = a.dwg_dynapi_entity_value(t, "DIMRND").data, at = a.dwg_dynapi_entity_value(t, "DIMDLE").data, et = a.dwg_dynapi_entity_value(t, "DIMTP").data, _t = a.dwg_dynapi_entity_value(t, "DIMTM").data, it = a.dwg_dynapi_entity_value(t, "DIMFXL").data, ot = a.dwg_dynapi_entity_value(t, "DIMJOGANG").data, st = a.dwg_dynapi_entity_value(t, "DIMTFILL").data, rt = a.dwg_dynapi_entity_value(t, "DIMTFILLCLR").data, dt = a.dwg_dynapi_entity_value(t, "DIMAZIN").data, Ft = a.dwg_dynapi_entity_value(t, "DIMARCSYM").data, Ut = a.dwg_dynapi_entity_value(t, "DIMTXT").data, bt = a.dwg_dynapi_entity_value(t, "DIMCEN").data, kt = a.dwg_dynapi_entity_value(t, "DIMTSZ").data, Xt = a.dwg_dynapi_entity_value(t, "DIMALTF").data, Ht = a.dwg_dynapi_entity_value(t, "DIMLFAC").data, Kt = a.dwg_dynapi_entity_value(t, "DIMTVP").data, Vt = a.dwg_dynapi_entity_value(t, "DIMTFAC").data, $t = a.dwg_dynapi_entity_value(t, "DIMGAP").data, Jt = a.dwg_dynapi_entity_value(t, "DIMPOST").data, zt = a.dwg_dynapi_entity_value(t, "DIMAPOST").data, Zt = a.dwg_dynapi_entity_value(t, "DIMBLK_T").data, qt = a.dwg_dynapi_entity_value(t, "DIMBLK1_T").data, Qt = a.dwg_dynapi_entity_value(t, "DIMBLK2_T").data, jt = a.dwg_dynapi_entity_value(t, "DIMALTRND").data, tn = a.dwg_dynapi_entity_value(t, "DIMCLRD_N").data, nn = a.dwg_dynapi_entity_value(t, "DIMCLRE_N").data, an = a.dwg_dynapi_entity_value(t, "DIMCLRT_N").data, en = a.dwg_dynapi_entity_value(t, "DIMCLRD").data, _n = a.dwg_dynapi_entity_value(t, "DIMCLRE").data, on = a.dwg_dynapi_entity_value(t, "DIMCLRT").data, sn = a.dwg_dynapi_entity_value(t, "DIMADEC").data, rn = a.dwg_dynapi_entity_value(t, "DIMFRAC").data, dn = a.dwg_dynapi_entity_value(t, "DIMLUNIT").data, ln = a.dwg_dynapi_entity_value(t, "DIMDSEP").data, En = a.dwg_dynapi_entity_value(t, "DIMTMOVE").data, cn = a.dwg_dynapi_entity_value(t, "DIMATFIT").data, un = a.dwg_dynapi_entity_value(t, "DIMFXLON").data, In = a.dwg_dynapi_entity_value(t, "DIMTXTDIRECTION").data, An = a.dwg_dynapi_entity_value(t, "DIMALTMZF").data, Pn = a.dwg_dynapi_entity_value(t, "DIMALTMZS").data, Tn = a.dwg_dynapi_entity_value(t, "DIMMZF").data, Cn = a.dwg_dynapi_entity_value(t, "DIMMZS").data, hn = a.dwg_dynapi_entity_value(t, "DIMLWD").data, Yn = a.dwg_dynapi_entity_value(t, "DIMLWE").data, Rn = a.dwg_dynapi_entity_value(t, "DIMTXSTY").data, fn = a.dwg_ref_get_absref(Rn), vn = a.dwg_dynapi_entity_value(t, "DIMLDRBLK").data, Ln = a.dwg_ref_get_absref(vn);
|
||
return {
|
||
..._,
|
||
DIMPOST: Jt,
|
||
DIMAPOST: zt,
|
||
DIMBLK: Zt,
|
||
DIMBLK1: qt,
|
||
DIMBLK2: Qt,
|
||
DIMSCALE: H,
|
||
DIMASZ: w,
|
||
DIMEXO: K,
|
||
DIMDLI: B,
|
||
DIMEXE: V,
|
||
DIMRND: nt,
|
||
DIMDLE: at,
|
||
DIMTP: et,
|
||
DIMTM: _t,
|
||
DIMTXT: Ut,
|
||
DIMCEN: bt,
|
||
DIMTSZ: kt,
|
||
DIMALTF: Xt,
|
||
DIMLFAC: Ht,
|
||
DIMTVP: Kt,
|
||
DIMTFAC: Vt,
|
||
DIMGAP: $t,
|
||
DIMALTRND: jt,
|
||
DIMTOL: o,
|
||
DIMLIM: i,
|
||
DIMTIH: s,
|
||
DIMTOH: r,
|
||
DIMSE1: l,
|
||
DIMSE2: d,
|
||
DIMTAD: M,
|
||
DIMZIN: T,
|
||
DIMAZIN: dt,
|
||
DIMALT: I,
|
||
DIMALTD: u,
|
||
DIMTOFL: c,
|
||
DIMSAH: E,
|
||
DIMTIX: C,
|
||
DIMSOXD: A,
|
||
DIMCLRD: en,
|
||
DIMCLRE: _n,
|
||
DIMCLRT: on,
|
||
DIMADEC: sn,
|
||
DIMUNIT: g,
|
||
DIMDEC: O,
|
||
DIMTDEC: b,
|
||
DIMALTU: k,
|
||
DIMALTTD: X,
|
||
DIMAUNIT: p,
|
||
DIMFRAC: rn,
|
||
DIMLUNIT: dn,
|
||
DIMDSEP: String.fromCharCode(ln),
|
||
DIMTMOVE: En,
|
||
DIMJUST: f,
|
||
DIMSD1: h,
|
||
DIMSD2: Y,
|
||
DIMTOLJ: R,
|
||
DIMTZIN: S,
|
||
DIMALTZ: y,
|
||
DIMALTTZ: x,
|
||
DIMFIT: v,
|
||
DIMUPT: G,
|
||
DIMATFIT: cn,
|
||
DIMTXSTY: fn,
|
||
DIMLDRBLK: Ln,
|
||
DIMLWD: hn,
|
||
DIMLWE: Yn,
|
||
DIMFXL: it,
|
||
DIMJOGANG: ot,
|
||
DIMTFILL: st,
|
||
DIMTFILLCLR: rt,
|
||
DIMARCSYM: Ft,
|
||
DIMCLRD_N: tn,
|
||
DIMCLRE_N: nn,
|
||
DIMCLRT_N: an,
|
||
DIMFXLON: un,
|
||
DIMTXTDIRECTION: In,
|
||
DIMALTMZF: An,
|
||
DIMALTMZS: Pn,
|
||
DIMMZF: Tn,
|
||
DIMMZS: Cn
|
||
};
|
||
}
|
||
convertLayer(t, e) {
|
||
const a = this.libredwg, _ = this.getCommonTableEntryAttrs(t, e), o = a.dwg_dynapi_entity_value(t, "flag").data, i = a.dwg_dynapi_entity_value(t, "frozen").data, s = a.dwg_dynapi_entity_value(t, "off").data, r = a.dwg_dynapi_entity_value(t, "frozen_in_new").data, l = a.dwg_dynapi_entity_value(t, "plotflockedlag").data, d = a.dwg_dynapi_entity_value(t, "plotflag").data, I = a.dwg_dynapi_entity_value(t, "linewt").data, c = a.dwg_dynapi_entity_value(t, "color").data, E = a.dwg_dynapi_entity_value(t, "ltype").data;
|
||
let C = "Continuous";
|
||
if (E)
|
||
try {
|
||
C = a.dwg_ref_get_object_name(E);
|
||
} catch {
|
||
}
|
||
const A = c.method;
|
||
let u = 256, T = 16777215;
|
||
return A === 195 || (c.rgb >>> 24 & 255) === 195 ? u = c.rgb & 255 : A == 194 || (c.rgb >>> 24 & 255) === 194 ? T = c.rgb & 16777215 : c.index >= 1 && c.index <= 255 && (u = c.index), {
|
||
..._,
|
||
standardFlag: o,
|
||
colorIndex: u,
|
||
color: T,
|
||
colorName: c.name,
|
||
transparency: c.alpha,
|
||
lineType: C,
|
||
frozen: i != 0,
|
||
off: s != 0,
|
||
frozenInNew: r != 0,
|
||
locked: l != 0,
|
||
plotFlag: d,
|
||
lineweight: I,
|
||
plotStyleNameObjectId: "",
|
||
materialObjectId: ""
|
||
};
|
||
}
|
||
convertLineType(t, e) {
|
||
const a = this.libredwg, _ = this.getCommonTableEntryAttrs(t, e), o = a.dwg_dynapi_entity_value(t, "flag").data, i = a.dwg_dynapi_entity_value(t, "description").data, s = a.dwg_dynapi_entity_value(t, "numdashes").data, r = a.dwg_dynapi_entity_value(t, "pattern_len").data, l = a.dwg_dynapi_entity_value(t, "dashes").data, d = l ? a.dwg_ptr_to_ltype_dash_array(l, s) : [];
|
||
return {
|
||
..._,
|
||
description: i,
|
||
standardFlag: o,
|
||
numberOfLineTypes: s,
|
||
totalPatternLength: r,
|
||
pattern: this.convertLineTypePattern(d)
|
||
};
|
||
}
|
||
convertLineTypePattern(t) {
|
||
const e = [];
|
||
return t.forEach((a) => {
|
||
e.push({
|
||
elementLength: a.length || 0,
|
||
elementTypeFlag: a.complex_shapecode,
|
||
shapeNumber: a.shape_flag,
|
||
// TODO: convert style handle to style object id
|
||
// styleObjectId: dash.style,
|
||
scale: a.scale,
|
||
rotation: a.rotation,
|
||
offsetX: a.x_offset,
|
||
offsetY: a.y_offset,
|
||
text: a.text
|
||
});
|
||
}), e;
|
||
}
|
||
convertStyle(t, e) {
|
||
const a = this.libredwg, _ = this.getCommonTableEntryAttrs(t, e), o = a.dwg_dynapi_entity_value(t, "flag").data, i = a.dwg_dynapi_entity_value(t, "width_factor").data, s = a.dwg_dynapi_entity_value(t, "oblique_angle").data, r = a.dwg_dynapi_entity_value(t, "generation").data, l = a.dwg_dynapi_entity_value(t, "last_height").data, d = a.dwg_dynapi_entity_value(t, "font_file").data, I = a.dwg_dynapi_entity_value(t, "bigfont_file").data;
|
||
return {
|
||
..._,
|
||
standardFlag: o,
|
||
fixedTextHeight: 0,
|
||
// TODO: Set the correct value
|
||
widthFactor: i,
|
||
obliqueAngle: s,
|
||
textGenerationFlag: r,
|
||
lastHeight: l,
|
||
font: d,
|
||
bigFont: I
|
||
};
|
||
}
|
||
convertViewport(t, e) {
|
||
const a = this.libredwg, _ = this.getCommonTableEntryAttrs(t, e), o = a.dwg_dynapi_entity_value(t, "flag").data, i = a.dwg_dynapi_entity_value(t, "VIEWSIZE").data, s = a.dwg_dynapi_entity_value(t, "aspect_ratio").data, r = a.dwg_dynapi_entity_value(t, "VIEWCTR").data, l = a.dwg_dynapi_entity_value(t, "view_target").data, d = a.dwg_dynapi_entity_value(t, "VIEWDIR").data, I = a.dwg_dynapi_entity_value(t, "view_twist").data, c = a.dwg_dynapi_entity_value(t, "lens_length").data, E = a.dwg_dynapi_entity_value(t, "front_clip_z").data, C = a.dwg_dynapi_entity_value(t, "back_clip_z").data, A = a.dwg_dynapi_entity_value(t, "VIEWMODE").data, u = a.dwg_dynapi_entity_value(t, "render_mode").data, T = a.dwg_dynapi_entity_value(t, "use_default_lights").data != 0, h = a.dwg_dynapi_entity_value(t, "default_lightning_type").data, Y = a.dwg_dynapi_entity_value(t, "brightness").data, R = a.dwg_dynapi_entity_value(t, "contrast").data, f = a.dwg_dynapi_entity_value(t, "ambient_color").data, v = a.dwg_dynapi_entity_value(t, "lower_left").data, G = a.dwg_dynapi_entity_value(t, "upper_right").data, S = a.dwg_dynapi_entity_value(t, "circle_zoom").data, y = a.dwg_dynapi_entity_value(t, "UCSICON").data, x = a.dwg_dynapi_entity_value(t, "GRIDUNIT").data, M = a.dwg_dynapi_entity_value(t, "SNAPANG").data, g = a.dwg_dynapi_entity_value(t, "SNAPBASE").data, p = a.dwg_dynapi_entity_value(t, "SNAPUNIT").data, O = a.dwg_dynapi_entity_value(t, "ucsorg").data, b = a.dwg_dynapi_entity_value(t, "ucsxdir").data, k = a.dwg_dynapi_entity_value(t, "ucsydir").data, X = a.dwg_dynapi_entity_value(t, "ucs_elevation").data, H = a.dwg_dynapi_entity_value(t, "grid_major").data, w = a.dwg_dynapi_entity_value(t, "background").data, K = w ? L(a.dwg_ref_get_absref(w)) : void 0, B = a.dwg_dynapi_entity_value(t, "visualstyle").data, V = B ? L(a.dwg_ref_get_absref(B)) : void 0;
|
||
return {
|
||
..._,
|
||
standardFlag: o,
|
||
lowerLeftCorner: v,
|
||
upperRightCorner: G,
|
||
center: r,
|
||
snapBasePoint: g,
|
||
snapSpacing: p,
|
||
gridSpacing: x,
|
||
viewDirectionFromTarget: d,
|
||
viewTarget: l,
|
||
lensLength: c,
|
||
frontClippingPlane: E,
|
||
backClippingPlane: C,
|
||
viewHeight: i,
|
||
aspectRatio: s,
|
||
snapRotationAngle: M,
|
||
viewTwistAngle: I,
|
||
circleSides: S,
|
||
frozenLayers: [],
|
||
// TODO: Set the correct value
|
||
styleSheet: "",
|
||
// TODO: Set the correct value
|
||
renderMode: u,
|
||
viewMode: A,
|
||
ucsIconSetting: y,
|
||
ucsOrigin: O,
|
||
ucsXAxis: b,
|
||
ucsYAxis: k,
|
||
orthographicType: 0,
|
||
// TODO: Set the correct value
|
||
elevation: X,
|
||
shadePlotSetting: 0,
|
||
// TODO: Set the correct value
|
||
majorGridLines: H,
|
||
backgroundObjectId: K,
|
||
// shadePlotObjectId: undefined,
|
||
visualStyleObjectId: V,
|
||
isDefaultLightingOn: T,
|
||
defaultLightingType: h,
|
||
brightness: Y,
|
||
contrast: R,
|
||
// TODO: Not sure whether 'index' or 'rgb' should be used
|
||
ambientColor: f.index
|
||
};
|
||
}
|
||
getCommonTableEntryAttrs(t, e) {
|
||
const a = this.libredwg, _ = a.dwg_object_get_tio(e), o = a.dwg_object_object_get_ownerhandle_object(_), i = a.dwg_object_get_handle_object(e);
|
||
return {
|
||
handle: L(i.value),
|
||
ownerHandle: L(o.absolute_ref),
|
||
name: a.dwg_dynapi_entity_value(t, "name").data
|
||
};
|
||
}
|
||
convertDictionary(t, e) {
|
||
const a = this.libredwg, _ = this.getCommonObjectAttrs(e), o = a.dwg_dynapi_entity_value(t, "is_hardowner").data, i = a.dwg_dynapi_entity_value(t, "cloning").data, s = a.dwg_dynapi_entity_value(t, "numitems").data, r = a.dwg_dynapi_entity_value(t, "itemhandles").data, l = a.dwg_ptr_to_object_ref_array(r, s), d = a.dwg_object_dictionary_get_texts(e), I = {};
|
||
return l.forEach((c, E) => I[d[E]] = L(c.absolute_ref)), {
|
||
..._,
|
||
isHardOwner: !!o,
|
||
cloningFlag: i,
|
||
entries: I
|
||
};
|
||
}
|
||
convertImageDef(t, e) {
|
||
const a = this.libredwg, _ = this.getCommonObjectAttrs(e), o = a.dwg_dynapi_entity_value(t, "image_size").data, i = a.dwg_dynapi_entity_value(t, "file_path").data, s = a.dwg_dynapi_entity_value(t, "is_loaded").data, r = a.dwg_dynapi_entity_value(t, "pixel_size").data, l = a.dwg_dynapi_entity_value(t, "resunits").data;
|
||
return {
|
||
..._,
|
||
fileName: i,
|
||
size: o,
|
||
sizeOfOnePixel: r,
|
||
isLoaded: s,
|
||
resolutionUnits: l
|
||
};
|
||
}
|
||
convertLayout(t, e) {
|
||
const a = this.libredwg, _ = this.getCommonObjectAttrs(e), o = a.dwg_dynapi_entity_value(t, "layout_name").data, i = a.dwg_dynapi_entity_value(t, "tab_order").data, s = a.dwg_dynapi_entity_value(t, "layout_flags").data, r = a.dwg_dynapi_entity_value(t, "INSBASE").data, l = a.dwg_dynapi_entity_value(t, "LIMMIN").data, d = a.dwg_dynapi_entity_value(t, "LIMMAX").data, I = a.dwg_dynapi_entity_value(t, "UCSORG").data, c = a.dwg_dynapi_entity_value(t, "UCSXDIR").data, E = a.dwg_dynapi_entity_value(t, "UCSYDIR").data, C = a.dwg_dynapi_entity_value(t, "UCSORTHOVIEW").data, A = a.dwg_dynapi_entity_value(t, "EXTMIN").data, u = a.dwg_dynapi_entity_value(t, "EXTMAX").data, T = a.dwg_dynapi_entity_value(t, "ucs_elevation").data, h = a.dwg_dynapi_entity_value(t, "block_header").data, Y = L(a.dwg_ref_get_absref(h)), R = a.dwg_dynapi_entity_value(t, "active_viewport").data, f = L(a.dwg_ref_get_absref(R)), v = a.dwg_dynapi_entity_value(t, "named_ucs").data, G = v ? L(a.dwg_ref_get_absref(v)) : void 0;
|
||
return {
|
||
..._,
|
||
layoutName: o,
|
||
controlFlag: s,
|
||
tabOrder: i,
|
||
minLimit: l,
|
||
maxLimit: d,
|
||
insertionPoint: r,
|
||
minExtent: A,
|
||
maxExtent: u,
|
||
elevation: T,
|
||
ucsOrigin: I,
|
||
ucsXAxis: c,
|
||
ucsYAxis: E,
|
||
orthographicType: C,
|
||
paperSpaceTableId: Y,
|
||
viewportId: f,
|
||
namedUcsId: G,
|
||
// orthographicUcsId?: string;
|
||
shadePlotId: ""
|
||
// TODO: Set the correct value
|
||
};
|
||
}
|
||
convertSpatialFilter(t, e) {
|
||
const a = this.libredwg, _ = this.getCommonObjectAttrs(e), o = a.dwg_dynapi_entity_value(t, "origin").data, i = a.dwg_dynapi_entity_value(t, "num_clip_verts").data, s = a.dwg_dynapi_entity_value(t, "clip_verts").data, r = a.dwg_ptr_to_point2d_array(s, i), l = a.dwg_dynapi_entity_value(t, "extrusion").data, d = a.dwg_dynapi_entity_value(t, "display_boundary_on").data, I = a.dwg_dynapi_entity_value(t, "front_clip_on").data, c = a.dwg_dynapi_entity_value(t, "front_clip_z").data, E = a.dwg_dynapi_entity_value(t, "back_clip_on").data, C = a.dwg_dynapi_entity_value(t, "back_clip_z").data, A = a.dwg_dynapi_entity_value(t, "transform").data, u = a.dwg_ptr_to_double_array(A, 12), T = a.dwg_dynapi_entity_value(t, "inverse_transform").data, h = a.dwg_ptr_to_double_array(T, 12);
|
||
return {
|
||
..._,
|
||
origin: o,
|
||
numberOfPointsOnClipBoundary: i,
|
||
vertices: r,
|
||
extrusionDirection: l,
|
||
clipBoundaryVisible: !!d,
|
||
frontClippingPlaneFlag: !!I,
|
||
frontClippingPlaneDistance: c,
|
||
backClippingPlaneFlag: !!E,
|
||
backClippingPlaneDistance: C,
|
||
matrix: u,
|
||
invertBlockMatrix: h
|
||
};
|
||
}
|
||
getCommonObjectAttrs(t) {
|
||
const e = this.libredwg, a = e.dwg_object_get_tio(t), _ = e.dwg_object_object_get_ownerhandle_object(a), o = e.dwg_object_get_handle_object(t);
|
||
return {
|
||
handle: L(o.value),
|
||
ownerHandle: L(_.absolute_ref)
|
||
};
|
||
}
|
||
}
|
||
class D {
|
||
constructor() {
|
||
N(this, "min");
|
||
N(this, "max");
|
||
N(this, "valid");
|
||
this.min = { x: 1 / 0, y: 1 / 0 }, this.max = { x: -1 / 0, y: -1 / 0 }, this.valid = !1;
|
||
}
|
||
/**
|
||
* Expands the bounding box to include a given point.
|
||
*
|
||
* @param point - The point to include in the bounding box.
|
||
* @returns This bounding box after expansion.
|
||
*/
|
||
expandByPoint(t) {
|
||
return this.min.x = Math.min(this.min.x, t.x), this.min.y = Math.min(this.min.y, t.y), this.max.x = Math.max(this.max.x, t.x), this.max.y = Math.max(this.max.y, t.y), this.valid = !0, this;
|
||
}
|
||
/**
|
||
* Applies a scaling and translation transformation to this bounding box.
|
||
*
|
||
* @param scale - The scaling factors in x and y directions.
|
||
* @param translation - The translation offsets in x and y directions.
|
||
* @returns This bounding box after transformation.
|
||
*/
|
||
transform(t, e) {
|
||
const a = this.getCorners().map((_) => ({
|
||
x: _.x * t.x + e.x,
|
||
y: _.y * t.y + e.y
|
||
}));
|
||
this.reset();
|
||
for (const _ of a)
|
||
this.expandByPoint(_);
|
||
return this;
|
||
}
|
||
/**
|
||
* Applies a rotation around a specific point to this bounding box.
|
||
*
|
||
* @param angleInRad - The angle of rotation in radians.
|
||
* @param point - The center of rotation.
|
||
* @returns This bounding box after rotation.
|
||
*/
|
||
rotate(t, e) {
|
||
const a = Math.cos(t), _ = Math.sin(t), o = this.getCorners().map((i) => {
|
||
const s = i.x - e.x, r = i.y - e.y;
|
||
return {
|
||
x: e.x + s * a - r * _,
|
||
y: e.y + s * _ + r * a
|
||
};
|
||
});
|
||
this.reset();
|
||
for (const i of o)
|
||
this.expandByPoint(i);
|
||
return this;
|
||
}
|
||
/**
|
||
* Creates a deep copy of this bounding box.
|
||
*
|
||
* @returns A new instance of Box2D with the same properties.
|
||
*/
|
||
clone() {
|
||
const t = new D();
|
||
return t.min = { x: this.min.x, y: this.min.y }, t.max = { x: this.max.x, y: this.max.y }, t.valid = this.valid, t;
|
||
}
|
||
/**
|
||
* Resets this bounding box to its initial unbounded state.
|
||
*/
|
||
reset() {
|
||
this.min = { x: 1 / 0, y: 1 / 0 }, this.max = { x: -1 / 0, y: -1 / 0 }, this.valid = !1;
|
||
}
|
||
/**
|
||
* Retrieves the four corner points of the bounding box.
|
||
*
|
||
* @returns An array of corner points in the order:
|
||
* bottom-left, top-left, bottom-right, top-right.
|
||
*/
|
||
getCorners() {
|
||
return [
|
||
{ x: this.min.x, y: this.min.y },
|
||
{ x: this.min.x, y: this.max.y },
|
||
{ x: this.max.x, y: this.min.y },
|
||
{ x: this.max.x, y: this.max.y }
|
||
];
|
||
}
|
||
}
|
||
function mn(n, t, e, a, _) {
|
||
const o = e.length;
|
||
if (o === 0)
|
||
throw new Error("points must not be empty");
|
||
const i = e[0].length;
|
||
if (n < 0 || n > 1)
|
||
throw new Error(`t out of bounds [0,1]: ${n}`);
|
||
if (t < 1)
|
||
throw new Error("degree must be at least 1 (linear)");
|
||
if (t > o - 1)
|
||
throw new Error("degree must be less than or equal to point count - 1");
|
||
const s = _ ?? new Array(o).fill(1), r = a ?? (() => {
|
||
const A = [];
|
||
for (let u = 0; u < o + t + 1; u++)
|
||
A.push(u);
|
||
return A;
|
||
})();
|
||
if (r.length !== o + t + 1)
|
||
throw new Error("bad knot vector length");
|
||
const l = [t, r.length - 1 - t], d = r[l[0]], I = r[l[1]];
|
||
n = n * (I - d) + d, n = Math.max(n, d), n = Math.min(n, I);
|
||
let c = l[0];
|
||
for (; c < l[1] && !(n >= r[c] && n <= r[c + 1]); c++)
|
||
;
|
||
const E = new Array(o);
|
||
for (let A = 0; A < o; A++) {
|
||
E[A] = new Array(i + 1);
|
||
for (let u = 0; u < i; u++)
|
||
E[A][u] = e[A][u] * s[A];
|
||
E[A][i] = s[A];
|
||
}
|
||
for (let A = 1; A <= t + 1; A++)
|
||
for (let u = c; u > c - t - 1 + A; u--) {
|
||
const T = r[u + t + 1 - A] - r[u], h = T === 0 ? 0 : (n - r[u]) / T;
|
||
for (let Y = 0; Y < i + 1; Y++)
|
||
E[u][Y] = (1 - h) * E[u - 1][Y] + h * E[u][Y];
|
||
}
|
||
const C = new Array(i);
|
||
for (let A = 0; A < i; A++)
|
||
C[A] = On(E[c][A] / E[c][i], -9);
|
||
return C;
|
||
}
|
||
function On(n, t) {
|
||
if (isNaN(n) || !Number.isInteger(t))
|
||
return NaN;
|
||
const [e, a = "0"] = n.toString().split("e"), _ = Math.round(+`${e}e${+a - t}`), [o, i = "0"] = _.toString().split("e");
|
||
return +`${o}e${+i + t}`;
|
||
}
|
||
const J = {
|
||
aliceblue: 15792383,
|
||
antiquewhite: 16444375,
|
||
aqua: 65535,
|
||
aquamarine: 8388564,
|
||
azure: 15794175,
|
||
beige: 16119260,
|
||
bisque: 16770244,
|
||
black: 0,
|
||
blanchedalmond: 16772045,
|
||
blue: 255,
|
||
blueviolet: 9055202,
|
||
brown: 10824234,
|
||
burlywood: 14596231,
|
||
cadetblue: 6266528,
|
||
chartreuse: 8388352,
|
||
chocolate: 13789470,
|
||
coral: 16744272,
|
||
cornflowerblue: 6591981,
|
||
cornsilk: 16775388,
|
||
crimson: 14423100,
|
||
cyan: 65535,
|
||
darkblue: 139,
|
||
darkcyan: 35723,
|
||
darkgoldenrod: 12092939,
|
||
darkgray: 11119017,
|
||
darkgreen: 25600,
|
||
darkkhaki: 12433259,
|
||
darkmagenta: 9109643,
|
||
darkolivegreen: 5597999,
|
||
darkorange: 16747520,
|
||
darkorchid: 10040012,
|
||
darkred: 9109504,
|
||
darksalmon: 15308410,
|
||
darkseagreen: 9419919,
|
||
darkslateblue: 4734347,
|
||
darkslategray: 3100495,
|
||
darkturquoise: 52945,
|
||
darkviolet: 9699539,
|
||
deeppink: 16716947,
|
||
deepskyblue: 49151,
|
||
dimgrey: 6908265,
|
||
dodgerblue: 2003199,
|
||
firebrick: 11674146,
|
||
floralwhite: 16775920,
|
||
forestgreen: 2263842,
|
||
fuchsia: 16711935,
|
||
gainsboro: 14474460,
|
||
ghostwhite: 16316671,
|
||
gold: 16766720,
|
||
goldenrod: 14329120,
|
||
gray: 8421504,
|
||
green: 32768,
|
||
greenyellow: 11403055,
|
||
grey: 8421504,
|
||
honeydew: 15794160,
|
||
hotpink: 16738740,
|
||
indianred: 13458524,
|
||
indigo: 4915330,
|
||
ivory: 16777200,
|
||
khaki: 15787660,
|
||
lavender: 15132410,
|
||
lavenderblush: 16773365,
|
||
lawngreen: 8190976,
|
||
lemonchiffon: 16775885,
|
||
lightblue: 11393254,
|
||
lightcoral: 15761536,
|
||
lightcyan: 14745599,
|
||
lightgoldenrodyellow: 16448210,
|
||
lightgray: 13882323,
|
||
lightgreen: 9498256,
|
||
lightgrey: 13882323,
|
||
lightpink: 16758465,
|
||
lightsalmon: 16752762,
|
||
lightseagreen: 2142890,
|
||
lightskyblue: 8900346,
|
||
lightslategray: 7833753,
|
||
lightslategrey: 7833753,
|
||
lightsteelblue: 11584734,
|
||
lightyellow: 16777184,
|
||
lime: 65280,
|
||
limegreen: 3329330,
|
||
linen: 16445670,
|
||
magenta: 16711935,
|
||
maroon: 8388608,
|
||
mediumaquamarine: 6737322,
|
||
mediumblue: 205,
|
||
mediumorchid: 12211667,
|
||
mediumpurple: 9662683,
|
||
mediumseagreen: 3978097,
|
||
mediumslateblue: 8087790,
|
||
mediumspringgreen: 64154,
|
||
mediumturquoise: 4772300,
|
||
mediumvioletred: 13047173,
|
||
midnightblue: 1644912,
|
||
mintcream: 16121850,
|
||
mistyrose: 16770273,
|
||
moccasin: 16770229,
|
||
navajowhite: 16768685,
|
||
navy: 128,
|
||
oldlace: 16643558,
|
||
olive: 8421376,
|
||
olivedrab: 7048739,
|
||
orange: 16753920,
|
||
orangered: 16729344,
|
||
orchid: 14315734,
|
||
palegoldenrod: 15657130,
|
||
palegreen: 10025880,
|
||
paleturquoise: 11529966,
|
||
palevioletred: 14381203,
|
||
papayawhip: 16773077,
|
||
peachpuff: 16767673,
|
||
peru: 13468991,
|
||
pink: 16761035,
|
||
plum: 14524637,
|
||
powderblue: 11591910,
|
||
purple: 8388736,
|
||
rebeccapurple: 6697881,
|
||
red: 16711680,
|
||
rosybrown: 12357519,
|
||
royalblue: 4286945,
|
||
saddlebrown: 9127187,
|
||
salmon: 16416882,
|
||
sandybrown: 16032864,
|
||
seagreen: 3050327,
|
||
seashell: 16774638,
|
||
sienna: 10506797,
|
||
silver: 12632256,
|
||
skyblue: 8900331,
|
||
slateblue: 6970061,
|
||
slategrey: 7372944,
|
||
snow: 16775930,
|
||
springgreen: 65407,
|
||
steelblue: 4620980,
|
||
tan: 13808780,
|
||
teal: 32896,
|
||
thistle: 14204888,
|
||
tomato: 16737095,
|
||
turquoise: 4251856,
|
||
violet: 15631086,
|
||
wheat: 16113331,
|
||
white: 16777215,
|
||
whitesmoke: 16119285,
|
||
yellow: 16776960,
|
||
yellowgreen: 10145074
|
||
}, lt = [
|
||
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,
|
||
0
|
||
];
|
||
function $(n, t, e) {
|
||
return Math.max(t, Math.min(e, n));
|
||
}
|
||
const j = class j {
|
||
constructor() {
|
||
N(this, "_colorIndex");
|
||
N(this, "_color");
|
||
N(this, "_colorName");
|
||
this._colorIndex = 256, this._color = null, this._colorName = null;
|
||
}
|
||
get color() {
|
||
return this._color;
|
||
}
|
||
set color(t) {
|
||
t == null ? this._color = null : (this._color = Math.round($(t, 0, 256 * 256 * 256 - 1)), this._colorIndex = this.getColorIndexByValue(this._color), this._colorName = this.getColorNameByValue(this._color));
|
||
}
|
||
get hexColor() {
|
||
if (this._color && this._color > 0 && this._color <= 16777215) {
|
||
let t = this._color.toString(16).toUpperCase();
|
||
for (; t.length < 6; )
|
||
t = "0" + t;
|
||
return `0x${t}`;
|
||
}
|
||
return "";
|
||
}
|
||
get cssColor() {
|
||
return `rgb(${this.red},${this.green},${this.blue})`;
|
||
}
|
||
get red() {
|
||
return this.color != null ? this.color >> 16 & 255 : null;
|
||
}
|
||
get green() {
|
||
return this.color != null ? this.color >> 8 & 255 : null;
|
||
}
|
||
get blue() {
|
||
return this.color != null ? this.color & 255 : null;
|
||
}
|
||
/**
|
||
* AutoCAD color index value. The index value will be in the range 0 to 256. 0 and 256 are special values.
|
||
* If value less than 0 is set, 0 will be used. If value greater than 256 is set, 256 will be used.
|
||
* - 0 indicates that the entity uses the color of the BlockReference that's displaying it. If the entity
|
||
* is not displayed through a block reference (for example, it is directly owned by the model space
|
||
* block table record) and its color is 0, then it will display as though its color were 7.
|
||
* - 256 indicates that the entity uses the color specified in the layer table record it references.
|
||
*/
|
||
get colorIndex() {
|
||
return this._colorIndex;
|
||
}
|
||
set colorIndex(t) {
|
||
t == null ? this._colorIndex = null : (this._colorIndex = $(t, 0, 256), this._color = lt[t], this._colorName = this.getColorNameByValue(this._color));
|
||
}
|
||
get colorName() {
|
||
return this._colorName;
|
||
}
|
||
set colorName(t) {
|
||
if (t) {
|
||
const e = J[t.toLowerCase()];
|
||
e !== void 0 ? (this._colorName = t, this._color = e, this._colorIndex = this.getColorIndexByValue(this._color)) : console.warn("Unknown color: " + t);
|
||
} else
|
||
this._colorName = null;
|
||
}
|
||
get hasColorName() {
|
||
return this._colorName == null;
|
||
}
|
||
get hasColorIndex() {
|
||
return this._colorIndex == null;
|
||
}
|
||
get isByLayer() {
|
||
return this.colorIndex == 256;
|
||
}
|
||
setByLayer() {
|
||
return this.colorIndex = 256, this;
|
||
}
|
||
get isByBlock() {
|
||
return this.colorIndex == 0;
|
||
}
|
||
setByBlock() {
|
||
return this.colorIndex = 0, this;
|
||
}
|
||
setScalar(t) {
|
||
return this.setRGB(t, t, t), this;
|
||
}
|
||
setRGB(t, e, a) {
|
||
const _ = Math.round($(t, 0, 255)), o = Math.round($(e, 0, 255)), i = Math.round($(a, 0, 255));
|
||
return this.color = (_ << 16) + (o << 8) + i, this;
|
||
}
|
||
setColorName(t) {
|
||
const e = J[t.toLowerCase()];
|
||
return e !== void 0 ? this.color = e : console.warn("Unknown color " + t), this;
|
||
}
|
||
clone() {
|
||
const t = new j();
|
||
return t.colorIndex = this.colorIndex, t.color = this.color, t._colorName = this._colorName, this;
|
||
}
|
||
copy(t) {
|
||
return this.colorIndex = t.colorIndex, this.color = t.color, this._colorName = t._colorName, this;
|
||
}
|
||
equals(t) {
|
||
return t.color == this.color && t.colorIndex == this.colorIndex && t._colorName == this._colorName;
|
||
}
|
||
toString() {
|
||
return this.isByLayer ? "ByLayer" : this.isByBlock ? "ByBlock" : this.colorName ? this.colorName : this.hexColor;
|
||
}
|
||
getColorNameByValue(t) {
|
||
for (const [e, a] of Object.entries(J))
|
||
if (a === t)
|
||
return e;
|
||
return null;
|
||
}
|
||
getColorIndexByValue(t) {
|
||
const e = lt.length - 1;
|
||
for (let a = 1; a < e; ++a)
|
||
if (lt[a] === t)
|
||
return a;
|
||
return null;
|
||
}
|
||
};
|
||
N(j, "NAMES", J);
|
||
let ut = j;
|
||
class W {
|
||
constructor(t, e) {
|
||
N(this, "x");
|
||
N(this, "y");
|
||
this.x = t, this.y = e;
|
||
}
|
||
add(t) {
|
||
return new W(this.x + t.x, this.y + t.y);
|
||
}
|
||
sub(t) {
|
||
return new W(this.x - t.x, this.y - t.y);
|
||
}
|
||
multiply(t) {
|
||
return new W(this.x * t, this.y * t);
|
||
}
|
||
length() {
|
||
return Math.sqrt(this.x ** 2 + this.y ** 2);
|
||
}
|
||
norm() {
|
||
const t = this.length();
|
||
return t === 0 ? new W(0, 0) : new W(this.x / t, this.y / t);
|
||
}
|
||
}
|
||
function wn(n, t, e, a = 5) {
|
||
let _, o, i;
|
||
e < 0 ? (_ = Math.atan(-e) * 4, o = new W(n.x, n.y), i = new W(t.x, t.y)) : (_ = Math.atan(e) * 4, o = new W(t.x, t.y), i = new W(n.x, n.y));
|
||
const s = i.sub(o), r = s.length(), l = o.add(s.multiply(0.5)), d = Math.abs(r / 2 / Math.tan(_ / 2)), I = s.norm(), c = new W(I.x * Math.cos(Math.PI / 2) - I.y * Math.sin(Math.PI / 2), I.y * Math.cos(Math.PI / 2) + I.x * Math.sin(Math.PI / 2)), E = _ < Math.PI ? l.add(c.multiply(-d)) : l.add(c.multiply(d)), C = Math.atan2(i.y - E.y, i.x - E.x) / Math.PI * 180;
|
||
let A = Math.atan2(o.y - E.y, o.x - E.x) / Math.PI * 180;
|
||
A < C && (A += 360);
|
||
const u = i.sub(E).length(), T = Math.floor(C / a) * a + a, h = Math.ceil(A / a) * a - a, Y = [];
|
||
for (let R = T; R <= h; R += a) {
|
||
const f = R / 180 * Math.PI, v = E.add(new W(Math.cos(f) * u, Math.sin(f) * u));
|
||
Y.push(v);
|
||
}
|
||
return e < 0 && Y.reverse(), Y;
|
||
}
|
||
function Bn(n, t = !1) {
|
||
let e = [];
|
||
const a = n.vertices.map((_) => ({
|
||
x: _.x,
|
||
y: _.y,
|
||
bulge: _.bulge
|
||
}));
|
||
t && a.push(a[0]);
|
||
for (let _ = 0, o = a.length; _ < o - 1; ++_) {
|
||
const i = a[_], s = a[_ + 1];
|
||
e.push(i), a[_].bulge && (e = e.concat(wn(i, s, n.vertices[_].bulge))), _ === o - 2 && e.push(s);
|
||
}
|
||
return e;
|
||
}
|
||
class Fn {
|
||
constructor() {
|
||
N(this, "blockMap", /* @__PURE__ */ new Map());
|
||
}
|
||
rotate(t, e) {
|
||
const a = Math.cos(e), _ = Math.sin(e);
|
||
return {
|
||
x: t.x * a - t.y * _,
|
||
y: t.x * _ + t.y * a
|
||
};
|
||
}
|
||
/**
|
||
* Interpolates a B-spline curve and returns the resulting polyline.
|
||
*
|
||
* @param controlPoints The control points of the B-spline.
|
||
* @param degree The degree of the B-spline.
|
||
* @param knots The knot vector.
|
||
* @param interpolationsPerSplineSegment Number of interpolated points per spline segment.
|
||
* @param weights Optional weight vector for rational B-splines.
|
||
* @returns An array of interpolated 2D points representing the polyline.
|
||
*/
|
||
interpolateBSpline(t, e, a, _ = 25, o) {
|
||
const i = [], s = t.map((d) => [d.x, d.y]), r = [a[e]], l = [
|
||
a[e],
|
||
a[a.length - 1 - e]
|
||
];
|
||
for (let d = e + 1; d < a.length - e; ++d)
|
||
r[r.length - 1] !== a[d] && r.push(a[d]);
|
||
for (let d = 1; d < r.length; ++d) {
|
||
const I = r[d - 1], c = r[d];
|
||
for (let E = 0; E <= _; ++E) {
|
||
let A = (E / _ * (c - I) + I - l[0]) / (l[1] - l[0]);
|
||
A = Math.max(0, Math.min(1, A));
|
||
const u = mn(A, e, s, a, o);
|
||
i.push({ x: u[0], y: u[1] });
|
||
}
|
||
}
|
||
return i;
|
||
}
|
||
addFlipXIfApplicable(t, { bbox: e, element: a }) {
|
||
return "extrusionDirection" in t && t.extrusionDirection.z === -1 ? {
|
||
bbox: new D().expandByPoint({ x: -e.min.x, y: e.min.y }).expandByPoint({ x: -e.max.x, y: e.max.y }),
|
||
element: `<g transform="matrix(-1 0 0 1 0 0)">${a}</g>`
|
||
} : { bbox: e, element: a };
|
||
}
|
||
line(t) {
|
||
const e = new D().expandByPoint({ x: t.startPoint.x, y: t.startPoint.y }).expandByPoint({ x: t.endPoint.x, y: t.endPoint.y }), a = `<line x1="${t.startPoint.x}" y1="${t.startPoint.y}" x2="${t.endPoint.x}" y2="${t.endPoint.y}" />`;
|
||
return { bbox: e, element: a };
|
||
}
|
||
ray(t) {
|
||
const a = t.firstPoint, _ = {
|
||
x: a.x + t.unitDirection.x * 1e4,
|
||
y: a.y + t.unitDirection.y * 1e4
|
||
}, o = new D().expandByPoint(a).expandByPoint(_), i = `<line x1="${a.x}" y1="${a.y}" x2="${_.x}" y2="${_.y}" />`;
|
||
return { bbox: o, element: i };
|
||
}
|
||
xline(t) {
|
||
const a = {
|
||
x: t.firstPoint.x - t.unitDirection.x * 1e4,
|
||
y: t.firstPoint.y - t.unitDirection.y * 1e4
|
||
}, _ = {
|
||
x: t.firstPoint.x + t.unitDirection.x * 1e4,
|
||
y: t.firstPoint.y + t.unitDirection.y * 1e4
|
||
}, o = new D().expandByPoint(a).expandByPoint(_), i = `<line x1="${a.x}" y1="${a.y}" x2="${_.x}" y2="${_.y}" />`;
|
||
return { bbox: o, element: i };
|
||
}
|
||
extractMTextLines(t) {
|
||
return t.replace(/\\U\+([0-9A-Fa-f]{4})/g, (e, a) => String.fromCharCode(parseInt(a, 16))).replace(/\\P/g, `
|
||
`).replace(/\\[LOlo]/g, "").replace(/\\[Ff][^;\\]*?(?:\|[^;\\]*)*;/g, "").replace(/\\[KkCcHhWwTtAa][^;\\]*;?/g, "").replace(/\\[a-zA-Z]+;?/g, "").replace(/%%(d|p|c|%)/gi, "").replace(/\\\\/g, "\\").replace(/\\~/g, " ").replace(/[{}]/g, "").split(`
|
||
`).map((e) => e.trim()).filter((e) => e.length > 0);
|
||
}
|
||
lines(t, e, a, _, o = "start") {
|
||
const i = new D().expandByPoint({
|
||
x: a.x,
|
||
y: a.y
|
||
}).expandByPoint({
|
||
x: a.x + _,
|
||
y: a.y - t.length * e * 1.5
|
||
}), s = t.map((r, l) => {
|
||
const d = a.x, I = a.y - l * e * 1.5, c = `translate(${d},${I}) scale(1,-1) translate(${-d},${-I})`;
|
||
return `<text x="${d}" y="${I}" font-size="${e}" text-anchor="${o}" transform="${c}">${r}</text>`;
|
||
});
|
||
return { bbox: i, element: s.join(`
|
||
`) };
|
||
}
|
||
mtext(t) {
|
||
const e = t.textHeight, a = t.insertionPoint, _ = this.extractMTextLines(t.text), o = t.attachmentPoint;
|
||
let i = "start";
|
||
return o == m.BottomCenter || o == m.MiddleCenter || o == m.TopCenter ? i = "middle" : (o == m.BottomRight || o == m.MiddleRight || o == m.TopRight) && (i = "end"), this.lines(_, e, a, t.extentsWidth, i);
|
||
}
|
||
table(t) {
|
||
const { rowCount: e, columnCount: a, rowHeightArr: _, columnWidthArr: o, startPoint: i, cells: s } = t, r = i.x, l = i.y, d = [];
|
||
for (let u = 0, T = l; u < e; u++) {
|
||
const h = _[u];
|
||
let Y = r;
|
||
for (let R = 0; R < a; R++) {
|
||
const f = u * a + R, v = s[f], G = o[R];
|
||
d.push({ x: Y, y: T, width: G, height: h, cell: v, row: u, col: R }), Y += G;
|
||
}
|
||
T += h;
|
||
}
|
||
const I = d.map(({ x: u, y: T, width: h, height: Y, cell: R }) => {
|
||
const f = [];
|
||
R.topBorderVisibility && f.push(`<line x1="${u}" y1="${T}" x2="${u + h}" y2="${T}" stroke="black" />`), R.bottomBorderVisibility && f.push(`<line x1="${u}" y1="${T + Y}" x2="${u + h}" y2="${T + Y}" stroke="black" />`), R.leftBorderVisibility && f.push(`<line x1="${u}" y1="${T}" x2="${u}" y2="${T + Y}" stroke="black" />`), R.rightBorderVisibility && f.push(`<line x1="${u + h}" y1="${T}" x2="${u + h}" y2="${T + Y}" stroke="black" />`);
|
||
const v = u + h / 2, G = T + Y / 2 + R.textHeight / 3, S = `<text x="${v}" y="${G}" font-size="${R.textHeight}" text-anchor="middle" dominant-baseline="middle">${R.text}</text>`;
|
||
return [...f, S].join(`
|
||
`);
|
||
}).join(`
|
||
`), c = o.reduce((u, T) => u + T, 0), E = _.reduce((u, T) => u + T, 0), C = new D().expandByPoint({ x: r, y: l }).expandByPoint({ x: r + c, y: l + E }), A = `
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="${c}" height="${E}" viewBox="${r} ${l} ${c} ${E}">
|
||
${I}
|
||
</svg>
|
||
`.trim();
|
||
return {
|
||
bbox: C,
|
||
element: A
|
||
};
|
||
}
|
||
text(t) {
|
||
const e = t.textHeight, a = t.startPoint, _ = [t.text];
|
||
let o = t.endPoint.x - t.endPoint.x;
|
||
t.halign == 0 && (o = t.text.length * e + t.startPoint.x);
|
||
let i = "start";
|
||
return t.halign == Q.CENTER ? i = "middle" : t.halign == Q.RIGHT && (i = "end"), this.lines(_, e, a, o, i);
|
||
}
|
||
vertices(t, e = !1) {
|
||
const a = t.reduce((o, i) => o.expandByPoint(i), new D());
|
||
let _ = t.reduce((o, i, s) => (o += s === 0 ? "M" : "L", o += i.x + "," + i.y, o), "");
|
||
return e && (_ += "Z"), { bbox: a, element: `<path d="${_}" />` };
|
||
}
|
||
circle(t) {
|
||
const e = new D().expandByPoint({
|
||
x: t.center.x + t.radius,
|
||
y: t.center.y + t.radius
|
||
}).expandByPoint({
|
||
x: t.center.x - t.radius,
|
||
y: t.center.y - t.radius
|
||
}), a = `<circle cx="${t.center.x}" cy="${t.center.y}" r="${t.radius}" />`;
|
||
return {
|
||
bbox: e,
|
||
element: a
|
||
};
|
||
}
|
||
ellipseOrArc(t, e, a, _, o, i, s) {
|
||
const r = Math.sqrt(a * a + _ * _), l = o * r, d = -Math.atan2(-_, a), I = this.bboxEllipseOrArc(t, e, a, _, o, i, s);
|
||
if (Math.abs(i - s) < 1e-9 || Math.abs(i - s + Math.PI * 2) < 1e-9) {
|
||
const c = `<g transform="rotate(${d / Math.PI * 180} ${t}, ${e})"><ellipse cx="${t}" cy="${e}" rx="${r}" ry="${l}" /></g>`;
|
||
return { bbox: I, element: c };
|
||
} else {
|
||
const c = this.rotate({ x: Math.cos(i) * r, y: Math.sin(i) * l }, d), E = { x: t + c.x, y: e + c.y }, C = this.rotate({ x: Math.cos(s) * r, y: Math.sin(s) * l }, d), A = { x: t + C.x, y: e + C.y }, T = (s < i ? s + Math.PI * 2 : s) - i < Math.PI ? 0 : 1, Y = `<path d="${`M ${E.x} ${E.y} A ${r} ${l} ${d / Math.PI * 180} ${T} 1 ${A.x} ${A.y}`}" />`;
|
||
return { bbox: I, element: Y };
|
||
}
|
||
}
|
||
bboxEllipseOrArc(t, e, a, _, o, i, s) {
|
||
for (; i < 0; )
|
||
i += Math.PI * 2;
|
||
for (; s <= i; )
|
||
s += Math.PI * 2;
|
||
const r = [];
|
||
if (Math.abs(a) < 1e-12 || Math.abs(_) < 1e-12)
|
||
for (let E = 0; E < 4; E++)
|
||
r.push(E / 2 * Math.PI);
|
||
else
|
||
r[0] = Math.atan(-_ * o / a) - Math.PI, r[1] = Math.atan(a * o / _) - Math.PI, r[2] = r[0] - Math.PI, r[3] = r[1] - Math.PI;
|
||
for (let E = 4; E >= 0; E--) {
|
||
for (; r[E] < i; )
|
||
r[E] += Math.PI * 2;
|
||
r[E] > s && r.splice(E, 1);
|
||
}
|
||
r.push(i), r.push(s);
|
||
const l = r.map((E) => ({ x: Math.cos(E), y: Math.sin(E) })), d = [
|
||
[a, -_ * o],
|
||
[_, a * o]
|
||
];
|
||
return l.map((E) => ({
|
||
x: E.x * d[0][0] + E.y * d[0][1] + t,
|
||
y: E.x * d[1][0] + E.y * d[1][1] + e
|
||
})).reduce((E, C) => (E.expandByPoint(C), E), new D());
|
||
}
|
||
ellipse(t) {
|
||
const { bbox: e, element: a } = this.ellipseOrArc(t.center.x, t.center.y, t.majorAxisEndPoint.x, t.majorAxisEndPoint.y, t.axisRatio, t.startAngle, t.endAngle);
|
||
return {
|
||
bbox: e,
|
||
element: a
|
||
};
|
||
}
|
||
arc(t) {
|
||
const { bbox: e, element: a } = this.ellipseOrArc(t.center.x, t.center.y, t.radius, 0, 1, t.startAngle, t.endAngle);
|
||
return {
|
||
bbox: e,
|
||
element: a
|
||
};
|
||
}
|
||
dimension(t) {
|
||
const e = this.blockMap.get(t.name);
|
||
return e ? {
|
||
bbox: e.bbox,
|
||
element: `<use href="#${t.name}" />`
|
||
} : null;
|
||
}
|
||
insert(t) {
|
||
const e = this.blockMap.get(t.name);
|
||
if (e) {
|
||
const a = t.insertionPoint, _ = t.rotation * (180 / Math.PI), o = `translate(${a.x},${a.y}) rotate(${_}) scale(${t.xScale},${t.yScale})`;
|
||
return {
|
||
bbox: e.bbox.clone().transform({ x: t.xScale, y: t.yScale }, { x: a.x, y: a.y }).rotate(t.rotation, a),
|
||
element: `<use href="#${t.name}" transform="${o}" />`
|
||
};
|
||
}
|
||
return null;
|
||
}
|
||
block(t, e) {
|
||
const a = t.entities, { bbox: _, elements: o } = a.reduce((i, s) => {
|
||
const r = this.entityToBoundsAndElement(s);
|
||
if (r) {
|
||
const { bbox: l, element: d } = r;
|
||
l.valid && (i.bbox.expandByPoint(l.min), i.bbox.expandByPoint(l.max));
|
||
const I = this.getEntityColor(e.tables.LAYER.entries, s), c = s.type == "TEXT" || s.type == "MTEXT" ? I.cssColor : "none";
|
||
I.isByBlock ? i.elements.push(`<g id="${s.handle}">${d}</g>`) : i.elements.push(`<g id="${s.handle}" stroke="${I.cssColor}" fill="${c}">${d}</g>`);
|
||
}
|
||
return i;
|
||
}, {
|
||
bbox: new D(),
|
||
elements: []
|
||
});
|
||
return _.valid ? {
|
||
bbox: _,
|
||
element: `<g id="${t.name}">${o.join(`
|
||
`)}</g>`
|
||
} : null;
|
||
}
|
||
entityToBoundsAndElement(t) {
|
||
let e = null;
|
||
switch (t.type) {
|
||
case "ARC":
|
||
e = this.arc(t);
|
||
break;
|
||
case "CIRCLE":
|
||
e = this.circle(t);
|
||
break;
|
||
case "DIMENSION":
|
||
e = this.dimension(t);
|
||
break;
|
||
case "ELLIPSE":
|
||
e = this.ellipse(t);
|
||
break;
|
||
case "INSERT":
|
||
e = this.insert(t);
|
||
break;
|
||
case "LINE":
|
||
e = this.line(t);
|
||
break;
|
||
case "LWPOLYLINE": {
|
||
const a = t, _ = !!(a.flag & 512), o = Bn(a, _);
|
||
e = this.vertices(o, _);
|
||
break;
|
||
}
|
||
case "MTEXT":
|
||
e = this.mtext(t);
|
||
break;
|
||
case "SPLINE": {
|
||
const a = t;
|
||
e = this.vertices(this.interpolateBSpline(a.controlPoints, a.degree, a.knots, 25, a.weights));
|
||
break;
|
||
}
|
||
case "POLYLINE":
|
||
break;
|
||
case "RAY":
|
||
e = this.ray(t);
|
||
break;
|
||
case "TABLE":
|
||
e = this.table(t);
|
||
break;
|
||
case "TEXT":
|
||
e = this.text(t);
|
||
break;
|
||
case "XLINE":
|
||
e = this.xline(t);
|
||
break;
|
||
default:
|
||
e = null;
|
||
break;
|
||
}
|
||
return e ? this.addFlipXIfApplicable(t, e) : null;
|
||
}
|
||
getEntityColor(t, e) {
|
||
const a = new ut();
|
||
if (e.colorIndex != null ? a.colorIndex = e.colorIndex : e.colorName ? a.colorName = e.colorName : e.color != null && (a.color = e.color), a.colorIndex == 7 && (a.colorIndex = 256), a.isByLayer) {
|
||
const _ = t.find((o) => o.name === e.layer);
|
||
_ != null && (a.colorIndex = _.colorIndex);
|
||
}
|
||
return a.color == null && (a.color = 16777215), a;
|
||
}
|
||
convert(t) {
|
||
let e = null;
|
||
this.blockMap.clear();
|
||
let a = "";
|
||
t.tables.BLOCK_RECORD.entries.forEach((i) => {
|
||
if (Bt(i.name))
|
||
e = i;
|
||
else {
|
||
const s = this.block(i, t);
|
||
s && (a += s.element, this.blockMap.set(i.name, s));
|
||
}
|
||
});
|
||
const _ = this.block(e, t), o = _ && _.bbox.valid ? {
|
||
x: _.bbox.min.x,
|
||
y: -_.bbox.max.y,
|
||
width: _.bbox.max.x - _.bbox.min.x,
|
||
height: _.bbox.max.y - _.bbox.min.y
|
||
} : {
|
||
x: 0,
|
||
y: 0,
|
||
width: 0,
|
||
height: 0
|
||
};
|
||
return `<?xml version="1.0"?>
|
||
<svg
|
||
xmlns="http://www.w3.org/2000/svg"
|
||
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
|
||
preserveAspectRatio="xMinYMin meet"
|
||
viewBox="${o.x} ${o.y} ${o.width} ${o.height}"
|
||
width="100%" height="100%"
|
||
>
|
||
<defs>${a}</defs>
|
||
<g stroke="#000000" stroke-width="0.1%" fill="none" transform="matrix(1,0,0,-1,0,0)">
|
||
${_ ? _.element : ""}
|
||
</g>
|
||
</svg>`;
|
||
}
|
||
}
|
||
var Ot;
|
||
(function(n) {
|
||
n[n.BMP = 2] = "BMP", n[n.WMF = 3] = "WMF", n[n.PNG = 6] = "PNG";
|
||
})(Ot || (Ot = {}));
|
||
const tt = class tt {
|
||
constructor(t) {
|
||
N(this, "wasmInstance");
|
||
N(this, "decoder");
|
||
return this.wasmInstance = t, new Proxy(this, {
|
||
get: (e, a, _) => a in e ? Reflect.get(e, a, _) : Reflect.get(e.wasmInstance, a, _)
|
||
});
|
||
}
|
||
dwg_read_data(t, e) {
|
||
if (e == ct.DWG) {
|
||
const a = "tmp.dwg";
|
||
try {
|
||
this.wasmInstance.FS.writeFile(a, new Uint8Array(t));
|
||
const _ = this.wasmInstance.dwg_read_file(a);
|
||
return _.error != 0 && console.log("Open dwg file with error code: ", _.error), _.data;
|
||
} finally {
|
||
this.wasmInstance.FS.analyzePath(a, !1).exists && this.wasmInstance.FS.unlink(a);
|
||
}
|
||
}
|
||
}
|
||
/**
|
||
* Converts DWG file content to DXF file content.
|
||
* @param fileContent DWG file content.
|
||
* @returns Returns DXF file content if conversion succeeds. Otherwise returns null.
|
||
*/
|
||
dwg_write_dxf(t) {
|
||
const e = "tmp.dwg", a = "tmp.dxf";
|
||
try {
|
||
this.wasmInstance.FS.writeFile(e, new Uint8Array(t));
|
||
const _ = this.wasmInstance.dwg_write_dxf(e, a);
|
||
return _ != 0 ? (console.log("Convert dwg to dxf with error code: ", _), null) : this.wasmInstance.FS.readFile(a);
|
||
} finally {
|
||
this.wasmInstance.FS.analyzePath(e, !1).exists && this.wasmInstance.FS.unlink(e), this.wasmInstance.FS.analyzePath(a, !1).exists && this.wasmInstance.FS.unlink(a);
|
||
}
|
||
}
|
||
/**
|
||
* Gets the version of the dwg.
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Return the version of the dwg
|
||
*/
|
||
dwg_get_version_type(t) {
|
||
const e = this.wasmInstance.dwg_get_version_type(t);
|
||
return Wn[e];
|
||
}
|
||
/**
|
||
* Gets code page of the dwg.
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Return code page of the dwg
|
||
*/
|
||
dwg_get_codepage(t) {
|
||
return this.wasmInstance.dwg_get_codepage(t);
|
||
}
|
||
/**
|
||
* Extracts thumbnail image from dwg.
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Return thumbnail image data
|
||
*/
|
||
dwg_bmp(t) {
|
||
return this.wasmInstance.dwg_bmp(t);
|
||
}
|
||
/**
|
||
* Returns the number of classes in dwg file.
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns the number of classes in dwg file.
|
||
*/
|
||
dwg_get_num_classes(t) {
|
||
return this.wasmInstance.dwg_get_num_classes(t);
|
||
}
|
||
/**
|
||
* Returns the nth class in dwg file.
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @param index Index of the class
|
||
* @returns Returns the nth class in dwg file.
|
||
*/
|
||
dwg_get_class(t, e) {
|
||
return this.wasmInstance.dwg_get_class(t, e);
|
||
}
|
||
/**
|
||
* Converts Dwg_Data instance to DwgDatabase instance. DwgDatabase instance doesn't depend on
|
||
* Dwg_Data instance any more after conversion. So you can call function dwg_free to free memory
|
||
* occupied by Dwg_Data.
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns the converted DwgDatabase.
|
||
*/
|
||
convert(t) {
|
||
const e = this.dwg_get_codepage(t), a = At(e);
|
||
return this.decoder = new TextDecoder(a), new mt(this).convert(t);
|
||
}
|
||
/**
|
||
* Converts Dwg_Data instance to DwgDatabase instance and returns conversion statistics.
|
||
* DwgDatabase instance doesn't depend on Dwg_Data instance any more after conversion.
|
||
* So you can call function dwg_free to free memory occupied by Dwg_Data.
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns the converted DwgDatabase and conversion statistics.
|
||
*/
|
||
convertEx(t) {
|
||
const e = this.dwg_get_codepage(t), a = At(e);
|
||
this.decoder = new TextDecoder(a);
|
||
const _ = new mt(this);
|
||
return {
|
||
database: _.convert(t),
|
||
stats: _.getConversionStats()
|
||
};
|
||
}
|
||
/**
|
||
* Converts DwgDatabase instance to svg string.
|
||
* @param data DwgDatabase instance.
|
||
* @returns Returns the converted svg string.
|
||
*/
|
||
dwg_to_svg(t) {
|
||
return new Fn().convert(t);
|
||
}
|
||
/**
|
||
* Frees the whole DWG. all tables, sections, objects, ...
|
||
* @param data Pointer to Dwg_Data instance.
|
||
*/
|
||
dwg_free(t) {
|
||
this.wasmInstance.dwg_free(t);
|
||
}
|
||
/**
|
||
* Frees the object (all three structs and its fields)
|
||
* @group Dwg_Object Methods
|
||
* @param ptr Pointer to one Dwg_Object instance.
|
||
*/
|
||
dwg_free_object(t) {
|
||
this.wasmInstance.dwg_free_object(t);
|
||
}
|
||
/**
|
||
* Gets an object by its handle.
|
||
* @group Handle Conversion Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @param ref_ptr Pointer to Dwg_Object_Ref instance.
|
||
* @returns Returns the object whose handle is equal to the given handle.
|
||
*/
|
||
dwg_ref_object(t, e) {
|
||
return this.wasmInstance.dwg_ref_object(t, e);
|
||
}
|
||
/**
|
||
* Gets an object by its handle without warning message.
|
||
* @group Handle Conversion Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @param ref_ptr Pointer to Dwg_Object_Ref instance.
|
||
* @returns Returns the object whose handle is equal to the given handle.
|
||
*/
|
||
dwg_ref_object_silent(t, e) {
|
||
return this.wasmInstance.dwg_ref_object_silent(t, e);
|
||
}
|
||
/**
|
||
* Gets an object given its handle and relative base object.
|
||
* @group Handle Conversion Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @param ref_ptr Pointer to Dwg_Object_Ref instance.
|
||
* @param obj_ptr Pointer to the relative base object (Dwg_Object instance).
|
||
* @returns Returns the object given its handle and relative base object.
|
||
*/
|
||
dwg_ref_object_relative(t, e, a) {
|
||
return this.wasmInstance.dwg_ref_object_relative(t, e, a);
|
||
}
|
||
/**
|
||
* Resolves handle absref value to Dwg_Object instance.
|
||
* @group Handle Conversion Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @param absref Handle absref value.
|
||
* @returns Returns the object with the given handle absref value.
|
||
*/
|
||
dwg_resolve_handle(t, e) {
|
||
return this.wasmInstance.dwg_resolve_handle(t, e);
|
||
}
|
||
/**
|
||
* Resolves handle absref value to Dwg_Object instance without warning message.
|
||
* @group Handle Conversion Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @param absref Handle absref value.
|
||
* @returns Returns the object with the given handle absref value.
|
||
*/
|
||
dwg_resolve_handle_silent(t, e) {
|
||
return this.wasmInstance.dwg_resolve_handle_silent(t, e);
|
||
}
|
||
/**
|
||
* Sets ref->absolute_ref from the specified obj for a subsequent dwg_resolve_handle
|
||
* @group Handle Conversion Methods
|
||
* @param ref_ptr Pointer to Dwg_Object_Ref instance.
|
||
* @param obj_ptr Pointer to Dwg_Object instance.
|
||
* @returns Returns 1 if set absref value correctly. Otherwise, return 0.
|
||
*/
|
||
dwg_resolve_handleref(t, e) {
|
||
return this.wasmInstance.dwg_resolve_handleref(t, e);
|
||
}
|
||
/**
|
||
* Returns object (such as line type, layer name, dimension style, and etc.) name by its handle.
|
||
* @group Handle Conversion Methods
|
||
* @param ref_ptr Pointer to Dwg_Object_Ref instance.
|
||
* @returns Returns object name by its handle.
|
||
*/
|
||
dwg_ref_get_object_name(t) {
|
||
const e = this.wasmInstance, a = e.dwg_ref_get_object(t), _ = e.dwg_object_to_object_tio(a);
|
||
return this.dwg_dynapi_entity_value(_, "name").data;
|
||
}
|
||
/**
|
||
* Converts Dwg_Object_Object instance to Dwg_Object instance.
|
||
* @group Object Conversion Methods
|
||
* @param obj_ptr Pointer to Dwg_Object_Object instance.
|
||
* @returns Returns one pointer to Dwg_Object instance.
|
||
*/
|
||
dwg_obj_obj_to_object(t) {
|
||
return this.wasmInstance.dwg_obj_obj_to_object(t);
|
||
}
|
||
/**
|
||
* Converts Dwg_Object_* instance to Dwg_Object instance.
|
||
* @group Object Conversion Methods
|
||
* @param obj_generic_ptr Pointer to Dwg_Object_* instance.
|
||
* @returns Returns one pointer to Dwg_Object instance.
|
||
*/
|
||
dwg_obj_generic_to_object(t) {
|
||
return this.wasmInstance.dwg_obj_generic_to_object(t);
|
||
}
|
||
/**
|
||
* Converts Dwg_Object instance to Dwg_Object_Object instance.
|
||
* @group Object Conversion Methods
|
||
* @param obj_ptr Pointer to Dwg_Object instance.
|
||
* @returns Returns one pointer to Dwg_Object_Object instance.
|
||
*/
|
||
dwg_object_to_object(t) {
|
||
return this.wasmInstance.dwg_object_to_object(t);
|
||
}
|
||
/**
|
||
* Gets Dwg_Object_* instance (such as Dwg_Entity_LAYER, Dwg_Entity_STYLE, and etc.)
|
||
* from Dwg_Object instance.
|
||
* @group Object Conversion Methods
|
||
* @param obj_ptr Pointer to Dwg_Object instance.
|
||
* @returns Returns one pointer to Dwg_Object_Object_TIO_Ptr instance.
|
||
*/
|
||
dwg_object_to_object_tio(t) {
|
||
return this.wasmInstance.dwg_object_to_object_tio(t);
|
||
}
|
||
/**
|
||
* Converts Dwg_Object instance to Dwg_Object_Entity instance.
|
||
* @group Object Conversion Methods
|
||
* @param obj_ptr Pointer to Dwg_Object instance.
|
||
* @returns Returns one pointer to Dwg_Object_Entity instance.
|
||
*/
|
||
dwg_object_to_entity(t) {
|
||
return this.wasmInstance.dwg_object_to_entity(t);
|
||
}
|
||
/**
|
||
* Gets Dwg_Entity_* instance (such as Dwg_Entity_LINE, Dwg_Entity_SPLINE, and etc.)
|
||
* from Dwg_Object instance.
|
||
* @group Object Conversion Methods
|
||
* @param obj_ptr Pointer to Dwg_Object instance.
|
||
* @returns Returns one pointer to Dwg_Object_Object_TIO_Ptr instance.
|
||
*/
|
||
dwg_object_to_entity_tio(t) {
|
||
return this.wasmInstance.dwg_object_to_entity_tio(t);
|
||
}
|
||
/**
|
||
* Returns all of entities in the model space. Each item in returned array
|
||
* is one Dwg_Object pointer (Dwg_Object*).
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns all of entities in the model space.
|
||
*/
|
||
dwg_getall_entities_in_model_space(t) {
|
||
const e = this.wasmInstance, a = e.dwg_model_space_object(t), _ = [];
|
||
let o = e.get_first_owned_entity(a);
|
||
for (; o; )
|
||
_.push(o), o = e.get_next_owned_entity(a, o);
|
||
return _;
|
||
}
|
||
/**
|
||
* Returns all of objects in Dwg_Data instance with the specified type.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @param type Object type.
|
||
* @returns Returns all of objects with the specified type.
|
||
*/
|
||
dwg_getall_object_by_type(t, e) {
|
||
const a = this.wasmInstance, _ = a.dwg_get_num_objects(t), o = [];
|
||
for (let i = 0; i < _; i++) {
|
||
const s = a.dwg_get_object(t, i), r = a.dwg_object_to_object_tio(s);
|
||
r && a.dwg_object_get_fixedtype(s) == e && o.push(r);
|
||
}
|
||
return o;
|
||
}
|
||
/**
|
||
* Returns all of objects in Dwg_Data instance with the specified type.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @param type Object type.
|
||
* @returns Returns all of objects with the specified type.
|
||
*/
|
||
dwg_getall_entity_by_type(t, e) {
|
||
const a = this.wasmInstance, _ = a.dwg_get_num_objects(t), o = [];
|
||
for (let i = 0; i < _; i++) {
|
||
const s = a.dwg_get_object(t, i), r = a.dwg_object_to_entity_tio(s);
|
||
r && a.dwg_object_get_fixedtype(s) == e && o.push(r);
|
||
}
|
||
return o;
|
||
}
|
||
/**
|
||
* Returns all of layer objects in Dwg_Data instance.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns all of layer objects in Dwg_Data instance.
|
||
*/
|
||
dwg_getall_LAYER(t) {
|
||
return this.dwg_getall_object_by_type(t, P.DWG_TYPE_LAYER);
|
||
}
|
||
/**
|
||
* Returns all of line type objects in Dwg_Data instance.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns all of line type objects in Dwg_Data instance.
|
||
*/
|
||
dwg_getall_LTYPE(t) {
|
||
return this.dwg_getall_object_by_type(t, P.DWG_TYPE_LTYPE);
|
||
}
|
||
/**
|
||
* Returns all of text style objects in Dwg_Data instance.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns all of text style objects in Dwg_Data instance.
|
||
*/
|
||
dwg_getall_STYLE(t) {
|
||
return this.dwg_getall_object_by_type(t, P.DWG_TYPE_STYLE);
|
||
}
|
||
/**
|
||
* Returns all of dimension style objects in Dwg_Data instance.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns all of dimension style objects in Dwg_Data instance.
|
||
*/
|
||
dwg_getall_DIMSTYLE(t) {
|
||
return this.dwg_getall_object_by_type(t, P.DWG_TYPE_DIMSTYLE);
|
||
}
|
||
/**
|
||
* Returns all of viewport objects in Dwg_Data instance.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns all of viewport objects in Dwg_Data instance.
|
||
*/
|
||
dwg_getall_VPORT(t) {
|
||
return this.dwg_getall_object_by_type(t, P.DWG_TYPE_VPORT);
|
||
}
|
||
/**
|
||
* Returns all of layout objects in Dwg_Data instance.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns all of layout objects in Dwg_Data instance.
|
||
*/
|
||
dwg_getall_LAYOUT(t) {
|
||
return this.dwg_getall_object_by_type(t, P.DWG_TYPE_LAYOUT);
|
||
}
|
||
/**
|
||
* Returns all of block objects in Dwg_Data instance.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns all of block objects in Dwg_Data instance.
|
||
*/
|
||
dwg_getall_BLOCK(t) {
|
||
return this.dwg_getall_object_by_type(t, P.DWG_TYPE_BLOCK);
|
||
}
|
||
/**
|
||
* Returns all of block header objects in Dwg_Data instance.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns all of block header objects in Dwg_Data instance.
|
||
*/
|
||
dwg_getall_BLOCK_HEADER(t) {
|
||
return this.dwg_getall_object_by_type(t, P.DWG_TYPE_BLOCK_HEADER);
|
||
}
|
||
/**
|
||
* Returns all of image definition objects in Dwg_Data instance.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns all of image definition objects in Dwg_Data instance.
|
||
*/
|
||
dwg_getall_IMAGEDEF(t) {
|
||
return this.dwg_getall_object_by_type(t, P.DWG_TYPE_IMAGEDEF);
|
||
}
|
||
/**
|
||
* Returns all of 2d vertex objects in Dwg_Data instance.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns all of 2d vertex objects in Dwg_Data instance.
|
||
*/
|
||
dwg_getall_VERTEX_2D(t) {
|
||
return this.dwg_getall_entity_by_type(t, P.DWG_TYPE_VERTEX_2D);
|
||
}
|
||
/**
|
||
* Returns all of 3d vertex objects in Dwg_Data instance.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns all of 3d vertex objects in Dwg_Data instance.
|
||
*/
|
||
dwg_getall_VERTEX_3D(t) {
|
||
return this.dwg_getall_entity_by_type(t, P.DWG_TYPE_VERTEX_3D);
|
||
}
|
||
/**
|
||
* Returns all of 2d polyline entities in Dwg_Data instance.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns all of 2d polyline entities in Dwg_Data instance.
|
||
*/
|
||
dwg_getall_POLYLINE_2D(t) {
|
||
return this.dwg_getall_entity_by_type(t, P.DWG_TYPE_POLYLINE_2D);
|
||
}
|
||
/**
|
||
* Returns all of 3d polyline entities in Dwg_Data instance.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns all of 3d polyline entities in Dwg_Data instance.
|
||
*/
|
||
dwg_getall_POLYLINE_3D(t) {
|
||
return this.dwg_getall_entity_by_type(t, P.DWG_TYPE_POLYLINE_3D);
|
||
}
|
||
/**
|
||
* Returns all of image entities in Dwg_Data instance.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns all of image entities in Dwg_Data instance.
|
||
*/
|
||
dwg_getall_IMAGE(t) {
|
||
return this.dwg_getall_entity_by_type(t, P.DWG_TYPE_IMAGE);
|
||
}
|
||
/**
|
||
* Returns all of lwpolyline entities in Dwg_Data instance.
|
||
* @group GetAll Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @returns Returns all of lwpolyline entities in Dwg_Data instance.
|
||
*/
|
||
dwg_getall_LWPOLYLINE(t) {
|
||
return this.dwg_getall_entity_by_type(t, P.DWG_TYPE_LWPOLYLINE);
|
||
}
|
||
/**
|
||
* Converts one C++ handle array to one JavaScript Dwg_Object_Ref array.
|
||
* @group Array Methods
|
||
* @param ptr Pointer to C++ handle array.
|
||
* @param size The size of C++ handle array.
|
||
* @returns Returns one JavaScript Dwg_Object_Ref array from the specified C++ handle array.
|
||
*/
|
||
dwg_ptr_to_object_ref_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_object_ref_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ handle array to one JavaScript Dwg_Object_Ref_Ptr array.
|
||
* @group Array Methods
|
||
* @param ptr Pointer to C++ handle array.
|
||
* @param size The size of C++ handle array.
|
||
* @returns Returns one JavaScript Dwg_Object_Ref_Ptr array from the specified C++ handle array.
|
||
*/
|
||
dwg_ptr_to_object_ref_ptr_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_object_ref_ptr_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ wchar_t* array to one JavaScript string array.
|
||
* @group Array Methods
|
||
* @param ptr Pointer to C++ wchar_t* array.
|
||
* @param size The size of C++ wchar_t* array.
|
||
* @returns Returns one JavaScript string array from the specified C++ wchar_t* array.
|
||
*/
|
||
dwg_ptr_to_wchar_string_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_wchar_string_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ unsigned char array to one JavaScript number array.
|
||
* @group Array Methods
|
||
* @param ptr Pointer to C++ unsigned char array.
|
||
* @param size The size of C++ unsigned char array.
|
||
* @returns Returns one JavaScript number array from the specified C++ unsigned char array.
|
||
*/
|
||
dwg_ptr_to_unsigned_char_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_unsigned_char_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ signed char array to one JavaScript number array.
|
||
* @group Array Methods
|
||
* @param ptr Pointer to C++ signed char array.
|
||
* @param size The size of C++ signed char array.
|
||
* @returns Returns one JavaScript number array from the specified C++ signed char array.
|
||
*/
|
||
dwg_ptr_to_signed_char_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_signed_char_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ unsigned int16 array to one JavaScript number array.
|
||
* @group Array Methods
|
||
* @param ptr Pointer to C++ unsigned int16 array.
|
||
* @param size The size of C++ unsigned int16 array.
|
||
* @returns Returns one JavaScript number array from the specified C++ unsigned int16 array.
|
||
*/
|
||
dwg_ptr_to_uint16_t_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_uint16_t_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ int16 array to one JavaScript number array.
|
||
* @group Array Methods
|
||
* @param ptr Pointer to C++ int16 array.
|
||
* @param size The size of C++ int16 array.
|
||
* @returns Returns one JavaScript number array from the specified C++ int16 array.
|
||
*/
|
||
dwg_ptr_to_int16_t_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_int16_t_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ unsigned int32 array to one JavaScript number array.
|
||
* @group Array Methods
|
||
* @param ptr Pointer to C++ unsigned int32 array.
|
||
* @param size The size of C++ unsigned int32 array.
|
||
* @returns Returns one JavaScript number array from the specified C++ unsigned int32 array.
|
||
*/
|
||
dwg_ptr_to_uint32_t_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_uint32_t_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ int32 array to one JavaScript number array.
|
||
* @group Array Methods
|
||
* @param ptr Pointer to C++ int32 array.
|
||
* @param size The size of C++ int32 array.
|
||
* @returns Returns one JavaScript number array from the specified C++ int32 array.
|
||
*/
|
||
dwg_ptr_to_int32_t_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_int32_t_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ unsigned int64 array to one JavaScript number array.
|
||
* @group Array Methods
|
||
* @param ptr Pointer to C++ unsigned int64 array.
|
||
* @param size The size of C++ unsigned int64 array.
|
||
* @returns Returns one JavaScript number array from the specified C++ unsigned int64 array.
|
||
*/
|
||
dwg_ptr_to_uint64_t_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_uint64_t_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ int64 array to one JavaScript number array.
|
||
* @group Array Methods
|
||
* @param ptr Pointer to C++ int64 array.
|
||
* @param size The size of C++ int64 array.
|
||
* @returns Returns one JavaScript number array from the specified C++ int64 array.
|
||
*/
|
||
dwg_ptr_to_int64_t_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_int64_t_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ double array to one JavaScript number array.
|
||
* @group Array Methods
|
||
* @param ptr Pointer to C++ double array.
|
||
* @param size The size of C++ double array.
|
||
* @returns Returns one JavaScript number array from the specified C++ double array.
|
||
*/
|
||
dwg_ptr_to_double_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_double_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ 2d point array to one JavaScript 2d point array.
|
||
* @group Array Methods
|
||
* @param ptr Pointer to C++ 2d point array.
|
||
* @param size The size of C++ 2 point array.
|
||
* @returns Returns one JavaScript 2d point array from the specified C++ 2d point array.
|
||
*/
|
||
dwg_ptr_to_point2d_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_point2d_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ 3d point array to one JavaScript 3d point array.
|
||
* @group Array Methods
|
||
* @param ptr Pointer to C++ 3d point array.
|
||
* @param size The size of C++ 3d point array.
|
||
* @returns Returns one JavaScript 3d point array from the specified C++ 3d point array.
|
||
*/
|
||
dwg_ptr_to_point3d_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_point3d_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ 4d point array to one JavaScript 4d point array.
|
||
* @group Array Methods
|
||
* @param ptr Pointer to C++ 4d point array.
|
||
* @param size The size of C++ 4d point array.
|
||
* @returns Returns one JavaScript 4d point array from the specified C++ 4d point array.
|
||
*/
|
||
dwg_ptr_to_point4d_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_point4d_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ line type array to one JavaScript line type array.
|
||
* @group Array Methods
|
||
* @param ptr Pointer to C++ line type array.
|
||
* @param size The size of C++ line type array.
|
||
* @returns Returns one JavaScript line type array from the specified C++ line type array.
|
||
*/
|
||
dwg_ptr_to_ltype_dash_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_ltype_dash_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ table cell array to one JavaScript table cell array.
|
||
* @group Array Methods
|
||
* @group Dwg_Entity_TABLE Methods
|
||
* @param ptr Pointer to C++ table cell array.
|
||
* @param size The size of C++ table cell array.
|
||
* @returns Returns one JavaScript table cell array from the specified C++ table cell array.
|
||
*/
|
||
dwg_ptr_to_table_cell_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_table_cell_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ hatch definition line array to one JavaScript hatch definition line array.
|
||
* @group Array Methods
|
||
* @group Dwg_Entity_HATCH Methods
|
||
* @param ptr Pointer to C++ hatch definition line array.
|
||
* @param size The size of C++ hatch definition line array.
|
||
* @returns Returns one JavaScript hatch definition line array from the specified C++ hatch definition line array.
|
||
*/
|
||
dwg_ptr_to_hatch_defline_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_hatch_defline_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ hatch path array to one JavaScript hatch path array.
|
||
* @group Array Methods
|
||
* @group Dwg_Entity_HATCH Methods
|
||
* @param ptr Pointer to C++ hatch path array.
|
||
* @param size The size of C++ hatch path array.
|
||
* @returns Returns one JavaScript hatch path array from the specified C++ hatch path array.
|
||
*/
|
||
dwg_ptr_to_hatch_path_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_hatch_path_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ hatch gradient color array to one JavaScript hatch gradient color array.
|
||
* @group Array Methods
|
||
* @group Dwg_Entity_HATCH Methods
|
||
* @param ptr Pointer to C++ hatch gradient color array.
|
||
* @param size The size of C++ hatch gradient color array.
|
||
* @returns Returns one JavaScript hatch gradient color array from the specified C++ hatch gradient color array.
|
||
*/
|
||
dwg_ptr_to_hatch_gradient_color_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_hatch_gradient_color_array(t, e);
|
||
}
|
||
/**
|
||
* Converts one C++ mline vertex array to one JavaScript mline vertex array.
|
||
* @group Array Methods
|
||
* @group Dwg_Entity_MLINE Methods
|
||
* @param ptr Pointer to C++ mline vertex array.
|
||
* @param size The size of C++ mline vertex array.
|
||
* @returns Returns one JavaScript mline vertex array from the specified C++ mline vertex array.
|
||
*/
|
||
dwg_ptr_to_mline_vertex_array(t, e) {
|
||
return this.wasmInstance.dwg_ptr_to_mline_vertex_array(t, e);
|
||
}
|
||
/**
|
||
* Generic field value getter. Used to get the field value of one object or entity.
|
||
* @group Dynamic API Methods
|
||
* @param obj Pointer to one object or entity
|
||
* @param field Field name of one object or entity
|
||
* @returns Returns the field value of one object or entity.
|
||
*/
|
||
dwg_dynapi_entity_value(t, e) {
|
||
const a = this.wasmInstance.dwg_dynapi_entity_value(t, e);
|
||
return a.bin && this.decoder && (a.data = this.decoder.decode(a.bin)), a;
|
||
}
|
||
/**
|
||
* Header field value getter. Used to get the field value of dwg/dxf header.
|
||
* @group Dynamic API Methods
|
||
* @param data Pointer to Dwg_Data instance.
|
||
* @param field Field name of header.
|
||
* @returns Returns the field value of dwg/dxf header.
|
||
*/
|
||
dwg_dynapi_header_value(t, e) {
|
||
return this.wasmInstance.dwg_dynapi_header_value(t, e);
|
||
}
|
||
/**
|
||
* The common field value getter. Used to get the value of object or entity common fields.
|
||
* @group Dynamic API Methods
|
||
* @param obj Pointer to one object or entity
|
||
* @param field The name of object or entity common fields.
|
||
* @returns Returns the value of object or entity common fields.
|
||
*/
|
||
dwg_dynapi_common_value(t, e) {
|
||
return this.wasmInstance.dwg_dynapi_common_value(t, e);
|
||
}
|
||
/**
|
||
* The field of one object or entity may not be primitive type. It means one field may consist of
|
||
* multiple sub-fields. This method is used to get the sub-field value of those complex field.
|
||
* @group Dynamic API Methods
|
||
* @param obj Pointer to one object or entity.
|
||
* @param subclass The class name of the field with complex type.
|
||
* @param field The field name of one object or entit.
|
||
* @returns Returns the sub-field value of one complex field.
|
||
*/
|
||
dwg_dynapi_subclass_value(t, e, a) {
|
||
return this.wasmInstance.dwg_dynapi_subclass_value(t, e, a);
|
||
}
|
||
/**
|
||
* Returns the handle of one Dwg_Object instance.
|
||
* @group Dwg_Object Methods
|
||
* @param ptr Pointer to one Dwg_Object instance.
|
||
* @returns Returns the handle of one Dwg_Object instance.
|
||
*/
|
||
dwg_object_get_handle_object(t) {
|
||
return this.wasmInstance.dwg_object_get_handle_object(t);
|
||
}
|
||
/**
|
||
* Returns the handle of one Dwg_Object_Object instance.
|
||
* @group Dwg_Object_Object Methods
|
||
* @param ptr Pointer to one Dwg_Object_Object instance.
|
||
* @returns Returns the handle of one Dwg_Object_Object instance.
|
||
*/
|
||
dwg_object_object_get_handle_object(t) {
|
||
return this.wasmInstance.dwg_object_object_get_handle_object(t);
|
||
}
|
||
/**
|
||
* Returns the owner handle of one Dwg_Object_Object instance.
|
||
* @group Dwg_Object_Object Methods
|
||
* @param ptr Pointer to one Dwg_Object_Object instance.
|
||
* @returns Returns the owner handle of one Dwg_Object_Object instance.
|
||
*/
|
||
dwg_object_object_get_ownerhandle_object(t) {
|
||
return this.wasmInstance.dwg_object_object_get_ownerhandle_object(t);
|
||
}
|
||
/**
|
||
* Returns the handle of one Dwg_Object_Entity instance.
|
||
* @group Dwg_Object_Entity Methods
|
||
* @param ptr Pointer to one Dwg_Object_Entity instance.
|
||
* @returns Returns the handle of one Dwg_Object_Entity instance.
|
||
*/
|
||
dwg_object_entity_get_handle_object(t) {
|
||
return this.wasmInstance.dwg_object_entity_get_handle_object(t);
|
||
}
|
||
/**
|
||
* Returns the owner handle of one Dwg_Object_Entity instance.
|
||
* @group Dwg_Object_Entity Methods
|
||
* @param ptr Pointer to one Dwg_Object_Entity instance.
|
||
* @returns Returns the owner handle of one Dwg_Object_Entity instance.
|
||
*/
|
||
dwg_object_entity_get_ownerhandle_object(t) {
|
||
return this.wasmInstance.dwg_object_entity_get_ownerhandle_object(t);
|
||
}
|
||
/**
|
||
* Returns hard-owner ID/handle to owner dictionary of one Dwg_Object_Entity instance.
|
||
* @group Dwg_Object_Entity Methods
|
||
* @param ptr Pointer to one Dwg_Object_Entity instance.
|
||
* @returns Returns hard-owner ID/handle to owner dictionary of one Dwg_Object_Entity instance.
|
||
*/
|
||
dwg_object_entity_get_xdicobjhandle_object(t) {
|
||
return this.wasmInstance.dwg_object_entity_get_xdicobjhandle_object(t);
|
||
}
|
||
/**
|
||
* Returns the layer handle of one Dwg_Object_Entity instance.
|
||
* @group Dwg_Object_Entity Methods
|
||
* @param ptr Pointer to one Dwg_Object_Entity instance.
|
||
* @returns Returns the layer handle of one Dwg_Object_Entity instance.
|
||
*/
|
||
dwg_object_entity_get_layer_object_ref(t) {
|
||
return this.wasmInstance.dwg_object_entity_get_layer_object_ref(t);
|
||
}
|
||
/**
|
||
* Returns the line type handle of one Dwg_Object_Entity instance.
|
||
* @group Dwg_Object_Entity Methods
|
||
* @param ptr Pointer to one Dwg_Object_Entity instance.
|
||
* @returns Returns the line type handle of one Dwg_Object_Entity instance.
|
||
*/
|
||
dwg_object_entity_get_ltype_object_ref(t) {
|
||
return this.wasmInstance.dwg_object_entity_get_ltype_object_ref(t);
|
||
}
|
||
/**
|
||
* Returns color value of one Dwg_Object_Entity instance.
|
||
* @group Dwg_Object_Entity Methods
|
||
* @param ptr Pointer to one Dwg_Object_Entity instance.
|
||
* @returns Returns color value of one Dwg_Object_Entity instance.
|
||
*/
|
||
dwg_object_entity_get_color_object(t) {
|
||
return this.wasmInstance.dwg_object_entity_get_color_object(t);
|
||
}
|
||
/**
|
||
* Returns xdata of one Dwg_Object_Entity instance.
|
||
* @group Dwg_Object_Entity Methods
|
||
* @param ptr Pointer to one Dwg_Object_Entity instance.
|
||
* @returns Returns xdata of one Dwg_Object_Entity instance.
|
||
*/
|
||
dwg_object_entity_get_xdata(t) {
|
||
return this.wasmInstance.dwg_object_entity_get_xdata(t);
|
||
}
|
||
/**
|
||
* Returns pointer to BLOCK_HEADER owner for generic entity from ent->ownerhandle.
|
||
* @group Dwg_Object_Entity Methods
|
||
* @param ptr Pointer to one Dwg_Object_Entity instance.
|
||
* @returns Returns pointer to BLOCK_HEADER owner.
|
||
*/
|
||
dwg_entity_owner(t) {
|
||
return this.wasmInstance.dwg_entity_owner(t);
|
||
}
|
||
/**
|
||
* Returns block name of one Dwg_Entity_* instance with one block field. For example,
|
||
* dimension entities have one 'block' field which represents the block that contains
|
||
* the entities that make up the dimension picture.
|
||
* @group Dwg_Entity_* Methods
|
||
* @param ptr Pointer to one Dwg_Entity_* instance with one block field.
|
||
* @param field Field name of the block.
|
||
* @returns Returns block name of one Dwg_Entity_* instance.
|
||
*/
|
||
dwg_entity_get_block_name(t, e) {
|
||
const a = this.wasmInstance, _ = a.dwg_dynapi_entity_value(t, e).data, o = a.dwg_ref_get_object(_), i = a.dwg_object_to_object_tio(o);
|
||
return this.dwg_entity_block_header_get_block(i).name;
|
||
}
|
||
/**
|
||
* Returns dimension style name of one Dwg_Entity_* instance with one dimension style
|
||
* field.
|
||
* @group Dwg_Entity_* Methods
|
||
* @param ptr Pointer to one Dwg_Entity_* instance.
|
||
* @param field Field name of the dimension style.
|
||
* @returns Returns dimension style name of one Dwg_Entity_* instance.
|
||
*/
|
||
dwg_entity_get_dimstyle_name(t, e = "dimstyle") {
|
||
const a = this.wasmInstance, _ = a.dwg_dynapi_entity_value(t, e).data, o = a.dwg_ref_get_object(_), i = a.dwg_object_to_object_tio(o);
|
||
return this.dwg_dynapi_entity_value(i, "name").data;
|
||
}
|
||
/**
|
||
* Returns block entity pointed by the specified block header.
|
||
* @group Dwg_Entity_BLOCK_HEADER Methods
|
||
* @param ptr Pointer to one Dwg_Entity_BLOCK_HEADER instance.
|
||
* @returns Returns block entity pointed by the specified block header.
|
||
*/
|
||
dwg_entity_block_header_get_block(t) {
|
||
const e = this.wasmInstance, a = e.dwg_dynapi_entity_value(t, "block_entity").data, _ = e.dwg_ref_get_object(a), o = e.dwg_object_to_entity_tio(_), i = e.dwg_dynapi_entity_value(o, "name").data, s = e.dwg_dynapi_entity_value(o, "base_pt").data;
|
||
return {
|
||
name: i,
|
||
base_pt: s
|
||
// preR13 only
|
||
};
|
||
}
|
||
/**
|
||
* Returns preview image of the block pointed by the specified block header.
|
||
* @group Dwg_Entity_BLOCK_HEADER Methods
|
||
* @param ptr Pointer to one Dwg_Entity_BLOCK_HEADER instance.
|
||
* @returns Returns preview image of the block pointed by the specified block header.
|
||
*/
|
||
dwg_entity_block_header_get_preview(t) {
|
||
return this.wasmInstance.dwg_entity_block_header_get_preview(t).data;
|
||
}
|
||
/**
|
||
* Returns the first entity owned by the block header or null
|
||
* @group Dwg_Entity_BLOCK_HEADER Methods
|
||
* @param ptr Pointer to the block header.
|
||
* @returns Returns the first entity owned by the block header or null
|
||
*/
|
||
get_first_owned_entity(t) {
|
||
return this.wasmInstance.get_first_owned_entity(t);
|
||
}
|
||
/**
|
||
* Returns the next entity owned by the block header or null.
|
||
* @group Dwg_Entity_BLOCK_HEADER Methods
|
||
* @param ptr Pointer to the block header.
|
||
* @param current Pointer to the current entity in the block header.
|
||
* @returns Returns the next entity owned by the block header or null.
|
||
*/
|
||
get_next_owned_entity(t, e) {
|
||
return this.wasmInstance.get_next_owned_entity(t, e);
|
||
}
|
||
/**
|
||
* Returns text style name of one Dwg_Entity_MTEXT instance.
|
||
* @group Dwg_Entity_MTEXT Methods
|
||
* @param ptr Pointer to one Dwg_Entity_MTEXT instance.
|
||
* @returns Returns text style name of one Dwg_Entity_MTEXT instance.
|
||
*/
|
||
dwg_entity_mtext_get_style_name(t) {
|
||
const e = this.wasmInstance, a = e.dwg_dynapi_entity_value(t, "style").data, _ = e.dwg_ref_get_object(a), o = e.dwg_object_to_object_tio(_);
|
||
return e.dwg_dynapi_entity_value(o, "name").data;
|
||
}
|
||
/**
|
||
* Returns text style name of one Dwg_Entity_TEXT instance.
|
||
* @group Dwg_Entity_TEXT Methods
|
||
* @param ptr Pointer to one Dwg_Entity_TEXT instance.
|
||
* @returns Returns text style name of one Dwg_Entity_TEXT instance.
|
||
*/
|
||
dwg_entity_text_get_style_name(t) {
|
||
return this.dwg_entity_mtext_get_style_name(t);
|
||
}
|
||
/**
|
||
* Returns the number of points in Dwg_Entity_POLYLINE_2D.
|
||
* @group Dwg_Entity_POLYLINE_2D Methods
|
||
* @param ptr Pointer to one Dwg_Object (not Dwg_Entity_POLYLINE_2D) instance.
|
||
* @returns Returns the number of points in one Dwg_Entity_POLYLINE_2D.
|
||
*/
|
||
dwg_entity_polyline_2d_get_numpoints(t) {
|
||
return this.wasmInstance.dwg_entity_polyline_2d_get_numpoints(t).data;
|
||
}
|
||
/**
|
||
* Returns points in Dwg_Entity_POLYLINE_2D.
|
||
* @group Dwg_Entity_POLYLINE_2D Methods
|
||
* @param ptr Pointer to one Dwg_Object (not Dwg_Entity_POLYLINE_2D) instance.
|
||
* @returns Returns points in one Dwg_Entity_POLYLINE_2D.
|
||
*/
|
||
dwg_entity_polyline_2d_get_points(t) {
|
||
return this.wasmInstance.dwg_entity_polyline_2d_get_points(t).data;
|
||
}
|
||
/**
|
||
* Returns vertices in Dwg_Entity_POLYLINE_2D.
|
||
* @group Dwg_Entity_POLYLINE_2D Methods
|
||
* @param ptr Pointer to one Dwg_Object (not Dwg_Entity_POLYLINE_2D) instance.
|
||
* @returns Returns vertices in one Dwg_Entity_POLYLINE_2D.
|
||
*/
|
||
dwg_entity_polyline_2d_get_vertices(t) {
|
||
return this.wasmInstance.dwg_entity_polyline_2d_get_vertices(t).data;
|
||
}
|
||
/**
|
||
* Returns the number of points in Dwg_Entity_POLYLINE_3D.
|
||
* @group Dwg_Entity_POLYLINE_3D Methods
|
||
* @param ptr Pointer to one Dwg_Object (not Dwg_Entity_POLYLINE_3D) instance.
|
||
* @returns Returns the number of points in one Dwg_Entity_POLYLINE_3D.
|
||
*/
|
||
dwg_entity_polyline_3d_get_numpoints(t) {
|
||
return this.wasmInstance.dwg_entity_polyline_3d_get_numpoints(t).data;
|
||
}
|
||
/**
|
||
* Returns points in Dwg_Entity_POLYLINE_3D.
|
||
* @group Dwg_Entity_POLYLINE_3D Methods
|
||
* @param ptr Pointer to one Dwg_Object (not Dwg_Entity_POLYLINE_3D) instance.
|
||
* @returns Returns points in one Dwg_Entity_POLYLINE_3D.
|
||
*/
|
||
dwg_entity_polyline_3d_get_points(t) {
|
||
return this.wasmInstance.dwg_entity_polyline_3d_get_points(t).data;
|
||
}
|
||
/**
|
||
* Returns vertices in Dwg_Entity_POLYLINE_3D.
|
||
* @group Dwg_Entity_POLYLINE_3D Methods
|
||
* @param ptr Pointer to one Dwg_Object (not Dwg_Entity_POLYLINE_3D) instance.
|
||
* @returns Returns vertices in one Dwg_Entity_POLYLINE_3D.
|
||
*/
|
||
dwg_entity_polyline_3d_get_vertices(t) {
|
||
return this.wasmInstance.dwg_entity_polyline_3d_get_vertices(t).data;
|
||
}
|
||
/**
|
||
* Returns attributes associated with INSERT entity.
|
||
* @group Dwg_Entity_INSERT Methods
|
||
* @param ptr Pointer to one Dwg_Object (not Dwg_Entity_INSERT) instance.
|
||
* @returns Returns attributes associated with INSERT entity.
|
||
*/
|
||
dwg_entity_insert_get_attribs(t) {
|
||
return this.wasmInstance.dwg_entity_insert_get_attribs(t).data;
|
||
}
|
||
/**
|
||
* Returns texts in Dwg_Object_DICTIONARY.
|
||
* @group Dwg_Object_DICTIONARY Methods
|
||
* @param ptr Pointer to one Dwg_Object (not Dwg_Object_DICTIONARY) instance.
|
||
* @returns Returns texts in one Dwg_Object_DICTIONARY.
|
||
*/
|
||
dwg_object_dictionary_get_texts(t) {
|
||
return this.wasmInstance.dwg_object_dictionary_get_texts(t).data;
|
||
}
|
||
static createByWasmInstance(t) {
|
||
return this.instance == null ? new tt(t) : this.instance;
|
||
}
|
||
static async create(t) {
|
||
const e = t == null ? await yt() : await yt({
|
||
locateFile: (a) => `${t}/${a}`
|
||
});
|
||
return this.createByWasmInstance(e);
|
||
}
|
||
};
|
||
N(tt, "instance");
|
||
let wt = tt;
|
||
export {
|
||
m as DwgAttachmentPoint,
|
||
F as DwgBoundaryPathEdgeType,
|
||
Nt as DwgBoundaryPathTypeFlag,
|
||
It as DwgCodePage,
|
||
gt as DwgDictionaryCloningFlags,
|
||
Rt as DwgDimensionTextHorizontal,
|
||
Tt as DwgDimensionTextLineSpacing,
|
||
Ct as DwgDimensionTextVertical,
|
||
ft as DwgDimensionToleranceTextVertical,
|
||
Pt as DwgDimensionType,
|
||
ht as DwgDimensionZeroSuppression,
|
||
Yt as DwgDimensionZeroSuppressionAngular,
|
||
Z as DwgHatchAssociativity,
|
||
St as DwgHatchBoundaryAnnotation,
|
||
q as DwgHatchGradientColorFlag,
|
||
Et as DwgHatchGradientFlag,
|
||
Lt as DwgHatchPatternType,
|
||
z as DwgHatchSolidFill,
|
||
vt as DwgHatchStyle,
|
||
Gt as DwgPolylineFlag,
|
||
Dt as DwgSmoothType,
|
||
Wt as DwgTextGenerationFlag,
|
||
Q as DwgTextHorizontalAlign,
|
||
Mt as DwgTextVerticalAlign,
|
||
Ot as DwgThumbnailImageType,
|
||
pt as Dwg_Color_Method,
|
||
ct as Dwg_File_Type,
|
||
U as Dwg_Hatch_Edge_Type,
|
||
xt as Dwg_Object_Supertype,
|
||
P as Dwg_Object_Type,
|
||
bn as Dwg_Object_Type_Inverted,
|
||
Dn as HEADER_VARIABLES,
|
||
wt as LibreDwg,
|
||
yt as createModule,
|
||
At as dwgCodePageToEncoding,
|
||
Wn as dwgVersions
|
||
};
|
||
//# sourceMappingURL=index-C365l3i9.js.map
|