1 | /*****************************************************************************/ |
2 | // Copyright 2006-2007 Adobe Systems Incorporated |
3 | // All Rights Reserved. |
4 | // |
5 | // NOTICE: Adobe permits you to use, modify, and distribute this file in |
6 | // accordance with the terms of the Adobe license agreement accompanying it. |
7 | /*****************************************************************************/ |
8 | |
9 | /* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_rect.cpp#1 $ */ |
10 | /* $DateTime: 2012/05/30 13:28:51 $ */ |
11 | /* $Change: 832332 $ */ |
12 | /* $Author: tknoll $ */ |
13 | |
14 | /*****************************************************************************/ |
15 | |
16 | #include "dng_rect.h" |
17 | |
18 | #include "dng_utils.h" |
19 | |
20 | /*****************************************************************************/ |
21 | |
22 | bool dng_rect::operator== (const dng_rect &rect) const |
23 | { |
24 | |
25 | return (rect.t == t) && |
26 | (rect.l == l) && |
27 | (rect.b == b) && |
28 | (rect.r == r); |
29 | |
30 | } |
31 | |
32 | /*****************************************************************************/ |
33 | |
34 | bool dng_rect::IsZero () const |
35 | { |
36 | |
37 | return (t == 0) && (l == 0) && (b == 0) && (r == 0); |
38 | |
39 | } |
40 | |
41 | /*****************************************************************************/ |
42 | |
43 | bool dng_rect_real64::operator== (const dng_rect_real64 &rect) const |
44 | { |
45 | |
46 | return (rect.t == t) && |
47 | (rect.l == l) && |
48 | (rect.b == b) && |
49 | (rect.r == r); |
50 | |
51 | } |
52 | |
53 | /*****************************************************************************/ |
54 | |
55 | bool dng_rect_real64::IsZero () const |
56 | { |
57 | |
58 | return (t == 0.0) && (l == 0.0) && (b == 0.0) && (r == 0.0); |
59 | |
60 | } |
61 | |
62 | /*****************************************************************************/ |
63 | |
64 | dng_rect operator& (const dng_rect &a, |
65 | const dng_rect &b) |
66 | { |
67 | |
68 | dng_rect c; |
69 | |
70 | c.t = Max_int32 (a.t, b.t); |
71 | c.l = Max_int32 (a.l, b.l); |
72 | |
73 | c.b = Min_int32 (a.b, b.b); |
74 | c.r = Min_int32 (a.r, b.r); |
75 | |
76 | if (c.IsEmpty ()) |
77 | { |
78 | |
79 | c = dng_rect (); |
80 | |
81 | } |
82 | |
83 | return c; |
84 | |
85 | } |
86 | |
87 | /*****************************************************************************/ |
88 | |
89 | dng_rect operator| (const dng_rect &a, |
90 | const dng_rect &b) |
91 | { |
92 | |
93 | if (a.IsEmpty ()) |
94 | { |
95 | return b; |
96 | } |
97 | |
98 | if (b.IsEmpty ()) |
99 | { |
100 | return a; |
101 | } |
102 | |
103 | dng_rect c; |
104 | |
105 | c.t = Min_int32 (a.t, b.t); |
106 | c.l = Min_int32 (a.l, b.l); |
107 | |
108 | c.b = Max_int32 (a.b, b.b); |
109 | c.r = Max_int32 (a.r, b.r); |
110 | |
111 | return c; |
112 | |
113 | } |
114 | |
115 | /*****************************************************************************/ |
116 | |
117 | dng_rect_real64 operator& (const dng_rect_real64 &a, |
118 | const dng_rect_real64 &b) |
119 | { |
120 | |
121 | dng_rect_real64 c; |
122 | |
123 | c.t = Max_real64 (a.t, b.t); |
124 | c.l = Max_real64 (a.l, b.l); |
125 | |
126 | c.b = Min_real64 (a.b, b.b); |
127 | c.r = Min_real64 (a.r, b.r); |
128 | |
129 | if (c.IsEmpty ()) |
130 | { |
131 | |
132 | c = dng_rect_real64 (); |
133 | |
134 | } |
135 | |
136 | return c; |
137 | |
138 | } |
139 | |
140 | /*****************************************************************************/ |
141 | |
142 | dng_rect_real64 operator| (const dng_rect_real64 &a, |
143 | const dng_rect_real64 &b) |
144 | { |
145 | |
146 | if (a.IsEmpty ()) |
147 | { |
148 | return b; |
149 | } |
150 | |
151 | if (b.IsEmpty ()) |
152 | { |
153 | return a; |
154 | } |
155 | |
156 | dng_rect_real64 c; |
157 | |
158 | c.t = Min_real64 (a.t, b.t); |
159 | c.l = Min_real64 (a.l, b.l); |
160 | |
161 | c.b = Max_real64 (a.b, b.b); |
162 | c.r = Max_real64 (a.r, b.r); |
163 | |
164 | return c; |
165 | |
166 | } |
167 | |
168 | /*****************************************************************************/ |
169 | |