/// <summary>コピーコンストラクタ。</summary> /// <param name="previous"></param> public VirtualShapeBase(VirtualShapeBase previous) { Visible = previous.Visible; ParentLayer = null; Tag = previous.Tag; ShapeFill = previous.ShapeFill; ShapeBorder = previous.ShapeBorder; DoesGlobalScale = previous.DoesGlobalScale; }
/// <summary>コピーコンストラクタ。</summary> /// <param name="previous"></param> public VirtualShapeBase(VirtualShapeBase previous) { Visible = previous.Visible; ParentLayer = null; Tag = previous.Tag; ShapeFill = previous.ShapeFill; ShapeBorder = previous.ShapeBorder; DoesGlobalScale = previous.DoesGlobalScale; }
/// <summary>バーチャルシェイプを更新する。</summary> public void UpdateVirtualShape() { if( Size.Amplitude == 0 ) { VirtualEllipse ellipse = VirtualShape as VirtualEllipse ?? new VirtualEllipse(); ellipse.Center = new PointD( Center.X, Center.Y ); ellipse.Radius = new SizeD( 3, 3 ); ellipse.DoesGlobalScale = false; VirtualShape = ellipse; } else if( Size.X == 0 || Size.Y == 0 ) { VirtualLine line = VirtualShape as VirtualLine ?? new VirtualLine(); PointD p1, p2; p1 = new PointD( Center.X - Size.X / 2, Center.Y - Size.Y / 2 ); p2 = new PointD( Center.X + Size.X / 2, Center.Y + Size.Y / 2 ); line.Vertices = new PointD[] { p1, p2 }; line.DoesGlobalScale = false; VirtualShape = line; } else { VirtualRectangle rect = VirtualShape as VirtualRectangle ?? new VirtualRectangle(); rect.Location = new PointD( Center.X - Size.X / 2, Center.Y - Size.Y / 2 ); rect.Size = new SizeD( Size.X, Size.Y ); rect.DoesGlobalScale = false; VirtualShape = rect; } VirtualShape.ShapeFill = Brushes.Red; VirtualShape.ShapeBorder = new Pen( Brushes.Red, 3 ); if( ( Parent as ProjectManifestData ) != null ) if( !( Parent as ProjectManifestData ).ManifestVisualizingLayer.Shapes.Contains( VirtualShape ) ) ( Parent as ProjectManifestData ).ManifestVisualizingLayer.Shapes.Add( VirtualShape ); }