src/linetypes/triangle.cpp

Fri, 13 Dec 2019 15:55:56 +0200

author
Teemu Piippo <teemu@hecknology.net>
date
Fri, 13 Dec 2019 15:55:56 +0200
changeset 17
a5111f4e6412
parent 15
9e18ec63eec3
child 18
918b6c0f8b5b
permissions
-rw-r--r--

added teapot rendering

#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]));
}

mercurial