public DXFPolyline(DXFData aData, int aIndex) : base(aData) { if (aData.count > 0 && aIndex < aData.count) { this.Clear(); this.data.count = this.data.points.Count; ArrayList arrayLists = new ArrayList(); for (int i = 0; i < ((ArrayList)aData.points[aIndex]).Count; i++) { DXFPoint item = (DXFPoint)((ArrayList)aData.points[aIndex])[i]; if (item.X < this.data.point.X) { this.data.point.X = item.X; } if (item.Y < this.data.point.Y) { this.data.point.Y = item.Y; } if (item.X > this.data.point1.X) { this.data.point1.X = item.X; } if (item.Y > this.data.point1.Y) { this.data.point1.Y = item.Y; } this.Points.Add(item); } } }
protected void SetStyle(DXFData Data) { this.style = (HatchStyle)this.data.style; this.patternName = DXFTables.sPatternSOLID; this.data.flags = 1; if (this.style != HatchStyle.hsSolid) { this.data.flags = 0; switch (this.style) { case HatchStyle.hsHorizontal: { this.PatternName = DXFTables.sPatternLINE; return; } case HatchStyle.hsVertical: { this.PatternName = DXFTables.sPatternLINE; return; } case HatchStyle.hsFDiagonal: { this.PatternName = DXFTables.sPatternANSI31; return; } case HatchStyle.hsBDiagonal: { this.PatternName = DXFTables.sPatternANSI31; return; } case HatchStyle.hsCross: { this.PatternName = DXFTables.sPatternNET; return; } case HatchStyle.hsDiagCross: { this.PatternName = DXFTables.sPatternANSI37; break; } default: { return; } } } }
public object Clone() { DXFData dXFDatum = new DXFData() { tag = this.tag, count = this.count, flags = this.flags, style = this.style, selfType = this.selfType, color = this.color, thickness = this.thickness, rotation = this.rotation, text = (string)this.text.Clone(), point = (DXFPoint)this.point.Clone(), point1 = (DXFPoint)this.point1.Clone(), point2 = (DXFPoint)this.point2.Clone(), point3 = (DXFPoint)this.point3.Clone(), radius = this.radius, startAngle = this.startAngle, endAngle = this.endAngle, scale = (DXFPoint)this.scale.Clone(), hAlign = this.hAlign, vAlign = this.vAlign, rWidth = this.rWidth, rHeight = this.rHeight, height = this.height, fScale = this.fScale, points = new ArrayList(this.points), bold = this.bold, italic = this.italic, name = (string)this.name.Clone(), globalWidth = this.globalWidth }; return(dXFDatum); }
public void ParseToTexts(Rect aRect, ArrayList NewElemes) { int num; float x; string pourStr = ""; string str = ""; string str1 = ""; DXFData dXFDatum = new DXFData(); if (this.data.rotation == 0f) { dXFDatum = (DXFData)this.data.Clone(); if ((float)aRect.X1 > dXFDatum.point.X) { pourStr = DXFExport.GetPourStr(dXFDatum.text); str1 = dXFDatum.text.Substring(0, dXFDatum.text.Length - pourStr.Length); num = (int) Math.Round( (double)((float)pourStr.Length * (((float)aRect.X1 - dXFDatum.point.X) / dXFDatum.rWidth))); for (int i = 0; i < num; i++) { str = string.Concat(str, pourStr[i]); } pourStr = string.Concat(str1, str); dXFDatum.rWidth = this.data.rWidth * (float)num / (float)pourStr.Length; dXFDatum.text = pourStr; NewElemes.Add(new DXFMText(dXFDatum)); } dXFDatum = (DXFData)this.data.Clone(); str = ""; if ((float)aRect.X2 < dXFDatum.point.X + dXFDatum.rWidth) { pourStr = DXFExport.GetPourStr(dXFDatum.text); str1 = dXFDatum.text.Substring(0, dXFDatum.text.Length - pourStr.Length); x = (dXFDatum.point.X + dXFDatum.rWidth - (float)aRect.X2) / dXFDatum.rWidth; num = (int)Math.Round((double)((float)pourStr.Length * x)); DXFPoint dXFPoint = dXFDatum.point; dXFPoint.X = dXFPoint.X + (dXFDatum.rWidth - dXFDatum.rWidth * x); for (int j = pourStr.Length; j < pourStr.Length - num + 1; j--) { str = string.Concat(pourStr[j], str); } pourStr = string.Concat(str1, str); dXFDatum.rWidth = dXFDatum.rWidth * (float)num / (float)pourStr.Length; dXFDatum.text = pourStr; NewElemes.Add(new DXFMText(dXFDatum)); } } if (this.data.rotation == 90f) { dXFDatum = (DXFData)this.data.Clone(); if ((float)aRect.X1 > dXFDatum.point.X) { pourStr = DXFExport.GetPourStr(dXFDatum.text); str1 = dXFDatum.text.Substring(0, dXFDatum.text.Length - pourStr.Length); num = (int) Math.Round( (double)((float)pourStr.Length * (((float)aRect.X1 - dXFDatum.point.X) / dXFDatum.rWidth))); for (int k = 0; k < num; k++) { str = string.Concat(str, pourStr[k]); } pourStr = string.Concat(str1, str); dXFDatum.rWidth = dXFDatum.rWidth * (float)num / (float)pourStr.Length; dXFDatum.text = pourStr; NewElemes.Add(new DXFMText(dXFDatum)); } dXFDatum = (DXFData)this.data.Clone(); str = ""; if ((float)aRect.X2 < dXFDatum.point.X + dXFDatum.rWidth) { pourStr = DXFExport.GetPourStr(dXFDatum.text); str1 = dXFDatum.text.Substring(0, dXFDatum.text.Length - pourStr.Length); x = (dXFDatum.point.X + dXFDatum.rWidth - (float)aRect.X2) / dXFDatum.rWidth; num = (int)Math.Round((double)((float)pourStr.Length * x)); DXFPoint x1 = dXFDatum.point; x1.X = x1.X + (dXFDatum.rWidth - dXFDatum.rWidth * x); DXFPoint y = dXFDatum.point; y.Y = y.Y + (dXFDatum.rWidth - dXFDatum.rWidth * x); for (int l = pourStr.Length; l < pourStr.Length - num + 1; l--) { str = string.Concat(pourStr[l], str); } pourStr = string.Concat(str1, str); dXFDatum.rWidth = dXFDatum.rWidth * (float)num / (float)pourStr.Length; dXFDatum.text = pourStr; NewElemes.Add(new DXFMText(dXFDatum)); } } if (this.data.rotation == 270f) { dXFDatum = (DXFData)this.data.Clone(); if ((float)aRect.Y2 < dXFDatum.point.Y) { pourStr = DXFExport.GetPourStr(dXFDatum.text); str1 = dXFDatum.text.Substring(0, dXFDatum.text.Length - pourStr.Length); num = (int) Math.Round( (double)((float)pourStr.Length * ((dXFDatum.point.Y - (float)aRect.Y2) / dXFDatum.rWidth))); for (int m = 0; m < num; m++) { str = string.Concat(str, pourStr[m]); } dXFDatum.rWidth = dXFDatum.rWidth * (float)num / (float)pourStr.Length; pourStr = string.Concat(str1, str); dXFDatum.text = pourStr; NewElemes.Add(new DXFMText(dXFDatum)); } dXFDatum = this.data; str = ""; if ((float)aRect.Y1 > dXFDatum.point.Y - dXFDatum.rWidth) { pourStr = DXFExport.GetPourStr(dXFDatum.text); str1 = dXFDatum.text.Substring(0, dXFDatum.text.Length - pourStr.Length); x = (dXFDatum.rWidth - dXFDatum.point.Y + (float)aRect.Y1) / dXFDatum.rWidth; num = (int)Math.Round((double)((float)pourStr.Length * x)); DXFPoint y1 = dXFDatum.point; y1.Y = y1.Y - (dXFDatum.rWidth - dXFDatum.rWidth * x); for (int n = pourStr.Length; n < pourStr.Length - num + 1; n--) { str = string.Concat(pourStr[n], str); } dXFDatum.rWidth = dXFDatum.rWidth * (float)num / (float)pourStr.Length; pourStr = string.Concat(str1, str); dXFDatum.text = pourStr; NewElemes.Add(new DXFMText(dXFDatum)); } } }
public DXFMText(DXFData aData) : base(aData) { }
public DXFPolyBezier(DXFData aData, int aIndex) : base(aData, aIndex) { }
public DXFLine(DXFData aData) : base(aData) { }
public DXFFigure(DXFData dt) { this.layer = "0"; this.data = (DXFData)dt.Clone(); }
public DXFFigure() { this.layer = "0"; this.data = new DXFData(); }
public DXFArc(DXFData aData) : base(aData) { this.type = (ArcType)aData.selfType; }
public DXFEllipse(DXFData aData, bool aEllipse) : base(aData) { this.ellipse = false; this.ellipse = aEllipse; }
public DXFHatch(DXFData aData) : base(aData) { int j; this.boundaries = new ArrayList(); this.patternName = ""; this.boundaryType = (HatchBoundaryType)aData.selfType; DXFPoint dXFPoint = new DXFPoint(); base.Layer = "0"; this.SetStyle(aData); this.boundaries.Clear(); switch (this.boundaryType) { case HatchBoundaryType.hbtPolyPolyline: { if (aData.count > 0) { for (int i = 0; i < aData.points.Count; i++) { if (((ArrayList)aData.points[i]).Count >= 3) { this.boundaries.Add(new ArrayList()); for (j = 0; j < ((ArrayList)aData.points[i]).Count; j++) { dXFPoint = (DXFPoint)((ArrayList)aData.points[i])[j]; if (j < 2 || dXFPoint.X != ((DXFPoint)((ArrayList)aData.points[i])[j - 2]).X || dXFPoint.Y != ((DXFPoint)((ArrayList)aData.points[i])[j - 2]).Y) { ((ArrayList)this.boundaries[this.boundaries.Count - 1]).Add(dXFPoint.Clone()); } else { dXFPoint = null; } } if (((ArrayList)this.boundaries[this.boundaries.Count - 1]).Count < 3) { for (j = 0; j < ((ArrayList)this.boundaries[this.boundaries.Count - 1]).Count - 1; j++) { ((ArrayList)this.boundaries[this.boundaries.Count - 1])[j] = null; } this.boundaries.Remove((ArrayList)this.boundaries[this.boundaries.Count - 1]); } } } } return; } case HatchBoundaryType.hbtCircle: { this.bndAmount = 1; return; } case HatchBoundaryType.hbtEllipse: { this.bndAmount = 1; return; } } this.bndAmount = 0; }
public DXFRectangle(DXFData aData) : base(aData) { }