ReactOS  0.4.14-dev-115-g4576127
rect.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define ConioInitLongRect(Rect, Top, Left, Bottom, Right)
 
#define ConioInitRect(Rect, top, left, bottom, right)
 
#define ConioIsRectEmpty(Rect)   (((Rect)->Left > (Rect)->Right) || ((Rect)->Top > (Rect)->Bottom))
 
#define ConioRectHeight(Rect)   (((Rect)->Top) > ((Rect)->Bottom) ? 0 : ((Rect)->Bottom) - ((Rect)->Top) + 1)
 
#define ConioRectWidth(Rect)   (((Rect)->Left) > ((Rect)->Right) ? 0 : ((Rect)->Right) - ((Rect)->Left) + 1)
 

Functions

static __inline BOOLEAN ConioGetIntersection (OUT PSMALL_RECT Intersection, IN PSMALL_RECT Rect1, IN PSMALL_RECT Rect2)
 
static __inline BOOLEAN ConioGetUnion (OUT PSMALL_RECT Union, IN PSMALL_RECT Rect1, IN PSMALL_RECT Rect2)
 

Macro Definition Documentation

◆ ConioInitLongRect

#define ConioInitLongRect (   Rect,
  Top,
  Left,
  Bottom,
  Right 
)
Value:
do { \
((Rect)->top) = Top; \
((Rect)->left) = Left; \
((Rect)->bottom) = Bottom; \
((Rect)->right) = Right; \
} while (0)
GLint GLint bottom
Definition: glext.h:7726
GLint left
Definition: glext.h:7726
GLdouble GLdouble right
Definition: glext.h:10859
static LPHIST_ENTRY Bottom
Definition: history.c:54
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859
static LPHIST_ENTRY Top
Definition: history.c:53
struct Rect Rect

Definition at line 12 of file rect.h.

◆ ConioInitRect

#define ConioInitRect (   Rect,
  top,
  left,
  bottom,
  right 
)
Value:
do { \
((Rect)->Top) = top; \
((Rect)->Left) = left; \
((Rect)->Bottom) = bottom; \
((Rect)->Right) = right; \
} while (0)
GLint GLint bottom
Definition: glext.h:7726
GLint left
Definition: glext.h:7726
GLdouble GLdouble right
Definition: glext.h:10859
static LPHIST_ENTRY Bottom
Definition: history.c:54
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859
static LPHIST_ENTRY Top
Definition: history.c:53
struct Rect Rect

Definition at line 20 of file rect.h.

◆ ConioIsRectEmpty

#define ConioIsRectEmpty (   Rect)    (((Rect)->Left > (Rect)->Right) || ((Rect)->Top > (Rect)->Bottom))

Definition at line 28 of file rect.h.

◆ ConioRectHeight

#define ConioRectHeight (   Rect)    (((Rect)->Top) > ((Rect)->Bottom) ? 0 : ((Rect)->Bottom) - ((Rect)->Top) + 1)

Definition at line 31 of file rect.h.

◆ ConioRectWidth

#define ConioRectWidth (   Rect)    (((Rect)->Left) > ((Rect)->Right) ? 0 : ((Rect)->Right) - ((Rect)->Left) + 1)

Definition at line 33 of file rect.h.

Function Documentation

◆ ConioGetIntersection()

static __inline BOOLEAN ConioGetIntersection ( OUT PSMALL_RECT  Intersection,
IN PSMALL_RECT  Rect1,
IN PSMALL_RECT  Rect2 
)
static

Definition at line 38 of file rect.h.

41 {
42  if ( ConioIsRectEmpty(Rect1) ||
43  ConioIsRectEmpty(Rect2) ||
44  (Rect1->Top > Rect2->Bottom) ||
45  (Rect1->Left > Rect2->Right) ||
46  (Rect1->Bottom < Rect2->Top) ||
47  (Rect1->Right < Rect2->Left) )
48  {
49  /* The rectangles do not intersect */
50  ConioInitRect(Intersection, 0, -1, 0, -1);
51  return FALSE;
52  }
53 
54  ConioInitRect(Intersection,
55  max(Rect1->Top , Rect2->Top ),
56  max(Rect1->Left , Rect2->Left ),
57  min(Rect1->Bottom, Rect2->Bottom),
58  min(Rect1->Right , Rect2->Right ));
59 
60  return TRUE;
61 }
#define max(a, b)
Definition: svc.c:63
#define TRUE
Definition: types.h:120
#define ConioInitRect(Rect, top, left, bottom, right)
Definition: rect.h:20
#define min(a, b)
Definition: monoChain.cc:55
#define ConioIsRectEmpty(Rect)
Definition: rect.h:28

◆ ConioGetUnion()

static __inline BOOLEAN ConioGetUnion ( OUT PSMALL_RECT  Union,
IN PSMALL_RECT  Rect1,
IN PSMALL_RECT  Rect2 
)
static

Definition at line 64 of file rect.h.

67 {
68  if (ConioIsRectEmpty(Rect1))
69  {
70  if (ConioIsRectEmpty(Rect2))
71  {
72  ConioInitRect(Union, 0, -1, 0, -1);
73  return FALSE;
74  }
75  else
76  {
77  *Union = *Rect2;
78  }
79  }
80  else if (ConioIsRectEmpty(Rect2))
81  {
82  *Union = *Rect1;
83  }
84  else
85  {
86  ConioInitRect(Union,
87  min(Rect1->Top , Rect2->Top ),
88  min(Rect1->Left , Rect2->Left ),
89  max(Rect1->Bottom, Rect2->Bottom),
90  max(Rect1->Right , Rect2->Right ));
91  }
92 
93  return TRUE;
94 }
#define max(a, b)
Definition: svc.c:63
#define TRUE
Definition: types.h:120
#define ConioInitRect(Rect, top, left, bottom, right)
Definition: rect.h:20
#define min(a, b)
Definition: monoChain.cc:55
#define ConioIsRectEmpty(Rect)
Definition: rect.h:28