Пример #1
0
        //static ImageList ImageList
        //{
        //    get
        //    {
        //        if (imageList == null)
        //        {
        //            Bitmap bmp;
        //            if (Settings.GlobalSettings.GetBoolValue("PointSymbolsBold", false))
        //            {
        //                bmp = BitmapTable.GetBitmap("PointSymbolsB.bmp");
        //            }
        //            else
        //            {
        //                bmp = BitmapTable.GetBitmap("PointSymbols.bmp");
        //            }
        //            // Die Datei PointSymbols.bmp muss so aufgebaut sein:
        //            // sie enthält 6 Symbole nebeneinader, die alle quadratisch sind
        //            // am besten mit ungerder Seitenlänge, dann ist es am einfachsten zu platzieren
        //            // das erste Pixel links oben ist die transparentfarbe, am besten einfach s/w
        //            Color clr = bmp.GetPixel(0, 0);
        //            if (clr.A != 0) bmp.MakeTransparent(clr);
        //            int h = bmp.Height;
        //            imageList = new ImageList();
        //            imageList.ImageSize = new Size(h, h);
        //            imageList.Images.AddStrip(bmp);
        //        }
        //        return imageList;
        //    }
        //}
        public static void PointSymbol(IPaintTo3D paintTo3D, GeoPoint location, double size, GeoObject.PointSymbol symbol)
        {
            Bitmap bmp = null;

            if ((symbol & CADability.GeoObject.PointSymbol.Select) != 0)
            {
                bmp = BitmapList[12];
                if (bmp != null)
                {
                    paintTo3D.DisplayIcon(location, bmp);
                }
                return; // nur das volle Quadrat anzeigen, sonst nichts
            }

            int offset = 0;

            if (paintTo3D.UseLineWidth)
            {
                offset = 6;                         // so wird gesteuert dass bei nur dünn die dünnen Punkte und bei
            }
            // mit Linienstärke ggf. die dicken Punkte angezeigt werden (Forderung PFOCAD)
            switch ((GeoObject.PointSymbol)((int)symbol & 0x07))
            {
            case CADability.GeoObject.PointSymbol.Empty:
                bmp = null;
                break;

            case CADability.GeoObject.PointSymbol.Dot:
            {
                bmp = BitmapList[0 + offset];
            }
            break;

            case CADability.GeoObject.PointSymbol.Plus:
            {
                bmp = BitmapList[1 + offset];
            }
            break;

            case CADability.GeoObject.PointSymbol.Cross:
            {
                bmp = BitmapList[2 + offset];
            }
            break;

            case CADability.GeoObject.PointSymbol.Line:
            {
                bmp = BitmapList[3 + offset];
            }
            break;
            }
            if (bmp != null)
            {
                paintTo3D.DisplayIcon(location, bmp);
            }
            bmp = null;
            if ((symbol & CADability.GeoObject.PointSymbol.Circle) != 0)
            {
                bmp = BitmapList[5 + offset];
            }
            if ((symbol & CADability.GeoObject.PointSymbol.Square) != 0)
            {
                bmp = BitmapList[4 + offset];
            }
            if (bmp != null)
            {
                paintTo3D.DisplayIcon(location, bmp);
            }
        }