/* * Copyright 2006-2007, Haiku. * Distributed under the terms of the MIT License. * * Authors: * Stephan Aßmus */ #ifndef AFFINE_TRANSFORMER_H #define AFFINE_TRANSFORMER_H #include "IconBuild.h" #include "PathTransformer.h" #include "Transformer.h" #include #include _BEGIN_ICON_NAMESPACE typedef agg::conv_transform Affine; class AffineTransformer : public Transformer, public PathTransformer, public Affine, public agg::trans_affine { public: enum { archive_code = 'affn', }; AffineTransformer( VertexSource& source); AffineTransformer( VertexSource& source, BMessage* archive); virtual ~AffineTransformer(); // Transformer interface virtual Transformer* Clone() const; // PathTransformer interface virtual void rewind(unsigned path_id); virtual unsigned vertex(double* x, double* y); virtual void SetSource(VertexSource& source); virtual double ApproximationScale() const; #ifdef ICON_O_MATIC // IconObject interface virtual status_t Archive(BMessage* into, bool deep = true) const; virtual PropertyObject* MakePropertyObject() const; virtual bool SetToPropertyObject( const PropertyObject* object); #endif }; _END_ICON_NAMESPACE #endif // AFFINE_TRANSFORMER_H