src/linetypes/object.cpp

Fri, 31 Jan 2020 00:25:35 +0200

author
Teemu Piippo <teemu@hecknology.net>
date
Fri, 31 Jan 2020 00:25:35 +0200
changeset 36
bbb901b97404
parent 35
98906a94732f
child 46
98645c8e7704
permissions
-rw-r--r--

added render style storage

#include <QBrush>
#include <QFont>
#include "object.h"

static unsigned int getIdForNewObject()
{
	static unsigned int id = 0;
	id += 1;
	return id;
}

ldraw::Object::Object() :
	id {getIdForNewObject()}
{
}

ldraw::Object::~Object()
{
}

bool ldraw::Object::hasColor() const
{
	return false;
}

QVariant ldraw::Object::getProperty(Property id) const
{
	Q_UNUSED(id);
	return {};
}

auto ldraw::Object::setProperty(Property id, const QVariant& value)
	-> SetPropertyResult
{
	Q_UNUSED(id)
	Q_UNUSED(value)
	return SetPropertyResult::PropertyNotHandled;
}

QBrush ldraw::Object::textRepresentationForeground() const
{
	return {};
}

QBrush ldraw::Object::textRepresentationBackground() const
{
	return {};
}

QFont ldraw::Object::textRepresentationFont() const
{
	return {};
}

void ldraw::Object::getPolygons(std::vector<gl::Polygon>& polygons, GetPolygonsContext* context) const
{
	Q_UNUSED(polygons)
	Q_UNUSED(context)
}

ldraw::ColoredObject::ColoredObject(const Color color_index) :
	colorIndex{color_index}
{
}

bool ldraw::ColoredObject::hasColor() const
{
	return true;
}

QVariant ldraw::ColoredObject::getProperty(Property id) const
{
	switch (id)
	{
	case Property::Color:
		return colorIndex.index;
	default:
		return Object::getProperty(id);
	}
}

auto ldraw::ColoredObject::setProperty(Property id, const QVariant& value)
	-> SetPropertyResult
{
	switch (id)
	{
	case Property::Color:
		{
			bool ok;
			const int value_int = value.toInt(&ok);
			if (ok)
			{
				colorIndex.index = value_int;
				return SetPropertyResult::Success;
			}
			else
			{
				return SetPropertyResult::InvalidValue;
			}
		}
	default:
		return Object::setProperty(id, value);
	}
}

QString ldraw::Empty::textRepresentation() const
{
	return "";
}

mercurial