From e0813ba364d5b346f236ca5e390559ea5c96d1ca Mon Sep 17 00:00:00 2001 From: wuyize Date: Mon, 27 Mar 2023 13:08:58 +0800 Subject: [PATCH] =?UTF-8?q?PaitingUtil=E8=AF=BB=E5=8F=96=E7=94=BB=E5=B8=83?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Editor/util/PaintingUtil.cpp | 9 ++++----- .../src/Editor/util/PaintingUtil.h | 2 +- UnitTest/ElementRendererTest.cpp | 4 ++-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/ArchitectureColoredPainting/src/Editor/util/PaintingUtil.cpp b/ArchitectureColoredPainting/src/Editor/util/PaintingUtil.cpp index 70c875f..5cbd956 100644 --- a/ArchitectureColoredPainting/src/Editor/util/PaintingUtil.cpp +++ b/ArchitectureColoredPainting/src/Editor/util/PaintingUtil.cpp @@ -41,7 +41,7 @@ Painting PaintingUtil::transfromToPainting(QString jsonFilePath) { shared_ptr layerManager = make_shared(jsonObj, elementManager.get()); LayerWrapper* root = layerManager->getRoot(); root->getCache(); - handleLayerWrapper(root, QTransform(), painting, contourMap); + handleLayerWrapper(root, QTransform(), painting, contourMap, QSize(jsonObj.value("width").toVariant().value(), jsonObj.value("height").toVariant().value())); clear(); return painting; //qDebug() << elementManager->toJson(); @@ -70,7 +70,7 @@ Painting PaintingUtil::transfromToPainting(QString jsonFilePath) { } -void PaintingUtil::handleLayerWrapper(LayerWrapper* nowLayer, QTransform transform, Painting& painting, std::unordered_map& contourMap) { +void PaintingUtil::handleLayerWrapper(LayerWrapper* nowLayer, QTransform transform, Painting& painting, std::unordered_map& contourMap, const QSize& screenSize) { LeafLayerWrapper* leafLayer = dynamic_cast(nowLayer); qDebug() << nowLayer; @@ -80,7 +80,7 @@ void PaintingUtil::handleLayerWrapper(LayerWrapper* nowLayer, QTransform transfo GroupElement* wrapperElement = dynamic_cast(leafLayer->wrappedElement); if (wrapperElement != nullptr) { - handleLayerWrapper(wrapperElement->sourceLayer, transform, painting, contourMap); + handleLayerWrapper(wrapperElement->sourceLayer, transform, painting, contourMap, screenSize); return; } @@ -106,7 +106,6 @@ void PaintingUtil::handleLayerWrapper(LayerWrapper* nowLayer, QTransform transfo contourMap.insert({ nowLayer, contour }); ; } - QSize screenSize = QSize(1080, 1080); ElementTransform elementTransform; QTransform leafTransform = trans.inverted() * transform * QTransform::fromScale(2. / screenSize.width(), 2. / screenSize.height()) * QTransform::fromTranslate(-1, -1) * QTransform::fromScale(1, -1); @@ -158,7 +157,7 @@ void PaintingUtil::handleLayerWrapper(LayerWrapper* nowLayer, QTransform transfo FolderLayerWrapper* folderLayer = dynamic_cast(nowLayer); if (folderLayer != nullptr) { for (auto sonLayer : folderLayer->children) { - handleLayerWrapper(sonLayer.get(), transform, painting, contourMap); + handleLayerWrapper(sonLayer.get(), transform, painting, contourMap, screenSize); } } return; diff --git a/ArchitectureColoredPainting/src/Editor/util/PaintingUtil.h b/ArchitectureColoredPainting/src/Editor/util/PaintingUtil.h index b11806b..2e6258b 100644 --- a/ArchitectureColoredPainting/src/Editor/util/PaintingUtil.h +++ b/ArchitectureColoredPainting/src/Editor/util/PaintingUtil.h @@ -12,7 +12,7 @@ private: static void clear(); //static const double pi; static QJsonObject readJsonFile(QString jsonFilePath); - static void handleLayerWrapper(LayerWrapper* nowLayer, QTransform transform, Renderer::Painting& painting, std::unordered_map& contourMap); + static void handleLayerWrapper(LayerWrapper* nowLayer, QTransform transform, Renderer::Painting& painting, std::unordered_map& contourMap, const QSize& screenSize); //static double getMaxLineWidth(LayerWrapper* root); public: static Renderer::Painting transfromToPainting(QString jsonFilePath); diff --git a/UnitTest/ElementRendererTest.cpp b/UnitTest/ElementRendererTest.cpp index 61a2271..5356603 100644 --- a/UnitTest/ElementRendererTest.cpp +++ b/UnitTest/ElementRendererTest.cpp @@ -272,8 +272,8 @@ namespace UnitTest {1.00, Material{QColor(58,64,151)}} }; return { BaseStyle(std::make_shared(), - std::make_shared(80, StrokeType::kRightSide, StrokeEndType::kFlatRound, - std::make_shared(materialMap, false), std::map{ {0,1},{1,0}})) }; + std::make_shared(90, StrokeType::kRightSide, StrokeEndType::kFlatRound, + std::make_shared(materialMap, false), std::map{ {0.6,1},{0.8, 0.8},{0.94,0.6}, {0.96,0.6},{0.97,0.4},{1,0.1}})) }; } } style; TestGLWidget w(style, testPath);