示例#1
0
            public override void Draw(IGraphicsContext3D g, DrawContext dc, double xbase, double ybase, double zbase)
            {
                var mylayer = (HostLayer)dc.LinkedObject;

                var layer = mylayer as XYZPlotLayer;

                if (_layerNumber >= 0 && mylayer.SiblingLayers != null && _layerNumber < mylayer.SiblingLayers.Count)
                {
                    layer = mylayer.SiblingLayers[_layerNumber] as XYZPlotLayer;
                }

                if (null == layer)
                {
                    return;
                }

                if (_plotNumber < layer.PlotItems.Flattened.Length)
                {
                    var        fontInfo = dc.FontCache.GetFontInfo(Style.FontId);
                    IGPlotItem pa       = layer.PlotItems.Flattened[_plotNumber];

                    var symbolpos  = new PointD3D(xbase, (ybase + 0.5 * fontInfo.cyDescent - 0.5 * fontInfo.cyAscent), 0);
                    var symbolRect = new RectangleD3D(symbolpos, new VectorD3D(SizeX, 0, 0));
                    symbolRect = symbolRect.WithPadding(0, fontInfo.Size, 0);
                    pa.PaintSymbol(g, symbolRect);

                    if (!dc.bForPreview)
                    {
                        var volume = new RectangleTransformedD3D(
                            new RectangleD3D(symbolpos.X, symbolpos.Y - 0.5 * fontInfo.cyLineSpace, 0, SizeX, fontInfo.cyLineSpace, 0), dc.transformMatrix);
                        dc._cachedSymbolPositions.Add(volume, pa);
                    }
                }
            }
示例#2
0
        public RectangleD3D PaintSymbol(IGraphicsContext3D g, RectangleD3D bounds)
        {
            bounds = bounds.WithPadding(0, 0, -bounds.SizeZ / 4);
            var heightBy2 = new VectorD3D(0, 0, bounds.SizeZ / 4);

            g.DrawLine(_pen, bounds.Center - heightBy2, bounds.Center + heightBy2);

            return(bounds);
        }
示例#3
0
        public RectangleD3D PaintSymbol(IGraphicsContext3D g, RectangleD3D bounds)
        {
            if (!ScatterSymbols.NoSymbol.Instance.Equals(_symbolShape))
            {
                _symbolShape.Paint(g, _material, bounds.Center, _symbolSize);
                bounds = bounds.WithPadding(0, Math.Max(0, SymbolSize - bounds.SizeY), Math.Max(0, SymbolSize - bounds.SizeZ));
            }

            return(bounds);
        }
示例#4
0
		public RectangleD3D PaintSymbol(IGraphicsContext3D g, RectangleD3D bounds)
		{
			bounds = bounds.WithPadding(0, 0, -bounds.SizeZ / 4);
			var heightBy2 = new VectorD3D(0, 0, bounds.SizeZ / 4);

			g.DrawLine(_pen, bounds.Center - heightBy2, bounds.Center + heightBy2);

			return bounds;
		}
示例#5
0
			public override void Draw(IGraphicsContext3D g, DrawContext dc, double xbase, double ybase, double zbase)
			{
				var mylayer = (HostLayer)dc.LinkedObject;

				var layer = mylayer as XYZPlotLayer;

				if (_layerNumber >= 0 && mylayer.SiblingLayers != null && _layerNumber < mylayer.SiblingLayers.Count)
					layer = mylayer.SiblingLayers[_layerNumber] as XYZPlotLayer;

				if (null == layer)
					return;

				if (_plotNumber < layer.PlotItems.Flattened.Length)
				{
					var fontInfo = dc.FontCache.GetFontInfo(Style.FontId);
					IGPlotItem pa = layer.PlotItems.Flattened[_plotNumber];

					PointD3D symbolpos = new PointD3D(xbase, (ybase + 0.5 * fontInfo.cyDescent - 0.5 * fontInfo.cyAscent), 0);
					RectangleD3D symbolRect = new RectangleD3D(symbolpos, new VectorD3D(SizeX, 0, 0));
					symbolRect = symbolRect.WithPadding(0, fontInfo.Size, 0);
					pa.PaintSymbol(g, symbolRect);

					if (!dc.bForPreview)
					{
						var volume = new RectangleTransformedD3D(
							new RectangleD3D(symbolpos.X, symbolpos.Y - 0.5 * fontInfo.cyLineSpace, 0, SizeX, fontInfo.cyLineSpace, 0), dc.transformMatrix);
						dc._cachedSymbolPositions.Add(volume, pa);
					}
				}
			}
示例#6
0
		public RectangleD3D PaintSymbol(IGraphicsContext3D g, RectangleD3D bounds)
		{
			if (!ScatterSymbols.NoSymbol.Instance.Equals(_symbolShape))
			{
				_symbolShape.Paint(g, _material, bounds.Center, _symbolSize);
				bounds = bounds.WithPadding(0, Math.Max(0, this.SymbolSize - bounds.SizeY), Math.Max(0, this.SymbolSize - bounds.SizeZ));
			}

			return bounds;
		}