/********************************************************************/
/* Copyright (c) 2019 System fugen G.K. and Yuzi Mizuno          */
/* All rights reserved.                                             */
/* ***************************************************** */
/**
 * @file PolygonVertex.h
 * @brief MGPolygonVertexTool クラスのインターフェイス
 */
#if !defined(AFX_POLYGONVERTEX_H__43D66B6F_B2E6_41F0_B21C_40809FD82F40__INCLUDED_)
#define AFX_POLYGONVERTEX_H__43D66B6F_B2E6_41F0_B21C_40809FD82F40__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Common/LocateState.h"
#include "mg/Curve.h"

/// @class MGPolygonVertexTool PolygonVertex.h "CurveCmd.h"
///
/// 頂点を指定して正多角形を生成するコマンド
class MGPolygonVertexTool : public MGLocateState{
public:
	explicit MGPolygonVertexTool(MGCommandStateOwner* owner);
	virtual bool initiate_tool();
	virtual bool terminate_tool(bool cancel = false);
	virtual bool OnKeyDown(fugenView* pView, UINT nChar, UINT nRepCnt, UINT nFlags);
	virtual bool OnLocated(const MGLocateInfo& info);
	virtual void do_make_temporary_display(mgSysGL& sgl,fugenView* pSView);

private:
	void prompt_message() const;

	int m_N; ///< 正 N 角形

	bool m_bInscrib; ///< 円に内接するかどうか
	bool m_bVertical; ///< CPlaneに垂直な面を通るようにするか
};

#endif // !defined(AFX_POLYGONVERTEX_H__43D66B6F_B2E6_41F0_B21C_40809FD82F40__INCLUDED_)
