sdl2dll
Loading...
Searching...
No Matches
sdl_rect.h
1/*
2 * Clases para manejar rectángulos en SDL2
3 * SDL_Rect
4 * SDL_FRect
5 */
6#ifndef _SDL_RECT
7#define _SDL_RECT
8
9#define EXPORT __declspec(dllexport)
10
11#include <SDL.h>
12#include <cmath>
13#include "sdl_point.h"
14
15namespace sdl {
16
21class Rect {
22protected:
23 SDL_Rect rect;
24public:
33 EXPORT Rect(int x=0, int y=0, int w=0, int h=0) {
34 rect.x = x;
35 rect.y = y;
36 rect.w = w;
37 rect.h = h;
38 }
44 EXPORT Rect(SDL_Rect r) : rect(r) {}
50 EXPORT SDL_Rect *Get() { return &rect; }
56 EXPORT operator SDL_Rect() { return rect; }
62 EXPORT int &X() { return rect.x; }
68 EXPORT int &Y() { return rect.y; }
74 EXPORT int &W() { return rect.w; }
80 EXPORT int &H() { return rect.h; }
81};
82
87class FRect {
88protected:
89 SDL_FRect rect;
90public:
99 EXPORT FRect(float x=0.0, float y=0.0, float w=0.0, float h=0.0) {
100 rect.x = x;
101 rect.y = y;
102 rect.w = w;
103 rect.h = h;
104 }
110 EXPORT FRect(SDL_FRect &r) : rect(r) {}
116 EXPORT SDL_FRect *Get() { return &rect; }
122 EXPORT operator SDL_FRect() { return rect; }
128 EXPORT FPoint Corner() { return FPoint(rect.x, rect.y); }
137 EXPORT FRect Move(float alfa, FPoint &displacement, FPoint &escale);
143 EXPORT float &X() { return rect.x; }
149 EXPORT float &Y() { return rect.y; }
155 EXPORT float &W() { return rect.w; }
161 EXPORT float &H() { return rect.h; }
162};
163
164} // namespace
165
166#endif // _SDL_RECT
Clase para manipular puntos con coordenadas float.
Definition sdl_point.h:70
Clase para manipular rectángulos con coordenadas en coma flotante.
Definition sdl_rect.h:87
EXPORT FRect(float x=0.0, float y=0.0, float w=0.0, float h=0.0)
Constructor a partir de valores en coma flotante.
Definition sdl_rect.h:99
SDL_FRect rect
Definition sdl_rect.h:89
EXPORT FRect(SDL_FRect &r)
Constructor a partir de estructura SDL_FRect.
Definition sdl_rect.h:110
EXPORT FRect Move(float alfa, FPoint &displacement, FPoint &escale)
Mueve el rectángulo rotando en ángulo dado y a la distancia especificada, aplicando una escala.
Definition sdl_rect.cpp:4
EXPORT float & Y()
Obtiene una referencia a la coordenada y de la esquina superior izquierda.
Definition sdl_rect.h:149
EXPORT FPoint Corner()
Obtiene las coordenadas de la esquina superior izquierda del rectángulo.
Definition sdl_rect.h:128
EXPORT float & W()
Obtiene una referencia a la anchura del rectángulo.
Definition sdl_rect.h:155
EXPORT float & H()
Obtiene una referencia a la altura del rectángulo.
Definition sdl_rect.h:161
EXPORT SDL_FRect * Get()
Obtiene un puntero a la estructura SDL_FRect.
Definition sdl_rect.h:116
EXPORT float & X()
Obtiene una referencia a la coordenada x de la esquina superior izquierda.
Definition sdl_rect.h:143
Clase para manipular rectángulos con coordenadas enteras.
Definition sdl_rect.h:21
EXPORT SDL_Rect * Get()
Obtiene un puntero a la estructura SDL_Rect.
Definition sdl_rect.h:50
EXPORT int & H()
Obtiene una referencia a la altura del rectángulo.
Definition sdl_rect.h:80
EXPORT int & X()
Obtiene una referencia a la coordenada x de la esquina superior izquierda.
Definition sdl_rect.h:62
EXPORT int & W()
Obtiene una referencia a la anchura del rectángulo.
Definition sdl_rect.h:74
EXPORT Rect(int x=0, int y=0, int w=0, int h=0)
Constructor a partir de valores enteros.
Definition sdl_rect.h:33
EXPORT Rect(SDL_Rect r)
Constructor a partir de estructura SDL_Rect.
Definition sdl_rect.h:44
SDL_Rect rect
Definition sdl_rect.h:23
EXPORT int & Y()
Obtiene una referencia a la coordenada y de la esquina superior izquierda.
Definition sdl_rect.h:68
Espacio con nombre para el wrapper de SDL2.
Definition sdl_music.h:14