src/linetypes/object.cpp

Wed, 22 Jan 2020 01:17:11 +0200

author
Teemu Piippo <teemu@hecknology.net>
date
Wed, 22 Jan 2020 01:17:11 +0200
changeset 27
c57fb7a5ffa3
parent 21
0133e565e072
child 35
98906a94732f
permissions
-rw-r--r--

commit work done on plugging vao to the gl renderer, renders nonsense for now

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

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

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

linetypes::Object::~Object()
{
}

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

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

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

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

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

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

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

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

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

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

auto linetypes::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 linetypes::Empty::textRepresentation() const
{
	return "";
}

mercurial