src/linetypes/quadrilateral.cpp

Mon, 16 May 2022 01:40:49 +0300

author
Teemu Piippo <teemu@hecknology.net>
date
Mon, 16 May 2022 01:40:49 +0300
changeset 187
30204975694a
parent 183
97b591813c8b
permissions
-rw-r--r--

work on circle tool

#include "quadrilateral.h"

QString ldraw::Quadrilateral::textRepresentation() const
{
	return utility::format("%1 %2 %3 %4",
		utility::vertexToStringParens(this->points[0]),
		utility::vertexToStringParens(this->points[1]),
		utility::vertexToStringParens(this->points[2]),
		utility::vertexToStringParens(this->points[3]));
}

void ldraw::Quadrilateral::getPolygons(
	std::vector<gl::Polygon>& polygons,
	GetPolygonsContext* context) const
{
	Q_UNUSED(context)
	polygons.push_back(gl::quadrilateral(
		this->points[0],
		this->points[1],
		this->points[2],
		this->points[3],
		this->colorIndex,
		this->id));
}

void ldraw::Quadrilateral::invert(GetPolygonsContext *)
{
	//    0 1 2 3
	// -> 2 1 0 3
	std::swap(this->points[0], this->points[2]);
}

ldraw::Object::Type ldraw::Quadrilateral::typeIdentifier() const
{
	return Type::Quadrilateral;
}

QString ldraw::Quadrilateral::toLDrawCode() const
{
	return utility::format(
		"4 %1 %2 %3 %4 %5",
		this->colorIndex.index,
		utility::vertexToString(this->points[0]),
		utility::vertexToString(this->points[1]),
		utility::vertexToString(this->points[2]),
			utility::vertexToString(this->points[3]));
}

QString ldraw::Quadrilateral::iconName() const
{
	return ":/icons/linetype-quadrilateral.png";
}

QString ldraw::Quadrilateral::typeName() const
{
	return QObject::tr("quadrilateral");
}

mercurial