#pragma once //----------------------------------------------------------------------------- // tbrush.h: class to define an abstract brush //----------------------------------------------------------------------------- #ifndef TBRUSH_H #define TBRUSH_H #ifdef PER_VECCHIO_ELLIPTIC_BRUSH #include "tcommon.h" #undef DVAPI #undef DVVAR #ifdef TVRENDER_EXPORTS #define DVAPI DV_EXPORT_API #define DVVAR DV_EXPORT_VAR #else #define DVAPI DV_IMPORT_API #define DVVAR DV_IMPORT_VAR #endif // forward declaration class TStroke; class TStrokeOutline; //--------------------------------------------------------------------------------------- class DVAPI TBrush { public: class OutlineParameter { public: /*double m_pixelSize;*/ double m_lengthStep; // max lengthStep (sulla centerline) per la // linearizzazione dell'outline OutlineParameter(/*double pixelSize,*/ double lengthStep = 0) /*: m_pixelSize(pixelSize)*/ : m_lengthStep(lengthStep) {} }; TBrush() {} virtual ~TBrush() {} virtual void makeOutline(const TStroke &stroke, TStrokeOutline &outline, const OutlineParameter ¶m) = 0; virtual void draw() = 0; virtual TBrush *clone() = 0; }; #endif // PER_VECCHIO_ELLIPTIC_BRUSH #endif // TBRUSH_H