/********************************************************************/
/* Copyright (c) 2019 System fugen G.K. and Yuzi Mizuno          */
/* All rights reserved.                                             */
/********************************************************************/
/********************************************************************/
/**
 * @file EvalCurveLengthTool.h
 * @brief 解析＞長さ メニューのコマンドクラス
 */
#pragma once

#include "Common/SelectState.h"

class MGEvalCurveLength : public MGSelectState
{
public:
	explicit MGEvalCurveLength(fugenDoc* pDoc);

	virtual bool can_break_into()const{return true;}

	virtual MGCommandBase* initial_clone(fugenDoc* pDoc)const;
	virtual bool initiate_tool();
	virtual bool terminate_tool(bool bCancel = false);

	virtual bool OnSelected(
		fugenView* window,
		MGPickObjects& selected_objects,
		MGPickObjects& unselected_objects);

private:
	void evaluate(const MGPickObjects& curves) const;
	void prompt_message() const;
};
