internal override bool TrySetPair(DxfCodePair pair) { switch (pair.Code) { case 1: this.CustomData.Add((pair.StringValue)); break; case 3: this.CustomData2.Add((pair.StringValue)); break; case 70: this.FormatVersionNumber = (pair.ShortValue); break; case 350: this.HistoryObjectPointer.Handle = DxfCommonConverters.UIntHandle(pair.StringValue); break; default: return(base.TrySetPair(pair)); } return(true); }
public void ApplyCodePairs(DxfCodePairBufferReader buffer) { var pair = buffer.Peek(); buffer.Advance(); switch (pair.Code) { case 5: ((IDxfItemInternal)this).Handle = DxfCommonConverters.UIntHandle(pair.StringValue); break; case 8: // just a re-iteration of the layer break; case 67: // just a re-iteration of the paper space setting break; case 100: Debug.Assert(pair.StringValue == AcDbEntityText || pair.StringValue == AcDbBlockEndText); break; case DxfCodePairGroup.GroupCodeNumber: var groupName = DxfCodePairGroup.GetGroupName(pair.StringValue); ExtensionDataGroups.Add(DxfCodePairGroup.FromBuffer(buffer, groupName)); break; } }
protected override void AddValuePairs(List <DxfCodePair> pairs, DxfAcadVersion version, bool outputHandles) { base.AddValuePairs(pairs, version, outputHandles); pairs.Add(new DxfCodePair(100, "AcDbSection")); pairs.Add(new DxfCodePair(90, (this.State))); pairs.Add(new DxfCodePair(91, (this.Flags))); pairs.Add(new DxfCodePair(1, (this.Name))); pairs.Add(new DxfCodePair(10, VerticalDirection?.X ?? default(double))); pairs.Add(new DxfCodePair(20, VerticalDirection?.Y ?? default(double))); pairs.Add(new DxfCodePair(30, VerticalDirection?.Z ?? default(double))); pairs.Add(new DxfCodePair(40, (this.TopHeight))); pairs.Add(new DxfCodePair(41, (this.BottomHeight))); pairs.Add(new DxfCodePair(70, (this.IndicatorTransparency))); pairs.Add(new DxfCodePair(63, DxfColor.GetRawValue(this.IndicatorColor))); pairs.Add(new DxfCodePair(411, (this.IndicatorColorName))); pairs.Add(new DxfCodePair(92, Vertices.Count)); foreach (var item in Vertices) { pairs.Add(new DxfCodePair(11, item.X)); pairs.Add(new DxfCodePair(21, item.Y)); pairs.Add(new DxfCodePair(31, item.Z)); } pairs.Add(new DxfCodePair(93, BackLineVertices.Count)); foreach (var item in BackLineVertices) { pairs.Add(new DxfCodePair(12, item.X)); pairs.Add(new DxfCodePair(22, item.Y)); pairs.Add(new DxfCodePair(32, item.Z)); } pairs.Add(new DxfCodePair(360, DxfCommonConverters.UIntHandle(this.GeometrySettingsPointer.Handle))); }
protected override void AddValuePairs(List <DxfCodePair> pairs, DxfAcadVersion version, bool outputHandles) { base.AddValuePairs(pairs, version, outputHandles); pairs.Add(new DxfCodePair(100, "AcDbLayout")); pairs.Add(new DxfCodePair(1, (this.LayoutName))); pairs.Add(new DxfCodePair(70, (short)(this.LayoutFlags))); pairs.Add(new DxfCodePair(71, (short)(this.TabOrder))); pairs.Add(new DxfCodePair(10, MinimumLimits?.X ?? default(double))); pairs.Add(new DxfCodePair(20, MinimumLimits?.Y ?? default(double))); pairs.Add(new DxfCodePair(11, MaximumLimits?.X ?? default(double))); pairs.Add(new DxfCodePair(21, MaximumLimits?.Y ?? default(double))); pairs.Add(new DxfCodePair(12, InsertionBasePoint?.X ?? default(double))); pairs.Add(new DxfCodePair(22, InsertionBasePoint?.Y ?? default(double))); pairs.Add(new DxfCodePair(32, InsertionBasePoint?.Z ?? default(double))); pairs.Add(new DxfCodePair(14, MinimumExtents?.X ?? default(double))); pairs.Add(new DxfCodePair(24, MinimumExtents?.Y ?? default(double))); pairs.Add(new DxfCodePair(34, MinimumExtents?.Z ?? default(double))); pairs.Add(new DxfCodePair(15, MaximumExtents?.X ?? default(double))); pairs.Add(new DxfCodePair(25, MaximumExtents?.Y ?? default(double))); pairs.Add(new DxfCodePair(35, MaximumExtents?.Z ?? default(double))); pairs.Add(new DxfCodePair(146, (this.Elevation))); pairs.Add(new DxfCodePair(13, UcsOrigin?.X ?? default(double))); pairs.Add(new DxfCodePair(23, UcsOrigin?.Y ?? default(double))); pairs.Add(new DxfCodePair(33, UcsOrigin?.Z ?? default(double))); pairs.Add(new DxfCodePair(16, UcsXAxis?.X ?? default(double))); pairs.Add(new DxfCodePair(26, UcsXAxis?.Y ?? default(double))); pairs.Add(new DxfCodePair(36, UcsXAxis?.Z ?? default(double))); pairs.Add(new DxfCodePair(17, UcsYAxis?.X ?? default(double))); pairs.Add(new DxfCodePair(27, UcsYAxis?.Y ?? default(double))); pairs.Add(new DxfCodePair(37, UcsYAxis?.Z ?? default(double))); pairs.Add(new DxfCodePair(76, (short)(this.UcsOrthographicType))); pairs.Add(new DxfCodePair(330, DxfCommonConverters.UIntHandle(this.ViewportPointer.Handle))); pairs.Add(new DxfCodePair(345, DxfCommonConverters.UIntHandle(this.TableRecordPointer.Handle))); pairs.Add(new DxfCodePair(346, DxfCommonConverters.UIntHandle(this.TableRecordBasePointer.Handle))); }
internal override bool TrySetPair(DxfCodePair pair) { switch (pair.Code) { case 3: _lastEntryName = pair.StringValue; break; case 280: this.IsHardOwner = BoolShort(pair.ShortValue); break; case 281: this.DuplicateRecordHandling = (DxfDictionaryDuplicateRecordHandling)(pair.ShortValue); break; case 350: case 360: Debug.Assert(_lastEntryName != null); var handle = DxfCommonConverters.HandleString(pair.StringValue); _items[_lastEntryName] = new DxfPointer(handle); _lastEntryName = null; break; default: return(base.TrySetPair(pair)); } return(true); }
internal override bool TrySetPair(DxfCodePair pair) { switch (pair.Code) { case 8: this.LayerNames.Add((pair.StringValue)); break; case 40: this.TimeStamp = DateDouble(pair.DoubleValue); break; case 90: this.IdBufferCounts.Add((pair.IntegerValue)); break; case 360: this.IdBuffersPointers.Pointers.Add(new DxfPointer(DxfCommonConverters.UIntHandle(pair.StringValue))); break; default: return(base.TrySetPair(pair)); } return(true); }
internal override bool TrySetPair(DxfCodePair pair) { switch (pair.Code) { case 70: this.IsNamed = NotBoolShort(pair.ShortValue); break; case 71: this.IsSelectable = BoolShort(pair.ShortValue); break; case 300: this.Description = (pair.StringValue); break; case 340: this.EntitiesPointers.Pointers.Add(new DxfPointer(DxfCommonConverters.UIntHandle(pair.StringValue))); break; default: return(base.TrySetPair(pair)); } return(true); }
protected override void AddValuePairs(List <DxfCodePair> pairs, DxfAcadVersion version, bool outputHandles) { base.AddValuePairs(pairs, version, outputHandles); pairs.Add(new DxfCodePair(100, "AcDbUnderlayReference")); if (this.ObjectPointer.Handle != 0u) { pairs.Add(new DxfCodePair(340, DxfCommonConverters.UIntHandle(this.ObjectPointer.Handle))); } pairs.Add(new DxfCodePair(10, InsertionPoint?.X ?? default(double))); pairs.Add(new DxfCodePair(20, InsertionPoint?.Y ?? default(double))); pairs.Add(new DxfCodePair(30, InsertionPoint?.Z ?? default(double))); pairs.Add(new DxfCodePair(41, (this.XScale))); pairs.Add(new DxfCodePair(42, (this.YScale))); pairs.Add(new DxfCodePair(43, (this.ZScale))); pairs.Add(new DxfCodePair(50, (this.RotationAngle))); pairs.Add(new DxfCodePair(210, Normal?.X ?? default(double))); pairs.Add(new DxfCodePair(220, Normal?.Y ?? default(double))); pairs.Add(new DxfCodePair(230, Normal?.Z ?? default(double))); pairs.Add(new DxfCodePair(280, (short)(this.Flags))); pairs.Add(new DxfCodePair(281, (this.Contrast))); pairs.Add(new DxfCodePair(282, (this.Fade))); foreach (var item in BoundaryPoints) { pairs.Add(new DxfCodePair(11, item.X)); pairs.Add(new DxfCodePair(12, item.Y)); } }
public void HandleStringConversions(ulong ulongValue, string stringValue) { // parsing Assert.Equal(stringValue, DxfCommonConverters.HandleString(new DxfHandle(ulongValue))); // display Assert.Equal(new DxfHandle(ulongValue), DxfCommonConverters.HandleString(stringValue)); }
internal override DxfObject PopulateFromBuffer(DxfCodePairBufferReader buffer) { var isReadyForSortHandles = false; while (buffer.ItemsRemain) { var pair = buffer.Peek(); if (pair.Code == 0) { break; } while (this.TrySetExtensionData(pair, buffer)) { pair = buffer.Peek(); } switch (pair.Code) { case 5: if (isReadyForSortHandles) { SortItemsPointers.Pointers.Add(new DxfPointer(DxfCommonConverters.HandleString(pair.StringValue))); } else { ((IDxfItemInternal)this).Handle = DxfCommonConverters.HandleString(pair.StringValue); isReadyForSortHandles = true; } break; case 100: isReadyForSortHandles = true; break; case 330: ((IDxfItemInternal)this).OwnerHandle = DxfCommonConverters.HandleString(pair.StringValue); isReadyForSortHandles = true; break; case 331: EntitiesPointers.Pointers.Add(new DxfPointer(DxfCommonConverters.HandleString(pair.StringValue))); isReadyForSortHandles = true; break; default: if (!base.TrySetPair(pair)) { ExcessCodePairs.Add(pair); } break; } buffer.Advance(); } return(PostParse()); }
internal static DxfXDataItem FromBuffer(DxfCodePairBufferReader buffer) { var pair = buffer.Peek(); buffer.Advance(); switch ((DxfXDataType)pair.Code) { case DxfXDataType.String: return(new DxfXDataString(pair.StringValue)); case DxfXDataType.ControlString: return(DxfXDataItemList.ListFromBuffer(buffer)); case DxfXDataType.Layer: return(new DxfXDataLayerName(pair.StringValue)); case DxfXDataType.BinaryData: return(new DxfXDataBinaryData(DxfCommonConverters.HexBytes(pair.StringValue))); case DxfXDataType.Handle: return(new DxfXDataHandle(DxfCommonConverters.UIntHandle(pair.StringValue))); case DxfXDataType.RealTriple: return(new DxfXData3Reals(ReadPoint(pair, buffer, pair.Code))); case DxfXDataType.WorldSpacePosition: return(new DxfXDataWorldSpacePosition(ReadPoint(pair, buffer, pair.Code))); case DxfXDataType.WorldSpaceDisplacement: return(new DxfXDataWorldSpaceDisplacement(ReadPoint(pair, buffer, pair.Code))); case DxfXDataType.WorldDirection: return(new DxfXDataWorldDirection(ReadPoint(pair, buffer, pair.Code))); case DxfXDataType.Real: return(new DxfXDataReal(pair.DoubleValue)); case DxfXDataType.Distance: return(new DxfXDataDistance(pair.DoubleValue)); case DxfXDataType.ScaleFactor: return(new DxfXDataScaleFactor(pair.DoubleValue)); case DxfXDataType.Integer: return(new DxfXDataInteger(pair.ShortValue)); case DxfXDataType.Long: return(new DxfXDataLong(pair.IntegerValue)); default: return(null); // unexpected XDATA code pair } }
internal override DxfObject PopulateFromBuffer(DxfCodePairBufferReader buffer) { bool readVersionNumber = false; while (buffer.ItemsRemain) { var pair = buffer.Peek(); if (pair.Code == 0) { break; } while (this.TrySetExtensionData(pair, buffer)) { pair = buffer.Peek(); } switch (pair.Code) { case 5: // pointer to a new light LightsPointers.Pointers.Add(new DxfPointer(DxfCommonConverters.UIntHandle(pair.StringValue))); break; case 1: // don't worry about the name; it'll be read from the light entity directly break; case 90: if (readVersionNumber) { // count of lights is ignored since it's implicitly set by reading the values } else { Version = pair.IntegerValue; readVersionNumber = true; } break; default: if (!base.TrySetPair(pair)) { ExcessCodePairs.Add(pair); } break; } buffer.Advance(); } return(PostParse()); }
protected internal override IEnumerable <DxfCodePair> GetSpecificPairs(DxfAcadVersion version, bool outputHandles, HashSet <IDxfItem> writtenItems) { var list = new List <DxfCodePair>(); list.Add(new DxfCodePair(90, RawData.Length)); // write lines in 128-byte chunks (expands to 256 hex bytes) var hex = DxfCommonConverters.HexBytes(RawData); var lines = DxfCommonConverters.SplitIntoLines(hex, 256); list.AddRange(lines.Select(l => new DxfCodePair(310, l))); return(list); }
protected override void AddValuePairs(List <DxfCodePair> pairs, DxfAcadVersion version, bool outputHandles) { base.AddValuePairs(pairs, version, outputHandles); pairs.Add(new DxfCodePair(100, "AcDbMline")); pairs.Add(new DxfCodePair(2, (this.StyleName))); if (this.StylePointer.Handle != 0u) { pairs.Add(new DxfCodePair(340, DxfCommonConverters.UIntHandle(this.StylePointer.Handle))); } pairs.Add(new DxfCodePair(40, (this.ScaleFactor))); pairs.Add(new DxfCodePair(70, (short)(this.Justification))); pairs.Add(new DxfCodePair(71, (short)(this.Flags))); pairs.Add(new DxfCodePair(72, (short)Vertices.Count)); pairs.Add(new DxfCodePair(73, (short)(this.StyleElementCount))); pairs.Add(new DxfCodePair(10, StartPoint.X)); pairs.Add(new DxfCodePair(20, StartPoint.Y)); pairs.Add(new DxfCodePair(30, StartPoint.Z)); if (this.Normal != DxfVector.ZAxis) { pairs.Add(new DxfCodePair(210, Normal.X)); pairs.Add(new DxfCodePair(220, Normal.Y)); pairs.Add(new DxfCodePair(230, Normal.Z)); } foreach (var item in Vertices) { pairs.Add(new DxfCodePair(10, item.X)); pairs.Add(new DxfCodePair(20, item.Y)); pairs.Add(new DxfCodePair(30, item.Z)); } foreach (var item in SegmentDirections) { pairs.Add(new DxfCodePair(11, item.X)); pairs.Add(new DxfCodePair(21, item.Y)); pairs.Add(new DxfCodePair(31, item.Z)); } foreach (var item in MiterDirections) { pairs.Add(new DxfCodePair(12, item.X)); pairs.Add(new DxfCodePair(22, item.Y)); pairs.Add(new DxfCodePair(32, item.Z)); } pairs.Add(new DxfCodePair(74, (short?)Parameters?.Count ?? default(short))); pairs.AddRange(this.Parameters.Select(p => new DxfCodePair(41, p))); pairs.Add(new DxfCodePair(75, (short?)AreaFillParameters?.Count ?? default(short))); pairs.AddRange(this.AreaFillParameters.Select(p => new DxfCodePair(42, p))); }
protected override void AddValuePairs(List <DxfCodePair> pairs, DxfAcadVersion version, bool outputHandles) { base.AddValuePairs(pairs, version, outputHandles); pairs.Add(new DxfCodePair(100, "AcDbPlotSettings")); pairs.Add(new DxfCodePair(1, (this.PageSetupName))); pairs.Add(new DxfCodePair(2, (this.PrinterName))); pairs.Add(new DxfCodePair(4, (this.PaperSize))); pairs.Add(new DxfCodePair(6, (this.PlotViewName))); pairs.Add(new DxfCodePair(40, (this.UnprintableLeftMarginSize))); pairs.Add(new DxfCodePair(41, (this.UnprintableBottomMarginSize))); pairs.Add(new DxfCodePair(42, (this.UnprintableRightMarginSize))); pairs.Add(new DxfCodePair(43, (this.UnprintableTopMarginSize))); pairs.Add(new DxfCodePair(44, (this.PaperWidth))); pairs.Add(new DxfCodePair(45, (this.PaperHeight))); pairs.Add(new DxfCodePair(46, (this.PlotOriginXValue))); pairs.Add(new DxfCodePair(47, (this.PlotOriginYValue))); pairs.Add(new DxfCodePair(48, (this.PlotWindowLowerLeftXValue))); pairs.Add(new DxfCodePair(49, (this.PlotWindowLowerLeftYValue))); pairs.Add(new DxfCodePair(140, (this.PlotWindowUpperRightXValue))); pairs.Add(new DxfCodePair(141, (this.PlotWindowUpperRightYValue))); pairs.Add(new DxfCodePair(142, (this.CustomPrintScaleNumerator))); pairs.Add(new DxfCodePair(143, (this.CustomPrintScaleDenominator))); pairs.Add(new DxfCodePair(70, (short)(this.PlotLayoutFlags))); pairs.Add(new DxfCodePair(72, (short)(this.PlotPaperUnits))); pairs.Add(new DxfCodePair(73, (short)(this.PlotRotation))); pairs.Add(new DxfCodePair(74, (short)(this.PlotType))); pairs.Add(new DxfCodePair(7, (this.CurrentStyleSheet))); pairs.Add(new DxfCodePair(75, (short)(this.StandardScale))); if (version >= DxfAcadVersion.R2004) { pairs.Add(new DxfCodePair(76, (short)(this.ShadePlotMode))); } if (version >= DxfAcadVersion.R2004) { pairs.Add(new DxfCodePair(77, (short)(this.ShadePlotResolutionLevel))); } if (version >= DxfAcadVersion.R2004) { pairs.Add(new DxfCodePair(78, (short)(this.ShadePlotCustomDPI))); } pairs.Add(new DxfCodePair(147, (this.StandardScaleValue))); pairs.Add(new DxfCodePair(148, (this.PaperImageOriginX))); pairs.Add(new DxfCodePair(149, (this.PaperImageOriginY))); if (this.ShadePlotObjectPointer.Handle != 0u) { pairs.Add(new DxfCodePair(333, DxfCommonConverters.UIntHandle(this.ShadePlotObjectPointer.Handle))); } }
protected override void AddValuePairs(List <DxfCodePair> pairs, DxfAcadVersion version, bool outputHandles) { base.AddValuePairs(pairs, version, outputHandles); pairs.Add(new DxfCodePair(100, "AcDbIBLBackground")); pairs.Add(new DxfCodePair(90, (this.SubclassVersion))); pairs.Add(new DxfCodePair(290, (this.IsEnabled))); pairs.Add(new DxfCodePair(1, (this.ImageBasedLightingMapFileName))); pairs.Add(new DxfCodePair(40, (this.RotationAngle))); pairs.Add(new DxfCodePair(290, (this.IsMapAsBackground))); if (this.CustomBackgroundPointer.Handle != 0u) { pairs.Add(new DxfCodePair(340, DxfCommonConverters.UIntHandle(this.CustomBackgroundPointer.Handle))); } }
public void AssignOwnerHandlesInXDataTest() { // read a layout with its owner handle also specified in the XDATA var file = Parse( (0, "SECTION"), (2, "HEADER"), (9, "$ACADVER"), (1, "AC1027"), (0, "ENDSEC"), (0, "SECTION"), (2, "OBJECTS"), (0, "DICTIONARY"), (5, "BBBBBBBB"), (3, "some-layout"), (350, "CCCCCCCC"), (0, "LAYOUT"), (5, "CCCCCCCC"), (330, "BBBBBBBB"), (102, "{ACAD_REACTORS"), (330, "BBBBBBBB"), (102, "}"), (0, "ENDSEC"), (0, "EOF") ); // sanity check to verify that it was read correctly var dict = file.Objects.OfType <DxfDictionary>().Single(); var layout = (DxfLayout)dict["some-layout"]; Assert.Equal(0xBBBBBBBB, ((IDxfItemInternal)dict).Handle); Assert.Equal(0xCCCCCCCC, ((IDxfItemInternal)layout).Handle); // re-save the file to a garbage stream to re-assign handles using (var ms = new MemoryStream()) { file.Save(ms); } // verify new handles and owners; note that the assigned handles are unlikely to be 0xBBBBBBBB and 0xCCCCCCCC again Assert.True(ReferenceEquals(layout.Owner, dict)); Assert.NotEqual(0xBBBBBBBB, ((IDxfItemInternal)dict).Handle); Assert.NotEqual(0xCCCCCCCC, ((IDxfItemInternal)layout).Handle); var dictHandle = ((IDxfItemInternal)dict).Handle; Assert.Equal(dictHandle, ((IDxfItemInternal)layout).OwnerHandle); var layoutXDataGroups = ((IDxfHasXData)layout).ExtensionDataGroups.Single(g => g.GroupName == "ACAD_REACTORS"); var ownerCodePair = (DxfCodePair)layoutXDataGroups.Items.Single(); Assert.Equal(330, ownerCodePair.Code); Assert.Equal(DxfCommonConverters.UIntHandle(dictHandle), ownerCodePair.StringValue); }
internal override bool TrySetPair(DxfCodePair pair) { switch (pair.Code) { case 330: this.EntitiesPointers.Pointers.Add(new DxfPointer(DxfCommonConverters.UIntHandle(pair.StringValue))); break; default: return(base.TrySetPair(pair)); } return(true); }
internal IEnumerable <DxfCodePair> GetValuePairs(DxfAcadVersion version, bool outputHandles, HashSet <IDxfItem> writtenItems) { BeforeWrite(); var pairs = new List <DxfCodePair>(); // common pairs pairs.Add(new DxfCodePair(0, DxfSection.TableText)); pairs.Add(new DxfCodePair(2, TableTypeToName(TableType))); if (outputHandles && Handle != 0u) { pairs.Add(new DxfCodePair(5, DxfCommonConverters.UIntHandle(Handle))); } if (version >= DxfAcadVersion.R13) { foreach (var group in ExtensionDataGroups) { group.AddValuePairs(pairs, version, outputHandles); } if (version >= DxfAcadVersion.R2000 && OwnerHandle != 0u) { pairs.Add(new DxfCodePair(330, DxfCommonConverters.UIntHandle(OwnerHandle))); } pairs.Add(new DxfCodePair(100, "AcDbSymbolTable")); } var symbolItems = GetSymbolItems().Where(item => item != null).OrderBy(i => i.Name).ToList(); pairs.Add(new DxfCodePair(70, (short)symbolItems.Count)); if (version >= DxfAcadVersion.R2000 && TableClassName != null) { pairs.Add(new DxfCodePair(100, TableClassName)); } foreach (var item in symbolItems) { if (writtenItems.Add(item)) { item.AddCommonValuePairs(pairs, version, outputHandles); item.AddValuePairs(pairs, version, outputHandles); } } pairs.Add(new DxfCodePair(0, DxfSection.EndTableText)); return(pairs); }
protected override void AddValuePairs(List <DxfCodePair> pairs, DxfAcadVersion version, bool outputHandles) { base.AddValuePairs(pairs, version, outputHandles); pairs.Add(new DxfCodePair(100, "AcDbMLeaderStyle")); pairs.Add(new DxfCodePair(170, (this.ContentType))); pairs.Add(new DxfCodePair(171, (this.DrawMLeaderOrderType))); pairs.Add(new DxfCodePair(172, (this.DrawLeaderOrderType))); pairs.Add(new DxfCodePair(90, (this.MaxLeaderSegmentCount))); pairs.Add(new DxfCodePair(40, (this.FirstSegmentAngleConstraint))); pairs.Add(new DxfCodePair(41, (this.SecondSegmentAngleConstraint))); pairs.Add(new DxfCodePair(173, (this.LeaderLineType))); pairs.Add(new DxfCodePair(91, (this.LeaderLineColor))); pairs.Add(new DxfCodePair(340, DxfCommonConverters.UIntHandle(this.LineLeaderTypePointer.Handle))); pairs.Add(new DxfCodePair(92, (this.LeaderLineWeight))); pairs.Add(new DxfCodePair(290, (this.EnableLanding))); pairs.Add(new DxfCodePair(42, (this.LandingGap))); pairs.Add(new DxfCodePair(291, (this.EnableDogleg))); pairs.Add(new DxfCodePair(43, (this.DoglegLength))); pairs.Add(new DxfCodePair(3, (this.MLeaderStyleDescription))); pairs.Add(new DxfCodePair(341, DxfCommonConverters.UIntHandle(this.ArrowheadPointer.Handle))); pairs.Add(new DxfCodePair(44, (this.ArrowheadSize))); pairs.Add(new DxfCodePair(300, (this.DefaultMTextContents))); pairs.Add(new DxfCodePair(342, DxfCommonConverters.UIntHandle(this.MTextStylePointer.Handle))); pairs.Add(new DxfCodePair(174, (this.TextLeftAttachmentType))); pairs.Add(new DxfCodePair(175, (this.TextAngleType))); pairs.Add(new DxfCodePair(176, (this.TextAlignmentType))); pairs.Add(new DxfCodePair(178, (this.TextRightAttachmentType))); pairs.Add(new DxfCodePair(93, (this.TextColor))); pairs.Add(new DxfCodePair(45, (this.TextHeight))); pairs.Add(new DxfCodePair(292, (this.EnableFrameText))); pairs.Add(new DxfCodePair(297, (this.AlwaysAlignTextLeft))); pairs.Add(new DxfCodePair(46, (this.AlignGap))); pairs.Add(new DxfCodePair(343, DxfCommonConverters.UIntHandle(this.BlockContentPointer.Handle))); pairs.Add(new DxfCodePair(94, (this.BlockContentColor))); pairs.Add(new DxfCodePair(47, (this.BlockContentXScale))); pairs.Add(new DxfCodePair(49, (this.BlockContentYScale))); pairs.Add(new DxfCodePair(140, (this.BlockContentZScale))); pairs.Add(new DxfCodePair(293, (this.EnableBlockContentScale))); pairs.Add(new DxfCodePair(141, (this.BlockContentRotation))); pairs.Add(new DxfCodePair(294, (this.EnableBlockContentRotation))); pairs.Add(new DxfCodePair(177, (this.BlockContentConnectionType))); pairs.Add(new DxfCodePair(142, (this.Scale))); pairs.Add(new DxfCodePair(295, (this.OverwritePropertyValue))); pairs.Add(new DxfCodePair(296, (this.IsAnnotative))); pairs.Add(new DxfCodePair(143, (this.BreakGapSize))); pairs.Add(new DxfCodePair(271, (short)(this.TextAttachmentDirection))); pairs.Add(new DxfCodePair(272, (short)(this.BottomTextAttachmentDirection))); pairs.Add(new DxfCodePair(273, (short)(this.TopTextAttachmentDirection))); }
protected override void AddValuePairs(List <DxfCodePair> pairs, DxfAcadVersion version, bool outputHandles) { base.AddValuePairs(pairs, version, outputHandles); pairs.Add(new DxfCodePair(100, "AcDbSunStudy")); pairs.Add(new DxfCodePair(90, (this.Version))); pairs.Add(new DxfCodePair(1, (this.SunSetupName))); pairs.Add(new DxfCodePair(2, (this.Description))); pairs.Add(new DxfCodePair(70, (this.OutputType))); pairs.Add(new DxfCodePair(3, (this.SheetSetName))); pairs.Add(new DxfCodePair(290, (this.UseSubset))); pairs.Add(new DxfCodePair(4, (this.SheetSubsetName))); pairs.Add(new DxfCodePair(291, (this.SelectDatesFromCalendar))); pairs.Add(new DxfCodePair(91, Dates.Count)); foreach (var item in Dates) { pairs.Add(new DxfCodePair(90, (int)DxfCommonConverters.DateDouble(item))); pairs.Add(new DxfCodePair(90, DxfCommonConverters.DateDouble(item))); } pairs.Add(new DxfCodePair(292, (this.SelectRangeOfDates))); if (SelectRangeOfDates) { pairs.Add(new DxfCodePair(93, (this.StartTime_SecondsPastMidnight))); } if (SelectRangeOfDates) { pairs.Add(new DxfCodePair(94, (this.EndTime_SecondsPastMidnight))); } if (SelectRangeOfDates) { pairs.Add(new DxfCodePair(95, (this.IntervalInSeconds))); } pairs.Add(new DxfCodePair(73, (short)Hours.Count)); pairs.AddRange(this.Hours.Select(p => new DxfCodePair(290, (short)(p)))); pairs.Add(new DxfCodePair(340, DxfCommonConverters.UIntHandle(this.PageSetupWizardPointer.Handle))); pairs.Add(new DxfCodePair(341, DxfCommonConverters.UIntHandle(this.ViewPointer.Handle))); pairs.Add(new DxfCodePair(342, DxfCommonConverters.UIntHandle(this.VisualStylePointer.Handle))); pairs.Add(new DxfCodePair(74, (this.ShadePlotType))); pairs.Add(new DxfCodePair(75, (short)(this.ViewportsPerPage))); pairs.Add(new DxfCodePair(76, (short)(this.ViewportDistributionRowCount))); pairs.Add(new DxfCodePair(77, (short)(this.ViewportDistributionColumnCount))); pairs.Add(new DxfCodePair(40, (this.Spacing))); pairs.Add(new DxfCodePair(293, (this.LockViewports))); pairs.Add(new DxfCodePair(294, (this.LabelViewports))); pairs.Add(new DxfCodePair(343, DxfCommonConverters.UIntHandle(this.TextStylePointer.Handle))); }
private IEnumerable <string> GetHexStrings() { if (Data == null) { yield break; } var pos = 0; while (pos < Data.Length) { var slice = Data.Skip(pos).Take(128).ToArray(); pos += slice.Length; yield return(DxfCommonConverters.HexBytes(slice)); } }
protected override void AddValuePairs(List <DxfCodePair> pairs, DxfAcadVersion version, bool outputHandles) { base.AddValuePairs(pairs, version, outputHandles); pairs.Add(new DxfCodePair(100, "AcDbModelerGeometry")); pairs.Add(new DxfCodePair(70, (this.FormatVersionNumber))); pairs.AddRange(this.CustomData.Select(p => new DxfCodePair(1, p))); pairs.AddRange(this.CustomData2.Select(p => new DxfCodePair(3, p))); if (version >= DxfAcadVersion.R2007) { pairs.Add(new DxfCodePair(100, "AcDb3dSolid")); } if (version >= DxfAcadVersion.R2007) { pairs.Add(new DxfCodePair(350, DxfCommonConverters.UIntHandle(this.HistoryObjectPointer.Handle))); } }
public IEnumerable <DxfCodePair> GetValuePairs(DxfAcadVersion version, bool outputHandles) { var list = new List <DxfCodePair>(); list.Add(new DxfCodePair(0, EndBlockText)); if (outputHandles && ((IDxfItemInternal)this).Handle != 0u) { list.Add(new DxfCodePair(5, DxfCommonConverters.UIntHandle(((IDxfItemInternal)this).Handle))); } if (Parent.XData != null) { Parent.XData.AddValuePairs(list, version, outputHandles); } if (version >= DxfAcadVersion.R14) { foreach (var group in ExtensionDataGroups) { group.AddValuePairs(list, version, outputHandles); } } if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(330, DxfCommonConverters.UIntHandle(((IDxfItemInternal)Parent).OwnerHandle))); } if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(100, AcDbEntityText)); } if (Parent.IsInPaperSpace) { list.Add(new DxfCodePair(67, DxfCommonConverters.BoolShort(Parent.IsInPaperSpace))); } list.Add(new DxfCodePair(8, Parent.Layer)); if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(100, AcDbBlockEndText)); } return(list); }
private int _code_290_index = 0; // shared by properties IsEnabled, IsMapAsBackground internal override bool TrySetPair(DxfCodePair pair) { switch (pair.Code) { case 1: this.ImageBasedLightingMapFileName = (pair.StringValue); break; case 40: this.RotationAngle = (pair.DoubleValue); break; case 90: this.SubclassVersion = (pair.IntegerValue); break; case 290: switch (_code_290_index) { case 0: this.IsEnabled = (pair.BoolValue); _code_290_index++; break; case 1: this.IsMapAsBackground = (pair.BoolValue); _code_290_index++; break; default: Debug.Assert(false, "Unexpected extra values for code 290"); break; } break; case 340: this.CustomBackgroundPointer.Handle = DxfCommonConverters.UIntHandle(pair.StringValue); break; default: return(base.TrySetPair(pair)); } return(true); }
internal void AddCodePairs(List <DxfCodePair> pairs) { pairs.Add(new DxfCodePair(1, "SectionTypeSettings")); pairs.Add(new DxfCodePair(90, SectionType)); pairs.Add(new DxfCodePair(91, IsGenerationOption ? 1 : 0)); pairs.Add(new DxfCodePair(92, SourceObjectHandles.Count)); pairs.AddRange(SourceObjectHandles.Select(p => new DxfCodePair(330, DxfCommonConverters.UIntHandle(p)))); pairs.Add(new DxfCodePair(331, DxfCommonConverters.UIntHandle(DestinationObjectHandle))); pairs.Add(new DxfCodePair(1, DestinationFileName)); pairs.Add(new DxfCodePair(93, GeometrySettings.Count)); pairs.Add(new DxfCodePair(2, "SectionGeometrySettings")); foreach (var geometry in GeometrySettings) { geometry.AddCodePairs(pairs); } pairs.Add(new DxfCodePair(3, "SectionTypeSettingsEnd")); }
protected override void AddValuePairs(List <DxfCodePair> pairs, DxfAcadVersion version, bool outputHandles) { base.AddValuePairs(pairs, version, outputHandles); pairs.Add(new DxfCodePair(100, "AcDbRasterImage")); pairs.Add(new DxfCodePair(90, (this.ClassVersion))); pairs.Add(new DxfCodePair(10, Location?.X ?? default(double))); pairs.Add(new DxfCodePair(20, Location?.Y ?? default(double))); pairs.Add(new DxfCodePair(30, Location?.Z ?? default(double))); pairs.Add(new DxfCodePair(11, UVector?.X ?? default(double))); pairs.Add(new DxfCodePair(21, UVector?.Y ?? default(double))); pairs.Add(new DxfCodePair(31, UVector?.Z ?? default(double))); pairs.Add(new DxfCodePair(12, VVector?.X ?? default(double))); pairs.Add(new DxfCodePair(22, VVector?.Y ?? default(double))); pairs.Add(new DxfCodePair(32, VVector?.Z ?? default(double))); pairs.Add(new DxfCodePair(13, ImageSize?.X ?? default(double))); pairs.Add(new DxfCodePair(23, ImageSize?.Y ?? default(double))); if (this.ImageDefinitionPointer.Handle != 0u) { pairs.Add(new DxfCodePair(340, DxfCommonConverters.UIntHandle(this.ImageDefinitionPointer.Handle))); } pairs.Add(new DxfCodePair(70, (short)(this.DisplayOptionsFlags))); pairs.Add(new DxfCodePair(280, BoolShort(this.UseClipping))); pairs.Add(new DxfCodePair(281, (this.Brightness))); pairs.Add(new DxfCodePair(282, (this.Contrast))); pairs.Add(new DxfCodePair(283, (this.Fade))); if (this.ImageDefinitionReactorPointer.Handle != 0u) { pairs.Add(new DxfCodePair(360, DxfCommonConverters.UIntHandle(this.ImageDefinitionReactorPointer.Handle))); } pairs.Add(new DxfCodePair(71, (short)(this.ClippingType))); pairs.Add(new DxfCodePair(91, ClippingVertices.Count)); foreach (var item in ClippingVertices) { pairs.Add(new DxfCodePair(14, item.X)); pairs.Add(new DxfCodePair(24, item.Y)); } if (version >= DxfAcadVersion.R2010) { pairs.Add(new DxfCodePair(290, (this.IsInsideClipping))); } }
internal override bool TrySetPair(DxfCodePair pair) { switch (pair.Code) { case 70: this.RequiresFullUpdate = BoolShort(pair.ShortValue); break; case 90: this._sectionCount = (pair.IntegerValue); break; case 330: this.SectionEntitiesPointers.Pointers.Add(new DxfPointer(DxfCommonConverters.UIntHandle(pair.StringValue))); break; default: return(base.TrySetPair(pair)); } return(true); }
protected override void AddValuePairs(List <DxfCodePair> pairs, DxfAcadVersion version, bool outputHandles) { base.AddValuePairs(pairs, version, outputHandles); pairs.Add(new DxfCodePair(100, "AcDbDimAssoc")); if (this.DimensionPointer.Handle != 0u) { pairs.Add(new DxfCodePair(330, DxfCommonConverters.UIntHandle(this.DimensionPointer.Handle))); } pairs.Add(new DxfCodePair(90, (this.AssociativityFlags))); pairs.Add(new DxfCodePair(70, BoolShort(this.IsTransSpace))); pairs.Add(new DxfCodePair(71, (short)(this.RotatedDimensionType))); pairs.Add(new DxfCodePair(1, (this.ClassName))); pairs.Add(new DxfCodePair(72, (short)(this.ObjectOsnapType))); if (this.MainObjectPointer.Handle != 0u) { pairs.Add(new DxfCodePair(331, DxfCommonConverters.UIntHandle(this.MainObjectPointer.Handle))); } pairs.Add(new DxfCodePair(73, (short)(this.MainObjectSubentityType))); pairs.Add(new DxfCodePair(91, (this.MainObjectGsMarkerIndex))); pairs.Add(new DxfCodePair(301, (this.MainObjectXrefHandle))); pairs.Add(new DxfCodePair(40, (this.NearOsnapGeometryParameter))); pairs.Add(new DxfCodePair(10, OsnapPoint?.X ?? default(double))); pairs.Add(new DxfCodePair(20, OsnapPoint?.Y ?? default(double))); pairs.Add(new DxfCodePair(30, OsnapPoint?.Z ?? default(double))); if (this.IntersectionObjectPointer.Handle != 0u) { pairs.Add(new DxfCodePair(332, DxfCommonConverters.UIntHandle(this.IntersectionObjectPointer.Handle))); } pairs.Add(new DxfCodePair(74, (short)(this.IntersectionSubentityType))); pairs.Add(new DxfCodePair(92, (this.IntersectionObjectGsMarkerIndex))); pairs.Add(new DxfCodePair(302, (this.IntersectionObjectXrefHandle))); pairs.Add(new DxfCodePair(75, BoolShort(this.HasLastPointReference))); }
internal static DxfThumbnailImageSection ThumbnailImageSectionFromBuffer(DxfCodePairBufferReader buffer) { if (buffer.ItemsRemain) { var lengthPair = buffer.Peek(); buffer.Advance(); if (lengthPair.Code != 90) { return(null); } var length = lengthPair.IntegerValue; var lines = new List <string>(); while (buffer.ItemsRemain) { var pair = buffer.Peek(); buffer.Advance(); if (DxfCodePair.IsSectionEnd(pair)) { break; } Debug.Assert(pair.Code == 310); lines.Add(pair.StringValue); } var section = new DxfThumbnailImageSection(); section.Clear(); section.RawData = DxfCommonConverters.HexBytes(string.Join(string.Empty, lines.ToArray())); return(section); } return(null); }