-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathOMRectangle.m
75 lines (75 loc) · 3.48 KB
/
OMRectangle.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//==================================================================================================================================
// OMRectangle.m
//==================================================================================================================================
#import "OMRectangle.h"
//==================================================================================================================================
OMRectangle OMMakeRectangle(OMCoordinate topLeft, OMCoordinate bottomRight)
{
OMRectangle rectangle;
rectangle.topLeft = topLeft;
rectangle.bottomRight = bottomRight;
return rectangle;
}
//----------------------------------------------------------------------------------------------------------------------------------
OMDimension OMMakeDimension(OMCoordinate origin, OMSize size)
{
OMDimension dimension;
dimension.origin = origin;
dimension.size = size;
return dimension;
}
//==================================================================================================================================
OMRectangle OMMakeRectangleFloats(float left, float top, float right, float bottom)
{
OMRectangle rectangle;
rectangle.topLeft.x = left;
rectangle.topLeft.y = top;
rectangle.bottomRight.x = right;
rectangle.bottomRight.y = bottom;
return rectangle;
}
//----------------------------------------------------------------------------------------------------------------------------------
OMDimension OMMakeDimensionFloats(float x, float y, float width, float height)
{
OMDimension dimension;
dimension.origin.x = x;
dimension.origin.y = y;
dimension.size.width = width;
dimension.size.height = height;;
return dimension;
}
//==================================================================================================================================
OMRectangle OMRectangleFromDimension(OMDimension dimension)
{
OMRectangle rectangle;
rectangle.topLeft.x = dimension.origin.x;
rectangle.topLeft.y = dimension.origin.y;
rectangle.bottomRight.x = dimension.origin.x + dimension.size.width;
rectangle.bottomRight.y = dimension.origin.y + dimension.size.height;
return rectangle;
}
//----------------------------------------------------------------------------------------------------------------------------------
OMDimension OMDimensionFromRectangle(OMRectangle rectangle)
{
OMDimension dimension;
dimension.origin.x = rectangle.topLeft.x;
dimension.origin.y = rectangle.topLeft.y;
dimension.size.width = rectangle.bottomRight.x - rectangle.topLeft.x;
dimension.size.height = rectangle.bottomRight.y - rectangle.topLeft.y;
return dimension;
}
//==================================================================================================================================
void OMRectangleToDimension(OMRectangle *rectangle)
{
//after this call, you can directly cast your OMRectangle to a OMDimension
rectangle->bottomRight.x -= rectangle->topLeft.x;
rectangle->bottomRight.y -= rectangle->topLeft.y;
}
//----------------------------------------------------------------------------------------------------------------------------------
void OMDimensionToRectangle(OMDimension *dimension)
{
//after this call, you can directly cast your OMDimension to a OMRectangle
dimension->size.width += dimension->origin.x;
dimension->size.height += dimension->origin.y;
}
//==================================================================================================================================