Пример #1
0
 internal static extern void Internal_DrawOutline(Color parentNodeColor, Color childNodeColor, int submeshOutlineMaterialId, int[] parentRenderers, int[] childRenderers, OutlineDrawMode outlineMode, float parentOutlineAlpha = 0, float childOutlineAlpha = 0);
Пример #2
0
        private static ImageSource GetEditTraceLineImageSourceWithDrawingVisualGeoCanvas(MapArguments mapArguments, InMemoryFeatureLayer inProcessLayer, Collection <SimpleCandidate> simpleCandidates, OutlineDrawMode outlineDrawMode)
        {
            OutlineDrawingVisualGeoCanvas geoCanvas = new OutlineDrawingVisualGeoCanvas();

            geoCanvas.OutlineDrawMode = outlineDrawMode;
            RenderTargetBitmap nativeImage = new RenderTargetBitmap((int)mapArguments.ActualWidth, (int)mapArguments.ActualHeight, geoCanvas.Dpi, geoCanvas.Dpi, PixelFormats.Pbgra32);

            geoCanvas.BeginDrawing(nativeImage, mapArguments.CurrentExtent, mapArguments.MapUnit);
            lock (inProcessLayer)
            {
                if (!inProcessLayer.IsOpen)
                {
                    inProcessLayer.Open();
                }
                inProcessLayer.Draw(geoCanvas, simpleCandidates);
            }
            geoCanvas.EndDrawing();
            return(nativeImage);
        }
Пример #3
0
 private static void UpdateImageSource(MapArguments mapArguments, Collection <SimpleCandidate> simpleCandidates, RenderMode renderMode, InMemoryFeatureLayer inProcessLayer, Image defaultImage, OutlineDrawMode outlineDrawMode = OutlineDrawMode.LineWithFill)
 {
     if (renderMode == RenderMode.DrawingVisual)
     {
         defaultImage.Source = GetEditTraceLineImageSourceWithDrawingVisualGeoCanvas(mapArguments, inProcessLayer, simpleCandidates, outlineDrawMode);
     }
     else
     {
         defaultImage.Source = GetEditTraceLineImageSourceWithGdiPlusGeoCanvas(mapArguments, inProcessLayer, simpleCandidates, outlineDrawMode);
     }
 }
Пример #4
0
        private static ImageSource GetEditTraceLineImageSourceWithGdiPlusGeoCanvas(MapArguments mapArguments, InMemoryFeatureLayer inProcessLayer, Collection <SimpleCandidate> simpleCandidates, OutlineDrawMode outlineDrawMode)
        {
            MemoryStream            streamSource = null;
            OutlineGdiPlusGeoCanvas geoCanvas    = new OutlineGdiPlusGeoCanvas();

            geoCanvas.OutlineDrawMode = outlineDrawMode;
            using (var nativeImage = new System.Drawing.Bitmap((int)mapArguments.ActualWidth, (int)mapArguments.ActualHeight))
            {
                geoCanvas.BeginDrawing(nativeImage, mapArguments.CurrentExtent, mapArguments.MapUnit);
                lock (inProcessLayer)
                {
                    if (!inProcessLayer.IsOpen)
                    {
                        inProcessLayer.Open();
                    }
                    inProcessLayer.Draw(geoCanvas, simpleCandidates);
                }
                geoCanvas.EndDrawing();

                streamSource = new MemoryStream();
                nativeImage.Save(streamSource, System.Drawing.Imaging.ImageFormat.Png);
                streamSource.Seek(0, SeekOrigin.Begin);
            }

            BitmapImage bitmapImage = new BitmapImage();

            bitmapImage.BeginInit();
            bitmapImage.StreamSource = streamSource;
            bitmapImage.EndInit();
            bitmapImage.Freeze();

            return(bitmapImage);
        }