xref: /haiku/src/tests/servers/app/painter/ShapeConverter.h (revision f2b4344867e97c3f4e742a1b4a15e6879644601a)
1 /*
2  * Copyright 2005, Stephan Aßmus <superstippi@gmx.de>. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  *
5  * Simple BShape to agg::path_storage converter, implemented as BShapeIterator.
6  *
7  */
8 
9 
10 #ifndef SHAPE_CONVERTER_H
11 #define SHAPE_CONVERTER_H
12 
13 #include <Shape.h>
14 
15 #include <agg_path_storage.h>
16 
17 #include "Transformable.h"
18 
19 class BPoint;
20 
21 // TODO: test if this actually works
22 
23 class ShapeConverter : public BShapeIterator,
24 					   public Transformable {
25  public:
26 								ShapeConverter();
27 								ShapeConverter(agg::path_storage* path);
28 	virtual						~ShapeConverter() {};
29 
30 			void				SetPath(agg::path_storage* path);
31 
32 	virtual	status_t			IterateMoveTo(BPoint* point);
33 	virtual	status_t			IterateLineTo(int32 lineCount, BPoint* linePts);
34 	virtual	status_t			IterateBezierTo(int32 bezierCount, BPoint* bezierPts);
35 	virtual	status_t			IterateClose();
36 
37  private:
38 	agg::path_storage*			fPath;
39 };
40 
41 #endif // SHAPE_CONVERTER_H
42