1/*
2 * Copyright 2006-2007, Haiku.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Stephan A��mus <superstippi@gmx.de>
7 */
8#ifndef TRANSFORMER_H
9#define TRANSFORMER_H
10
11
12#ifdef ICON_O_MATIC
13#	include "IconObject.h"
14#else
15#	include <Message.h>
16#	include <SupportDefs.h>
17#endif
18
19#include "IconBuild.h"
20#include "VertexSource.h"
21
22
23_BEGIN_ICON_NAMESPACE
24
25
26/*! Base class for all transformers.
27	All child classes should inherit either PathTransformer, StyleTransformer,
28	or both.
29*/
30#ifdef ICON_O_MATIC
31class Transformer : public IconObject {
32#else
33	class Transformer {
34#endif
35public:
36#ifdef ICON_O_MATIC
37								Transformer(const char* name)
38									: IconObject(name) {}
39								Transformer(BMessage* archive)
40									: IconObject(archive) {}
41#else
42								Transformer(const char* name) {}
43								Transformer(BMessage* archive) {}
44#endif
45
46	virtual						~Transformer() {}
47
48	virtual	Transformer*		Clone() const = 0;
49};
50
51
52_END_ICON_NAMESPACE
53
54
55#endif	// TRANSFORMER_H
56