Esempio 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();
}