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