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));
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 4
0
        /// <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);
                }
            }
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        public void DoExecuteWork(SharedObjects shared)
        {
            var vRend = new VectorRenderer(shared.UpdateHandler, shared);

            vRend.SetShow(false);

            ReturnValue = vRend;
        }
Exemplo n.º 7
0
        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"));
        }
Exemplo n.º 8
0
        public override void Execute(SharedObjects shared)
        {
            var vRend = new VectorRenderer(shared.UpdateHandler, shared);

            vRend.SetShow(false);

            shared.Cpu.PushStack(vRend);
        }
Exemplo n.º 9
0
        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();
        }
Exemplo n.º 10
0
        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);
            }
Exemplo n.º 12
0
        /// <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);
            }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
        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;
        }
Exemplo n.º 16
0
        /// <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);
                }
            }
        }
    }
Exemplo n.º 18
0
        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));
        }
Exemplo n.º 21
0
        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);
        }
Exemplo n.º 23
0
        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();
            }
        }
Exemplo n.º 24
0
        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);
            }
        }
Exemplo n.º 26
0
        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;
                }
            }
        }
Exemplo n.º 27
0
        /// <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);
            }
        }
Exemplo n.º 28
0
        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();
            }
        }
Exemplo n.º 29
0
        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();
            }
        }
Exemplo n.º 30
0
        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;
            }
        }