@mlightcad/libdxfrw-converter 3.5.33 → 3.5.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -452,7 +452,7 @@ class de extends q {
452
452
  processHeader(e, i) {
453
453
  const o = e.header;
454
454
  let n = o.getVar("$CECOLOR");
455
- i.cecolor.colorIndex = n ? n.getInt() : 256, n = o.getVar("$ANGDIR"), i.angDir = n ? n.getInt() : 0, n = o.getVar("$AUNITS"), i.aunits = n ? n.getInt() : 0, n = o.getVar("$CELTYPE"), i.celtype = n ? n.getString() : oe, n = o.getVar("$INSUNITS"), i.insunits = n ? n.getInt() : 1, n = o.getVar("$PDMODE"), i.pdmode = n ? n.getInt() : 0, n = o.getVar("$PDSIZE"), i.pdsize = n ? n.getDouble() : 0;
455
+ i.cecolor.colorIndex = n ? n.getInt() : 256, n = o.getVar("$ANGDIR"), i.angdir = n ? n.getInt() : 0, n = o.getVar("$AUNITS"), i.aunits = n ? n.getInt() : 0, n = o.getVar("$CELTYPE"), i.celtype = n ? n.getString() : oe, n = o.getVar("$INSUNITS"), i.insunits = n ? n.getInt() : 1, n = o.getVar("$PDMODE"), i.pdmode = n ? n.getInt() : 0, n = o.getVar("$PDSIZE"), i.pdsize = n ? n.getDouble() : 0;
456
456
  }
457
457
  processObjects(e, i) {
458
458
  this.processImageDefs(e.images, i);
@@ -1 +1 @@
1
- (function(h,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("@mlightcad/data-model")):typeof define=="function"&&define.amd?define(["exports","@mlightcad/data-model"],r):(h=typeof globalThis<"u"?globalThis:h||self,r(h["libdxfrw-converter"]={},h.dataModel))})(this,function(h,r){"use strict";class A{convert(e){const i=this.createEntity(e);return i&&this.processCommonAttrs(e,i),i}createEntity(e){const i=window.libdxfrw;if(e.eType==i.DRW_ETYPE.ARC)return this.convertArc(e);if(e.eType==i.DRW_ETYPE.CIRCLE)return this.convertCirle(e);if(e.eType!=i.DRW_ETYPE.DIMENSION){if(e.eType==i.DRW_ETYPE.ELLIPSE)return this.convertEllipse(e);if(e.eType==i.DRW_ETYPE.HATCH)return this.convertHatch(e);if(e.eType!=i.DRW_ETYPE.IMAGE){if(e.eType!=i.DRW_ETYPE.LEADER){if(e.eType==i.DRW_ETYPE.LINE)return this.convertLine(e);if(e.eType==i.DRW_ETYPE.MTEXT)return this.convertMText(e);if(e.eType!=i.DRW_ETYPE.POLYLINE){if(e.eType==i.DRW_ETYPE.LWPOLYLINE)return this.convertPolyline(e);if(e.eType==i.DRW_ETYPE.POINT)return this.convertPoint(e);if(e.eType==i.DRW_ETYPE.RAY)return this.convertRay(e);if(e.eType==i.DRW_ETYPE.SPLINE)return this.convertSpline(e);if(e.eType==i.DRW_ETYPE.TEXT)return this.convertText(e);if(e.eType!=i.DRW_ETYPE.SOLID){if(e.eType!=i.DRW_ETYPE.VIEWPORT){if(e.eType==i.DRW_ETYPE.XLINE)return this.convertXline(e);if(e.eType==i.DRW_ETYPE.INSERT)return this.convertBlockReference(e)}}}}}}return null}convertArc(e){const i=e.extPoint??r.AcGeVector3d.Z_AXIS;return new r.AcDbArc(r.transformOcsPointToWcs(e.center(),i),e.radius,e.startAngle,e.endAngle,i)}convertCirle(e){const i=e.extPoint??r.AcGeVector3d.Z_AXIS;return new r.AcDbCircle(r.transformOcsPointToWcs(e.basePoint,i),e.radius,i)}convertEllipse(e){const i=new r.AcGeVector3d(e.secPoint),o=i.length();return new r.AcDbEllipse(e.basePoint,r.AcGeVector3d.Z_AXIS,i,o,o*e.ratio,e.startAngle,e.endAngle)}convertBlockReference(e){const i=new r.AcDbBlockReference(e.name);return e.basePoint&&i.position.copy(e.basePoint),i.scaleFactors.x=e.xScale||1,i.scaleFactors.y=e.yScale||1,i.scaleFactors.z=e.zScale||1,i.rotation=e.angle,i.normal.copy(e.extPoint),i}convertHatch(e){const i=new r.AcDbHatch,o=e.definitionLines;for(let l=0,t=o.size();l<t;++l){const s=o.get(l);s!=null&&i.definitionLines.push({angle:s.angle,base:s.base,offset:s.offset,dashLengths:this.toNumberArray(s.dashPattern)})}i.hatchStyle=e.hatchStyle,i.patternName=e.name,i.patternType=e.patternType,i.patternAngle=e.angle,i.patternScale=e.scale;const n=e.getLoopList();for(let l=0,t=n.size();l<t;++l){const s=n.get(l);if(s!=null)if(s.type==2){const c=s.getObjList().get(0);if(c){const u=new r.AcGePolyline2d,f=c.getVertexList();for(let p=0,g=f.size();p<g;++p){const a=f.get(p);a!=null&&u.addVertexAt(p,{x:a.x,y:a.y,bulge:a.bulge})}i.add(u)}}else{const c=window.libdxfrw,u=s.getObjList(),f=new r.AcGeLoop2d;for(let p=0,g=u.size();p<g;++p){const a=u.get(p);if(a!=null){if(a.eType==c.DRW_ETYPE.LINE){const d=a;f.add(new r.AcGeLine2d(d.basePoint,d.secPoint))}else if(a.eType==c.DRW_ETYPE.ARC){const d=a;f.add(new r.AcGeCircArc2d(d.center(),d.radius,d.startAngle,d.endAngle,!d.isccw))}else if(a.eType==c.DRW_ETYPE.ELLIPSE){const d=a,m=d.basePoint,b=d.secPoint,P=new r.AcGeVector2d(b).length(),x=P*d.ratio;let w=d.startAngle,y=d.endAngle;const S=Math.atan2(b.y,b.x);d.isCounterClockwise||(w=Math.PI*2-w,y=Math.PI*2-y),f.add(new r.AcGeEllipseArc2d({x:m.x,y:m.y,z:0},P,x,w,y,!d.isCounterClockwise,S))}else if(a.eType==c.DRW_ETYPE.SPLINE){const d=a;if(d.numberOfControls>0&&d.numberOfKnots>0){const m=this.toPointArray(d.getControlList(),!0),b=this.toNumberArray(d.weights),T=this.toNumberArray(d.knots);f.add(new r.AcGeSpline3d(m,T,b.length>0?b:void 0))}else if(d.numberOfFits>0){const m=this.toPointArray(d.getFitList());f.add(new r.AcGeSpline3d(m,"Uniform"))}}}}i.add(f)}}return i}convertLine(e){const i=e.basePoint,o=e.secPoint;return new r.AcDbLine(new r.AcGePoint3d(i.x,i.y,i.z||0),new r.AcGePoint3d(o.x,o.y,o.z||0))}convertMText(e){const i=new r.AcDbMText;return i.contents=e.text,e.style!=null&&(i.styleName=e.style),i.height=e.height,i.lineSpacingFactor=e.interlin,i.rotation=e.angle||0,i.location=e.basePoint,i}convertPoint(e){const i=new r.AcDbPoint;return i.position=e.basePoint,i}convertPolyline(e){const i=new r.AcDbPolyline;i.closed=!!(e.flags&1);const o=e.width??-1,n=e.getVertexList();for(let l=0,t=n.size();l<t;++l){const s=n.get(l);s!=null&&i.addVertexAt(l,new r.AcGePoint2d(s.x,s.y),s.bulge,s.startWidth??o,s.endWidth??o)}return i}convertRay(e){const i=new r.AcDbRay;return i.basePoint.copy(e.basePoint),i.unitDir.copy(e.secPoint),i}convertSpline(e){const i=this.toNumberArray(e.weights);if(e.numberOfControls>0&&e.numberOfKnots>0)return new r.AcDbSpline(this.toPointArray(e.getControlList(),!1),this.toNumberArray(e.knots),i.length>0?i:void 0,e.degree,!!(e.flags&1));if(e.numberOfFits>0){const o=this.toPointArray(e.getFitList());if(o.length>0)return new r.AcDbSpline(o,"Uniform",e.degree,!!(e.flags&1))}return null}convertText(e){const i=new r.AcDbText;return i.textString=e.text,i.styleName=e.style,i.height=e.height,i.position.copy(e.basePoint),i.rotation=e.angle||0,i.oblique=e.oblique??0,i.horizontalMode=e.alignH,i.verticalMode=e.alignV,i.widthFactor=e.widthScale??1,i}convertXline(e){const i=new r.AcDbXline;return i.basePoint.copy(e.basePoint),i.unitDir.copy(e.secPoint),i}processCommonAttrs(e,i){i.layer=e.layer,i.objectId=e.handle.toString(),e.parentHandle!=null&&(i.ownerId=e.parentHandle.toString()),e.lineType!=null&&(i.lineType=e.lineType),e.lWeight!=null&&(i.lineWeight=e.lWeight),e.ltypeScale!=null&&(i.linetypeScale=e.ltypeScale),e.color24!=null&&i.color.setRGBValue(e.color24),e.color!=null&&(i.color.colorIndex=e.color),e.colorName&&(i.color.colorName=e.colorName),e.visible!=null&&(i.visibility=e.visible),e.transparency!=null&&(i.transparency=r.AcCmTransparency.deserialize(e.transparency))}toNumberArray(e){const i=[];for(let o=0,n=e.size();o<n;++o){const l=e.get(o);l!=null&&i.push(l)}return i}toPointArray(e,i=!0){const o=[];for(let n=0,l=e.size();n<l;++n){const t=e.get(n);t!=null&&o.push({x:t.x,y:t.y,z:i?0:t.z})}return o}}class v{convertImageDef(e){const i=new r.AcDbRasterImageDef;return i.sourceFileName=e.path,i.objectId=e.handle.toString(),e.parentHandle!=null&&(i.ownerId=e.parentHandle.toString()),i}}class D extends r.AcDbDatabaseConverter{constructor(e){super(),this.librefrw=e}onFinished(){super.onFinished(),this.dwg&&(this.dwg.delete(),this.dwg=void 0),this.database&&(this.database.delete(),this.database=void 0),this.fileHandler&&(this.fileHandler.delete(),this.fileHandler=void 0)}async parse(e){if(this.librefrw==null)throw new Error("librefrw is not loaded!");const i=this.librefrw;return this.database=new i.DRW_Database,this.fileHandler=new i.DRW_FileHandler,this.fileHandler.database=this.database,this.dwg=new i.DRW_DwgR(e),this.dwg.read(this.fileHandler,!1),{model:this.database,data:{unknownEntityCount:0}}}processLineTypes(e,i){const o=e.lineTypes;for(let n=0,l=o.size();n<l;++n){const t=o.get(n);if(t!=null){const s={name:t.name,description:t.desc,standardFlag:t.flags,totalPatternLength:t.length,pattern:this.convertLineTypePattern(t.path)},c=new r.AcDbLinetypeTableRecord(s);this.processCommonTableEntryAttrs(t,c),c.name=t.name,i.tables.linetypeTable.add(c)}}}convertLineTypePattern(e){const i=[];for(let o=0,n=e.size();o<n;++o)i.push({elementLength:e.get(o)||0,elementTypeFlag:0});return i}processTextStyles(e,i){const o=e.textStyles;for(let n=0,l=o.size();n<l;++n){const t=o.get(n);if(t!=null){const s={name:t.name,standardFlag:t.flags,fixedTextHeight:t.height,widthFactor:t.width,obliqueAngle:t.oblique,textGenerationFlag:t.genFlag,lastHeight:t.lastHeight,font:t.font,bigFont:t.bigFont},c=new r.AcDbTextStyleTableRecord(s);this.processCommonTableEntryAttrs(t,c),i.tables.textStyleTable.add(c)}}}processDimStyles(e,i){const o=e.dimStyles;for(let n=0,l=o.size();n<l;++n){const t=o.get(n);if(t!=null){const s={name:t.name,ownerId:t.parentHandle.toString(),dimpost:t.dimpost||"",dimapost:t.dimapost||"",dimscale:t.dimscale,dimasz:t.dimasz,dimexo:t.dimexo,dimdli:t.dimdli,dimexe:t.dimexe,dimrnd:t.dimrnd,dimdle:t.dimdle,dimtp:t.dimtp,dimtm:t.dimtm,dimtxt:t.dimtxt,dimcen:t.dimcen,dimtsz:t.dimtsz,dimaltf:t.dimaltf,dimlfac:t.dimlfac,dimtvp:t.dimtvp,dimtfac:t.dimtfac,dimgap:t.dimgap,dimaltrnd:t.dimaltrnd,dimtol:t.dimtol==null||t.dimtol==0?0:1,dimlim:t.dimlim==null||t.dimlim==0?0:1,dimtih:t.dimtih==null||t.dimtih==0?0:1,dimtoh:t.dimtoh==null||t.dimtoh==0?0:1,dimse1:t.dimse1==null||t.dimse1==0?0:1,dimse2:t.dimse2==null||t.dimse2==0?0:1,dimtad:t.dimtad,dimzin:t.dimzin,dimazin:t.dimazin,dimalt:t.dimalt,dimaltd:t.dimaltd,dimtofl:t.dimtofl,dimsah:t.dimsah,dimtix:t.dimtix,dimsoxd:t.dimsoxd,dimclrd:t.dimclrd,dimclre:t.dimclre,dimclrt:t.dimclrt,dimadec:t.dimadec||0,dimunit:t.dimunit||2,dimdec:t.dimdec,dimtdec:t.dimtdec,dimaltu:t.dimaltu,dimalttd:t.dimalttd,dimaunit:t.dimaunit,dimfrac:t.dimfrac,dimlunit:t.dimlunit,dimdsep:t.dimdsep.toString(),dimtmove:t.dimtmove||0,dimjust:t.dimjust,dimsd1:t.dimsd1,dimsd2:t.dimsd2,dimtolj:t.dimtolj,dimtzin:t.dimtzin,dimaltz:t.dimaltz,dimalttz:t.dimaltttz,dimfit:t.dimfit||0,dimupt:t.dimupt,dimatfit:t.dimatfit,dimtxsty:t.dimtxsty||r.DEFAULT_TEXT_STYLE,dimldrblk:t.dimldrblk||"",dimblk:t.dimblk||"",dimblk1:t.dimblk1||"",dimblk2:t.dimblk2||"",dimlwd:t.dimlwd,dimlwe:t.dimlwe},c=new r.AcDbDimStyleTableRecord(s);this.processCommonTableEntryAttrs(t,c),i.tables.dimStyleTable.add(c)}}}processLayers(e,i){const o=e.layers;for(let n=0,l=o.size();n<l;++n){const t=o.get(n);if(t!=null){const s=new r.AcCmColor;s.colorIndex=t.color;const c=new r.AcDbLayerTableRecord({name:t.name,standardFlags:t.flags,linetype:t.lineType,lineWeight:t.lWeight,isOff:t.color<0,color:s,isPlottable:t.plotF,materialId:t.handleMaterialS});this.processCommonTableEntryAttrs(t,c),i.tables.layerTable.add(c)}}}processViewports(e,i){const o=e.viewports;for(let n=0,l=o.size();n<l;++n){const t=o.get(n);if(t!=null){const s=new r.AcDbViewportTableRecord;this.processCommonTableEntryAttrs(t,s),t.circleZoom&&(s.circleSides=t.circleZoom),s.standardFlag=t.flags,s.center.copy(t.center),s.lowerLeftCorner.copy(t.lowerLeft),s.upperRightCorner.copy(t.upperRight),t.snapBase&&s.snapBase.copy(t.snapBase),t.snapAngle&&(s.snapAngle=t.snapAngle),s.snapIncrements&&s.snapIncrements.copy(t.snapSpacing),t.gridSpacing&&s.gridIncrements.copy(t.gridSpacing),s.gsView.center.copy(t.center),s.gsView.viewDirectionFromTarget.copy(t.viewDir),s.gsView.viewTarget.copy(t.viewTarget),t.lensHeight&&(s.gsView.lensLength=t.lensHeight),t.height&&(s.gsView.viewHeight=t.height),t.twistAngle&&(s.gsView.viewTwistAngle=t.twistAngle),t.viewMode&&(s.gsView.viewMode=t.viewMode),t.ucsIcon&&(s.gsView.ucsIconSetting=t.ucsIcon),i.tables.viewportTable.add(s)}}}processBlockTables(e,i){const o=e.blocks;for(let n=0,l=o.size();n<l;++n){const t=o.get(n);if(t!=null){const s=new r.AcDbBlockTableRecord;s.objectId=t.handle.toString(),s.name=t.name.toUpperCase(),i.tables.blockTable.add(s),t.entities&&this.processEntitiesInBlock(t.entities,s)}}}processCommonTableEntryAttrs(e,i){i.name=e.name,i.objectId=e.handle.toString(),e.parentHandle!=null&&(i.ownerId=e.parentHandle.toString())}processHeader(e,i){const o=e.header;let n=o.getVar("$CECOLOR");i.cecolor.colorIndex=n?n.getInt():256,n=o.getVar("$ANGDIR"),i.angDir=n?n.getInt():0,n=o.getVar("$AUNITS"),i.aunits=n?n.getInt():0,n=o.getVar("$CELTYPE"),i.celtype=n?n.getString():r.ByLayer,n=o.getVar("$INSUNITS"),i.insunits=n?n.getInt():1,n=o.getVar("$PDMODE"),i.pdmode=n?n.getInt():0,n=o.getVar("$PDSIZE"),i.pdsize=n?n.getDouble():0}processObjects(e,i){this.processImageDefs(e.images,i)}processImageDefs(e,i){const o=new v,n=i.objects.imageDefinition;for(let l=0,t=e.size();l<t;++l){const s=e.get(l);if(s!=null){const c=o.convertImageDef(s);n.setAt(c.objectId,c)}}}async processEntitiesInBlock(e,i){const o=new A,n=[];for(let l=0,t=e.size();l<t;++l){const s=e.get(l);if(s!=null){const c=o.convert(s);c&&n.push(c)}}i.appendEntity(n)}async processEntities(e,i,o,n,l){if(e.mBlock){const t=new A;let s=[];const c=e.mBlock.entities,u=c.size();for(let g=0;g<u;g++){const a=c.get(g);a&&s.push(a)}const f=new r.AcDbBatchProcessing(s.length,100-n.value,o);this.config.convertByEntityType&&(s=this.groupAndFlattenByType(s));const p=i.tables.blockTable.modelSpace;await f.processChunk(async(g,a)=>{const d=[];for(let m=g;m<a;m++){const b=s[m],T=t.convert(b);T&&d.push(T)}if(p.appendEntity(d),l){let m=n.value+a/u*(100-n.value);m>100&&(m=100),await l(m,"ENTITY","IN-PROGRESS")}})}}groupAndFlattenByType(e){const i={},o=[],n=e.length;for(let l=0;l<n;l++){const t=e[l],s=t.eType.value;i[s]||(i[s]=[],o.push(s)),i[s].push(t)}return o.flatMap(l=>i[l])}}h.AcDbLibdxfrwConverter=D,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
1
+ (function(h,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("@mlightcad/data-model")):typeof define=="function"&&define.amd?define(["exports","@mlightcad/data-model"],r):(h=typeof globalThis<"u"?globalThis:h||self,r(h["libdxfrw-converter"]={},h.dataModel))})(this,function(h,r){"use strict";class A{convert(e){const i=this.createEntity(e);return i&&this.processCommonAttrs(e,i),i}createEntity(e){const i=window.libdxfrw;if(e.eType==i.DRW_ETYPE.ARC)return this.convertArc(e);if(e.eType==i.DRW_ETYPE.CIRCLE)return this.convertCirle(e);if(e.eType!=i.DRW_ETYPE.DIMENSION){if(e.eType==i.DRW_ETYPE.ELLIPSE)return this.convertEllipse(e);if(e.eType==i.DRW_ETYPE.HATCH)return this.convertHatch(e);if(e.eType!=i.DRW_ETYPE.IMAGE){if(e.eType!=i.DRW_ETYPE.LEADER){if(e.eType==i.DRW_ETYPE.LINE)return this.convertLine(e);if(e.eType==i.DRW_ETYPE.MTEXT)return this.convertMText(e);if(e.eType!=i.DRW_ETYPE.POLYLINE){if(e.eType==i.DRW_ETYPE.LWPOLYLINE)return this.convertPolyline(e);if(e.eType==i.DRW_ETYPE.POINT)return this.convertPoint(e);if(e.eType==i.DRW_ETYPE.RAY)return this.convertRay(e);if(e.eType==i.DRW_ETYPE.SPLINE)return this.convertSpline(e);if(e.eType==i.DRW_ETYPE.TEXT)return this.convertText(e);if(e.eType!=i.DRW_ETYPE.SOLID){if(e.eType!=i.DRW_ETYPE.VIEWPORT){if(e.eType==i.DRW_ETYPE.XLINE)return this.convertXline(e);if(e.eType==i.DRW_ETYPE.INSERT)return this.convertBlockReference(e)}}}}}}return null}convertArc(e){const i=e.extPoint??r.AcGeVector3d.Z_AXIS;return new r.AcDbArc(r.transformOcsPointToWcs(e.center(),i),e.radius,e.startAngle,e.endAngle,i)}convertCirle(e){const i=e.extPoint??r.AcGeVector3d.Z_AXIS;return new r.AcDbCircle(r.transformOcsPointToWcs(e.basePoint,i),e.radius,i)}convertEllipse(e){const i=new r.AcGeVector3d(e.secPoint),o=i.length();return new r.AcDbEllipse(e.basePoint,r.AcGeVector3d.Z_AXIS,i,o,o*e.ratio,e.startAngle,e.endAngle)}convertBlockReference(e){const i=new r.AcDbBlockReference(e.name);return e.basePoint&&i.position.copy(e.basePoint),i.scaleFactors.x=e.xScale||1,i.scaleFactors.y=e.yScale||1,i.scaleFactors.z=e.zScale||1,i.rotation=e.angle,i.normal.copy(e.extPoint),i}convertHatch(e){const i=new r.AcDbHatch,o=e.definitionLines;for(let l=0,t=o.size();l<t;++l){const s=o.get(l);s!=null&&i.definitionLines.push({angle:s.angle,base:s.base,offset:s.offset,dashLengths:this.toNumberArray(s.dashPattern)})}i.hatchStyle=e.hatchStyle,i.patternName=e.name,i.patternType=e.patternType,i.patternAngle=e.angle,i.patternScale=e.scale;const n=e.getLoopList();for(let l=0,t=n.size();l<t;++l){const s=n.get(l);if(s!=null)if(s.type==2){const c=s.getObjList().get(0);if(c){const u=new r.AcGePolyline2d,f=c.getVertexList();for(let p=0,g=f.size();p<g;++p){const a=f.get(p);a!=null&&u.addVertexAt(p,{x:a.x,y:a.y,bulge:a.bulge})}i.add(u)}}else{const c=window.libdxfrw,u=s.getObjList(),f=new r.AcGeLoop2d;for(let p=0,g=u.size();p<g;++p){const a=u.get(p);if(a!=null){if(a.eType==c.DRW_ETYPE.LINE){const d=a;f.add(new r.AcGeLine2d(d.basePoint,d.secPoint))}else if(a.eType==c.DRW_ETYPE.ARC){const d=a;f.add(new r.AcGeCircArc2d(d.center(),d.radius,d.startAngle,d.endAngle,!d.isccw))}else if(a.eType==c.DRW_ETYPE.ELLIPSE){const d=a,m=d.basePoint,b=d.secPoint,P=new r.AcGeVector2d(b).length(),x=P*d.ratio;let w=d.startAngle,y=d.endAngle;const S=Math.atan2(b.y,b.x);d.isCounterClockwise||(w=Math.PI*2-w,y=Math.PI*2-y),f.add(new r.AcGeEllipseArc2d({x:m.x,y:m.y,z:0},P,x,w,y,!d.isCounterClockwise,S))}else if(a.eType==c.DRW_ETYPE.SPLINE){const d=a;if(d.numberOfControls>0&&d.numberOfKnots>0){const m=this.toPointArray(d.getControlList(),!0),b=this.toNumberArray(d.weights),T=this.toNumberArray(d.knots);f.add(new r.AcGeSpline3d(m,T,b.length>0?b:void 0))}else if(d.numberOfFits>0){const m=this.toPointArray(d.getFitList());f.add(new r.AcGeSpline3d(m,"Uniform"))}}}}i.add(f)}}return i}convertLine(e){const i=e.basePoint,o=e.secPoint;return new r.AcDbLine(new r.AcGePoint3d(i.x,i.y,i.z||0),new r.AcGePoint3d(o.x,o.y,o.z||0))}convertMText(e){const i=new r.AcDbMText;return i.contents=e.text,e.style!=null&&(i.styleName=e.style),i.height=e.height,i.lineSpacingFactor=e.interlin,i.rotation=e.angle||0,i.location=e.basePoint,i}convertPoint(e){const i=new r.AcDbPoint;return i.position=e.basePoint,i}convertPolyline(e){const i=new r.AcDbPolyline;i.closed=!!(e.flags&1);const o=e.width??-1,n=e.getVertexList();for(let l=0,t=n.size();l<t;++l){const s=n.get(l);s!=null&&i.addVertexAt(l,new r.AcGePoint2d(s.x,s.y),s.bulge,s.startWidth??o,s.endWidth??o)}return i}convertRay(e){const i=new r.AcDbRay;return i.basePoint.copy(e.basePoint),i.unitDir.copy(e.secPoint),i}convertSpline(e){const i=this.toNumberArray(e.weights);if(e.numberOfControls>0&&e.numberOfKnots>0)return new r.AcDbSpline(this.toPointArray(e.getControlList(),!1),this.toNumberArray(e.knots),i.length>0?i:void 0,e.degree,!!(e.flags&1));if(e.numberOfFits>0){const o=this.toPointArray(e.getFitList());if(o.length>0)return new r.AcDbSpline(o,"Uniform",e.degree,!!(e.flags&1))}return null}convertText(e){const i=new r.AcDbText;return i.textString=e.text,i.styleName=e.style,i.height=e.height,i.position.copy(e.basePoint),i.rotation=e.angle||0,i.oblique=e.oblique??0,i.horizontalMode=e.alignH,i.verticalMode=e.alignV,i.widthFactor=e.widthScale??1,i}convertXline(e){const i=new r.AcDbXline;return i.basePoint.copy(e.basePoint),i.unitDir.copy(e.secPoint),i}processCommonAttrs(e,i){i.layer=e.layer,i.objectId=e.handle.toString(),e.parentHandle!=null&&(i.ownerId=e.parentHandle.toString()),e.lineType!=null&&(i.lineType=e.lineType),e.lWeight!=null&&(i.lineWeight=e.lWeight),e.ltypeScale!=null&&(i.linetypeScale=e.ltypeScale),e.color24!=null&&i.color.setRGBValue(e.color24),e.color!=null&&(i.color.colorIndex=e.color),e.colorName&&(i.color.colorName=e.colorName),e.visible!=null&&(i.visibility=e.visible),e.transparency!=null&&(i.transparency=r.AcCmTransparency.deserialize(e.transparency))}toNumberArray(e){const i=[];for(let o=0,n=e.size();o<n;++o){const l=e.get(o);l!=null&&i.push(l)}return i}toPointArray(e,i=!0){const o=[];for(let n=0,l=e.size();n<l;++n){const t=e.get(n);t!=null&&o.push({x:t.x,y:t.y,z:i?0:t.z})}return o}}class v{convertImageDef(e){const i=new r.AcDbRasterImageDef;return i.sourceFileName=e.path,i.objectId=e.handle.toString(),e.parentHandle!=null&&(i.ownerId=e.parentHandle.toString()),i}}class D extends r.AcDbDatabaseConverter{constructor(e){super(),this.librefrw=e}onFinished(){super.onFinished(),this.dwg&&(this.dwg.delete(),this.dwg=void 0),this.database&&(this.database.delete(),this.database=void 0),this.fileHandler&&(this.fileHandler.delete(),this.fileHandler=void 0)}async parse(e){if(this.librefrw==null)throw new Error("librefrw is not loaded!");const i=this.librefrw;return this.database=new i.DRW_Database,this.fileHandler=new i.DRW_FileHandler,this.fileHandler.database=this.database,this.dwg=new i.DRW_DwgR(e),this.dwg.read(this.fileHandler,!1),{model:this.database,data:{unknownEntityCount:0}}}processLineTypes(e,i){const o=e.lineTypes;for(let n=0,l=o.size();n<l;++n){const t=o.get(n);if(t!=null){const s={name:t.name,description:t.desc,standardFlag:t.flags,totalPatternLength:t.length,pattern:this.convertLineTypePattern(t.path)},c=new r.AcDbLinetypeTableRecord(s);this.processCommonTableEntryAttrs(t,c),c.name=t.name,i.tables.linetypeTable.add(c)}}}convertLineTypePattern(e){const i=[];for(let o=0,n=e.size();o<n;++o)i.push({elementLength:e.get(o)||0,elementTypeFlag:0});return i}processTextStyles(e,i){const o=e.textStyles;for(let n=0,l=o.size();n<l;++n){const t=o.get(n);if(t!=null){const s={name:t.name,standardFlag:t.flags,fixedTextHeight:t.height,widthFactor:t.width,obliqueAngle:t.oblique,textGenerationFlag:t.genFlag,lastHeight:t.lastHeight,font:t.font,bigFont:t.bigFont},c=new r.AcDbTextStyleTableRecord(s);this.processCommonTableEntryAttrs(t,c),i.tables.textStyleTable.add(c)}}}processDimStyles(e,i){const o=e.dimStyles;for(let n=0,l=o.size();n<l;++n){const t=o.get(n);if(t!=null){const s={name:t.name,ownerId:t.parentHandle.toString(),dimpost:t.dimpost||"",dimapost:t.dimapost||"",dimscale:t.dimscale,dimasz:t.dimasz,dimexo:t.dimexo,dimdli:t.dimdli,dimexe:t.dimexe,dimrnd:t.dimrnd,dimdle:t.dimdle,dimtp:t.dimtp,dimtm:t.dimtm,dimtxt:t.dimtxt,dimcen:t.dimcen,dimtsz:t.dimtsz,dimaltf:t.dimaltf,dimlfac:t.dimlfac,dimtvp:t.dimtvp,dimtfac:t.dimtfac,dimgap:t.dimgap,dimaltrnd:t.dimaltrnd,dimtol:t.dimtol==null||t.dimtol==0?0:1,dimlim:t.dimlim==null||t.dimlim==0?0:1,dimtih:t.dimtih==null||t.dimtih==0?0:1,dimtoh:t.dimtoh==null||t.dimtoh==0?0:1,dimse1:t.dimse1==null||t.dimse1==0?0:1,dimse2:t.dimse2==null||t.dimse2==0?0:1,dimtad:t.dimtad,dimzin:t.dimzin,dimazin:t.dimazin,dimalt:t.dimalt,dimaltd:t.dimaltd,dimtofl:t.dimtofl,dimsah:t.dimsah,dimtix:t.dimtix,dimsoxd:t.dimsoxd,dimclrd:t.dimclrd,dimclre:t.dimclre,dimclrt:t.dimclrt,dimadec:t.dimadec||0,dimunit:t.dimunit||2,dimdec:t.dimdec,dimtdec:t.dimtdec,dimaltu:t.dimaltu,dimalttd:t.dimalttd,dimaunit:t.dimaunit,dimfrac:t.dimfrac,dimlunit:t.dimlunit,dimdsep:t.dimdsep.toString(),dimtmove:t.dimtmove||0,dimjust:t.dimjust,dimsd1:t.dimsd1,dimsd2:t.dimsd2,dimtolj:t.dimtolj,dimtzin:t.dimtzin,dimaltz:t.dimaltz,dimalttz:t.dimaltttz,dimfit:t.dimfit||0,dimupt:t.dimupt,dimatfit:t.dimatfit,dimtxsty:t.dimtxsty||r.DEFAULT_TEXT_STYLE,dimldrblk:t.dimldrblk||"",dimblk:t.dimblk||"",dimblk1:t.dimblk1||"",dimblk2:t.dimblk2||"",dimlwd:t.dimlwd,dimlwe:t.dimlwe},c=new r.AcDbDimStyleTableRecord(s);this.processCommonTableEntryAttrs(t,c),i.tables.dimStyleTable.add(c)}}}processLayers(e,i){const o=e.layers;for(let n=0,l=o.size();n<l;++n){const t=o.get(n);if(t!=null){const s=new r.AcCmColor;s.colorIndex=t.color;const c=new r.AcDbLayerTableRecord({name:t.name,standardFlags:t.flags,linetype:t.lineType,lineWeight:t.lWeight,isOff:t.color<0,color:s,isPlottable:t.plotF,materialId:t.handleMaterialS});this.processCommonTableEntryAttrs(t,c),i.tables.layerTable.add(c)}}}processViewports(e,i){const o=e.viewports;for(let n=0,l=o.size();n<l;++n){const t=o.get(n);if(t!=null){const s=new r.AcDbViewportTableRecord;this.processCommonTableEntryAttrs(t,s),t.circleZoom&&(s.circleSides=t.circleZoom),s.standardFlag=t.flags,s.center.copy(t.center),s.lowerLeftCorner.copy(t.lowerLeft),s.upperRightCorner.copy(t.upperRight),t.snapBase&&s.snapBase.copy(t.snapBase),t.snapAngle&&(s.snapAngle=t.snapAngle),s.snapIncrements&&s.snapIncrements.copy(t.snapSpacing),t.gridSpacing&&s.gridIncrements.copy(t.gridSpacing),s.gsView.center.copy(t.center),s.gsView.viewDirectionFromTarget.copy(t.viewDir),s.gsView.viewTarget.copy(t.viewTarget),t.lensHeight&&(s.gsView.lensLength=t.lensHeight),t.height&&(s.gsView.viewHeight=t.height),t.twistAngle&&(s.gsView.viewTwistAngle=t.twistAngle),t.viewMode&&(s.gsView.viewMode=t.viewMode),t.ucsIcon&&(s.gsView.ucsIconSetting=t.ucsIcon),i.tables.viewportTable.add(s)}}}processBlockTables(e,i){const o=e.blocks;for(let n=0,l=o.size();n<l;++n){const t=o.get(n);if(t!=null){const s=new r.AcDbBlockTableRecord;s.objectId=t.handle.toString(),s.name=t.name.toUpperCase(),i.tables.blockTable.add(s),t.entities&&this.processEntitiesInBlock(t.entities,s)}}}processCommonTableEntryAttrs(e,i){i.name=e.name,i.objectId=e.handle.toString(),e.parentHandle!=null&&(i.ownerId=e.parentHandle.toString())}processHeader(e,i){const o=e.header;let n=o.getVar("$CECOLOR");i.cecolor.colorIndex=n?n.getInt():256,n=o.getVar("$ANGDIR"),i.angdir=n?n.getInt():0,n=o.getVar("$AUNITS"),i.aunits=n?n.getInt():0,n=o.getVar("$CELTYPE"),i.celtype=n?n.getString():r.ByLayer,n=o.getVar("$INSUNITS"),i.insunits=n?n.getInt():1,n=o.getVar("$PDMODE"),i.pdmode=n?n.getInt():0,n=o.getVar("$PDSIZE"),i.pdsize=n?n.getDouble():0}processObjects(e,i){this.processImageDefs(e.images,i)}processImageDefs(e,i){const o=new v,n=i.objects.imageDefinition;for(let l=0,t=e.size();l<t;++l){const s=e.get(l);if(s!=null){const c=o.convertImageDef(s);n.setAt(c.objectId,c)}}}async processEntitiesInBlock(e,i){const o=new A,n=[];for(let l=0,t=e.size();l<t;++l){const s=e.get(l);if(s!=null){const c=o.convert(s);c&&n.push(c)}}i.appendEntity(n)}async processEntities(e,i,o,n,l){if(e.mBlock){const t=new A;let s=[];const c=e.mBlock.entities,u=c.size();for(let g=0;g<u;g++){const a=c.get(g);a&&s.push(a)}const f=new r.AcDbBatchProcessing(s.length,100-n.value,o);this.config.convertByEntityType&&(s=this.groupAndFlattenByType(s));const p=i.tables.blockTable.modelSpace;await f.processChunk(async(g,a)=>{const d=[];for(let m=g;m<a;m++){const b=s[m],T=t.convert(b);T&&d.push(T)}if(p.appendEntity(d),l){let m=n.value+a/u*(100-n.value);m>100&&(m=100),await l(m,"ENTITY","IN-PROGRESS")}})}}groupAndFlattenByType(e){const i={},o=[],n=e.length;for(let l=0;l<n;l++){const t=e[l],s=t.eType.value;i[s]||(i[s]=[],o.push(s)),i[s].push(t)}return o.flatMap(l=>i[l])}}h.AcDbLibdxfrwConverter=D,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
@@ -336,7 +336,7 @@ var AcDbLibdxfrwConverter = /** @class */ (function (_super) {
336
336
  db.cecolor.colorIndex = variant ? variant.getInt() : 256;
337
337
  variant = header.getVar('$ANGDIR');
338
338
  // Initial value: 0
339
- db.angDir = variant ? variant.getInt() : 0;
339
+ db.angdir = variant ? variant.getInt() : 0;
340
340
  variant = header.getVar('$AUNITS');
341
341
  // Initial value: 0
342
342
  db.aunits = variant ? variant.getInt() : 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mlightcad/libdxfrw-converter",
3
- "version": "3.5.33",
3
+ "version": "3.5.35",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -36,7 +36,7 @@
36
36
  "devDependencies": {},
37
37
  "peerDependencies": {
38
38
  "@mlightcad/libdxfrw-web": "0.0.9",
39
- "@mlightcad/data-model": "1.7.33"
39
+ "@mlightcad/data-model": "1.7.35"
40
40
  },
41
41
  "scripts": {
42
42
  "clean": "rimraf dist lib tsconfig.tsbuildinfo",