private IEnumerable <TRenderObject> drawPoints(IEnumerable <IPoint> points, Symbol2D symbol, Symbol2D highlightSymbol, Symbol2D selectSymbol, RenderState renderState) { // If we have a null symbol, use the default if (symbol == null) { symbol = DefaultSymbol; } if (highlightSymbol == null) { highlightSymbol = symbol; } if (selectSymbol == null) { selectSymbol = symbol; } return(VectorRenderer.RenderSymbols( convertPoints(points), symbol, highlightSymbol, selectSymbol, renderState)); }
public void DoExecuteWork(SharedObjects shared, Vector start, Vector vec, RgbaColor rgba, string str, double scale, bool show, double width, KOSDelegate colorUpdater, KOSDelegate vecUpdater, KOSDelegate startUpdater) { var vRend = new VectorRenderer(shared.UpdateHandler, shared) { Vector = vec, Start = start, Color = rgba, Scale = scale, Width = width }; vRend.SetLabel(str); vRend.SetShow(show); if (colorUpdater != null) { vRend.SetSuffix("COLORUPDATER", colorUpdater); } if (vecUpdater != null) { vRend.SetSuffix("VECUPDATER", vecUpdater); } if (startUpdater != null) { vRend.SetSuffix("STARTUPDATER", startUpdater); } ReturnValue = vRend; }
static void Main(string[] args) { // Create an instance of Bytescout.PDFRenderer.VectorRenderer object and register it. VectorRenderer renderer = new VectorRenderer(); renderer.RegistrationName = "demo"; renderer.RegistrationKey = "demo"; // Load PDF document. renderer.LoadDocumentFromFile("vector_drawing.pdf"); for (int i = 0; i < renderer.GetPageCount(); i++) { // Render document page to EMF image file renderer.Save("image" + i + ".emf", i, 300); } // Cleanup renderer.Dispose(); // Open result document in default associated application (for demo purpose) ProcessStartInfo processStartInfo = new ProcessStartInfo("image0.emf"); processStartInfo.UseShellExecute = true; Process.Start(processStartInfo); }
/// <summary> /// Method to perform actual rendering /// </summary> /// <param name="map">The map</param> /// <param name="polygon">The polygon to render</param> /// <param name="g">The graphics object to use</param> protected override void OnRenderInternal(Map map, IPolygon polygon, Graphics g) { // convert points var pts = /*LimitValues(*/ polygon.TransformToImage(map) /*)*/; // clip if (UseClipping) { pts = VectorRenderer.ClipPolygon(pts, map.Size.Width, map.Size.Height); } // fill the polygon if (Fill != null) { g.FillPolygon(Fill, pts); } // outline the polygon if (Outline != null) { Outline.Render(map, polygon.ExteriorRing, g); foreach (var ls in polygon.InteriorRings) { Outline.Render(map, ls, g); } } }
/// <summary> /// Transforms a <see cref="Polygon"/> to an array of <see cref="PointF"/>s /// </summary> /// <param name="self">The polygon</param> /// <param name="map">The map that defines the affine coordinate transformation.</param> /// <param name="useClipping">Use clipping for the polygon</param> /// <returns>An array of PointFs</returns> public static GraphicsPath TransformToImage(this Polygon self, MapViewport map, bool useClipping = false) { var res = new GraphicsPath(FillMode.Alternate); if (useClipping) { res.AddPolygon(VectorRenderer.ClipPolygon( VectorRenderer.LimitValues(self.ExteriorRing.TransformToImage(map), VectorRenderer.ExtremeValueLimit), map.Size.Width, map.Size.Height)); for (var i = 0; i < self.NumInteriorRings; i++) { res.AddPolygon(VectorRenderer.ClipPolygon( VectorRenderer.LimitValues(self.GetInteriorRingN(i).TransformToImage(map), VectorRenderer.ExtremeValueLimit), map.Size.Width, map.Size.Height)); } } else { res.AddPolygon(self.ExteriorRing.TransformToImage(map)); for (var i = 0; i < self.NumInteriorRings; i++) { res.AddPolygon(self.GetInteriorRingN(i).TransformToImage(map)); } } return(res); }
public void DoExecuteWork(SharedObjects shared) { var vRend = new VectorRenderer(shared.UpdateHandler, shared); vRend.SetShow(false); ReturnValue = vRend; }
public void Draw_PassAVectorRenderer_DrawsWithTheSpecifiedRenderer() { var renderer = new VectorRenderer(); var circle = new Circle(renderer, 5); var drawn = circle.Draw(); Assert.That(drawn, Is.EqualTo("vector")); }
public override void Execute(SharedObjects shared) { var vRend = new VectorRenderer(shared.UpdateHandler, shared); vRend.SetShow(false); shared.Cpu.PushStack(vRend); }
private static void BridgeDemo() { //IRenderer renderer = new RasterRenderer(); IRenderer renderer = new VectorRenderer(); var circle = new Circle(renderer, 5); circle.Draw(); circle.Resize(2); circle.Draw(); }
static void Main(string[] args) { var rasterRenderer = new RasterRenderer(); var vectorRenderer = new VectorRenderer(); var triangleOne = new Triangle(rasterRenderer, nameof(Triangle)); var triangleTwo = new Triangle(vectorRenderer, nameof(Triangle)); triangleOne.Draw(); triangleTwo.Draw(); }
public VectorRenderer AddLine(Func <Vector3d> startProvider, Func <Vector3d> endProvider, KSPConsoleModule.RgbaColor color, string label, double width) { VectorRenderer renderer = new VectorRenderer(startProvider, endProvider, color, label, width, false); renderer.Visible = true; KSPContext.CurrentContext.AddMarker(renderer); return(renderer); }
/// <summary> /// Method to render this layer to the map, applying <paramref name="theme"/>. /// </summary> /// <param name="g">The graphics object</param> /// <param name="map">The map object</param> /// <param name="envelope">The envelope to render</param> /// <param name="theme">The theme to apply</param> protected virtual void RenderInternal(Graphics g, IMapViewPort map, Envelope envelope, ITheme theme) { var useCache = _dataCache != null; var ds = _dataCache; if (ds == null || ds.Tables.Count == 0) { base.Render(g, map); return; } foreach (var features in ds.Tables) { //Linestring outlines is drawn by drawing the layer once with a thicker line //before drawing the "inline" on top. if (Style.EnableOutline) { for (var i = 0; i < features.Count; i++) { var feature = features[i]; using (var outlineStyle = theme.GetStyle(feature) as VectorStyle) { ApplyStyle(g, map, outlineStyle, (graphics, map1, style) => { //Draw background of all line-outlines first var lineString = feature.Geometry as ILineString; if (lineString != null) { VectorRenderer.DrawLineString(g, lineString, style.Outline, map, style.LineOffset); } else if (feature.Geometry is IMultiLineString) { VectorRenderer.DrawMultiLineString(g, (IMultiLineString)feature.Geometry, style.Outline, map, style.LineOffset); } } ); } } } for (var i = 0; i < features.Count; i++) { var feature = features[i]; var style = theme.GetStyle(feature); ApplyStyle(g, map, style, (graphics, map1, vstyle) => RenderGeometry(g, map, feature.Geometry, vstyle)); } } }
public VectorRenderer AddVector(Func <Vector3d> startProvider, Func <Vector3d> endProvider, KSPConsoleModule.RgbaColor color, string label, double width) { Vessel vessel = FlightGlobals.ActiveVessel; VectorRenderer renderer = new VectorRenderer(startProvider, endProvider, color, label, width, true); renderer.Visible = true; KSPContext.CurrentContext.AddMarker(renderer); return(renderer); }
private static Label CreateLabel(Geometry feature, string text, float rotation, int priority, LabelStyle style, Map map, Graphics g) { //SizeF size = g.MeasureString(text, style.Font); SizeF size = VectorRenderer.SizeOfString(g, text, style.Font); //PointF position = map.WorldToImage(feature.GetBoundingBox().GetCentroid()); PointF position = Transform.WorldtoMap(feature.GetBoundingBox().GetCentroid(), map); position.X = position.X - size.Width * (short)style.HorizontalAlignment * 0.5f; position.Y = position.Y - size.Height * (short)(2 - (int)style.VerticalAlignment) * 0.5f; if (position.X - size.Width > map.Size.Width || position.X + size.Width < 0 || position.Y - size.Height > map.Size.Height || position.Y + size.Height < 0) { return(null); } Label lbl; if (!style.CollisionDetection) { lbl = new Label(text, position, rotation, priority, null, style); } else { //Collision detection is enabled so we need to measure the size of the string lbl = new Label(text, position, rotation, priority, new LabelBox(position.X - size.Width * 0.5f - style.CollisionBuffer.Width, position.Y + size.Height * 0.5f + style.CollisionBuffer.Height, size.Width + 2f * style.CollisionBuffer.Width, size.Height + style.CollisionBuffer.Height * 2f), style); } if (feature is LineString) { LineString line = feature as LineString; //Only label feature if it is long enough, or it is definately wanted if (line.Length / map.PixelSize > size.Width || style.IgnoreLength) { CalculateLabelOnLinestring(line, ref lbl, map); } else { return(null); } } return(lbl); }
public void DoExecuteWork(SharedObjects shared, Vector start, Vector vec, RgbaColor rgba, string str, double scale, bool show) { var vRend = new VectorRenderer(shared.UpdateHandler, shared) { Vector = vec, Start = start, Color = rgba, Scale = scale }; vRend.SetLabel(str); vRend.SetShow(show); ReturnValue = vRend; }
/// <summary> /// Function that actually renders the linestring /// </summary> /// <param name="map"></param> /// <param name="lineString"></param> /// <param name="graphics"></param> protected override void OnRenderInternal(MapViewport map, ILineString lineString, Graphics graphics) { var gp = new GraphicsPath(); gp.AddLines(VectorRenderer.LimitValues(lineString.TransformToImage(map), VectorRenderer.ExtremeValueLimit)); if (ImmediateMode) { var tmp = new List <GraphicsPath>(new[] { gp }); Symbolize(graphics, map, tmp); } else { _graphicsPaths.Add(gp); } }
void OnRenderObject() { if (Camera.current == Camera.main) { Matrix4x4 matrix = Matrix4x4.TRS(transform.position, Quaternion.identity, Vector3.one * size); VectorRenderer.DrawMesh(m_Mesh, material, matrix); if (autoAdd) { for (int i = 0; i < m_PositionList.Count; i++) { matrix = Matrix4x4.TRS(m_PositionList[i], Quaternion.identity, Vector3.one * size); VectorRenderer.DrawMesh(m_Mesh, material, matrix); } } } }
protected override void OnRenderInternal(Map map, Polygon polygon, Graphics g) { var pts = /*LimitValues(*/ polygon.TransformToImage(map) /*)*/; if (UseClipping) { pts = VectorRenderer.ClipPolygon(pts, map.Size.Width, map.Size.Height); } if (Fill != null) { g.FillPolygon(Fill, pts); } if (Outline != null) { g.DrawPolygon(Outline, pts); } }
static void Main(string[] args) { // Create an instance of Bytescout.PDFRenderer.VectorRenderer object and register it. VectorRenderer renderer = new VectorRenderer(); renderer.RegistrationName = "demo"; renderer.RegistrationKey = "demo"; // Load PDF document. renderer.LoadDocumentFromFile("vector_drawing.pdf"); for (int i = 0; i < renderer.GetPageCount(); i++) { // Render document page to EMF image file renderer.Save("image" + i + ".emf", i, 300); } // Open the first output file in default image viewer. System.Diagnostics.Process.Start("image0.emf"); }
/// <summary> /// Method to compute the item size /// </summary> /// <param name="g"></param> /// <param name="map"></param> /// <returns></returns> public Size ComputeItemSize(Graphics g) { var width = 0; var height = 0; if (Symbol != null) { height = Math.Max(height, Symbol.Size.Height); width += Symbol.Size.Width + Padding.Width; } if (!string.IsNullOrEmpty(Label)) { var labelSize = Size.Ceiling(VectorRenderer.SizeOfString(g, Label, LabelFont)); height = Math.Max(height, labelSize.Height); width += labelSize.Width + Padding.Width; } return(new Size(width > 0 ? width - Padding.Width : 0, height)); }
public static void DrawTitleSafeAreas(GraphicsDevice graphics, VectorRenderer vectors, Color notActionSafeColor, Color notTitleSafeColor) { int width = graphics.PresentationParameters.BackBufferWidth; int height = graphics.PresentationParameters.BackBufferHeight; int dx = (int)(width * 0.05); int dy = (int)(height * 0.05); // const int z = 0; /*(vectors.DrawLines(new[] { * new Vector3(dx, dy, z), * new Vector3(dx + width - 2 * dx, dy, z), * new Vector3(dx + width - 2 * dx, dy + height - 2 * dy, z), * new Vector3(dx, dy + height - 2 * dy, z) }, Matrix.Identity, notActionSafeColor, true); * * vectors.DrawLines(new[] { * new Vector3(dx * 2, dy * 2, z), * new Vector3(dx * 2 + width - 4 * dx, dy * 2, z), * new Vector3(dx * 2 + width - 4 * dx, dy * 2 + height - 4 * dy, z), * new Vector3(dx * 2, dy* 2 + height - 4 * dy, z) }, Matrix.Identity, notTitleSafeColor, true);*/ }
private IEnumerable <TRenderObject> drawPolygons(IEnumerable <IPolygon> polygons, StyleBrush fill, StyleBrush highlightFill, StyleBrush selectFill, StylePen outline, StylePen highlightOutline, StylePen selectOutline, RenderState renderState) { if (fill == null) { throw new ArgumentNullException("fill"); } if (outline == null) { throw new ArgumentNullException("outline"); } IEnumerable <Path2D> paths = convertToPaths(polygons); if (highlightFill == null) { highlightFill = fill; } if (selectFill == null) { selectFill = fill; } if (highlightOutline == null) { highlightOutline = outline; } if (selectOutline == null) { selectOutline = outline; } IEnumerable <TRenderObject> renderedObjects = VectorRenderer.RenderPaths( paths, fill, highlightFill, selectFill, outline, highlightOutline, selectOutline, renderState); return(renderedObjects); }
public static void Run() { // IRenderer renderer = new RasterRenderer(); var renderer = new VectorRenderer(); var circle = new Circle(renderer, 5); circle.Draw(); circle.Resize(2); circle.Draw(); var cb = new ContainerBuilder(); cb.RegisterType <VectorRenderer>().As <IRenderer>().SingleInstance(); cb.Register((c, p) => new Circle(c.Resolve <IRenderer>(), p.Positional <float>(0))); using (var c = cb.Build()) { var circle2 = c.Resolve <Circle>(new PositionalParameter(0, 5.0f)); circle2.Draw(); circle2.Resize(2.0f); circle2.Draw(); } }
public override void Execute(SharedObjects shared) { bool show = Convert.ToBoolean(shared.Cpu.PopValue()); double scale = GetDouble(shared.Cpu.PopValue()); string str = shared.Cpu.PopValue().ToString(); RgbaColor rgba = GetRgba(shared.Cpu.PopValue()); Vector vec = GetVector(shared.Cpu.PopValue()); Vector start = GetVector(shared.Cpu.PopValue()); var vRend = new VectorRenderer(shared.UpdateHandler, shared) { Vector = vec, Start = start, Color = rgba, Scale = scale }; vRend.SetLabel(str); vRend.SetShow(show); shared.Cpu.PushStack(vRend); }
private IEnumerable <TRenderObject> drawLineStrings(IEnumerable <ILineString> lines, StylePen fill, StylePen highlightFill, StylePen selectFill, StylePen outline, StylePen highlightOutline, StylePen selectOutline, RenderState renderState) { if (fill == null) { throw new ArgumentNullException("fill"); } IEnumerable <Path2D> paths = convertToPaths(lines); if (highlightFill == null) { highlightFill = fill; } if (selectFill == null) { selectFill = fill; } if (highlightOutline == null) { highlightOutline = outline; } if (selectOutline == null) { selectOutline = outline; } IEnumerable <TRenderObject> renderedObjects = VectorRenderer.RenderPaths(paths, fill, highlightFill, selectFill, outline, highlightOutline, selectOutline, renderState); foreach (TRenderObject ro in renderedObjects) { yield return(ro); } }
private void RenderDisclaimer(Graphics g) { StringFormat sf; //Disclaimer if (!String.IsNullOrEmpty(_disclaimer)) { SizeF size = VectorRenderer.SizeOfString(g, _disclaimer, _disclaimerFont); size.Width = (Single)Math.Ceiling(size.Width); size.Height = (Single)Math.Ceiling(size.Height); switch (DisclaimerLocation) { case 0: //Right-Bottom sf = new StringFormat(); sf.Alignment = StringAlignment.Far; g.DrawString(Disclaimer, DisclaimerFont, Brushes.Black, g.VisibleClipBounds.Width, g.VisibleClipBounds.Height - size.Height - 2, sf); break; case 1: //Right-Top sf = new StringFormat(); sf.Alignment = StringAlignment.Far; g.DrawString(Disclaimer, DisclaimerFont, Brushes.Black, g.VisibleClipBounds.Width, 0f, sf); break; case 2: //Left-Top g.DrawString(Disclaimer, DisclaimerFont, Brushes.Black, 0f, 0f); break; case 3: //Left-Bottom g.DrawString(Disclaimer, DisclaimerFont, Brushes.Black, 0f, g.VisibleClipBounds.Height - size.Height - 2); break; } } }
/// <summary> /// Method that does the actual rendering of geometries /// </summary> /// <param name="map">The map</param> /// <param name="polygon">The feature</param> /// <param name="g">The graphics object</param> protected override void OnRenderInternal(IMapViewPort map, IPolygon polygon, Graphics g) { // convert points var pts = /*LimitValues(*/ polygon.TransformToImage(map) /*)*/; // clip if (UseClipping) { pts = VectorRenderer.ClipPolygon(pts, map.Size.Width, map.Size.Height); } // fill the polygon if (Fill != null) { g.FillPolygon(Fill, pts); } // outline the polygon if (Outline != null) { g.DrawPolygon(Outline, pts); } }
private void DrawSelected() { if (m_SelectedFeature != null) { var g = m_MapImage.CreateGraphics(); var projectedGeom = m_SelectedFeature.Geometry;//GeometryTransform.TransformGeometry(m_SelectedFeature.Geometry, //CoordinateSystems.WGS84, //CoordinateSystems.SphericalMercatorCS); Color fillColor, outlineColor; if (m_IsMoveMode) { fillColor = Color.FromArgb(128, Color.Orange); outlineColor = Color.GreenYellow; } else { fillColor = Color.Transparent; outlineColor = Color.Aqua; } if (projectedGeom is Polygon) { VectorRenderer.DrawPolygon(g, (Polygon)projectedGeom, new SolidBrush(fillColor), new Pen(outlineColor, 3), false, m_MapImage.Map); } else if (projectedGeom is MultiPolygon) { VectorRenderer.DrawMultiPolygon(g, (MultiPolygon)projectedGeom, new SolidBrush(Color.Transparent), new Pen(Color.Aqua, 3), false, m_MapImage.Map); } g.Dispose(); } }
private void DrawGeom(Geometry geom) { if (geom != null) { var g = m_GeoSearch.MapControl.CreateGraphics(); Color fillColor = Color.Transparent, outlineColor = Color.Aqua; if (geom is Polygon) { VectorRenderer.DrawPolygon(g, (Polygon)geom, new SolidBrush(fillColor), new Pen(Color.FromArgb(96, outlineColor), 7), false, m_GeoSearch.MapControl.Map); } else if (geom is MultiPolygon) { VectorRenderer.DrawMultiPolygon(g, (MultiPolygon)geom, new SolidBrush(fillColor), new Pen(Color.FromArgb(96, outlineColor), 7), false, m_GeoSearch.MapControl.Map); } else if (geom is SharpMap.Geometries.Point) { VectorRenderer.DrawPoint(g, (SharpMap.Geometries.Point)geom, MarkerTypes.Circle, new SolidBrush(Color.FromArgb(96, outlineColor)), false, new Pen(outlineColor), 25, new PointF(0, 0), m_GeoSearch.MapControl.Map); } else if (geom is MultiPoint) { VectorRenderer.DrawMultiPoint(g, (MultiPoint)geom, MarkerTypes.Circle, new SolidBrush(Color.FromArgb(96, outlineColor)), false, new Pen(outlineColor), 25, new PointF(0, 0), m_GeoSearch.MapControl.Map); } m_GeoSearch.MapControl.PaintMapTitleAndLegend(g); g.Dispose(); } }
protected void RenderGeometry(Graphics g, Map map, Geometry feature, VectorStyle style) { //ToDo: Add Property 'public GeometryType2 GeometryType { get; }' to remove this GeometryType2 geometryType = feature.GeometryType; //(GeometryType2)Enum.Parse(typeof(GeometryType2), feature.GetType().Name); switch (geometryType) //switch (feature.GetType().FullName) { case GeometryType2.Polygon: //case "SharpMap.Geometries.Polygon": if (style.EnableOutline) { VectorRenderer.DrawPolygon(g, (Polygon)feature, style.Fill, style.Outline, _clippingEnabled, map); } else { VectorRenderer.DrawPolygon(g, (Polygon)feature, style.Fill, null, _clippingEnabled, map); } break; case GeometryType2.MultiPolygon: //case "SharpMap.Geometries.MultiPolygon": if (style.EnableOutline) { VectorRenderer.DrawMultiPolygon(g, (MultiPolygon)feature, style.Fill, style.Outline, _clippingEnabled, map); } else { VectorRenderer.DrawMultiPolygon(g, (MultiPolygon)feature, style.Fill, null, _clippingEnabled, map); } break; case GeometryType2.LineString: //case "SharpMap.Geometries.LineString": VectorRenderer.DrawLineString(g, (LineString)feature, style.Line, map); break; case GeometryType2.MultiLineString: //case "SharpMap.Geometries.MultiLineString": VectorRenderer.DrawMultiLineString(g, (MultiLineString)feature, style.Line, map); break; case GeometryType2.Point: //case "SharpMap.Geometries.Point": VectorRenderer.DrawPoint(g, (Point)feature, style.Symbol, style.SymbolScale, style.SymbolOffset, style.SymbolRotation, map); break; case GeometryType2.MultiPoint: //case "SharpMap.Geometries.MultiPoint": VectorRenderer.DrawMultiPoint(g, (MultiPoint)feature, style.Symbol, style.SymbolScale, style.SymbolOffset, style.SymbolRotation, map); break; case GeometryType2.GeometryCollection: //case "SharpMap.Geometries.GeometryCollection": foreach (Geometry geom in (GeometryCollection)feature) { RenderGeometry(g, map, geom, style); } break; default: break; } }