diff -r 6e838748867b -r 20d2ed3af73d src/linetypes/conditionaledge.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/linetypes/conditionaledge.cpp Sun Nov 03 18:13:38 2019 +0200 @@ -0,0 +1,56 @@ +#include "conditionaledge.h" + +linetypes::ConditionalEdge::ConditionalEdge( + const Vertex& point_1, + const Vertex& point_2, + const Vertex& controlPoint_1, + const Vertex& controlPoint_2, + const Color color_index) : + Edge{point_1, point_2, color_index}, + controlPoint_1{controlPoint_1}, + controlPoint_2{controlPoint_2} +{ +} + +linetypes::ConditionalEdge::ConditionalEdge(const QVector& vertices, const Color color) : + Edge{vertices[0], vertices[1], color}, + controlPoint_1{vertices[2]}, + controlPoint_2{vertices[3]} +{ +} + +QVariant linetypes::ConditionalEdge::getProperty(Property property) const +{ + switch (property) + { + case Property::ControlPoint1: + return controlPoint_1; + case Property::ControlPoint2: + return controlPoint_2; + default: + return Edge::getProperty(property); + } +} + +auto linetypes::ConditionalEdge::setProperty( + Property property, + const QVariant& value) + -> SetPropertyResult +{ + switch (property) + { + case Property::ControlPoint1: + controlPoint_1 = value.value(); + case Property::ControlPoint2: + controlPoint_2 = value.value(); + default: + return Edge::setProperty(property, value); + } +} + +QString linetypes::ConditionalEdge::textRepresentation() const +{ + return Edge::textRepresentation() + utility::format("%1 %2", + vertexToStringParens(controlPoint_1), + vertexToStringParens(controlPoint_2)); +}