diff --git a/ArchitectureColoredPainting/src/Editor/GraphicElement.cpp b/ArchitectureColoredPainting/src/Editor/GraphicElement.cpp index 047d53e..8108490 100644 --- a/ArchitectureColoredPainting/src/Editor/GraphicElement.cpp +++ b/ArchitectureColoredPainting/src/Editor/GraphicElement.cpp @@ -21,8 +21,11 @@ QPainterPath SimpleElement::getPaintObject() const { return painterPath; } +// TODO void SimpleElement::pathOperate(QJsonArray paths) { + QRect r(100, 100, 100, 100); + painterPath.addRect(r); } void SimpleElement::polygonOperate(QJsonArray points) { @@ -37,9 +40,10 @@ void SimpleElement::roundOperate(QJsonObject json) { double xAxis = json.value("x-axis").toDouble(); double yAxis = json.value("y-axis").toDouble(); + double origin = json.value("origin").toDouble(); double angle = json.value("angle").toDouble(); - painterPath.arcMoveTo(xAxis * -0.5, yAxis * -0.5, xAxis, yAxis, 0); - painterPath.arcTo(xAxis * -0.5, yAxis * -0.5, xAxis, yAxis, 0, angle); + painterPath.arcMoveTo(xAxis * -0.5, yAxis * -0.5, xAxis, yAxis, origin); + painterPath.arcTo(xAxis * -0.5, yAxis * -0.5, xAxis, yAxis, origin, angle); } SimpleElement::SimpleElement(QJsonObject jsonSource) : jsonSource(jsonSource) { diff --git a/ArchitectureColoredPainting/src/Editor/LayerManager.cpp b/ArchitectureColoredPainting/src/Editor/LayerManager.cpp index 71c66d4..0cb2d37 100644 --- a/ArchitectureColoredPainting/src/Editor/LayerManager.cpp +++ b/ArchitectureColoredPainting/src/Editor/LayerManager.cpp @@ -9,4 +9,5 @@ LayerManager::LayerManager(QJsonObject source, ElementManager *elementManager) } void LayerManager::paint(QPainter *painter) const { + painter->drawPath(root->getCache()); } diff --git a/ArchitectureColoredPainting/src/Editor/LayerWrapper.cpp b/ArchitectureColoredPainting/src/Editor/LayerWrapper.cpp index abd9c91..9a16084 100644 --- a/ArchitectureColoredPainting/src/Editor/LayerWrapper.cpp +++ b/ArchitectureColoredPainting/src/Editor/LayerWrapper.cpp @@ -54,6 +54,7 @@ FolderLayerWrapper::FolderLayerWrapper(QJsonObject json, ElementManager *element LeafLayerWrapper::LeafLayerWrapper(QJsonObject json, ElementManager *elementManager, LayerWrapper *parent) : LayerWrapper(json, parent) { + qDebug() << json.value("name").toString(); int elementIndex = json.value("element").toInt(); wrappedElement = elementManager->getElementById(elementIndex); } @@ -66,12 +67,12 @@ void FolderLayerWrapper::refresh() { cache.clear(); for (auto &child : children) - cache += child.get()->getCache(); + cache.addPath(child.get()->getCache()); } void LeafLayerWrapper::refresh() { cache.clear(); if (wrappedElement != nullptr) - cache += wrappedElement->getPaintObject(); + cache.addPath(wrappedElement->getPaintObject()); } diff --git a/ArchitectureColoredPainting/src/main.cpp b/ArchitectureColoredPainting/src/main.cpp index cad494e..c734e03 100644 --- a/ArchitectureColoredPainting/src/main.cpp +++ b/ArchitectureColoredPainting/src/main.cpp @@ -1,16 +1,21 @@ #include "MainWindow.h" -#include -#include #include "Renderer/Painting/CubicBezier.h" +#include +#include using Renderer::CubicBezier; -extern "C" { +extern "C" +{ _declspec(dllexport) unsigned long NvOptimusEnablement = 0x00000001; } int main(int argc, char *argv[]) { - - return 0; + QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); + QApplication a(argc, argv); + MainWindow w; + w.show(); + return a.exec(); } diff --git a/data.json b/data.json index 9f33a0f..364bcb6 100644 --- a/data.json +++ b/data.json @@ -92,24 +92,24 @@ "data": { "points": [ { - "x": 10, - "y": 20 + "x": 0, + "y": 0 }, { - "x": 10, - "y": 20 + "x": 100, + "y": 200 }, { - "x": 10, - "y": 20 + "x": 300, + "y": 400 }, { - "x": 10, - "y": 20 + "x": 500, + "y": 600 }, { - "x": 10, - "y": 20 + "x": 0, + "y": 0 } ] } @@ -117,8 +117,10 @@ { "type": "round", "data": { - "x-axis": 30, - "y-axis": 40 + "x-axis": 300, + "y-axis": 400, + "origin": 270, + "angle": 30 } }, { @@ -295,7 +297,7 @@ ], "effects": [], "is-folder": false, - "element": 3 + "element": 2 } ] }