public override void ResolveReferences(Class374 modelBuilder) { base.ResolveReferences(modelBuilder); DxfView handledObject = (DxfView)this.HandledObject; if (this.ulong_2 != 0UL) { DxfUcs dxfUcs = modelBuilder.method_4 <DxfUcs>(this.ulong_2); if (dxfUcs != null) { handledObject.Ucs = dxfUcs; } } if (this.ulong_3 == 0UL) { return; } DxfUcs dxfUcs1 = modelBuilder.method_4 <DxfUcs>(this.ulong_3); if (dxfUcs1 == null) { return; } handledObject.Ucs = dxfUcs1; }
public void WriteViewWithInvalidValuesTest() { var file = new DxfFile(); var view = new DxfView(); view.Name = "<view>"; file.Views.Add(view); // values must be positive; will be normalized to 1.0 on write view.ViewHeight = -1.0; // code 40 view.ViewWidth = 0.0; // code 41 view.LensLength = double.NaN; // code 42 VerifyFileContains(file, @" 0 VIEW 5 # 100 AcDbSymbolTableRecord 2 <view> 70 0 40 1.0 10 0.0 20 0.0 41 1.0 11 0.0 21 0.0 31 1.0 12 0.0 22 0.0 32 0.0 42 1.0 "); }
public void VerifyTableItemsReportTableAsOwner() { var file = new DxfFile(); var view = new DxfView(); file.Views.Add(view); using (var ms = new MemoryStream()) { file.Save(ms); // not needed, but it forces pointers to bind } // check pointer values Assert.NotEqual(0u, view.OwnerHandle); Assert.Equal(view.OwnerHandle, file.TablesSection.ViewTable.Handle); // check object values Assert.True(ReferenceEquals(view.Owner, file.TablesSection.ViewTable)); }
internal static DxfView smethod_6(CloneContext cloneContext, DxfView from) { if (from == null) { return((DxfView)null); } if (from.Name == null) { throw new Exception("Table record name is null."); } if (cloneContext.SourceModel == cloneContext.TargetModel) { return(from); } DxfView dxfView1 = (DxfView)cloneContext.GetExistingClone((IGraphCloneable)from); if (dxfView1 == null) { cloneContext.TargetModel.Views.TryGetValue(from.Name, out dxfView1); } if (dxfView1 == null) { switch (cloneContext.ReferenceResolutionType) { case ReferenceResolutionType.CloneMissing: DxfView dxfView2 = (DxfView)from.Clone(cloneContext); if (!cloneContext.CloneExact) { cloneContext.TargetModel.Views.Add(dxfView2); } dxfView1 = dxfView2; break; case ReferenceResolutionType.FailOnMissing: throw new DxfException(string.Format("Could not resolve reference to VIEW with name {0}", (object)from.Name)); } } return(dxfView1); }
internal static DxfTable ReadFromBuffer(DxfCodePairBufferReader buffer) { var table = new DxfViewTable(); table.Items.Clear(); while (buffer.ItemsRemain) { var pair = buffer.Peek(); buffer.Advance(); if (DxfTablesSection.IsTableEnd(pair)) { break; } if (pair.Code == 0 && pair.StringValue == DxfTable.ViewText) { var item = DxfView.FromBuffer(buffer); table.Items.Add(item); } } return(table); }
internal static DxfView FromBuffer(DxfCodePairBufferReader buffer) { var item = new DxfView(); while (buffer.ItemsRemain) { var pair = buffer.Peek(); if (pair.Code == 0) { break; } buffer.Advance(); switch (pair.Code) { case 70: item.StandardFlags = (int)pair.ShortValue; break; case DxfCodePairGroup.GroupCodeNumber: var groupName = DxfCodePairGroup.GetGroupName(pair.StringValue); item.ExtensionDataGroups.Add(DxfCodePairGroup.FromBuffer(buffer, groupName)); break; case 40: item.ViewHeight = (pair.DoubleValue); break; case 10: item.ViewCenterPoint.X = (pair.DoubleValue); break; case 20: item.ViewCenterPoint.Y = (pair.DoubleValue); break; case 41: item.ViewWidth = (pair.DoubleValue); break; case 11: item.ViewDirection.X = (pair.DoubleValue); break; case 21: item.ViewDirection.Y = (pair.DoubleValue); break; case 31: item.ViewDirection.Z = (pair.DoubleValue); break; case 12: item.TargetPoint.X = (pair.DoubleValue); break; case 22: item.TargetPoint.Y = (pair.DoubleValue); break; case 32: item.TargetPoint.Z = (pair.DoubleValue); break; case 42: item.LensLength = (pair.DoubleValue); break; case 43: item.FrontClippingPlane = (pair.DoubleValue); break; case 44: item.BackClippingPlane = (pair.DoubleValue); break; case 50: item.TwistAngle = (pair.DoubleValue); break; case 71: item.ViewMode = (pair.ShortValue); break; case 281: item.RenderMode = (DxfViewRenderMode)(pair.ShortValue); break; case 72: item.IsAssociatedUCSPresent = BoolShort(pair.ShortValue); break; case 73: item.IsCameraPlottable = BoolShort(pair.ShortValue); break; case 332: item.BackgroundObjectPointer = UIntHandle(pair.StringValue); break; case 334: item.SelectionObjectPointer = UIntHandle(pair.StringValue); break; case 348: item.VisualStyleObjectPointer = UIntHandle(pair.StringValue); break; case 361: item.SunOwnershipPointer = UIntHandle(pair.StringValue); break; case 110: item.UCSOrigin.X = (pair.DoubleValue); break; case 120: item.UCSOrigin.Y = (pair.DoubleValue); break; case 130: item.UCSOrigin.Z = (pair.DoubleValue); break; case 111: item.UCSXAxis.X = (pair.DoubleValue); break; case 121: item.UCSXAxis.Y = (pair.DoubleValue); break; case 131: item.UCSXAxis.Z = (pair.DoubleValue); break; case 112: item.UCSYAxis.X = (pair.DoubleValue); break; case 122: item.UCSYAxis.Y = (pair.DoubleValue); break; case 132: item.UCSYAxis.Z = (pair.DoubleValue); break; case 79: item.OrthographicViewType = (DxfOrthographicViewType)(pair.ShortValue); break; case 146: item.UCSElevation = (pair.DoubleValue); break; case 345: item.UCSHandle = UIntHandle(pair.StringValue); break; case 346: item.BaseUCSHandle = UIntHandle(pair.StringValue); break; case (int)DxfXDataType.ApplicationName: item.XData = DxfXData.FromBuffer(buffer, pair.StringValue); break; default: item.TrySetPair(pair); break; } } return item; }
public void Visit(DxfView value) { this.dxfHandledObject_0 = (DxfHandledObject)Class906.smethod_6(this.cloneContext_0, value); }
// For each layout, add a page to the PDF file. // Optionally specify a modelView (for model space only). // Optionally specify a layout. public static void AddLayoutToPdfExporter( PdfExporter pdfExporter, GraphicsConfig config, DxfModel model, DxfView modelView, DxfLayout layout ) { Bounds3D bounds; const float defaultMargin = 0.5f; float margin = 0f; PaperSize paperSize = null; bool useModelView = false; bool emptyLayout = false; if (layout == null || !layout.PaperSpace) { // Model space. BoundsCalculator boundsCalculator = new BoundsCalculator(); boundsCalculator.GetBounds(model); bounds = boundsCalculator.Bounds; if (bounds.Initialized) { if (bounds.Delta.X > bounds.Delta.Y) { paperSize = PaperSizes.GetPaperSize(PaperKind.A4Rotated); } else { paperSize = PaperSizes.GetPaperSize(PaperKind.A4); } } else { emptyLayout = true; } margin = defaultMargin; useModelView = modelView != null; } else { // Paper space layout. Bounds2D plotAreaBounds = layout.GetPlotAreaBounds(); bounds = new Bounds3D(); emptyLayout = !plotAreaBounds.Initialized; if (plotAreaBounds.Initialized) { bounds.Update((Point3D)plotAreaBounds.Min); bounds.Update((Point3D)plotAreaBounds.Max); if (layout.PlotArea == PlotArea.LayoutInformation) { switch (layout.PlotPaperUnits) { case PlotPaperUnits.Millimeters: paperSize = new PaperSize(Guid.NewGuid().ToString(), (int)(plotAreaBounds.Delta.X * 100d / 25.4d), (int)(plotAreaBounds.Delta.Y * 100d / 25.4d)); break; case PlotPaperUnits.Inches: paperSize = new PaperSize(Guid.NewGuid().ToString(), (int)(plotAreaBounds.Delta.X * 100d), (int)(plotAreaBounds.Delta.Y * 100d)); break; case PlotPaperUnits.Pixels: // No physical paper units. Fall back to fitting layout into a known paper size. break; } } if (paperSize == null) { if (bounds.Delta.X > bounds.Delta.Y) { paperSize = PaperSizes.GetPaperSize(PaperKind.A4Rotated); } else { paperSize = PaperSizes.GetPaperSize(PaperKind.A4); } margin = defaultMargin; } } } if (!emptyLayout) { // Lengths in inches. float pageWidthInInches = paperSize.Width / 100f; float pageHeightInInches = paperSize.Height / 100f; double scaleFactor; Matrix4D to2DTransform; if (useModelView) { to2DTransform = modelView.GetMappingTransform( new Rectangle2D( margin * PdfExporter.InchToPixel, margin * PdfExporter.InchToPixel, (pageWidthInInches - margin) * PdfExporter.InchToPixel, (pageHeightInInches - margin) * PdfExporter.InchToPixel), false); scaleFactor = double.NaN; // Not needed for model space. } else { to2DTransform = DxfUtil.GetScaleTransform( bounds.Corner1, bounds.Corner2, new Point3D(bounds.Center.X, bounds.Corner2.Y, 0d), new Point3D(new Vector3D(margin, margin, 0d) * PdfExporter.InchToPixel), new Point3D(new Vector3D(pageWidthInInches - margin, pageHeightInInches - margin, 0d) * PdfExporter.InchToPixel), new Point3D(new Vector3D(pageWidthInInches / 2d, pageHeightInInches - margin, 0d) * PdfExporter.InchToPixel), out scaleFactor ); } if (layout == null || !layout.PaperSpace) { pdfExporter.DrawPage(model, config, to2DTransform, paperSize); } else { pdfExporter.DrawPage(model, config, to2DTransform, scaleFactor, layout, null, paperSize); } } }
public Class317(DxfView view) : base((DxfHandledObject)view) { }