]> git.localhorst.tv Git - l2e.git/blobdiff - src/graphics/Frame.h
removed stupid file headers that eclipse put in
[l2e.git] / src / graphics / Frame.h
index 3743640333379fa31f2583c559e29bf98b7511e7..62c052d0765d168686d4d452a6868bf77c6ed0fe 100644 (file)
@@ -1,14 +1,7 @@
-/*
- * Frame.h
- *
- *  Created on: Aug 7, 2012
- *      Author: holy
- */
-
 #ifndef GRAPHICS_FRAME_H_
 #define GRAPHICS_FRAME_H_
 
-#include "../geometry/Point.h"
+#include "../geometry/Vector.h"
 
 #include <SDL.h>
 
@@ -17,24 +10,37 @@ namespace graphics {
 class Frame {
 
 public:
-       Frame(SDL_Surface *s, int borderWidth, int borderHeight, int repeatWidth = 1, int repeatHeight = 1, int xOffset = 0, int yOffset = 0)
-       : surface(s), borderWidth(borderWidth), borderHeight(borderHeight), repeatWidth(repeatWidth), repeatHeight(repeatHeight), xOffset(xOffset), yOffset(yOffset) { }
+       static const int TYPE_ID = 405;
+
+public:
+       explicit Frame(SDL_Surface *s = 0, int borderWidth = 1, int borderHeight = 1, int repeatWidth = 1, int repeatHeight = 1, int xOffset = 0, int yOffset = 0)
+       : surface(s), borderSize(borderWidth, borderHeight), repeatSize(repeatWidth, repeatHeight), offset(xOffset, yOffset) { }
 
 public:
-       int MinWidth() const { return 2 * borderWidth; }
-       int MinHeight() const { return 2 * borderHeight; }
-       int BorderWidth() const { return borderWidth; }
-       int BorderHeight() const { return borderHeight; }
-       void Draw(SDL_Surface *dest, geometry::Point<int> position, int width, int height) const;
+       int MinWidth() const { return 2 * BorderWidth(); }
+       int MinHeight() const { return 2 * BorderHeight(); }
+       int BorderWidth() const { return BorderSize().X(); }
+       int BorderHeight() const { return BorderSize().Y(); }
+       const geometry::Vector<int> BorderSize() const { return borderSize; }
+       int RepeatWidth() const { return RepeatSize().X(); }
+       int RepeatHeight() const { return RepeatSize().Y(); }
+       const geometry::Vector<int> RepeatSize() const { return repeatSize; }
+       void Draw(SDL_Surface *dest, const geometry::Vector<int> &position, int width, int height) const;
+
+public:
+       void SetSurface(SDL_Surface *s) { surface = s; }
+       void SetBorderSize(const geometry::Vector<int> &s) { borderSize = s; }
+       void SetRepeatSize(const geometry::Vector<int> &s) { repeatSize = s; }
+       void SetOffset(const geometry::Vector<int> &o) { offset = o; }
+
+       static void CreateTypeDescription();
+       static void Construct(void *);
 
 private:
        SDL_Surface *surface;
-       int borderWidth;
-       int borderHeight;
-       int repeatWidth;
-       int repeatHeight;
-       int xOffset;
-       int yOffset;
+       geometry::Vector<int> borderSize;
+       geometry::Vector<int> repeatSize;
+       geometry::Vector<int> offset;
 
 };