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