#pragma once #ifndef TSTROKEPROP_H #define TSTROKEPROP_H #include "tstrokeoutline.h" #include "tstroke.h" #include "tsimplecolorstyles.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 declarations class TVectorRenderData; // class TStroke; class TColorStyle; class TSimpleStrokeStyle; class TFlash; class TRasterImagePatternStrokeStyle; class TVectorImagePatternStrokeStyle; class TCenterLineStrokeStyle; //============================================================================= //============================================================================= class DVAPI TSimpleStrokeProp : public TStrokeProp { protected: TSimpleStrokeStyle *m_colorStyle; public: TSimpleStrokeProp(const TStroke *stroke, TSimpleStrokeStyle *style); ~TSimpleStrokeProp(); const TColorStyle *getColorStyle() const; TStrokeProp *clone(const TStroke *stroke) const; void draw(const TVectorRenderData &rd); void draw(TFlash &flash); }; //============================================================================= class DVAPI TRasterImagePatternStrokeProp : public TStrokeProp { protected: TRasterImagePatternStrokeStyle *m_colorStyle; std::vector m_transformations; public: TRasterImagePatternStrokeProp(const TStroke *stroke, TRasterImagePatternStrokeStyle *style); ~TRasterImagePatternStrokeProp(); const TColorStyle *getColorStyle() const; TStrokeProp *clone(const TStroke *stroke) const; void draw(const TVectorRenderData &rd); void draw(TFlash &flash); }; //============================================================================= class DVAPI TVectorImagePatternStrokeProp : public TStrokeProp { protected: TVectorImagePatternStrokeStyle *m_colorStyle; std::vector m_transformations; public: TVectorImagePatternStrokeProp(const TStroke *stroke, TVectorImagePatternStrokeStyle *style); ~TVectorImagePatternStrokeProp(); const TColorStyle *getColorStyle() const; TStrokeProp *clone(const TStroke *stroke) const; void draw(const TVectorRenderData &rd); void draw(TFlash &flash); }; //============================================================================= class DVAPI OutlineStrokeProp : public TStrokeProp { protected: TOutlineStyleP m_colorStyle; TStrokeOutline m_outline; double m_outlinePixelSize; public: OutlineStrokeProp(const TStroke *stroke, TOutlineStyleP style); const TColorStyle *getColorStyle() const; TStrokeProp *clone(const TStroke *stroke) const; void draw(const TVectorRenderData &rd); void draw(TFlash &flash); }; //============================================================================= #endif