Shinya Kitaoka 810553
#pragma once
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
//=============================================================================
Shinya Kitaoka 120a6e
// forward declarations
Toshihiro Shimizu 890ddd
class TVectorRenderData;
Shinya Kitaoka 120a6e
// 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
Shinya Kitaoka d1f6c4
class DVAPI TSimpleStrokeProp final : public TStrokeProp {
Toshihiro Shimizu 890ddd
protected:
Shinya Kitaoka 120a6e
  TSimpleStrokeStyle *m_colorStyle;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  TSimpleStrokeProp(const TStroke *stroke, TSimpleStrokeStyle *style);
Shinya Kitaoka 120a6e
  ~TSimpleStrokeProp();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  const TColorStyle *getColorStyle() const override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  TStrokeProp *clone(const TStroke *stroke) const override;
Shinya Kitaoka 473e70
  void draw(const TVectorRenderData &rd) override;
Shinya Kitaoka 473e70
  void draw(TFlash &flash) override;
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class DVAPI TRasterImagePatternStrokeProp final : public TStrokeProp {
Toshihiro Shimizu 890ddd
protected:
Shinya Kitaoka 120a6e
  TRasterImagePatternStrokeStyle *m_colorStyle;
Shinya Kitaoka 120a6e
  std::vector<taffine> m_transformations;</taffine>
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  TRasterImagePatternStrokeProp(const TStroke *stroke,
Shinya Kitaoka 120a6e
                                TRasterImagePatternStrokeStyle *style);
Shinya Kitaoka 120a6e
  ~TRasterImagePatternStrokeProp();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  const TColorStyle *getColorStyle() const override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  TStrokeProp *clone(const TStroke *stroke) const override;
Shinya Kitaoka 473e70
  void draw(const TVectorRenderData &rd) override;
Shinya Kitaoka 473e70
  void draw(TFlash &flash) override;
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class DVAPI TVectorImagePatternStrokeProp final : public TStrokeProp {
Toshihiro Shimizu 890ddd
protected:
Shinya Kitaoka 120a6e
  TVectorImagePatternStrokeStyle *m_colorStyle;
Shinya Kitaoka 120a6e
  std::vector<taffine> m_transformations;</taffine>
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  TVectorImagePatternStrokeProp(const TStroke *stroke,
Shinya Kitaoka 120a6e
                                TVectorImagePatternStrokeStyle *style);
Shinya Kitaoka 120a6e
  ~TVectorImagePatternStrokeProp();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  const TColorStyle *getColorStyle() const override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  TStrokeProp *clone(const TStroke *stroke) const override;
Shinya Kitaoka 473e70
  void draw(const TVectorRenderData &rd) override;
Shinya Kitaoka 473e70
  void draw(TFlash &flash) override;
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class DVAPI OutlineStrokeProp final : public TStrokeProp {
Toshihiro Shimizu 890ddd
protected:
Shinya Kitaoka 120a6e
  TOutlineStyleP m_colorStyle;
Shinya Kitaoka 120a6e
  TStrokeOutline m_outline;
Shinya Kitaoka 120a6e
  double m_outlinePixelSize;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  OutlineStrokeProp(const TStroke *stroke, TOutlineStyleP style);
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  const TColorStyle *getColorStyle() const override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  TStrokeProp *clone(const TStroke *stroke) const override;
Shinya Kitaoka 473e70
  void draw(const TVectorRenderData &rd) override;
Shinya Kitaoka 473e70
  void draw(TFlash &flash) override;
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#endif