src/linetypes/edge.cpp

changeset 14
20d2ed3af73d
parent 13
6e838748867b
child 18
918b6c0f8b5b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/linetypes/edge.cpp	Sun Nov 03 18:13:38 2019 +0200
@@ -0,0 +1,50 @@
+#include "edge.h"
+
+linetypes::Edge::Edge(
+	const Vertex& point_1,
+	const Vertex& point_2,
+	const Color color_index) :
+	ColoredObject{color_index},
+	point_1{point_1},
+	point_2{point_2} {}
+
+linetypes::Edge::Edge(const QVector<Vertex>& vertices, const Color color) :
+	ColoredObject{color},
+	point_1{vertices[0]},
+	point_2{vertices[1]}
+{
+}
+
+QVariant linetypes::Edge::getProperty(Property property) const
+{
+	switch (property)
+	{
+	case Property::Point1:
+		return point_1;
+	case Property::Point2:
+		return point_2;
+	default:
+		return BaseClass::getProperty(property);
+	}
+}
+
+auto linetypes::Edge::setProperty(Property property, const QVariant& value)
+	-> SetPropertyResult
+{
+	switch (property)
+	{
+	case Property::Point1:
+		point_1 = value.value<Vertex>();
+		return SetPropertyResult::Success;
+	case Property::Point2:
+		point_2 = value.value<Vertex>();
+		return SetPropertyResult::Success;
+	default:
+		return BaseClass::setProperty(property, value);
+	}
+}
+
+QString linetypes::Edge::textRepresentation() const
+{
+	return utility::format("%1 %2", vertexToStringParens(point_1), vertexToStringParens(point_2));
+}

mercurial