--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/linetypes/triangle.cpp Sun Nov 03 18:17:08 2019 +0200 @@ -0,0 +1,59 @@ +#include "triangle.h" + +linetypes::Triangle::Triangle( + const Vertex& point_1, + const Vertex& point_2, + const Vertex& point_3, + Color color_index) : + ColoredObject{color_index}, + points{point_1, point_2, point_3} +{ +} + +linetypes::Triangle::Triangle(const QVector<Vertex>& vertices, const Color color) : + ColoredObject{color}, + points{vertices[0], vertices[1], vertices[2]} +{ +} + +QVariant linetypes::Triangle::getProperty(const Property id) const +{ + switch (id) + { + case Property::Point1: + return points[0]; + case Property::Point2: + return points[1]; + case Property::Point3: + return points[2]; + default: + return ColoredObject::getProperty(id); + } +} + +auto linetypes::Triangle::setProperty(Property id, const QVariant& value) + -> SetPropertyResult +{ + switch (id) + { + case Property::Point1: + points[0] = value.value<Vertex>(); + return SetPropertyResult::Success; + case Property::Point2: + points[1] = value.value<Vertex>(); + return SetPropertyResult::Success; + case Property::Point3: + points[2] = value.value<Vertex>(); + return SetPropertyResult::Success; + default: + return ColoredObject::setProperty(id, value); + } +} + +QString linetypes::Triangle::textRepresentation() const +{ + return utility::format("%1 %2 %3", + vertexToStringParens(points[0]), + vertexToStringParens(points[1]), + vertexToStringParens(points[2])); +}