From fa4a8ddad203247b8f3fbdc4e8612e56da4e551d Mon Sep 17 00:00:00 2001 From: Mienek Date: Wed, 18 Dec 2019 17:50:10 +0100 Subject: [PATCH] nochmal --- src/Image/IntelliImage.h | 2 + src/Image/IntelliImage.h.autosave | 57 --------------- src/Tool/IntelliTool.cpp | 1 + src/Tool/IntelliTool.cpp.autosave | 82 ---------------------- src/Tool/IntelliTool.h | 2 + src/Tool/IntelliTool.h.autosave | 38 ---------- src/Tool/IntelliToolFloodFill.cpp | 28 ++++---- src/Tool/IntelliToolFloodFill.cpp.autosave | 66 ----------------- 8 files changed, 20 insertions(+), 256 deletions(-) delete mode 100644 src/Image/IntelliImage.h.autosave delete mode 100644 src/Tool/IntelliTool.cpp.autosave delete mode 100644 src/Tool/IntelliTool.h.autosave delete mode 100644 src/Tool/IntelliToolFloodFill.cpp.autosave diff --git a/src/Image/IntelliImage.h b/src/Image/IntelliImage.h index 347cae6..9d37a31 100644 --- a/src/Image/IntelliImage.h +++ b/src/Image/IntelliImage.h @@ -50,6 +50,8 @@ public: //loads an image to the ColorBuffer virtual bool loadImage(const QString &fileName); + + virtual QColor getPixelColor(int x, int y); }; #endif diff --git a/src/Image/IntelliImage.h.autosave b/src/Image/IntelliImage.h.autosave deleted file mode 100644 index 9eca63a..0000000 --- a/src/Image/IntelliImage.h.autosave +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef INTELLIIMAGE_H -#define INTELLIIMAGE_H - -#include -#include -#include -#include -#include -#include - -enum class ImageType{ - Raster_Image, - Shaped_Image -}; - -class IntelliTool; - -class IntelliImage{ - friend IntelliTool; -protected: - void resizeImage(QImage *image, const QSize &newSize); - - QImage imageData; - - //calculate with polygon -public: - IntelliImage(int weight, int height); - virtual ~IntelliImage() = 0; - - - //start on top left - virtual void drawPixel(const QPoint &p1, const QColor& color); - virtual void drawPoint(const QPoint &p1, const QColor& color, const int& penWidth); - virtual void drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth); - virtual void drawPlain(const QColor& color); - - //returns the filtered output - virtual QImage getDisplayable(const QSize& displaySize, int alpha)=0; - virtual QImage getDisplayable(int alpha=255)=0; - - //gets a copy of the image !allocated - virtual IntelliImage* getDeepCopy()=0; - virtual void calculateVisiblity()=0; - - //returns the filtered output - - //sets the data for the visible image - virtual void setPolygon(const std::vector& polygonData)=0; - virtual std::vector getPolygonData(){ return std::vector();} - - //loads an image to the ColorBuffer - virtual bool loadImage(const QString &fileName); - - virtual QColor getPixelColor(int x, int y); -}; - -#endif diff --git a/src/Tool/IntelliTool.cpp b/src/Tool/IntelliTool.cpp index 608770e..4d085ea 100644 --- a/src/Tool/IntelliTool.cpp +++ b/src/Tool/IntelliTool.cpp @@ -79,3 +79,4 @@ void IntelliTool::deleteToolLayer(){ Area->deleteLayer(Area->activeLayer+1); this->Canvas=nullptr; } + diff --git a/src/Tool/IntelliTool.cpp.autosave b/src/Tool/IntelliTool.cpp.autosave deleted file mode 100644 index 4d085ea..0000000 --- a/src/Tool/IntelliTool.cpp.autosave +++ /dev/null @@ -1,82 +0,0 @@ -#include"IntelliTool.h" -#include"Layer/PaintingArea.h" - -IntelliTool::IntelliTool(PaintingArea* Area, IntelliColorPicker* colorPicker){ - this->Area=Area; - this->colorPicker=colorPicker; -} - - -IntelliTool::~IntelliTool(){ - -} - -void IntelliTool::onMouseRightPressed(int x, int y){ - if(drawing){ - drawing=false; - this->deleteToolLayer(); - } -} - -void IntelliTool::onMouseRightReleased(int x, int y){ - //optional for tool -} - -void IntelliTool::onMouseLeftPressed(int x, int y){ - this->drawing=true; - //create drawing layer - this->createToolLayer(); - Canvas->image->calculateVisiblity(); -} - -void IntelliTool::onMouseLeftReleased(int x, int y){ - if(drawing){ - drawing=false; - this->mergeToolLayer(); - this->deleteToolLayer(); - Active->image->calculateVisiblity(); - } -} - -void IntelliTool::onMouseMoved(int x, int y){ - if(drawing) - Canvas->image->calculateVisiblity(); -} - -void IntelliTool::onWheelScrolled(int value){ - //if needed for future general tasks implement in here -} - -void IntelliTool::createToolLayer(){ - Area->createTempLayerAfter(Area->activeLayer); - this->Active=&Area->layerBundle[Area->activeLayer]; - this->Canvas=&Area->layerBundle[Area->activeLayer+1]; -} - -void IntelliTool::mergeToolLayer(){ - QColor clr_0; - QColor clr_1; - for(int y=0; yhight; y++){ - for(int x=0; xwidth; x++){ - clr_0=Active->image->imageData.pixelColor(x,y); - clr_1=Canvas->image->imageData.pixelColor(x,y); - float t = static_cast(clr_1.alpha())/255.f; - int r =static_cast(static_cast(clr_1.red())*(t)+static_cast(clr_0.red())*(1.f-t)+0.5f); - int g =static_cast(static_cast(clr_1.green())*(t)+static_cast(clr_0.green())*(1.f-t)+0.5f); - int b =static_cast(static_cast(clr_1.blue())*(t)+static_cast(clr_0.blue()*(1.f-t))+0.5f); - int a =std::min(clr_0.alpha()+clr_1.alpha(), 255); - clr_0.setRed(r); - clr_0.setGreen(g); - clr_0.setBlue(b); - clr_0.setAlpha(a); - - Active->image->imageData.setPixelColor(x, y, clr_0); - } - } -} - -void IntelliTool::deleteToolLayer(){ - Area->deleteLayer(Area->activeLayer+1); - this->Canvas=nullptr; -} - diff --git a/src/Tool/IntelliTool.h b/src/Tool/IntelliTool.h index 2531a55..b66a6b0 100644 --- a/src/Tool/IntelliTool.h +++ b/src/Tool/IntelliTool.h @@ -32,5 +32,7 @@ public: virtual void onWheelScrolled(int value); virtual void onMouseMoved(int x, int y); + + }; #endif diff --git a/src/Tool/IntelliTool.h.autosave b/src/Tool/IntelliTool.h.autosave deleted file mode 100644 index c8bfee7..0000000 --- a/src/Tool/IntelliTool.h.autosave +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef Intelli_Tool_H -#define Intelli_Tool_H - -#include "IntelliHelper/IntelliColorPicker.h" -#include - -class LayerObject; -class PaintingArea; - -class IntelliTool{ -private: - void createToolLayer(); - void mergeToolLayer(); - void deleteToolLayer(); -protected: - PaintingArea* Area; - IntelliColorPicker* colorPicker; - - LayerObject* Active; - LayerObject* Canvas; - bool drawing = false; - -public: - IntelliTool(PaintingArea* Area, IntelliColorPicker* colorPicker); - virtual ~IntelliTool() = 0; - - virtual void onMouseRightPressed(int x, int y); - virtual void onMouseRightReleased(int x, int y); - virtual void onMouseLeftPressed(int x, int y); - virtual void onMouseLeftReleased(int x, int y); - - virtual void onWheelScrolled(int value); - - virtual void onMouseMoved(int x, int y); - - -}; -#endif diff --git a/src/Tool/IntelliToolFloodFill.cpp b/src/Tool/IntelliToolFloodFill.cpp index 78316a7..7712f90 100644 --- a/src/Tool/IntelliToolFloodFill.cpp +++ b/src/Tool/IntelliToolFloodFill.cpp @@ -3,38 +3,40 @@ #include "QColorDialog" #include "QInputDialog" -IntelliToolLine::IntelliToolLine(PaintingArea* Area, IntelliColorPicker* colorPicker) +IntelliToolFloodFill::IntelliToolFloodFill(PaintingArea* Area, IntelliColorPicker* colorPicker) :IntelliTool(Area, colorPicker){ - this->lineWidth = QInputDialog::getInt(nullptr,"Line Width Input", "Width",1,1,50,1); - //create checkbox or scroll dialog to get line style - this->lineStyle = LineStyle::SOLID_LINE; } -IntelliToolLine::~IntelliToolLine(){ +IntelliToolFloodFill::~IntelliToolFloodFill(){ } -void IntelliToolLine::onMouseRightPressed(int x, int y){ +void IntelliToolFloodFill::onMouseRightPressed(int x, int y){ IntelliTool::onMouseRightPressed(x,y); } -void IntelliToolLine::onMouseRightReleased(int x, int y){ +void IntelliToolFloodFill::onMouseRightReleased(int x, int y){ IntelliTool::onMouseRightReleased(x,y); } -void IntelliToolLine::onMouseLeftPressed(int x, int y){ +void IntelliToolFloodFill::onMouseLeftPressed(int x, int y){ IntelliTool::onMouseLeftPressed(x,y); - this->start=QPoint(x,y); - this->Canvas->image->drawLine(start, start, colorPicker->getFirstColor(),lineWidth); + this->Canvas->image->get + auto depthsearch = [](int x, int y, LayerObject* Canvas){ + + }; + Canvas->image->calculateVisiblity(); + + } -void IntelliToolLine::onMouseLeftReleased(int x, int y){ +void IntelliToolFloodFill::onMouseLeftReleased(int x, int y){ IntelliTool::onMouseLeftReleased(x,y); } -void IntelliToolLine::onWheelScrolled(int value){ +void IntelliToolFloodFill::onWheelScrolled(int value){ IntelliTool::onWheelScrolled(value); this->lineWidth+=value; if(this->lineWidth<=0){ @@ -42,7 +44,7 @@ void IntelliToolLine::onWheelScrolled(int value){ } } -void IntelliToolLine::onMouseMoved(int x, int y){ +void IntelliToolFloodFill::onMouseMoved(int x, int y){ IntelliTool::onMouseMoved(x,y); if(this->drawing){ this->Canvas->image->drawPlain(Qt::transparent); diff --git a/src/Tool/IntelliToolFloodFill.cpp.autosave b/src/Tool/IntelliToolFloodFill.cpp.autosave deleted file mode 100644 index b9598fd..0000000 --- a/src/Tool/IntelliToolFloodFill.cpp.autosave +++ /dev/null @@ -1,66 +0,0 @@ -#include "IntelliToolFloodFill.h" -#include "Layer/PaintingArea.h" -#include "QColorDialog" -#include "QInputDialog" - -IntelliToolFloodFill::IntelliToolFloodFill(PaintingArea* Area, IntelliColorPicker* colorPicker) - :IntelliTool(Area, colorPicker){ -} - -IntelliToolFloodFill::~IntelliToolFloodFill(){ - -} - - -void IntelliToolFloodFill::onMouseRightPressed(int x, int y){ - IntelliTool::onMouseRightPressed(x,y); -} - -void IntelliToolFloodFill::onMouseRightReleased(int x, int y){ - IntelliTool::onMouseRightReleased(x,y); -} - -void IntelliToolFloodFill::onMouseLeftPressed(int x, int y){ - IntelliTool::onMouseLeftPressed(x,y); - this->Canvas->image->get - auto depthsearch = [](int x, int y, LayerObject* Canvas){ - - }; - - Canvas->image->calculateVisiblity(); - - -} - -void IntelliToolFloodFill::onMouseLeftReleased(int x, int y){ - IntelliTool::onMouseLeftReleased(x,y); -} - -void IntelliToolFloodFill::onWheelScrolled(int value){ - IntelliTool::onWheelScrolled(value); - this->lineWidth+=value; - if(this->lineWidth<=0){ - this->lineWidth=1; - } -} - -void IntelliToolFloodFill::onMouseMoved(int x, int y){ - IntelliTool::onMouseMoved(x,y); - if(this->drawing){ - this->Canvas->image->drawPlain(Qt::transparent); - QPoint next(x,y); - switch(lineStyle){ - case LineStyle::SOLID_LINE: - this->Canvas->image->drawLine(start,next,colorPicker->getFirstColor(),lineWidth); - break; - case LineStyle::DOTTED_LINE: - QPoint p1 =start.x() <= next.x() ? start : next; - QPoint p2 =start.x() < next.x() ? next : start; - int m = (float)(p2.y()-p1.y())/(float)(p2.x()-p1.x())+0.5f; - int c = start.y()-start.x()*m; - - break; - } - } - IntelliTool::onMouseMoved(x,y); -}