private void CreateShape(ShapeModel.ShapeType shapeType) { var minPosPoint = new Point(0, 0); var maxPosPoint = new Point(ShapePanel.ActualWidth, ShapePanel.ActualHeight); var initialPosition = new Point((maxPosPoint.X - minPosPoint.X) / 2, (maxPosPoint.Y - minPosPoint.Y) / 2); ShapeModel shape; switch (shapeType) { case ShapeModel.ShapeType.Ball: shape = new BallShapeModel(); break; case ShapeModel.ShapeType.Square: shape = new SquareShapeModel(); break; default: throw new InvalidOperationException("Unexpected Shape Type"); } shape.Rate = 8; shape.MinPosPoint = minPosPoint; shape.MaxPosPoint = maxPosPoint; shape.Position = initialPosition; _shapes.Add(shape); UpdateStateFromInputSettings(); }
public static IShape GetInstance(ShapeModel.ShapeType shape) { switch (shape) { case ShapeModel.ShapeType.CIRCLE: return(new Circle()); case ShapeModel.ShapeType.EQUILATERAL_TRIANGLE: return(new EquilateralTriangle()); case ShapeModel.ShapeType.HEXAGON: return(new Polygon(6)); // Hexagon(); case ShapeModel.ShapeType.ISOSCELES_TRIANGLE: return(new IsoscelesTriangle()); case ShapeModel.ShapeType.OCTAGON: return(new Polygon(8)); // Octagon(); case ShapeModel.ShapeType.OVAL: return(new Oval()); case ShapeModel.ShapeType.PARALLELOGRAM: return(new Parallelogram()); case ShapeModel.ShapeType.PENTAGON: return(new Polygon(5)); // Pentagon(); case ShapeModel.ShapeType.RECTANGLE: return(new Rectangle()); case ShapeModel.ShapeType.SCALENE_TRIANGLE: return(new ScaleneTriangle()); case ShapeModel.ShapeType.SQUARE: return(new Square()); case ShapeModel.ShapeType.HEPTAGON: return(new Polygon(7)); default: return(null); } }
public EquilateralTriangle() { shapeType = ShapeModel.ShapeType.EQUILATERAL_TRIANGLE; }
public Oval() { shapeType = ShapeModel.ShapeType.OVAL; }
public IsoscelesTriangle() { shapeType = ShapeModel.ShapeType.ISOSCELES_TRIANGLE; }