예제 #1
0
        private EllipseObject CreateEllipseObject(XmlNode node)
        {
            var ellipseObject = new EllipseObject();

            SetObjectProperties(ellipseObject, node);

            return(ellipseObject);
        }
예제 #2
0
 public override void MouseDown(SchetsControl s, Point p)
 {
     base.MouseDown(s, p);
     mDrawingObject = new EllipseObject()
     {
         Color = s.PenColor, Filled = false, Position = p, Size = new Size(0, 0), LineWidth = s.PenSize
     };
     s.Schets.BeginAddObject(mDrawingObject);
 }
예제 #3
0
        public static BaseObject ReadObject(this XmlReader reader)
        {
            if (!reader.IsStartElement("object"))
            {
                throw new XmlException(reader.Name);
            }

            var id = reader["id"].ParseInt32() ?? 0;

            var name = reader["name"];
            var type = reader["type"];

            var gid = reader["gid"].ParseInt32();

            var x = reader["x"].ParseInt32().Value;
            var y = reader["y"].ParseInt32().Value;
            var w = reader["width"].ParseInt32();
            var h = reader["height"].ParseInt32();

            BaseObject result     = null;
            var        properties = new Dictionary <string, string>();

            if (reader.IsEmptyElement)
            {
                reader.Skip();
            }
            else
            {
                reader.ReadStartElement("object");

                while (reader.IsStartElement())
                {
                    switch (reader.Name)
                    {
                    case "properties":
                        reader.ReadProperties(properties);
                        break;

                    case "ellipse":
                        result = new EllipseObject(properties)
                        {
                            Id         = id,
                            X          = x,
                            Y          = y,
                            Width      = w.Value,
                            Height     = h.Value,
                            Name       = name,
                            IsEllipse  = true,
                            ObjectType = type
                        };
                        reader.Skip();
                        break;

                    case "polygon":
                        result = new PolygonObject(properties)
                        {
                            Id         = id,
                            X          = x,
                            Y          = y,
                            Name       = name,
                            Polygon    = reader.ReadPoints().ToArray(),
                            ObjectType = type
                        };
                        reader.Skip();
                        break;

                    case "polyline":
                        result = new PolyLineObject(properties)
                        {
                            Id         = id,
                            X          = x,
                            Y          = y,
                            Name       = name,
                            Polyline   = reader.ReadPoints().ToArray(),
                            ObjectType = type
                        };
                        reader.Skip();
                        break;

                    case "point":
                        result = new PointObject(properties)
                        {
                            Id         = id,
                            X          = x,
                            Y          = y,
                            Name       = name,
                            ObjectType = type
                        };
                        reader.Skip();
                        break;

                    default:
                        throw new XmlException(reader.Name);
                    }
                }

                if (reader.Name == "object")
                {
                    reader.ReadEndElement();
                }
                else
                {
                    throw new XmlException($"Expected </object>, found: {reader.Name}");
                }
            }

            if (gid.HasValue)
            {
                result = new TileObject(properties)
                {
                    Id         = id,
                    Gid        = gid.Value,
                    X          = x,
                    Y          = y,
                    Width      = w.Value,
                    Height     = h.Value,
                    Name       = name,
                    ObjectType = type
                }
            }
            ;

            return(result ?? new RectangleObject(properties)
            {
                Id = id,
                X = x,
                Y = y,
                Width = w.Value,
                Height = h.Value,
                Name = name,
                ObjectType = type
            });
        }