Ejemplo n.º 1
0
void MFVec2f::setValue(CVRMLFieldData *data)
{
	if (!data) return;
	if (data->getFieldType() != FLOAT_ARRAY_DATA) return;

	CVRMLFloatArrayData *a = (CVRMLFloatArrayData *)data;

	float x, y;
	x = 0.0f;
	y = 0.0f;

	m_values.clear();
	for (int i=0; i<a->count(); i++)
	{
		int j = (i % 2);

		switch (j)
		{
		case 0:
			x = a->getValue(i);
			break;
		case 1:
			y = a->getValue(i);

			SFVec2f vec;
			vec.setValue(x, y);
			m_values.push_back(vec);

			x = 0.0f;
			y = 0.0f;
			break;
		}
	}
}
void DialogSFVec2fConfig::OnOK() 
{
	// TODO: この位置にその他の検証用のコードを追加してください
	SFVec2f *field = (SFVec2f *)getField();

	char	string[256];
	float	x, y;

	GetDlgItemText(IDC_XVALUE, string, 255);
	if (sscanf(string, "%f", &x) == 1) {
		GetDlgItemText(IDC_YVALUE, string, 255);
		if (sscanf(string, "%f", &y) == 1)
			field->setValue(x, y);
	}
	
	CDialog::OnOK();
}
BOOL DialogSFVec2fConfig::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: この位置に初期化の補足処理を追加してください
	setTitle(this);

	char value[256];
	SFVec2f *field = (SFVec2f *)getField();

	sprintf(value, "%g", field->getX());
	SetDlgItemText(IDC_XVALUE, value);

	sprintf(value, "%g", field->getY());
	SetDlgItemText(IDC_YVALUE, value);

	return TRUE;  // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります
	              // 例外: OCX プロパティ ページの戻り値は FALSE となります
}