1 /** 2 * Copyright (c) 2006-2011 LOVE Development Team 3 * 4 * This software is provided 'as-is', without any express or implied 5 * warranty. In no event will the authors be held liable for any damages 6 * arising from the use of this software. 7 * 8 * Permission is granted to anyone to use this software for any purpose, 9 * including commercial applications, and to alter it and redistribute it 10 * freely, subject to the following restrictions: 11 * 12 * 1. The origin of this software must not be misrepresented; you must not 13 * claim that you wrote the original software. If you use this software 14 * in a product, an acknowledgment in the product documentation would be 15 * appreciated but is not required. 16 * 2. Altered source versions must be plainly marked as such, and must not be 17 * misrepresented as being the original software. 18 * 3. This notice may not be removed or altered from any source distribution. 19 **/ 20 21 #ifndef LOVE_GRAPHICS_DRAWABLE_H 22 #define LOVE_GRAPHICS_DRAWABLE_H 23 24 // LOVE 25 #include <common/Object.h> 26 27 namespace love 28 { 29 namespace graphics 30 { 31 /** 32 * A Drawable is anything that can be drawn on screen with a 33 * position, scale and orientation. 34 **/ 35 class Drawable : public Object 36 { 37 public: 38 39 /** 40 * Destructor. 41 **/ 42 virtual ~Drawable(); 43 44 /** 45 * Draws the object with the specified transformation. 46 * 47 * @param x The position of the object along the x-axis. 48 * @param y The position of the object along the y-axis. 49 * @param angle The angle of the object (in radians). 50 * @param sx The scale factor along the x-axis. 51 * @param sy The scale factor along the y-axis. 52 * @param ox The origin offset along the x-axis. 53 * @param oy The origin offset along the y-axis. 54 **/ 55 virtual void draw(float x, float y, float angle, float sx, float sy, float ox, float oy) const = 0; 56 }; 57 58 } // graphics 59 } // love 60 61 #endif // LOVE_GRAPHICS_DRAWABLE_H 62