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 9#include "TransformerFactory.h" 10 11#include "AffineTransformer.h" 12#include "ContourTransformer.h" 13#include "PerspectiveTransformer.h" 14#include "Shape.h" 15#include "StrokeTransformer.h" 16 17#ifdef ICON_O_MATIC 18#include <Catalog.h> 19#include <Message.h> 20#endif 21 22 23_USING_ICON_NAMESPACE 24 25 26// TransformerFor 27Transformer* 28TransformerFactory::TransformerFor(uint32 type, VertexSource& source, Shape* shape) 29{ 30 switch (type) { 31 case AFFINE_TRANSFORMER: 32 return new AffineTransformer(source); 33 case PERSPECTIVE_TRANSFORMER: 34 return new PerspectiveTransformer(source, shape); 35 case CONTOUR_TRANSFORMER: 36 return new ContourTransformer(source); 37 case STROKE_TRANSFORMER: 38 return new StrokeTransformer(source); 39 } 40 41 return NULL; 42} 43 44// TransformerFor 45Transformer* 46TransformerFactory::TransformerFor(BMessage* message, VertexSource& source, Shape* shape) 47{ 48 switch (message->what) { 49 case AffineTransformer::archive_code: 50 return new AffineTransformer(source, message); 51 case PerspectiveTransformer::archive_code: 52 return new PerspectiveTransformer(source, shape, message); 53 case ContourTransformer::archive_code: 54 return new ContourTransformer(source, message); 55 case StrokeTransformer::archive_code: 56 return new StrokeTransformer(source, message); 57 } 58 59 return NULL; 60} 61 62