src/linetypes/edge.cpp

Sun, 26 Jan 2020 14:29:30 +0200

author
Teemu Piippo <teemu@hecknology.net>
date
Sun, 26 Jan 2020 14:29:30 +0200
changeset 33
4c41bfe2ec6e
parent 21
0133e565e072
child 35
98906a94732f
permissions
-rw-r--r--

replaced matrix and vertex classes with glm

#include "edge.h"

linetypes::Edge::Edge(
	const glm::vec3& point_1,
	const glm::vec3& point_2,
	const Color color_index) :
	ColoredObject{color_index},
	point_1{point_1},
	point_2{point_2} {}

linetypes::Edge::Edge(const QVector<glm::vec3>& 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 QVariant::fromValue(point_1);
	case Property::Point2:
		return QVariant::fromValue(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<glm::vec3>();
		return SetPropertyResult::Success;
	case Property::Point2:
		point_2 = value.value<glm::vec3>();
		return SetPropertyResult::Success;
	default:
		return BaseClass::setProperty(property, value);
	}
}

QString linetypes::Edge::textRepresentation() const
{
	return utility::format("%1 %2", utility::vertexToStringParens(point_1), utility::vertexToStringParens(point_2));
}

void linetypes::Edge::getPolygons(
	std::vector<gl::Polygon>& polygons,
	GetPolygonsContext* context) const
{
	Q_UNUSED(context)
	polygons.push_back(gl::edgeLine(this->point_1, this->point_2, this->colorIndex, this->id));
}

mercurial