Mon, 04 Jul 2022 19:53:13 +0300
Experiment to delete the Model class and rely solely on text documents
#include "src/ldrawalgorithm.h" std::pair<Triangle, Triangle> splitTriangles( const Quadrilateral& q, ldraw::Diagonal diagonal) { std::pair<Triangle, Triangle> result; switch (diagonal) { case ldraw::Diagonal::Diagonal_13: result = {Triangle{q.p1, q.p2, q.p3}, {q.p1, q.p3, q.p4}}; break; case ldraw::Diagonal::Diagonal_24: result = {Triangle{q.p1, q.p2, q.p3}, {q.p2, q.p3, q.p4}}; break; } return result; } std::vector<ModelAction> ldraw::makeUnofficial(const Model* model) { std::vector<ModelAction> actions; #if 0 if (model->size() >= 4) { if (const Comment* comment = std::get_if<Comment>(&(*model)[3])) { const QString& body = comment->text; if (body.startsWith("!LDRAW_ORG ") and not body.startsWith("!LDRAW_ORG Unofficial_")) { // Add Unofficial_ to part type QStringList tokens = body.split(" "); tokens[1] = "Unofficial_" + tokens[1]; // Remove the UPDATE tag if it's there if (tokens.size() >= 4 && tokens[2] == "UPDATE") { tokens.removeAt(3); tokens.removeAt(2); } actions.push_back(ModifyModel{ .position = 3, .newElement = Comment{.text = tokens.join(" ")} }); } } } #endif return actions; }