InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IPathFinder.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: dstephen
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 __IPathFinder__
25 #define __IPathFinder__
26 
27 #include "IPMUnknown.h"
28 #include "GraphicTypes.h"
29 #include "PMReal.h"
30 
31 class IPathGeometry;
32 class IOutlineInfo;
33 
34 #include "OffsetPathID.h"
35 
36 const PMReal kDefaultFlatness = 3.0;
37 const PMReal kMinFlatness = 0.01;
38 const PMReal kMaxFlatness = 100.0;
39 
43 class IPathFinder : public IPMUnknown
44 {
45 public:
47  enum {
48  kDefaultIID = IID_IPATHFINDER
49  };
50 
53  enum PathType {
56 
59  };
60 
63  enum CombineType {
64  kIntersect,
65  kUnion,
66  kDifference,
67  kXOr
68  };
69 
75  virtual ErrorCode AddPath
76  (
77  const IPathGeometry* pathData,
78  PathType pathType = kEven_odd
79  ) = 0;
80 
88  virtual ErrorCode Combine
89  (
90  IPathGeometry* result,
91  CombineType combineType,
92  PathType resultType = kEven_odd,
93  PMReal flatness = PMReal(kDefaultFlatness)
94  ) = 0;
95 
96 
97 };
98 
99 #endif