diff --git a/src/Image/IntelliImage.h b/src/Image/IntelliImage.h index 14e9ec2..05d1f09 100644 --- a/src/Image/IntelliImage.h +++ b/src/Image/IntelliImage.h @@ -8,6 +8,9 @@ #include #include +/*! + * \brief The Types, which an Image can be. + */ enum class ImageType{ Raster_Image, Shaped_Image @@ -15,39 +18,97 @@ enum class ImageType{ class IntelliTool; +/*! + * \brief An abstract class which manages the basic IntelliImage operations. + */ class IntelliImage{ friend IntelliTool; protected: void resizeImage(QImage *image, const QSize &newSize); + /*! + * \brief The underlying image data. + */ QImage imageData; - - //calculate with polygon public: + /*! + * \brief The Construcor of the Shaped Image. Given the Image dimensions. + * \param weight The weight of the Image. + * \param height The height of the Image. + */ IntelliImage(int weight, int height); + + /*! + * \brief An Abstract Destructor. + */ virtual ~IntelliImage() = 0; - //start on top left + /*! + * \brief A funtcion used to draw a pixel on the Image with the given Color. + * \param p1 The coordinates of the pixel, which should be drawn. [Top-Left-System] + * \param color The color of the pixel. + */ virtual void drawPixel(const QPoint &p1, const QColor& color); + + /*! + * \brief A function that draws A Line between two given Points in a given color. + * \param p1 The coordinates of the first Point. + * \param p2 The coordinates of the second Point. + * \param color The color of the line. + * \param penWidth The width of the line. + */ virtual void drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth); + + /*! + * \brief A function that clears the whole image in a given Color. + * \param color The color, in which the image will be filled. + */ virtual void drawPlain(const QColor& color); - //returns the filtered output + /*! + * \brief A function returning the displayable ImageData in a requested transparence and size. + * \param displaySize The size, in whcih the Image should be displayed. + * \param alpha The maximum alpha value, a pixel can have. + * \return A QImage which is ready to be displayed. + */ virtual QImage getDisplayable(const QSize& displaySize, int alpha)=0; + + /** + * @brief A function returning the displayable ImageData in a requested transparence and it's standart size. + * @param alpha The maximum alpha value, a pixel can have. + * @return A QImage which is ready to be displayed. + */ virtual QImage getDisplayable(int alpha=255)=0; - //gets a copy of the image !allocated + /*! + * \brief A function that copys all that returns a [allocated] Image + * \return A [allocated] Image with all the properties of the instance. + */ virtual IntelliImage* getDeepCopy()=0; + + /*! + * \brief An abstract function that calculates the visiblity of the Image data if needed. + */ virtual void calculateVisiblity()=0; - //returns the filtered output - - //sets the data for the visible image + /*! + * \brief An abstract function that sets the data of the visible Polygon, if needed. + * \param polygonData The Vertices of the Polygon. Just Planar Polygons are allowed. + */ virtual void setPolygon(const std::vector& polygonData)=0; + + /*! + * \brief An function that returns the Polygondata if existent. + * \return The Polygondata if existent. + */ virtual std::vector getPolygonData(){ return std::vector();} - //loads an image to the ColorBuffer + /*! + * \brief Loads and Sclaes an Image to the fitting dimensions. + * \param fileName The path+name of the image which to loaded. + * \return True if the image could be loaded, false otherwise. + */ virtual bool loadImage(const QString &fileName); };