diff -r 2bdc3ac5e77c -r 55a55a9ec2c2 src/vertex.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/vertex.h Sun Sep 22 11:51:41 2019 +0300
@@ -0,0 +1,59 @@
+/*
+ * LDForge: LDraw parts authoring CAD
+ * Copyright (C) 2013 - 2019 Teemu Piippo
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+#include
+#include
+#include "basics.h"
+
+struct Vertex
+{
+ qreal x;
+ qreal y;
+ qreal z;
+ // void transform(const class Matrix& matrix, const Vertex& pos);
+ Vertex transformed(const GLRotationMatrix& matrix) const;
+ void setCoordinate(Axis ax, qreal value);
+ Vertex& operator+=(const QVector3D& other);
+ Vertex operator+(const QVector3D& other) const;
+ QVector3D operator-(const Vertex& other) const;
+ Vertex operator-(const QVector3D& vector) const;
+ Vertex& operator-=(const QVector3D& vector);
+ Vertex& operator*=(qreal scalar);
+ Vertex operator*(qreal scalar) const;
+ bool operator<(const Vertex& other) const;
+ double& operator[](Axis ax);
+ double operator[](Axis ax) const;
+ bool operator==(const Vertex& other) const;
+ bool operator!=(const Vertex& other) const;
+ operator QVariant() const;
+};
+
+inline Vertex operator*(qreal scalar, const Vertex& vertex)
+{
+ return vertex * scalar;
+}
+
+Q_DECLARE_METATYPE(Vertex)
+qreal distance(const Vertex& one, const Vertex& other);
+Vertex vertexFromVector(const QVector3D& vector);
+QVector3D vertexToVector(const Vertex &vertex);
+unsigned int qHash(const Vertex& key);
+Vertex operator-(const Vertex& vertex);
+QDataStream& operator<<(QDataStream& out, const Vertex& vertex);
+QDataStream& operator>>(QDataStream& in, Vertex& vertex);