{"version":3,"file":"vendor.dxf-writer-531d73eb.624de8c09ca969d8.bundle.js","mappings":"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","sources":["webpack://client-app/./node_modules/dxf-writer/index.js","webpack://client-app/./node_modules/dxf-writer/src/AppId.js","webpack://client-app/./node_modules/dxf-writer/src/Arc.js","webpack://client-app/./node_modules/dxf-writer/src/Block.js","webpack://client-app/./node_modules/dxf-writer/src/BlockRecord.js","webpack://client-app/./node_modules/dxf-writer/src/Circle.js","webpack://client-app/./node_modules/dxf-writer/src/Cylinder.js","webpack://client-app/./node_modules/dxf-writer/src/DatabaseObject.js","webpack://client-app/./node_modules/dxf-writer/src/Dictionary.js","webpack://client-app/./node_modules/dxf-writer/src/DimStyleTable.js","webpack://client-app/./node_modules/dxf-writer/src/Drawing.js","webpack://client-app/./node_modules/dxf-writer/src/Ellipse.js"],"sourcesContent":["module.exports = require('./src/Drawing');","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass AppId extends DatabaseObject {\n constructor(name) {\n super([\"AcDbSymbolTableRecord\", \"AcDbRegAppTableRecord\"]);\n this.name = name;\n }\n\n tags(manager) {\n manager.push(0, \"APPID\");\n super.tags(manager);\n manager.push(2, this.name);\n /* No flags set */\n manager.push(70, 0);\n }\n}\n\nmodule.exports = AppId;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass Arc extends DatabaseObject {\n /**\n * @param {number} x - Center x\n * @param {number} y - Center y\n * @param {number} r - radius\n * @param {number} startAngle - degree\n * @param {number} endAngle - degree\n */\n constructor(x, y, r, startAngle, endAngle) {\n super([\"AcDbEntity\", \"AcDbCircle\"]);\n this.x = x;\n this.y = y;\n this.r = r;\n this.startAngle = startAngle;\n this.endAngle = endAngle;\n }\n\n tags(manager) {\n //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/line_al_u05_c.htm\n manager.push(0, \"ARC\");\n super.tags(manager);\n manager.push(8, this.layer.name);\n manager.point(this.x, this.y);\n manager.push(40, this.r);\n manager.push(100, \"AcDbArc\");\n manager.push(50, this.startAngle);\n manager.push(51, this.endAngle);\n }\n}\n\nmodule.exports = Arc;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass Block extends DatabaseObject {\n constructor(name) {\n super([\"AcDbEntity\", \"AcDbBlockBegin\"]);\n this.name = name;\n this.end = new DatabaseObject([\"AcDbEntity\", \"AcDbBlockEnd\"]);\n this.recordHandle = null;\n }\n\n tags(manager) {\n manager.push(0, \"BLOCK\");\n super.tags(manager);\n manager.push(2, this.name);\n /* No flags set */\n manager.push(70, 0);\n /* Block top left corner */\n manager.point(0, 0);\n manager.push(3, this.name);\n /* xref path name - nothing */\n manager.push(1, \"\");\n\n //XXX dump content here\n\n manager.push(0, \"ENDBLK\");\n this.end.tags(manager);\n }\n}\n\nmodule.exports = Block;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass BlockRecord extends DatabaseObject {\n constructor(name) {\n super([\"AcDbSymbolTableRecord\", \"AcDbBlockTableRecord\"]);\n this.name = name;\n }\n\n tags(manager) {\n manager.push(0, \"BLOCK_RECORD\");\n super.tags(manager);\n manager.push(2, this.name);\n /* No flags set */\n manager.push(70, 0);\n /* Block explodability */\n manager.push(280, 0);\n /* Block scalability */\n manager.push(281, 1);\n }\n}\n\nmodule.exports = BlockRecord;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass Circle extends DatabaseObject {\n /**\n * @param {number} x - Center x\n * @param {number} y - Center y\n * @param {number} r - radius\n */\n constructor(x, y, r) {\n super([\"AcDbEntity\", \"AcDbCircle\"]);\n this.x = x;\n this.y = y;\n this.r = r;\n }\n\n tags(manager) {\n //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/circle_al_u05_c.htm\n manager.push(0, \"CIRCLE\");\n super.tags(manager);\n manager.push(8, this.layer.name);\n manager.point(this.x, this.y);\n manager.push(40, this.r);\n }\n}\n\nmodule.exports = Circle;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass Cylinder extends DatabaseObject {\n /**\n * @param {number} x - Center x\n * @param {number} y - Center y\n * @param {number} z - Center z\n * @param {number} r - radius\n * @param {number} thickness - thickness\n * @param {number} extrusionDirectionX - Extrusion Direction x\n * @param {number} extrusionDirectionY - Extrusion Direction y\n * @param {number} extrusionDirectionZ - Extrusion Direction z\n */\n constructor(\n x,\n y,\n z,\n r,\n thickness,\n extrusionDirectionX,\n extrusionDirectionY,\n extrusionDirectionZ\n ) {\n super([\"AcDbEntity\", \"AcDbCircle\"]);\n this.x = x;\n this.y = y;\n this.z = z;\n this.r = r;\n this.thickness = thickness;\n (this.extrusionDirectionX = extrusionDirectionX),\n (this.extrusionDirectionY = extrusionDirectionY),\n (this.extrusionDirectionZ = extrusionDirectionZ);\n }\n\n tags(manager) {\n manager.push(0, \"CIRCLE\");\n super.tags(manager);\n manager.push(8, this.layer.name);\n manager.point(this.x, this.y, this.z);\n manager.push(40, this.r);\n manager.push(39, this.thickness);\n manager.push(210, this.extrusionDirectionX);\n manager.push(220, this.extrusionDirectionY);\n manager.push(230, this.extrusionDirectionZ);\n }\n}\n\nmodule.exports = Cylinder;\n","const Handle = require(\"./Handle\");\n\nclass DatabaseObject {\n constructor(subclass = null) {\n this.handle = Handle.next();\n this.ownerObjectHandle = \"0\";\n this.subclassMarkers = [];\n if (subclass) {\n if (Array.isArray(subclass)) {\n this.subclassMarkers.push(...subclass);\n } else {\n this.subclassMarkers.push(subclass);\n }\n }\n }\n\n /**\n *\n * @param {TagsManager} manager\n */\n tags(manager) {\n manager.push(5, this.handle);\n manager.push(330, this.ownerObjectHandle);\n for (const s of this.subclassMarkers) {\n manager.push(100, s);\n }\n }\n}\n\nmodule.exports = DatabaseObject;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass Dictionary extends DatabaseObject {\n constructor() {\n super(\"AcDbDictionary\");\n this.children = {};\n }\n\n /**\n *\n * @param {*} name\n * @param {DatabaseObject} dictionary\n */\n addChildDictionary(name, dictionary) {\n dictionary.ownerObjectHandle = this.handle;\n this.children[name] = dictionary;\n }\n\n tags(manager) {\n manager.push(0, \"DICTIONARY\");\n super.tags(manager);\n /* Duplicate record cloning flag - keep existing */\n manager.push(281, 1);\n\n const entries = Object.entries(this.children);\n for (const entry of entries) {\n const [name, dic] = entry;\n manager.push(3, name);\n manager.push(350, dic.handle);\n }\n\n const children = Object.values(this.children);\n for (const c of children) {\n c.tags(manager);\n }\n }\n}\n\nmodule.exports = Dictionary;\n","const DatabaseObject = require(\"./DatabaseObject\");\nconst Table = require(\"./Table\");\n\nclass DimStyleTable extends Table {\n constructor(name) {\n super(name);\n this.subclassMarkers.push(\"AcDbDimStyleTable\");\n }\n\n tags(manager) {\n manager.push(0, \"TABLE\");\n manager.push(2, this.name);\n DatabaseObject.prototype.tags.call(this, manager);\n manager.push(70, this.elements.length);\n /* DIMTOL */\n manager.push(71, 1);\n\n for (const e of this.elements) {\n e.tags(manager);\n }\n\n manager.push(0, \"ENDTAB\");\n }\n}\n\nmodule.exports = DimStyleTable;\n","const LineType = require(\"./LineType\");\nconst Layer = require(\"./Layer\");\nconst Table = require(\"./Table\");\nconst DimStyleTable = require(\"./DimStyleTable\");\nconst TextStyle = require(\"./TextStyle\");\nconst Viewport = require(\"./Viewport\");\nconst AppId = require(\"./AppId\");\nconst Block = require(\"./Block\");\nconst BlockRecord = require(\"./BlockRecord\");\nconst Dictionary = require(\"./Dictionary\");\nconst Line = require(\"./Line\");\nconst Line3d = require(\"./Line3d\");\nconst Arc = require(\"./Arc\");\nconst Circle = require(\"./Circle\");\nconst Cylinder = require(\"./Cylinder\");\nconst Text = require(\"./Text\");\nconst Polyline = require(\"./Polyline\");\nconst Polyline3d = require(\"./Polyline3d\");\nconst Face = require(\"./Face\");\nconst Point = require(\"./Point\");\nconst Spline = require(\"./Spline\");\nconst Ellipse = require(\"./Ellipse\");\nconst TagsManager = require(\"./TagsManager\");\nconst Handle = require(\"./Handle\");\n\nclass Drawing {\n constructor() {\n this.layers = {};\n this.activeLayer = null;\n this.lineTypes = {};\n this.headers = {};\n this.tables = {};\n this.blocks = {};\n\n this.dictionary = new Dictionary();\n\n this.setUnits(\"Unitless\");\n\n for (const ltype of Drawing.LINE_TYPES) {\n this.addLineType(ltype.name, ltype.description, ltype.elements);\n }\n\n for (const l of Drawing.LAYERS) {\n this.addLayer(l.name, l.colorNumber, l.lineTypeName);\n }\n\n this.setActiveLayer(\"0\");\n\n // Must call this function\n this.generateAutocadExtras();\n }\n\n /**\n * @param {string} name\n * @param {string} description\n * @param {array} elements - if elem > 0 it is a line, if elem < 0 it is gap, if elem == 0.0 it is a\n */\n addLineType(name, description, elements) {\n this.lineTypes[name] = new LineType(name, description, elements);\n return this;\n }\n\n addLayer(name, colorNumber, lineTypeName) {\n this.layers[name] = new Layer(name, colorNumber, lineTypeName);\n return this;\n }\n\n setActiveLayer(name) {\n this.activeLayer = this.layers[name];\n return this;\n }\n\n addTable(name) {\n const table = new Table(name);\n this.tables[name] = table;\n return table;\n }\n\n /**\n *\n * @param {string} name The name of the block.\n * @returns {Block}\n */\n addBlock(name) {\n const block = new Block(name);\n this.blocks[name] = block;\n return block;\n }\n\n drawLine(x1, y1, x2, y2) {\n this.activeLayer.addShape(new Line(x1, y1, x2, y2));\n return this;\n }\n\n drawLine3d(x1, y1, z1, x2, y2, z2) {\n this.activeLayer.addShape(new Line3d(x1, y1, z1, x2, y2, z2));\n return this;\n }\n\n drawPoint(x, y) {\n this.activeLayer.addShape(new Point(x, y));\n return this;\n }\n\n drawRect(x1, y1, x2, y2, cornerLength, cornerBulge) {\n const w = x2 - x1;\n const h = y2 - y1;\n cornerBulge = cornerBulge || 0;\n let p = null;\n if (!cornerLength) {\n p = new Polyline(\n [\n [x1, y1],\n [x1, y1 + h],\n [x1 + w, y1 + h],\n [x1 + w, y1],\n ],\n true\n );\n } else {\n p = new Polyline(\n [\n [x1 + w - cornerLength, y1, cornerBulge], // 1\n [x1 + w, y1 + cornerLength], // 2\n [x1 + w, y1 + h - cornerLength, cornerBulge], // 3\n [x1 + w - cornerLength, y1 + h], // 4\n [x1 + cornerLength, y1 + h, cornerBulge], // 5\n [x1, y1 + h - cornerLength], // 6\n [x1, y1 + cornerLength, cornerBulge], // 7\n [x1 + cornerLength, y1], // 8\n ],\n true\n );\n }\n this.activeLayer.addShape(p);\n return this;\n }\n\n /**\n * Draw a regular convex polygon as a polyline entity.\n *\n * @see [Regular polygon | Wikipedia](https://en.wikipedia.org/wiki/Regular_polygon)\n *\n * @param {number} x - The X coordinate of the center of the polygon.\n * @param {number} y - The Y coordinate of the center of the polygon.\n * @param {number} numberOfSides - The number of sides.\n * @param {number} radius - The radius.\n * @param {number} rotation - The rotation angle (in Degrees) of the polygon. By default 0.\n * @param {boolean} circumscribed - If `true` is a polygon in which each side is a tangent to a circle.\n * If `false` is a polygon in which all vertices lie on a circle. By default `false`.\n *\n * @returns {Drawing} - The current object of {@link Drawing}.\n */\n drawPolygon(\n x,\n y,\n numberOfSides,\n radius,\n rotation = 0,\n circumscribed = false\n ) {\n const angle = (2 * Math.PI) / numberOfSides;\n const vertices = [];\n let d = radius;\n const rotationRad = (rotation * Math.PI) / 180;\n if (circumscribed) d = radius / Math.cos(Math.PI / numberOfSides);\n for (let i = 0; i < numberOfSides; i++) {\n vertices.push([\n x + d * Math.sin(rotationRad + i * angle),\n y + d * Math.cos(rotationRad + i * angle),\n ]);\n }\n this.activeLayer.addShape(new Polyline(vertices, true));\n return this;\n }\n\n /**\n * @param {number} x1 - Center x\n * @param {number} y1 - Center y\n * @param {number} r - radius\n * @param {number} startAngle - degree\n * @param {number} endAngle - degree\n */\n drawArc(x1, y1, r, startAngle, endAngle) {\n this.activeLayer.addShape(new Arc(x1, y1, r, startAngle, endAngle));\n return this;\n }\n\n /**\n * @param {number} x1 - Center x\n * @param {number} y1 - Center y\n * @param {number} r - radius\n */\n drawCircle(x1, y1, r) {\n this.activeLayer.addShape(new Circle(x1, y1, r));\n return this;\n }\n\n /**\n * @param {number} x1 - Center x\n * @param {number} y1 - Center y\n * @param {number} z1 - Center z\n * @param {number} r - radius\n * @param {number} thickness - thickness\n * @param {number} extrusionDirectionX - Extrusion Direction x\n * @param {number} extrusionDirectionY - Extrusion Direction y\n * @param {number} extrusionDirectionZ - Extrusion Direction z\n */\n drawCylinder(\n x1,\n y1,\n z1,\n r,\n thickness,\n extrusionDirectionX,\n extrusionDirectionY,\n extrusionDirectionZ\n ) {\n this.activeLayer.addShape(\n new Cylinder(\n x1,\n y1,\n z1,\n r,\n thickness,\n extrusionDirectionX,\n extrusionDirectionY,\n extrusionDirectionZ\n )\n );\n return this;\n }\n\n /**\n * @param {number} x1 - x\n * @param {number} y1 - y\n * @param {number} height - Text height\n * @param {number} rotation - Text rotation\n * @param {string} value - the string itself\n * @param {string} [horizontalAlignment=\"left\"] left | center | right\n * @param {string} [verticalAlignment=\"baseline\"] baseline | bottom | middle | top\n */\n drawText(\n x1,\n y1,\n height,\n rotation,\n value,\n horizontalAlignment = \"left\",\n verticalAlignment = \"baseline\"\n ) {\n this.activeLayer.addShape(\n new Text(\n x1,\n y1,\n height,\n rotation,\n value,\n horizontalAlignment,\n verticalAlignment\n )\n );\n return this;\n }\n\n /**\n * @param {[number, number][]} points - Array of points like [ [x1, y1], [x2, y2]... ]\n * @param {boolean} closed - Closed polyline flag\n * @param {number} startWidth - Default start width\n * @param {number} endWidth - Default end width\n */\n drawPolyline(points, closed = false, startWidth = 0, endWidth = 0) {\n this.activeLayer.addShape(\n new Polyline(points, closed, startWidth, endWidth)\n );\n return this;\n }\n\n /**\n * @param {[number, number, number][]} points - Array of points like [ [x1, y1, z1], [x2, y2, z1]... ]\n */\n drawPolyline3d(points) {\n points.forEach((point) => {\n if (point.length !== 3) {\n throw \"Require 3D coordinates\";\n }\n });\n this.activeLayer.addShape(new Polyline3d(points));\n return this;\n }\n\n /**\n *\n * @param {number} trueColor - Integer representing the true color, can be passed as an hexadecimal value of the form 0xRRGGBB\n */\n setTrueColor(trueColor) {\n this.activeLayer.setTrueColor(trueColor);\n return this;\n }\n\n /**\n * Draw a spline.\n * @param {[Array]} controlPoints - Array of control points like [ [x1, y1], [x2, y2]... ]\n * @param {number} degree - Degree of spline: 2 for quadratic, 3 for cubic. Default is 3\n * @param {[number]} knots - Knot vector array. If null, will use a uniform knot vector. Default is null\n * @param {[number]} weights - Control point weights. If provided, must be one weight for each control point. Default is null\n * @param {[Array]} fitPoints - Array of fit points like [ [x1, y1], [x2, y2]... ]\n */\n drawSpline(\n controlPoints,\n degree = 3,\n knots = null,\n weights = null,\n fitPoints = []\n ) {\n this.activeLayer.addShape(\n new Spline(controlPoints, degree, knots, weights, fitPoints)\n );\n return this;\n }\n\n /**\n * Draw an ellipse.\n * @param {number} x1 - Center x\n * @param {number} y1 - Center y\n * @param {number} majorAxisX - Endpoint x of major axis, relative to center\n * @param {number} majorAxisY - Endpoint y of major axis, relative to center\n * @param {number} axisRatio - Ratio of minor axis to major axis\n * @param {number} startAngle - Start angle\n * @param {number} endAngle - End angle\n */\n drawEllipse(\n x1,\n y1,\n majorAxisX,\n majorAxisY,\n axisRatio,\n startAngle = 0,\n endAngle = 2 * Math.PI\n ) {\n this.activeLayer.addShape(\n new Ellipse(\n x1,\n y1,\n majorAxisX,\n majorAxisY,\n axisRatio,\n startAngle,\n endAngle\n )\n );\n return this;\n }\n\n /**\n * @param {number} x1 - x\n * @param {number} y1 - y\n * @param {number} z1 - z\n * @param {number} x2 - x\n * @param {number} y2 - y\n * @param {number} z2 - z\n * @param {number} x3 - x\n * @param {number} y3 - y\n * @param {number} z3 - z\n * @param {number} x4 - x\n * @param {number} y4 - y\n * @param {number} z4 - z\n */\n drawFace(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4) {\n this.activeLayer.addShape(\n new Face(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4)\n );\n return this;\n }\n\n _ltypeTable() {\n const t = new Table(\"LTYPE\");\n const ltypes = Object.values(this.lineTypes);\n for (const lt of ltypes) t.add(lt);\n return t;\n }\n\n _layerTable(manager) {\n const t = new Table(\"LAYER\");\n const layers = Object.values(this.layers);\n for (const l of layers) t.add(l);\n return t;\n }\n\n /**\n * @see https://www.autodesk.com/techpubs/autocad/acadr14/dxf/header_section_al_u05_c.htm\n * @see https://www.autodesk.com/techpubs/autocad/acad2000/dxf/header_section_group_codes_dxf_02.htm\n *\n * @param {string} variable\n * @param {array} values Array of \"two elements arrays\". [ [value1_GroupCode, value1_value], [value2_GroupCode, value2_value] ]\n */\n header(variable, values) {\n this.headers[variable] = values;\n return this;\n }\n\n /**\n *\n * @param {string} unit see Drawing.UNITS\n */\n setUnits(unit) {\n let value =\n typeof Drawing.UNITS[unit] != \"undefined\"\n ? Drawing.UNITS[unit]\n : Drawing.UNITS[\"Unitless\"];\n this.header(\"INSUNITS\", [[70, Drawing.UNITS[unit]]]);\n return this;\n }\n\n /** Generate additional DXF metadata which are required to successfully open resulted document\n * in AutoDesk products. Call this method before serializing the drawing to get the most\n * compatible result.\n */\n generateAutocadExtras() {\n if (!this.headers[\"ACADVER\"]) {\n /* AutoCAD 2007 version. */\n this.header(\"ACADVER\", [[1, \"AC1021\"]]);\n }\n\n if (!this.lineTypes[\"ByBlock\"]) {\n this.addLineType(\"ByBlock\", \"\", []);\n }\n if (!this.lineTypes[\"ByLayer\"]) {\n this.addLineType(\"ByLayer\", \"\", []);\n }\n\n let vpTable = this.tables[\"VPORT\"];\n if (!vpTable) {\n vpTable = this.addTable(\"VPORT\");\n }\n let styleTable = this.tables[\"STYLE\"];\n if (!styleTable) {\n styleTable = this.addTable(\"STYLE\");\n }\n if (!this.tables[\"VIEW\"]) {\n this.addTable(\"VIEW\");\n }\n if (!this.tables[\"UCS\"]) {\n this.addTable(\"UCS\");\n }\n let appIdTable = this.tables[\"APPID\"];\n if (!appIdTable) {\n appIdTable = this.addTable(\"APPID\");\n }\n if (!this.tables[\"DIMSTYLE\"]) {\n const t = new DimStyleTable(\"DIMSTYLE\");\n this.tables[\"DIMSTYLE\"] = t;\n }\n\n vpTable.add(new Viewport(\"*ACTIVE\", 1000));\n\n /* Non-default text alignment is not applied without this entry. */\n styleTable.add(new TextStyle(\"standard\"));\n\n appIdTable.add(new AppId(\"ACAD\"));\n\n this.modelSpace = this.addBlock(\"*Model_Space\");\n this.addBlock(\"*Paper_Space\");\n\n const d = new Dictionary();\n this.dictionary.addChildDictionary(\"ACAD_GROUP\", d);\n }\n\n _tagsManager() {\n const manager = new TagsManager();\n\n // Setup\n const blockRecordTable = new Table(\"BLOCK_RECORD\");\n const blocks = Object.values(this.blocks);\n for (const b of blocks) {\n const r = new BlockRecord(b.name);\n blockRecordTable.add(r);\n }\n const ltypeTable = this._ltypeTable();\n const layerTable = this._layerTable();\n\n // Header section start.\n manager.start(\"HEADER\");\n manager.addHeaderVariable(\"HANDSEED\", [[5, Handle.peek()]]);\n const variables = Object.entries(this.headers);\n for (const v of variables) {\n const [name, values] = v;\n manager.addHeaderVariable(name, values);\n }\n manager.end();\n // Header section end.\n\n // Classes section start.\n manager.start(\"CLASSES\");\n // Empty CLASSES section for compatibility\n manager.end();\n // Classes section end.\n\n // Tables section start.\n manager.start(\"TABLES\");\n ltypeTable.tags(manager);\n layerTable.tags(manager);\n const tables = Object.values(this.tables);\n for (const t of tables) {\n t.tags(manager);\n }\n blockRecordTable.tags(manager);\n manager.end();\n // Tables section end.\n\n // Blocks section start.\n manager.start(\"BLOCKS\");\n for (const b of blocks) {\n b.tags(manager);\n }\n manager.end();\n // Blocks section end.\n\n // Entities section start.\n manager.start(\"ENTITIES\");\n const layers = Object.values(this.layers);\n for (const l of layers) {\n l.shapesTags(this.modelSpace, manager);\n }\n manager.end();\n // Entities section end.\n\n // Objects section start.\n manager.start(\"OBJECTS\");\n this.dictionary.tags(manager);\n manager.end();\n // Objects section end.\n\n manager.push(0, \"EOF\");\n\n return manager;\n }\n\n toDxfString() {\n return this._tagsManager().toDxfString();\n }\n}\n\n//AutoCAD Color Index (ACI)\n//http://sub-atomic.com/~moses/acadcolors.html\nDrawing.ACI = {\n LAYER: 0,\n RED: 1,\n YELLOW: 2,\n GREEN: 3,\n CYAN: 4,\n BLUE: 5,\n MAGENTA: 6,\n WHITE: 7,\n};\n\nDrawing.LINE_TYPES = [\n { name: \"CONTINUOUS\", description: \"______\", elements: [] },\n { name: \"DASHED\", description: \"_ _ _ \", elements: [5.0, -5.0] },\n { name: \"DOTTED\", description: \". . . \", elements: [0.0, -5.0] },\n];\n\nDrawing.LAYERS = [\n { name: \"0\", colorNumber: Drawing.ACI.WHITE, lineTypeName: \"CONTINUOUS\" },\n];\n\n//https://www.autodesk.com/techpubs/autocad/acad2000/dxf/header_section_group_codes_dxf_02.htm\nDrawing.UNITS = {\n Unitless: 0,\n Inches: 1,\n Feet: 2,\n Miles: 3,\n Millimeters: 4,\n Centimeters: 5,\n Meters: 6,\n Kilometers: 7,\n Microinches: 8,\n Mils: 9,\n Yards: 10,\n Angstroms: 11,\n Nanometers: 12,\n Microns: 13,\n Decimeters: 14,\n Decameters: 15,\n Hectometers: 16,\n Gigameters: 17,\n \"Astronomical units\": 18,\n \"Light years\": 19,\n Parsecs: 20,\n};\n\nmodule.exports = Drawing;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass Ellipse extends DatabaseObject {\n /**\n * Creates an ellipse.\n * @param {number} x - Center x\n * @param {number} y - Center y\n * @param {number} majorAxisX - Endpoint x of major axis, relative to center\n * @param {number} majorAxisY - Endpoint y of major axis, relative to center\n * @param {number} axisRatio - Ratio of minor axis to major axis\n * @param {number} startAngle - Start angle\n * @param {number} endAngle - End angle\n */\n constructor(x, y, majorAxisX, majorAxisY, axisRatio, startAngle, endAngle) {\n super([\"AcDbEntity\", \"AcDbEllipse\"]);\n this.x = x;\n this.y = y;\n this.majorAxisX = majorAxisX;\n this.majorAxisY = majorAxisY;\n this.axisRatio = axisRatio;\n this.startAngle = startAngle;\n this.endAngle = endAngle;\n }\n\n tags(manager) {\n // https://www.autodesk.com/techpubs/autocad/acadr14/dxf/ellipse_al_u05_c.htm\n manager.push(0, \"ELLIPSE\");\n super.tags(manager);\n manager.push(8, this.layer.name);\n manager.point(this.x, this.y);\n manager.push(11, this.majorAxisX);\n manager.push(21, this.majorAxisY);\n manager.push(31, 0);\n\n manager.push(40, this.axisRatio);\n manager.push(41, this.startAngle);\n manager.push(42, this.endAngle);\n }\n}\n\nmodule.exports = Ellipse;\n"],"names":["module","exports","DatabaseObject","constructor","name","super","this","tags","manager","push","x","y","r","startAngle","endAngle","layer","point","end","recordHandle","z","thickness","extrusionDirectionX","extrusionDirectionY","extrusionDirectionZ","Handle","subclass","handle","next","ownerObjectHandle","subclassMarkers","Array","isArray","s","children","addChildDictionary","dictionary","entries","Object","entry","dic","values","c","Table","prototype","call","elements","length","e","LineType","Layer","DimStyleTable","TextStyle","Viewport","AppId","Block","BlockRecord","Dictionary","Line","Line3d","Arc","Circle","Cylinder","Text","Polyline","Polyline3d","Face","Point","Spline","Ellipse","TagsManager","Drawing","layers","activeLayer","lineTypes","headers","tables","blocks","setUnits","ltype","LINE_TYPES","addLineType","description","l","LAYERS","addLayer","colorNumber","lineTypeName","setActiveLayer","generateAutocadExtras","addTable","table","addBlock","block","drawLine","x1","y1","x2","y2","addShape","drawLine3d","z1","z2","drawPoint","drawRect","cornerLength","cornerBulge","w","h","p","drawPolygon","numberOfSides","radius","rotation","circumscribed","angle","Math","PI","vertices","d","rotationRad","cos","i","sin","drawArc","drawCircle","drawCylinder","drawText","height","value","horizontalAlignment","verticalAlignment","drawPolyline","points","closed","startWidth","endWidth","drawPolyline3d","forEach","setTrueColor","trueColor","drawSpline","controlPoints","degree","knots","weights","fitPoints","drawEllipse","majorAxisX","majorAxisY","axisRatio","drawFace","x3","y3","z3","x4","y4","z4","_ltypeTable","t","ltypes","lt","add","_layerTable","header","variable","unit","UNITS","vpTable","styleTable","appIdTable","modelSpace","_tagsManager","blockRecordTable","b","ltypeTable","layerTable","start","addHeaderVariable","peek","variables","v","shapesTags","toDxfString","ACI","LAYER","RED","YELLOW","GREEN","CYAN","BLUE","MAGENTA","WHITE","Unitless","Inches","Feet","Miles","Millimeters","Centimeters","Meters","Kilometers","Microinches","Mils","Yards","Angstroms","Nanometers","Microns","Decimeters","Decameters","Hectometers","Gigameters","Parsecs"],"sourceRoot":""}