diff options
Diffstat (limited to 'src/game/Brush.h')
| -rw-r--r-- | src/game/Brush.h | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/src/game/Brush.h b/src/game/Brush.h deleted file mode 100644 index 7671caf..0000000 --- a/src/game/Brush.h +++ /dev/null @@ -1,108 +0,0 @@ -#ifndef BRUSH_H_ -#define BRUSH_H_ - -#include <iostream> -#include "interface/Point.h" - -class Renderer; -class Brush -{ -protected: - unsigned char * outline; - unsigned char * bitmap; - ui::Point size; - ui::Point radius; - void updateOutline() - { - if(!bitmap) - GenerateBitmap(); - if(!bitmap) - return; - if(outline) - delete[] outline; - outline = new unsigned char[size.X*size.Y]; - for(int x = 0; x < size.X; x++) - { - for(int y = 0; y < size.Y; y++) - { - if(bitmap[y*size.X+x] && (!y || !x || x == size.X-1 || y == size.Y-1 || !bitmap[y*size.X+(x+1)] || !bitmap[y*size.X+(x-1)] || !bitmap[(y-1)*size.X+x] || !bitmap[(y+1)*size.X+x])) - { - outline[y*size.X+x] = 255; - } - else - outline[y*size.X+x] = 0; - } - } - } -public: - Brush(ui::Point size_): - bitmap(NULL), - outline(NULL), - radius(0, 0), - size(0, 0) - { - SetRadius(size_); - }; - - //Radius of the brush 0x0 - infxinf (Radius of 0x0 would be 1x1, radius of 1x1 would be 3x3) - ui::Point GetRadius() - { - return radius; - } - - //Size of the brush bitmap mask, 1x1 - infxinf - ui::Point GetSize() - { - return size; - } - virtual void SetRadius(ui::Point radius) - { - this->radius = radius; - this->size = radius+radius+ui::Point(1, 1); - - GenerateBitmap(); - updateOutline(); - } - virtual ~Brush() { - if(bitmap) - delete[] bitmap; - if(outline) - delete[] outline; - } - virtual void RenderRect(Renderer * ren, ui::Point position1, ui::Point position2); - virtual void RenderLine(Renderer * ren, ui::Point position1, ui::Point position2); - virtual void RenderPoint(Renderer * ren, ui::Point position); - virtual void RenderFill(Renderer * ren, ui::Point position); - virtual void GenerateBitmap() - { - if(bitmap) - delete[] bitmap; - bitmap = new unsigned char[size.X*size.Y]; - for(int x = 0; x < size.X; x++) - { - for(int y = 0; y < size.Y; y++) - { - bitmap[(y*size.X)+x] = 255; - } - } - } - //Get a bitmap for drawing particles - unsigned char * GetBitmap() - { - if(!bitmap) - GenerateBitmap(); - return bitmap; - } - - unsigned char * GetOutline() - { - if(!outline) - updateOutline(); - if(!outline) - return NULL; - return outline; - } -}; - - -#endif /* BRUSH_H_ */ |
