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); } } }
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); }
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); }
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; }
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); } } }
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; }