Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifndef TSTROKEPROP_H
Toshihiro Shimizu 890ddd
#define TSTROKEPROP_H
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "tstrokeoutline.h"
Toshihiro Shimizu 890ddd
#include "tstroke.h"
Toshihiro Shimizu 890ddd
#include "tsimplecolorstyles.h"
Toshihiro Shimizu 890ddd
#undef DVAPI
Toshihiro Shimizu 890ddd
#undef DVVAR
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifdef TVRENDER_EXPORTS
Toshihiro Shimizu 890ddd
#define DVAPI DV_EXPORT_API
Toshihiro Shimizu 890ddd
#define DVVAR DV_EXPORT_VAR
Toshihiro Shimizu 890ddd
#else
Toshihiro Shimizu 890ddd
#define DVAPI DV_IMPORT_API
Toshihiro Shimizu 890ddd
#define DVVAR DV_IMPORT_VAR
Toshihiro Shimizu 890ddd
#endif
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
//forward declarations
Toshihiro Shimizu 890ddd
class TVectorRenderData;
Toshihiro Shimizu 890ddd
//class TStroke;
Toshihiro Shimizu 890ddd
class TColorStyle;
Toshihiro Shimizu 890ddd
class TSimpleStrokeStyle;
Toshihiro Shimizu 890ddd
class TFlash;
Toshihiro Shimizu 890ddd
class TRasterImagePatternStrokeStyle;
Toshihiro Shimizu 890ddd
class TVectorImagePatternStrokeStyle;
Toshihiro Shimizu 890ddd
class TCenterLineStrokeStyle;
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class DVAPI TSimpleStrokeProp : public TStrokeProp
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
protected:
Toshihiro Shimizu 890ddd
	TSimpleStrokeStyle *m_colorStyle;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Toshihiro Shimizu 890ddd
	TSimpleStrokeProp(const TStroke *stroke, TSimpleStrokeStyle *style);
Toshihiro Shimizu 890ddd
	~TSimpleStrokeProp();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	const TColorStyle *getColorStyle() const;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	TStrokeProp *clone(const TStroke *stroke) const;
Toshihiro Shimizu 890ddd
	void draw(const TVectorRenderData &rd);
Toshihiro Shimizu 890ddd
	void draw(TFlash &flash);
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class DVAPI TRasterImagePatternStrokeProp : public TStrokeProp
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
protected:
Toshihiro Shimizu 890ddd
	TRasterImagePatternStrokeStyle *m_colorStyle;
Toshihiro Shimizu 890ddd
	vector<taffine> m_transformations;</taffine>
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Toshihiro Shimizu 890ddd
	TRasterImagePatternStrokeProp(const TStroke *stroke, TRasterImagePatternStrokeStyle *style);
Toshihiro Shimizu 890ddd
	~TRasterImagePatternStrokeProp();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	const TColorStyle *getColorStyle() const;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	TStrokeProp *clone(const TStroke *stroke) const;
Toshihiro Shimizu 890ddd
	void draw(const TVectorRenderData &rd);
Toshihiro Shimizu 890ddd
	void draw(TFlash &flash);
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class DVAPI TVectorImagePatternStrokeProp : public TStrokeProp
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
protected:
Toshihiro Shimizu 890ddd
	TVectorImagePatternStrokeStyle *m_colorStyle;
Toshihiro Shimizu 890ddd
	vector<taffine> m_transformations;</taffine>
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Toshihiro Shimizu 890ddd
	TVectorImagePatternStrokeProp(const TStroke *stroke, TVectorImagePatternStrokeStyle *style);
Toshihiro Shimizu 890ddd
	~TVectorImagePatternStrokeProp();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	const TColorStyle *getColorStyle() const;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	TStrokeProp *clone(const TStroke *stroke) const;
Toshihiro Shimizu 890ddd
	void draw(const TVectorRenderData &rd);
Toshihiro Shimizu 890ddd
	void draw(TFlash &flash);
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class DVAPI OutlineStrokeProp : public TStrokeProp
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
protected:
Toshihiro Shimizu 890ddd
	TOutlineStyleP m_colorStyle;
Toshihiro Shimizu 890ddd
	TStrokeOutline m_outline;
Toshihiro Shimizu 890ddd
	double m_outlinePixelSize;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Toshihiro Shimizu 890ddd
	OutlineStrokeProp(const TStroke *stroke, TOutlineStyleP style);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	const TColorStyle *getColorStyle() const;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	TStrokeProp *clone(const TStroke *stroke) const;
Toshihiro Shimizu 890ddd
	void draw(const TVectorRenderData &rd);
Toshihiro Shimizu 890ddd
	void draw(TFlash &flash);
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#endif