/********************************************************************/
/* Copyright (c) 2019 System fugen G.K. and Yuzi Mizuno          */
/* All rights reserved.                                             */
/********************************************************************/
/********************************************************************/
#pragma once
#include "resource.h"
#include "mg/MGStl.h"

// CGLMeshInfoDlg ダイアログ

class CGLMeshInfoDlg : public CDialog
{
	DECLARE_DYNAMIC(CGLMeshInfoDlg)

	// 図形のボックス枠のX, Y, Z座標の最大、最小値を保持する
	// エディットボックスのコントロール変数
	double m_minX, m_maxX;
	double m_minY, m_maxY;
	double m_minZ, m_maxZ;

	// 三角形の数、頂点数を格納する
	// エディットボックスのコントロール変数
	size_t m_nTriangle;
	size_t m_nVert;

public:
	CGLMeshInfoDlg(CWnd* pParent = NULL);   // 標準コンストラクタ
	virtual ~CGLMeshInfoDlg();

// ダイアログ データ
	enum { IDD = IDD_MESH_INFO };

	// ダイアログの[size information]の内部にある
	// エディットボックスに図形のボックス枠の
	// X, Y, Z座標の最大値、最小値を設定する
	// 例外:no throw
	void SetBoxEdit(const MGBox& box);

	// エディットボックスに設定されている三角形数を返す
	size_t GetTriangleCount()const{return m_nTriangle;}

	// エディットボックスに設定されている頂点数を返す
	size_t GetVertexCount()const{return m_nVert;}

	// 三角形数を格納するエディットボックスに値を設定する
	void SetTriangleCount(size_t nTriangle){m_nTriangle=nTriangle;}

	// 頂点数を格納するエディットボックスに値を設定する
	void SetVertexCount(size_t nVert){m_nVert=nVert;}

	// 三角形の数、頂点数を表示するエディットボックスメンバに
	// 三角形数、頂点数を設定する
	void SetTriangleEdit(const std::vector<UniqueStl>& stl);

protected:
	virtual void DoDataExchange(CDataExchange* pDX);
	virtual BOOL OnInitDialog();

	DECLARE_MESSAGE_MAP()

private:
	// ボックス枠を指すエディットボックスに表示されている
	// 文字列の8文字以降を表示しないように削除する
	void CutEditBoxDigit();

	// 指定したエディットボックスの文字列を
	// 指定した範囲だけ削除し、カーソルをエディットボックスの先頭に戻す
	void EraseEditString(
		int start, // 削除する文字列の開始位置
		int end,   // 削除する文字列の終了位置
		int ID	   // 対象のエディットボックスのリソースID
		);
};
