diff --git a/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj b/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj index 334afac..0c3888c 100644 --- a/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj +++ b/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj @@ -95,27 +95,28 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - + @@ -136,19 +137,24 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj.filters b/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj.filters index 5c42780..b013fdb 100644 --- a/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj.filters +++ b/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj.filters @@ -24,6 +24,18 @@ {60515177-3da7-420f-8f5b-27c16bb2b77b} + + {bd91d673-6674-478d-a43d-54ac6c09d77f} + + + {f21af5cf-2eba-4e89-a7ca-faebd689025d} + + + {f1a582fa-33b1-46fe-b969-e1b2de56bf7e} + + + {f52671e3-3263-45e6-8d6c-976d19dc7e24} + @@ -32,60 +44,75 @@ Form Files - - Header Files + + + + Source Files\Editor + + + Source Files\Renderer + + + Source Files\Renderer + + + Source Files\Renderer + + + Source Files\Renderer + + + Source Files\Renderer + + + Source Files\Renderer + + + Source Files\Renderer + + + Source Files\Renderer + + + Source Files\Renderer + + + Source Files\Renderer + + + Source Files\Renderer + + + Source Files\Renderer + + + Source Files\Renderer + + + Source Files + + + Source Files + + + Source Files + + + Source Files\Renderer + + + + + Header Files\Renderer - + + Header Files\Editor + + Source Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files + + + Header Files\Renderer @@ -139,44 +166,55 @@ - - Header Files + + Form Files + + + Form Files + + + + + Header Files\Renderer - - Header Files + + Header Files\Renderer - - Header Files + + Header Files\Renderer - - Header Files + + Header Files\Renderer - - Header Files + + Header Files\Renderer - - Header Files + + Header Files\Renderer - - Header Files + + Header Files\Renderer - - Header Files + + Header Files\Renderer - - Header Files + + Header Files\Renderer - - Header Files + + Header Files\Renderer - - Header Files + + Header Files\Renderer - - Header Files + + Header Files\Renderer - - Header Files + + Header Files\Renderer + + + Source Files \ No newline at end of file diff --git a/ArchitectureColoredPainting/EditorWidget.ui b/ArchitectureColoredPainting/EditorWidget.ui new file mode 100644 index 0000000..4622380 --- /dev/null +++ b/ArchitectureColoredPainting/EditorWidget.ui @@ -0,0 +1,41 @@ + + + EditorWidgetClass + + + + 0 + 0 + 1124 + 695 + + + + RendererWidget + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 纹理编辑 + + + + + + + + + diff --git a/ArchitectureColoredPainting/MainWindow.cpp b/ArchitectureColoredPainting/MainWindow.cpp deleted file mode 100644 index 1f7025b..0000000 --- a/ArchitectureColoredPainting/MainWindow.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "MainWindow.h" -#include "RendererWidget.h" -#include "qslider.h" - -MainWindow::MainWindow(QWidget *parent) - : QMainWindow(parent) -{ - ui.setupUi(this); - QObject::connect(ui.horizontalSlider, &QSlider::valueChanged, - ui.openGLWidget, &RendererWidget::setMainLightPitch); - QObject::connect(ui.horizontalSlider_2, &QSlider::valueChanged, - ui.openGLWidget, &RendererWidget::setMainLightYaw); -} - -MainWindow::~MainWindow() -{} diff --git a/ArchitectureColoredPainting/MainWindow.ui b/ArchitectureColoredPainting/MainWindow.ui index f8cf55a..89d242e 100644 --- a/ArchitectureColoredPainting/MainWindow.ui +++ b/ArchitectureColoredPainting/MainWindow.ui @@ -34,50 +34,39 @@ 0 - + QLayout::SetDefaultConstraint - - - - 0 - 0 - + + + + Microsoft YaHei UI + 13 + + + QTabWidget::North + + + QTabWidget::Rounded + + + 1 + + + + 纹理编辑 + + + + + 场景渲染 + + - - - - - - - 0 - 0 - - - - 180 - - - Qt::Horizontal - - - - - - - 360 - - - Qt::Horizontal - - - - - @@ -87,8 +76,13 @@ RendererWidget - QOpenGLWidget -
RendererWidget.h
+ QWidget +
Renderer/RendererWidget.h
+
+ + EditorWidget + QWidget +
Editor/EditorWidget.h
diff --git a/ArchitectureColoredPainting/RendererWidget.ui b/ArchitectureColoredPainting/RendererWidget.ui new file mode 100644 index 0000000..d6f9fbf --- /dev/null +++ b/ArchitectureColoredPainting/RendererWidget.ui @@ -0,0 +1,88 @@ + + + RendererWidgetClass + + + + 0 + 0 + 1124 + 695 + + + + RendererWidget + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QLayout::SetDefaultConstraint + + + + + + 0 + 0 + + + + + + + + + + + 0 + 0 + + + + 180 + + + Qt::Horizontal + + + + + + + 360 + + + Qt::Horizontal + + + + + + + + + + + + + RendererGLWidget + QOpenGLWidget +
RendererGLWidget.h
+
+
+ + +
diff --git a/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp b/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp new file mode 100644 index 0000000..9d1da57 --- /dev/null +++ b/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp @@ -0,0 +1,10 @@ +#include "EditorWidget.h" + +EditorWidget::EditorWidget(QWidget *parent) + : QWidget(parent) +{ + ui.setupUi(this); +} + +EditorWidget::~EditorWidget() +{} diff --git a/ArchitectureColoredPainting/src/Editor/EditorWidget.h b/ArchitectureColoredPainting/src/Editor/EditorWidget.h new file mode 100644 index 0000000..e5063a8 --- /dev/null +++ b/ArchitectureColoredPainting/src/Editor/EditorWidget.h @@ -0,0 +1,16 @@ +#pragma once + +#include +#include "ui_EditorWidget.h" + +class EditorWidget : public QWidget +{ + Q_OBJECT + +public: + EditorWidget(QWidget *parent = nullptr); + ~EditorWidget(); + +private: + Ui::EditorWidgetClass ui; +}; diff --git a/ArchitectureColoredPainting/src/MainWindow.cpp b/ArchitectureColoredPainting/src/MainWindow.cpp new file mode 100644 index 0000000..6ac0d73 --- /dev/null +++ b/ArchitectureColoredPainting/src/MainWindow.cpp @@ -0,0 +1,12 @@ +#include "MainWindow.h" +#include "Renderer/RendererGLWidget.h" +#include "qslider.h" + +MainWindow::MainWindow(QWidget *parent) + : QMainWindow(parent) +{ + ui.setupUi(this); +} + +MainWindow::~MainWindow() +{} diff --git a/ArchitectureColoredPainting/MainWindow.h b/ArchitectureColoredPainting/src/MainWindow.h similarity index 100% rename from ArchitectureColoredPainting/MainWindow.h rename to ArchitectureColoredPainting/src/MainWindow.h diff --git a/ArchitectureColoredPainting/BvhTree.cpp b/ArchitectureColoredPainting/src/Renderer/BvhTree.cpp similarity index 100% rename from ArchitectureColoredPainting/BvhTree.cpp rename to ArchitectureColoredPainting/src/Renderer/BvhTree.cpp diff --git a/ArchitectureColoredPainting/BvhTree.h b/ArchitectureColoredPainting/src/Renderer/BvhTree.h similarity index 100% rename from ArchitectureColoredPainting/BvhTree.h rename to ArchitectureColoredPainting/src/Renderer/BvhTree.h diff --git a/ArchitectureColoredPainting/Camera.cpp b/ArchitectureColoredPainting/src/Renderer/Camera.cpp similarity index 100% rename from ArchitectureColoredPainting/Camera.cpp rename to ArchitectureColoredPainting/src/Renderer/Camera.cpp diff --git a/ArchitectureColoredPainting/Camera.h b/ArchitectureColoredPainting/src/Renderer/Camera.h similarity index 100% rename from ArchitectureColoredPainting/Camera.h rename to ArchitectureColoredPainting/src/Renderer/Camera.h diff --git a/ArchitectureColoredPainting/CubicBezier.cpp b/ArchitectureColoredPainting/src/Renderer/CubicBezier.cpp similarity index 100% rename from ArchitectureColoredPainting/CubicBezier.cpp rename to ArchitectureColoredPainting/src/Renderer/CubicBezier.cpp diff --git a/ArchitectureColoredPainting/CubicBezier.h b/ArchitectureColoredPainting/src/Renderer/CubicBezier.h similarity index 100% rename from ArchitectureColoredPainting/CubicBezier.h rename to ArchitectureColoredPainting/src/Renderer/CubicBezier.h diff --git a/ArchitectureColoredPainting/CubicMonotonization.cpp b/ArchitectureColoredPainting/src/Renderer/CubicMonotonization.cpp similarity index 100% rename from ArchitectureColoredPainting/CubicMonotonization.cpp rename to ArchitectureColoredPainting/src/Renderer/CubicMonotonization.cpp diff --git a/ArchitectureColoredPainting/CubicMonotonization.h b/ArchitectureColoredPainting/src/Renderer/CubicMonotonization.h similarity index 100% rename from ArchitectureColoredPainting/CubicMonotonization.h rename to ArchitectureColoredPainting/src/Renderer/CubicMonotonization.h diff --git a/ArchitectureColoredPainting/Drawable.h b/ArchitectureColoredPainting/src/Renderer/Drawable.h similarity index 100% rename from ArchitectureColoredPainting/Drawable.h rename to ArchitectureColoredPainting/src/Renderer/Drawable.h diff --git a/ArchitectureColoredPainting/Light.cpp b/ArchitectureColoredPainting/src/Renderer/Light.cpp similarity index 100% rename from ArchitectureColoredPainting/Light.cpp rename to ArchitectureColoredPainting/src/Renderer/Light.cpp diff --git a/ArchitectureColoredPainting/Light.h b/ArchitectureColoredPainting/src/Renderer/Light.h similarity index 100% rename from ArchitectureColoredPainting/Light.h rename to ArchitectureColoredPainting/src/Renderer/Light.h diff --git a/ArchitectureColoredPainting/Line.cpp b/ArchitectureColoredPainting/src/Renderer/Line.cpp similarity index 100% rename from ArchitectureColoredPainting/Line.cpp rename to ArchitectureColoredPainting/src/Renderer/Line.cpp diff --git a/ArchitectureColoredPainting/Line.h b/ArchitectureColoredPainting/src/Renderer/Line.h similarity index 100% rename from ArchitectureColoredPainting/Line.h rename to ArchitectureColoredPainting/src/Renderer/Line.h diff --git a/ArchitectureColoredPainting/Mesh.cpp b/ArchitectureColoredPainting/src/Renderer/Mesh.cpp similarity index 100% rename from ArchitectureColoredPainting/Mesh.cpp rename to ArchitectureColoredPainting/src/Renderer/Mesh.cpp diff --git a/ArchitectureColoredPainting/Mesh.h b/ArchitectureColoredPainting/src/Renderer/Mesh.h similarity index 100% rename from ArchitectureColoredPainting/Mesh.h rename to ArchitectureColoredPainting/src/Renderer/Mesh.h diff --git a/ArchitectureColoredPainting/Model.cpp b/ArchitectureColoredPainting/src/Renderer/Model.cpp similarity index 99% rename from ArchitectureColoredPainting/Model.cpp rename to ArchitectureColoredPainting/src/Renderer/Model.cpp index 25e0050..dc010de 100644 --- a/ArchitectureColoredPainting/Model.cpp +++ b/ArchitectureColoredPainting/src/Renderer/Model.cpp @@ -8,7 +8,7 @@ #include #include "BvhTree.h" #include "ShortCutTree.h" -#include "SvgParser.h" +#include "../SvgParser.h" Model::Model(QString path, QOpenGLContext* context, QOpenGLShaderProgram* shaderProgram) : context(context) diff --git a/ArchitectureColoredPainting/Model.h b/ArchitectureColoredPainting/src/Renderer/Model.h similarity index 100% rename from ArchitectureColoredPainting/Model.h rename to ArchitectureColoredPainting/src/Renderer/Model.h diff --git a/ArchitectureColoredPainting/PaintingHelper.cpp b/ArchitectureColoredPainting/src/Renderer/PaintingHelper.cpp similarity index 100% rename from ArchitectureColoredPainting/PaintingHelper.cpp rename to ArchitectureColoredPainting/src/Renderer/PaintingHelper.cpp diff --git a/ArchitectureColoredPainting/PaintingHelper.h b/ArchitectureColoredPainting/src/Renderer/PaintingHelper.h similarity index 100% rename from ArchitectureColoredPainting/PaintingHelper.h rename to ArchitectureColoredPainting/src/Renderer/PaintingHelper.h diff --git a/ArchitectureColoredPainting/PaintingMesh.cpp b/ArchitectureColoredPainting/src/Renderer/PaintingMesh.cpp similarity index 100% rename from ArchitectureColoredPainting/PaintingMesh.cpp rename to ArchitectureColoredPainting/src/Renderer/PaintingMesh.cpp diff --git a/ArchitectureColoredPainting/PaintingMesh.h b/ArchitectureColoredPainting/src/Renderer/PaintingMesh.h similarity index 100% rename from ArchitectureColoredPainting/PaintingMesh.h rename to ArchitectureColoredPainting/src/Renderer/PaintingMesh.h diff --git a/ArchitectureColoredPainting/RendererWidget.cpp b/ArchitectureColoredPainting/src/Renderer/RendererGLWidget.cpp similarity index 97% rename from ArchitectureColoredPainting/RendererWidget.cpp rename to ArchitectureColoredPainting/src/Renderer/RendererGLWidget.cpp index 70896ac..de162b5 100644 --- a/ArchitectureColoredPainting/RendererWidget.cpp +++ b/ArchitectureColoredPainting/src/Renderer/RendererGLWidget.cpp @@ -1,4 +1,4 @@ -#include "RendererWidget.h" +#include "RendererGLWidget.h" #include #include #include @@ -12,7 +12,7 @@ QVector3D lightColors[] = { 20 * QVector3D(0.7529,0.7450,0.6784).normalized(), Q static float sunPitch = 105, sunYaw = 80; static int sunSpeed = 10; -RendererWidget::RendererWidget(QWidget* parent) +RendererGLWidget::RendererGLWidget(QWidget* parent) : QOpenGLWidget(parent) , camera(QVector3D(0.0f, 100.0f, 0.0f)) , light(&camera) @@ -26,7 +26,7 @@ RendererWidget::RendererWidget(QWidget* parent) setFormat(format); } -RendererWidget::~RendererWidget() +RendererGLWidget::~RendererGLWidget() { if (modelProgramPtr != nullptr) { @@ -51,19 +51,19 @@ RendererWidget::~RendererWidget() } } -void RendererWidget::setMainLightPitch(float pitch) +void RendererGLWidget::setMainLightPitch(float pitch) { //qDebug() << "pitch" << pitch; sunPitch = pitch; } -void RendererWidget::setMainLightYaw(float yaw) +void RendererGLWidget::setMainLightYaw(float yaw) { //qDebug() << "yaw" << yaw; sunYaw = yaw; } QOpenGLTexture randomMap(QOpenGLTexture::Target2D); -void RendererWidget::initializeGL() +void RendererGLWidget::initializeGL() { initializeOpenGLFunctions(); qDebug() << "GL_VERSION" << (char*)glGetString(GL_VERSION); @@ -243,7 +243,7 @@ void RendererWidget::initializeGL() } -void RendererWidget::paintGL() +void RendererGLWidget::paintGL() { light.lightDirection.setX(cos(qDegreesToRadians(sunPitch)) * cos(qDegreesToRadians(sunYaw))); light.lightDirection.setY(sin(qDegreesToRadians(sunPitch))); @@ -391,7 +391,7 @@ void RendererWidget::paintGL() finalProgramPtr->release(); } -void RendererWidget::resizeGL(int width, int height) +void RendererGLWidget::resizeGL(int width, int height) { frameWidth = ceil( devicePixelRatioF() * width); frameHeight = ceil(devicePixelRatioF() * height); @@ -531,7 +531,7 @@ void RendererWidget::resizeGL(int width, int height) std::cout << "\033[?25l"; } -void RendererWidget::timerEvent(QTimerEvent* event) +void RendererGLWidget::timerEvent(QTimerEvent* event) { clock_t currentFrame = std::clock(); deltaTime = (float)(currentFrame - lastFrame) / CLOCKS_PER_SEC; @@ -589,7 +589,7 @@ void RendererWidget::timerEvent(QTimerEvent* event) repaint(); } -void RendererWidget::keyPressEvent(QKeyEvent* event) +void RendererGLWidget::keyPressEvent(QKeyEvent* event) { if (event->key() == Qt::Key_Escape) clearFocus(); @@ -598,25 +598,25 @@ void RendererWidget::keyPressEvent(QKeyEvent* event) QOpenGLWidget::keyPressEvent(event); } -void RendererWidget::keyReleaseEvent(QKeyEvent* event) +void RendererGLWidget::keyReleaseEvent(QKeyEvent* event) { if (!event->isAutoRepeat()) pressedKeys.remove(event->key()); QOpenGLWidget::keyReleaseEvent(event); } -void RendererWidget::wheelEvent(QWheelEvent* event) +void RendererGLWidget::wheelEvent(QWheelEvent* event) { camera.ProcessMouseScroll(event->delta() / 15.); } -void RendererWidget::focusInEvent(QFocusEvent* event) +void RendererGLWidget::focusInEvent(QFocusEvent* event) { setCursor(Qt::BlankCursor); cursor().setPos(mapToGlobal(geometry().center())); } -void RendererWidget::focusOutEvent(QFocusEvent* event) +void RendererGLWidget::focusOutEvent(QFocusEvent* event) { setCursor(Qt::ArrowCursor); } diff --git a/ArchitectureColoredPainting/RendererWidget.h b/ArchitectureColoredPainting/src/Renderer/RendererGLWidget.h similarity index 91% rename from ArchitectureColoredPainting/RendererWidget.h rename to ArchitectureColoredPainting/src/Renderer/RendererGLWidget.h index c88efb9..dd8c5e7 100644 --- a/ArchitectureColoredPainting/RendererWidget.h +++ b/ArchitectureColoredPainting/src/Renderer/RendererGLWidget.h @@ -12,12 +12,12 @@ #include "Model.h" #include "PaintingHelper.h" -class RendererWidget : public QOpenGLWidget, protected QOpenGLFunctions_4_5_Compatibility +class RendererGLWidget : public QOpenGLWidget, protected QOpenGLFunctions_4_5_Compatibility { Q_OBJECT public: - RendererWidget(QWidget* parent = nullptr); - ~RendererWidget(); + RendererGLWidget(QWidget* parent = nullptr); + ~RendererGLWidget(); public slots: void setMainLightPitch(float pitch); diff --git a/ArchitectureColoredPainting/src/Renderer/RendererWidget.cpp b/ArchitectureColoredPainting/src/Renderer/RendererWidget.cpp new file mode 100644 index 0000000..32fcad2 --- /dev/null +++ b/ArchitectureColoredPainting/src/Renderer/RendererWidget.cpp @@ -0,0 +1,15 @@ +#include "RendererWidget.h" +#include "RendererGLWidget.h" + +RendererWidget::RendererWidget(QWidget *parent) + : QWidget(parent) +{ + ui.setupUi(this); + QObject::connect(ui.horizontalSlider, &QSlider::valueChanged, + ui.openGLWidget, &RendererGLWidget::setMainLightPitch); + QObject::connect(ui.horizontalSlider_2, &QSlider::valueChanged, + ui.openGLWidget, &RendererGLWidget::setMainLightYaw); +} + +RendererWidget::~RendererWidget() +{} diff --git a/ArchitectureColoredPainting/src/Renderer/RendererWidget.h b/ArchitectureColoredPainting/src/Renderer/RendererWidget.h new file mode 100644 index 0000000..b09b0e7 --- /dev/null +++ b/ArchitectureColoredPainting/src/Renderer/RendererWidget.h @@ -0,0 +1,16 @@ +#pragma once + +#include +#include "ui_RendererWidget.h" + +class RendererWidget : public QWidget +{ + Q_OBJECT + +public: + RendererWidget(QWidget *parent = nullptr); + ~RendererWidget(); + +private: + Ui::RendererWidgetClass ui; +}; diff --git a/ArchitectureColoredPainting/ShortCutTree.cpp b/ArchitectureColoredPainting/src/Renderer/ShortCutTree.cpp similarity index 100% rename from ArchitectureColoredPainting/ShortCutTree.cpp rename to ArchitectureColoredPainting/src/Renderer/ShortCutTree.cpp diff --git a/ArchitectureColoredPainting/ShortCutTree.h b/ArchitectureColoredPainting/src/Renderer/ShortCutTree.h similarity index 100% rename from ArchitectureColoredPainting/ShortCutTree.h rename to ArchitectureColoredPainting/src/Renderer/ShortCutTree.h diff --git a/ArchitectureColoredPainting/StraightLine.cpp b/ArchitectureColoredPainting/src/Renderer/StraightLine.cpp similarity index 100% rename from ArchitectureColoredPainting/StraightLine.cpp rename to ArchitectureColoredPainting/src/Renderer/StraightLine.cpp diff --git a/ArchitectureColoredPainting/StraightLine.h b/ArchitectureColoredPainting/src/Renderer/StraightLine.h similarity index 100% rename from ArchitectureColoredPainting/StraightLine.h rename to ArchitectureColoredPainting/src/Renderer/StraightLine.h diff --git a/ArchitectureColoredPainting/SvgParser.cpp b/ArchitectureColoredPainting/src/SvgParser.cpp similarity index 100% rename from ArchitectureColoredPainting/SvgParser.cpp rename to ArchitectureColoredPainting/src/SvgParser.cpp diff --git a/ArchitectureColoredPainting/SvgParser.h b/ArchitectureColoredPainting/src/SvgParser.h similarity index 99% rename from ArchitectureColoredPainting/SvgParser.h rename to ArchitectureColoredPainting/src/SvgParser.h index 3712027..ebb0f8b 100644 --- a/ArchitectureColoredPainting/SvgParser.h +++ b/ArchitectureColoredPainting/src/SvgParser.h @@ -1,6 +1,6 @@ #pragma once -#include "Line.h" +#include "Renderer/Line.h" #include #include using namespace std; diff --git a/ArchitectureColoredPainting/main.cpp b/ArchitectureColoredPainting/src/main.cpp similarity index 100% rename from ArchitectureColoredPainting/main.cpp rename to ArchitectureColoredPainting/src/main.cpp