xref: /trunk/main/vcl/source/gdi/impvect.hxx (revision 0d63794c)
1  /**************************************************************
2   *
3   * Licensed to the Apache Software Foundation (ASF) under one
4   * or more contributor license agreements.  See the NOTICE file
5   * distributed with this work for additional information
6   * regarding copyright ownership.  The ASF licenses this file
7   * to you under the Apache License, Version 2.0 (the
8   * "License"); you may not use this file except in compliance
9   * with the License.  You may obtain a copy of the License at
10   *
11   *   http://www.apache.org/licenses/LICENSE-2.0
12   *
13   * Unless required by applicable law or agreed to in writing,
14   * software distributed under the License is distributed on an
15   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16   * KIND, either express or implied.  See the License for the
17   * specific language governing permissions and limitations
18   * under the License.
19   *
20   *************************************************************/
21  
22  
23  
24  #ifndef _SV_IMPVECT_HXX
25  #define _SV_IMPVECT_HXX
26  
27  #include <tools/poly.hxx>
28  #include <vcl/gdimtf.hxx>
29  
30  // --------------
31  // - Vectorizer -
32  // --------------
33  
34  class BitmapReadAccess;
35  class ImplChain;
36  class ImplVectMap;
37  
38  class ImplVectorizer
39  {
40  private:
41  
42  	ImplVectMap*	ImplExpand( BitmapReadAccess* pRAcc, const Color& rColor );
43  	void			ImplCalculate( ImplVectMap* pMap, PolyPolygon& rPolyPoly, sal_uInt8 cReduce, sal_uLong nFlags );
44  	sal_Bool			ImplGetChain( ImplVectMap* pMap, const Point& rStartPt, ImplChain& rChain );
45  	sal_Bool			ImplIsUp( ImplVectMap* pMap, long nY, long nX ) const;
46  	void			ImplLimitPolyPoly( PolyPolygon& rPolyPoly );
47  
48  public:
49  
50  					ImplVectorizer();
51  					~ImplVectorizer();
52  
53  	sal_Bool			ImplVectorize( const Bitmap& rColorBmp, GDIMetaFile& rMtf,
54  								   sal_uInt8 cReduce, sal_uLong nFlags, const Link* pProgress );
55  	sal_Bool			ImplVectorize( const Bitmap& rMonoBmp, PolyPolygon& rPolyPoly,
56  								   sal_uLong nFlags, const Link* pProgress );
57  };
58  
59  #endif
60