Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Latest commit

 

History

History
136 lines (117 loc) · 3.97 KB

SDL_rect.h

File metadata and controls

136 lines (117 loc) · 3.97 KB
 
Apr 8, 2011
Apr 8, 2011
2
3
Simple DirectMedia Layer
Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
Apr 8, 2011
Apr 8, 2011
5
6
7
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Apr 8, 2011
Apr 8, 2011
9
10
11
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
Apr 8, 2011
Apr 8, 2011
13
14
15
16
17
18
19
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
Oct 19, 2009
Oct 19, 2009
23
24
25
* \file SDL_rect.h
*
* Header file for SDL_rect definition and management functions.
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
*/
#ifndef _SDL_rect_h
#define _SDL_rect_h
#include "SDL_stdinc.h"
#include "SDL_error.h"
#include "SDL_pixels.h"
#include "SDL_rwops.h"
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
/* *INDENT-OFF* */
extern "C" {
/* *INDENT-ON* */
#endif
Dec 9, 2009
Dec 9, 2009
44
45
46
47
48
49
50
51
52
53
54
/**
* \brief The structure that defines a point
*
* \sa SDL_EnclosePoints
*/
typedef struct
{
int x;
int y;
} SDL_Point;
Oct 19, 2009
Oct 19, 2009
56
57
58
59
60
61
62
* \brief A rectangle, with the origin at the upper left.
*
* \sa SDL_RectEmpty
* \sa SDL_RectEquals
* \sa SDL_HasIntersection
* \sa SDL_IntersectRect
* \sa SDL_UnionRect
Dec 9, 2009
Dec 9, 2009
63
* \sa SDL_EnclosePoints
64
65
66
67
68
69
70
71
*/
typedef struct SDL_Rect
{
int x, y;
int w, h;
} SDL_Rect;
/**
Oct 19, 2009
Oct 19, 2009
72
* \brief Returns true if the rectangle has no area.
73
74
75
76
*/
#define SDL_RectEmpty(X) (((X)->w <= 0) || ((X)->h <= 0))
/**
Oct 19, 2009
Oct 19, 2009
77
* \brief Returns true if the two rectangles are equal.
78
79
80
81
82
*/
#define SDL_RectEquals(A, B) (((A)->x == (B)->x) && ((A)->y == (B)->y) && \
((A)->w == (B)->w) && ((A)->h == (B)->h))
/**
Oct 19, 2009
Oct 19, 2009
83
84
85
* \brief Determine whether two rectangles intersect.
*
* \return SDL_TRUE if there is an intersection, SDL_FALSE otherwise.
86
87
88
89
90
*/
extern DECLSPEC SDL_bool SDLCALL SDL_HasIntersection(const SDL_Rect * A,
const SDL_Rect * B);
/**
Oct 19, 2009
Oct 19, 2009
91
92
93
* \brief Calculate the intersection of two rectangles.
*
* \return SDL_TRUE if there is an intersection, SDL_FALSE otherwise.
94
95
96
97
98
99
*/
extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRect(const SDL_Rect * A,
const SDL_Rect * B,
SDL_Rect * result);
/**
Oct 19, 2009
Oct 19, 2009
100
* \brief Calculate the union of two rectangles.
101
102
103
104
105
*/
extern DECLSPEC void SDLCALL SDL_UnionRect(const SDL_Rect * A,
const SDL_Rect * B,
SDL_Rect * result);
Dec 9, 2009
Dec 9, 2009
106
107
108
109
110
111
112
113
114
115
/**
* \brief Calculate a minimal rectangle enclosing a set of points
*
* \return SDL_TRUE if any points were within the clipping rect
*/
extern DECLSPEC SDL_bool SDLCALL SDL_EnclosePoints(const SDL_Point * points,
int count,
const SDL_Rect * clip,
SDL_Rect * result);
Dec 23, 2008
Dec 23, 2008
116
/**
Oct 19, 2009
Oct 19, 2009
117
118
119
* \brief Calculate the intersection of a rectangle and line segment.
*
* \return SDL_TRUE if there is an intersection, SDL_FALSE otherwise.
Dec 23, 2008
Dec 23, 2008
120
121
122
123
124
125
*/
extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRectAndLine(const SDL_Rect *
rect, int *X1,
int *Y1, int *X2,
int *Y2);
126
127
128
129
130
131
132
133
134
135
136
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
/* *INDENT-OFF* */
}
/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_rect_h */
/* vi: set ts=4 sw=4 expandtab: */