internal override bool TrySetPair(DxfCodePair pair) { switch (pair.Code) { case 10: StartPoint = StartPoint.WithUpdatedX(pair.DoubleValue); break; case 20: StartPoint = StartPoint.WithUpdatedY(pair.DoubleValue); break; case 11: EndPoint = EndPoint.WithUpdatedX(pair.DoubleValue); break; case 21: EndPoint = EndPoint.WithUpdatedY(pair.DoubleValue); break; default: return(false); } return(true); }
internal override bool TrySetPair(DxfCodePair pair) { switch (pair.Code) { case 1: this.Name = (pair.StringValue); break; case 70: this.Field = (pair.ShortValue); break; case 90: this.ColumnCount = (pair.IntegerValue); _readColumnCount = true; break; case 91: this.RowCount = (pair.IntegerValue); _readRowCount = true; break; // column headers case 92: _currentColumnCode = pair.IntegerValue; _currentColumn++; _currentRow = 0; break; case 2: this.ColumnNames.Add(pair.StringValue); break; // column values case 71: SetValue(BoolShort(pair.ShortValue)); break; case 93: SetValue(pair.IntegerValue); break; case 40: SetValue(pair.DoubleValue); break; case 3: SetValue(pair.StringValue); break; case 10: _current2DPoint = new DxfPoint(pair.DoubleValue, 0.0, 0.0); break; case 20: _current2DPoint = _current2DPoint.WithUpdatedY(pair.DoubleValue); break; case 30: _current2DPoint = _current2DPoint.WithUpdatedZ(pair.DoubleValue); SetValue(_current2DPoint); _current2DPoint = default(DxfPoint); break; case 11: _current3DPoint = new DxfPoint(pair.DoubleValue, 0.0, 0.0); break; case 21: _current3DPoint = _current3DPoint.WithUpdatedY(pair.DoubleValue); break; case 31: _current3DPoint = _current3DPoint.WithUpdatedZ(pair.DoubleValue); SetValue(_current3DPoint); _current3DPoint = default(DxfPoint); break; case 331: case 360: case 350: case 340: case 330: if (_readRowCount || _readColumnCount) { // TODO: differentiate between handle types SetValue(HandleString(pair.StringValue)); } else { // still reading AcDbObject values goto default; } break; default: return(base.TrySetPair(pair)); } if (_readRowCount && _readColumnCount && !_createdTable) { Values = new object[RowCount, ColumnCount]; _createdTable = true; } return(true); }