src/objecttypes/conditionaledge.cpp

Thu, 03 Oct 2019 23:44:28 +0300

author
Teemu Piippo <teemu@hecknology.net>
date
Thu, 03 Oct 2019 23:44:28 +0300
changeset 6
73e448b2943d
parent 3
55a55a9ec2c2
child 8
44679e468ba9
permissions
-rw-r--r--

language support

#include "conditionaledge.h"

modelobjects::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}
{
}

QVariant modelobjects::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 modelobjects::ConditionalEdge::setProperty(
	Property property,
	const QVariant& value)
	-> SetPropertyResult
{
	switch (property)
	{
	case Property::ControlPoint1:
		controlPoint_1 = value.value<Vertex>();
	case Property::ControlPoint2:
		controlPoint_2 = value.value<Vertex>();
	default:
		return Edge::setProperty(property, value);
	}
}

QString modelobjects::ConditionalEdge::textRepresentation() const
{
	return Edge::textRepresentation() + format("%1 %2",
		vertexToStringParens(controlPoint_1),
		vertexToStringParens(controlPoint_2));
}

mercurial