diff -r 6e838748867b -r 20d2ed3af73d src/linetypes/edge.cpp --- /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& 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(); + return SetPropertyResult::Success; + case Property::Point2: + point_2 = value.value(); + 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)); +}