Private
Public Access
Connected more shapes
This commit is contained in:
1 parent
79127c80d7
commit
a7b88bbe31
1 file changed
+82
-26
@@ -23,15 +23,10 @@ namespace Advanced_Software_Engineering {
|
|||||||
case "moveto":
|
case "moveto":
|
||||||
//Check parameters
|
//Check parameters
|
||||||
if (parameters.Length == 2) {
|
if (parameters.Length == 2) {
|
||||||
try {
|
return new MoveTo(drawer,
|
||||||
return new
|
SettingsAndHelperFunctions.ConvertToInt(parameters[0]),
|
||||||
MoveTo(drawer,
|
SettingsAndHelperFunctions.ConvertToInt(parameters[1]));
|
||||||
SettingsAndHelperFunctions.ConvertToInt(parameters[0]),
|
|
||||||
SettingsAndHelperFunctions.ConvertToInt(parameters[1]));
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
} else throw new Exception("Command has an incorrect number of parameters");
|
} else throw new Exception("Command has an incorrect number of parameters");
|
||||||
|
|
||||||
case "drawto":
|
case "drawto":
|
||||||
@@ -39,15 +34,10 @@ namespace Advanced_Software_Engineering {
|
|||||||
case "lineto":
|
case "lineto":
|
||||||
//Check parameters
|
//Check parameters
|
||||||
if (parameters.Length == 2) {
|
if (parameters.Length == 2) {
|
||||||
try {
|
return new
|
||||||
return new
|
DrawTo(drawer,
|
||||||
DrawTo(drawer,
|
SettingsAndHelperFunctions.ConvertToInt(parameters[0]),
|
||||||
SettingsAndHelperFunctions.ConvertToInt(parameters[0]),
|
SettingsAndHelperFunctions.ConvertToInt(parameters[1]));
|
||||||
SettingsAndHelperFunctions.ConvertToInt(parameters[1]));
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
} else throw new Exception("Command has an incorrect number of parameters");
|
} else throw new Exception("Command has an incorrect number of parameters");
|
||||||
case "regularpolygon":
|
case "regularpolygon":
|
||||||
case "rp":
|
case "rp":
|
||||||
@@ -58,8 +48,7 @@ namespace Advanced_Software_Engineering {
|
|||||||
SettingsAndHelperFunctions.ConvertToInt(parameters[0]),
|
SettingsAndHelperFunctions.ConvertToInt(parameters[0]),
|
||||||
SettingsAndHelperFunctions.ConvertToDouble(parameters[1])
|
SettingsAndHelperFunctions.ConvertToDouble(parameters[1])
|
||||||
);
|
);
|
||||||
}
|
} else if (parameters.Length == 3) {
|
||||||
else if (parameters.Length == 3) {
|
|
||||||
return new RegularPolygon(drawer,
|
return new RegularPolygon(drawer,
|
||||||
SettingsAndHelperFunctions.ConvertToInt(parameters[0]),
|
SettingsAndHelperFunctions.ConvertToInt(parameters[0]),
|
||||||
SettingsAndHelperFunctions.ConvertToDouble(parameters[1]),
|
SettingsAndHelperFunctions.ConvertToDouble(parameters[1]),
|
||||||
@@ -73,13 +62,22 @@ namespace Advanced_Software_Engineering {
|
|||||||
Square(drawer,
|
Square(drawer,
|
||||||
SettingsAndHelperFunctions.ConvertToDouble(parameters[0])
|
SettingsAndHelperFunctions.ConvertToDouble(parameters[0])
|
||||||
);
|
);
|
||||||
}
|
} else if (parameters.Length == 2) {
|
||||||
else if(parameters.Length == 2) {
|
|
||||||
return new Square(drawer,
|
return new Square(drawer,
|
||||||
SettingsAndHelperFunctions.ConvertToDouble(parameters[0]),
|
SettingsAndHelperFunctions.ConvertToDouble(parameters[0]),
|
||||||
SettingsAndHelperFunctions.ConvertToDouble(parameters[1])
|
SettingsAndHelperFunctions.ConvertToDouble(parameters[1])
|
||||||
);
|
);
|
||||||
} else throw new Exception("Command has an incorrect number of parameters");
|
} else throw new Exception("Command has an incorrect number of parameters");
|
||||||
|
case "quadrilateral":
|
||||||
|
//Check parameters
|
||||||
|
if (parameters.Length == 8) {
|
||||||
|
return new Quadrilateral(drawer,
|
||||||
|
SettingsAndHelperFunctions.ConvertToPoint(parameters[0], parameters[1]),
|
||||||
|
SettingsAndHelperFunctions.ConvertToPoint(parameters[2], parameters[3]),
|
||||||
|
SettingsAndHelperFunctions.ConvertToPoint(parameters[4], parameters[5]),
|
||||||
|
SettingsAndHelperFunctions.ConvertToPoint(parameters[6], parameters[7])
|
||||||
|
);
|
||||||
|
} else throw new Exception("Command has an incorrect number of parameters");
|
||||||
case "rectangle":
|
case "rectangle":
|
||||||
//Check parameters
|
//Check parameters
|
||||||
if (parameters.Length == 2) {
|
if (parameters.Length == 2) {
|
||||||
@@ -87,8 +85,14 @@ namespace Advanced_Software_Engineering {
|
|||||||
SettingsAndHelperFunctions.ConvertToDouble(parameters[0]),
|
SettingsAndHelperFunctions.ConvertToDouble(parameters[0]),
|
||||||
SettingsAndHelperFunctions.ConvertToDouble(parameters[1])
|
SettingsAndHelperFunctions.ConvertToDouble(parameters[1])
|
||||||
);
|
);
|
||||||
}
|
} else if (parameters.Length == 8) {
|
||||||
else if(parameters.Length == 4) {
|
return new Quadrilateral(drawer,
|
||||||
|
SettingsAndHelperFunctions.ConvertToPoint(parameters[0], parameters[1]),
|
||||||
|
SettingsAndHelperFunctions.ConvertToPoint(parameters[2], parameters[3]),
|
||||||
|
SettingsAndHelperFunctions.ConvertToPoint(parameters[4], parameters[5]),
|
||||||
|
SettingsAndHelperFunctions.ConvertToPoint(parameters[6], parameters[7])
|
||||||
|
);
|
||||||
|
} else if (parameters.Length == 4) {
|
||||||
return new Rectangle(drawer,
|
return new Rectangle(drawer,
|
||||||
SettingsAndHelperFunctions.ConvertToPoint(parameters[0], parameters[1]),
|
SettingsAndHelperFunctions.ConvertToPoint(parameters[0], parameters[1]),
|
||||||
SettingsAndHelperFunctions.ConvertToPoint(parameters[2], parameters[3])
|
SettingsAndHelperFunctions.ConvertToPoint(parameters[2], parameters[3])
|
||||||
@@ -109,13 +113,18 @@ namespace Advanced_Software_Engineering {
|
|||||||
Triangle(drawer,
|
Triangle(drawer,
|
||||||
SettingsAndHelperFunctions.ConvertToDouble(parameters[0])
|
SettingsAndHelperFunctions.ConvertToDouble(parameters[0])
|
||||||
);
|
);
|
||||||
}
|
} else if (parameters.Length == 2) {
|
||||||
else if(parameters.Length == 2) {
|
|
||||||
return new
|
return new
|
||||||
Triangle(drawer,
|
Triangle(drawer,
|
||||||
SettingsAndHelperFunctions.ConvertToDouble(parameters[0]),
|
SettingsAndHelperFunctions.ConvertToDouble(parameters[0]),
|
||||||
SettingsAndHelperFunctions.ConvertToDouble(parameters[1])
|
SettingsAndHelperFunctions.ConvertToDouble(parameters[1])
|
||||||
);
|
);
|
||||||
|
} else if (parameters.Length == 6) {
|
||||||
|
return new Triangle(drawer,
|
||||||
|
SettingsAndHelperFunctions.ConvertToPoint(parameters[0], parameters[1]),
|
||||||
|
SettingsAndHelperFunctions.ConvertToPoint(parameters[2], parameters[3]),
|
||||||
|
SettingsAndHelperFunctions.ConvertToPoint(parameters[4], parameters[5])
|
||||||
|
);
|
||||||
} else throw new Exception("Command has an incorrect number of parameters");
|
} else throw new Exception("Command has an incorrect number of parameters");
|
||||||
|
|
||||||
case "dot":
|
case "dot":
|
||||||
@@ -240,6 +249,21 @@ namespace Advanced_Software_Engineering {
|
|||||||
public string GetDescription() => verb.GetDescription();
|
public string GetDescription() => verb.GetDescription();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class Quadrilateral : Verb {
|
||||||
|
Verb verb;
|
||||||
|
|
||||||
|
bool descCreated = false;
|
||||||
|
string desc;
|
||||||
|
|
||||||
|
public Quadrilateral(Drawer drawer, Point point1, Point point2, Point point3, Point point4) {
|
||||||
|
verb = new DrawLines(drawer, new Point[] { point1, point2, point3, point4 });
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ExecuteVerb() => verb.ExecuteVerb();
|
||||||
|
|
||||||
|
public string GetDescription() => verb.GetDescription();
|
||||||
|
}
|
||||||
|
|
||||||
class Triangle : Verb {
|
class Triangle : Verb {
|
||||||
Verb verb;
|
Verb verb;
|
||||||
|
|
||||||
@@ -251,6 +275,10 @@ namespace Advanced_Software_Engineering {
|
|||||||
verb = new RegularPolygon(drawer, 3, scale, offset);
|
verb = new RegularPolygon(drawer, 3, scale, offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Triangle(Drawer drawer, Point point1, Point point2, Point point3) {
|
||||||
|
verb = new DrawLines(drawer, new Point[] { point1, point2, point3 });
|
||||||
|
}
|
||||||
|
|
||||||
public void ExecuteVerb() => verb.ExecuteVerb();
|
public void ExecuteVerb() => verb.ExecuteVerb();
|
||||||
|
|
||||||
public string GetDescription() => verb.GetDescription();
|
public string GetDescription() => verb.GetDescription();
|
||||||
@@ -320,7 +348,35 @@ namespace Advanced_Software_Engineering {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public string GetDescription() {
|
public string GetDescription() {
|
||||||
return "Draws a circle radius" + scale.ToString() + ", with origin of the pen";
|
return "Draws a circle radius " + scale.ToString() + ", with origin of the pen";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DrawLines : Verb {
|
||||||
|
Drawer drawer;
|
||||||
|
Point[] points;
|
||||||
|
|
||||||
|
bool descCreated = false;
|
||||||
|
string desc;
|
||||||
|
|
||||||
|
public DrawLines(Drawer drawer, Point[] points) {
|
||||||
|
this.drawer = drawer;
|
||||||
|
this.points = points;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ExecuteVerb() {
|
||||||
|
drawer.DrawLines(points);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetDescription() {
|
||||||
|
if (!descCreated) {
|
||||||
|
desc = "Draws a shape at points: ";
|
||||||
|
|
||||||
|
foreach (Point point in points) {
|
||||||
|
desc += point.X + ", " + point.Y + "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return desc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user