1fb07ece0SStephan Aßmus /* 2325a6253SAxel Dörfler * Copyright 2006-2007, Haiku. 3fb07ece0SStephan Aßmus * Distributed under the terms of the MIT License. 4fb07ece0SStephan Aßmus * 5fb07ece0SStephan Aßmus * Authors: 6fb07ece0SStephan Aßmus * Stephan Aßmus <superstippi@gmx.de> 7fb07ece0SStephan Aßmus */ 8fb07ece0SStephan Aßmus #ifndef TRANSFORMER_FACTORY_H 9fb07ece0SStephan Aßmus #define TRANSFORMER_FACTORY_H 10fb07ece0SStephan Aßmus 11325a6253SAxel Dörfler 12fb07ece0SStephan Aßmus #include <String.h> 13fb07ece0SStephan Aßmus 1425dc253dSIngo Weinhold #include "IconBuild.h" 1525dc253dSIngo Weinhold 1625dc253dSIngo Weinhold 17fb07ece0SStephan Aßmus class BMessage; 18325a6253SAxel Dörfler 19325a6253SAxel Dörfler 2025dc253dSIngo Weinhold _BEGIN_ICON_NAMESPACE 2125dc253dSIngo Weinhold 22325a6253SAxel Dörfler 23*c6c2c042SZardshard class Shape; 24fb07ece0SStephan Aßmus class Transformer; 25fb07ece0SStephan Aßmus class VertexSource; 26fb07ece0SStephan Aßmus 27098eaec6SZardshard enum { 28098eaec6SZardshard AFFINE_TRANSFORMER, 29098eaec6SZardshard PERSPECTIVE_TRANSFORMER, 30098eaec6SZardshard CONTOUR_TRANSFORMER, 31098eaec6SZardshard STROKE_TRANSFORMER, 32098eaec6SZardshard }; 33098eaec6SZardshard 34098eaec6SZardshard 35fb07ece0SStephan Aßmus class TransformerFactory { 36fb07ece0SStephan Aßmus public: 37fb07ece0SStephan Aßmus 38fb07ece0SStephan Aßmus static Transformer* TransformerFor(uint32 type, 39*c6c2c042SZardshard VertexSource& source, 40*c6c2c042SZardshard Shape* shape); 41fb07ece0SStephan Aßmus 42fb07ece0SStephan Aßmus static Transformer* TransformerFor(BMessage* archive, 43*c6c2c042SZardshard VertexSource& source, 44*c6c2c042SZardshard Shape* shape); 45fb07ece0SStephan Aßmus }; 46fb07ece0SStephan Aßmus 4725dc253dSIngo Weinhold 4825dc253dSIngo Weinhold _END_ICON_NAMESPACE 4925dc253dSIngo Weinhold 50325a6253SAxel Dörfler 51fb07ece0SStephan Aßmus #endif // TRANSFORMER_FACTORY_H 52