Shinya Kitaoka 810553
#pragma once
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
// tellipticbrush.h: interface for the TEllipticBrush class.
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#if !defined(TELLIPTIC_BRUSH_H)
Toshihiro Shimizu 890ddd
#define TELLIPTIC_BRUSH_H
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifdef PER_VECCHIO_ELLIPTIC_BRUSH
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "tbrush.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#undef DVAPI
Toshihiro Shimizu 890ddd
#undef DVVAR
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 declaration
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class TStroke;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
/*!       
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
          |     /
Toshihiro Shimizu 890ddd
        __b__ / \  angle in degree
Toshihiro Shimizu 890ddd
       /  |  \   | 
Toshihiro Shimizu 890ddd
  ----|---o---a--|-- >
Toshihiro Shimizu 890ddd
       \__|__/
Toshihiro Shimizu 890ddd
          |
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
  N.B. Imp manages angle in radiant.
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
 */
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class DVAPI TEllipticBrush : public TBrush
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	struct Imp;
Toshihiro Shimizu 890ddd
	Imp *m_imp;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Toshihiro Shimizu 890ddd
	//  TEllipticBrush(double a = 1,double b = 1, double angleInDegree = 0);  //  per brush ellittico
Toshihiro Shimizu 890ddd
	TEllipticBrush();
Toshihiro Shimizu 890ddd
	TEllipticBrush(const TEllipticBrush &brush);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	virtual ~TEllipticBrush();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void makeOutline(const TStroke &stroke,
Toshihiro Shimizu 890ddd
					 TStrokeOutline &outline,
Toshihiro Shimizu 890ddd
					 const OutlineParameter ¶m);
Toshihiro Shimizu 890ddd
	void draw();
Toshihiro Shimizu 890ddd
	/*  
Toshihiro Shimizu 890ddd
//  per brush ellittico
Toshihiro Shimizu 890ddd
  void setAngle(double angleInDegree);
Toshihiro Shimizu 890ddd
  double getAngle() const;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
  double getSemiAxisA() const;
Toshihiro Shimizu 890ddd
  void setSemiAxisA(double);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
  double getSemiAxisB() const;
Toshihiro Shimizu 890ddd
  void setSemiAxisB(double);
Toshihiro Shimizu 890ddd
*/
Toshihiro Shimizu 890ddd
	TBrush *clone();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
private:
Toshihiro Shimizu 890ddd
	// not implemented
Toshihiro Shimizu 890ddd
	TEllipticBrush &operator=(const TEllipticBrush &brush);
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#endif //PER_VECCHIO_ELLIPTIC_BRUSH
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#endif // !defined(TELLIPTIC_BRUSH_H)
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
// End Of File
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------