InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IRectRegion.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Bernd Paradies
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //========================================================================================
23 
24 #ifndef __IRectRegion__
25 #define __IRectRegion__
26 
27 #include "GRRefCountedObj.h"
28 #include "PMRect.h"
29 
30 
31 //----------------------------------------------------------------------------------------
32 // Class IRectRegion
33 //----------------------------------------------------------------------------------------
34 
54 /*
55 <CODE>
56  ================================================================================
57  + +
58  Origin - Rect: nMinHeight: | nMinHeight: |
59  + |
60  +
61 
62  +-----------+ +-----------+ +-------+---+
63  | | | 1 | | | 1 |
64  | +---+---+ +-------+---+---+ | +-------+
65  | |XXXXXXX| | 3 |XXXXXXX| | 3 |XXXXXXX|
66  | |XXXXXXX| | |XXXXXXX| | |XXXXXXX|
67  | +---+---+ +-------+---+---+ | +-------+
68  | | | 2 | | | 2 |
69  +-----------+ +-----------+ +-------+---+
70 
71  ================================================================================
72  + +
73  Orgin - Rect: nMinHeight: | nMinHeight: |
74  + |
75  +
76 
77  +-----------+ +-----------+ +-----------+
78  | | | 1 | | 1 |
79  | | | | | |
80  | +---+---+ +-------+---+---+ +-------+---+---+
81  | |XXXXXXX| | 3 |XXXXXXX| | |XXXXXXX|
82  | +---+---+ +-------+---+---+ | 3 +---+---+
83  | | | 2 | | | 2 |
84  +-----------+ +-----------+ +-------+---+
85 
86  ================================================================================
87 </CODE>
88 */
89 
90 
92 {
93 public:
94 
99  virtual void SetOrigin( const PMRect &rOrigin ) = 0;
100 
105  virtual const PMRect & GetOrigin() const = 0;
106 
112  virtual void Subtract( const PMRect &rRect, PMReal nMinHeight ) = 0;
113 
117  virtual void Invert() = 0;
118 
123  virtual uint32 Compress() = 0;
124 
129  virtual const PMRectCollection& GetRectCollection() const = 0;
130 
135  virtual void CopyRectCollection( PMRectCollection *pRects ) const = 0;
136 
141  virtual bool16 IsModified() const = 0;
142 
147  virtual bool16 IsInverted() const = 0;
148 
153  virtual bool16 IsEmpty() const = 0;
154 
159  virtual bool16 IsRectangular() const = 0;
160 
166  virtual void Sort( PMRect::PointIndex nIndex, bool16 bXFirst ) = 0;
167 };
168 
169 //----------------------------------------------------------------------------------------
170 // inline operator-=
171 //----------------------------------------------------------------------------------------
172 
173 inline IRectRegion &operator-=( IRectRegion &rRegion, const PMRect &rRect )
174 {
175  rRegion.Subtract( rRect, kFalse );
176  return rRegion;
177 }
178 
179 #endif
180