コード例 #1
0
ファイル: Quat.cpp プロジェクト: chengzg/MathGeoLib
std::string MUST_USE_RESULT Quat::SerializeToString() const
{
	assert(IsNeutralCLocale());
	char str[256];
	sprintf(str, "%f %f %f %f", x, y, z, w);
	return std::string(str);
}
コード例 #2
0
ファイル: Quat.cpp プロジェクト: chengzg/MathGeoLib
Quat MUST_USE_RESULT Quat::FromString(const char *str)
{
	assert(IsNeutralCLocale());
	assume(str);
	if (!str)
		return Quat();
	if (*str == '(')
		++str;
	Quat q;
	q.x = (float)strtod(str, const_cast<char**>(&str));
	while(*str == ' ' || *str == '\t') ///\todo Propagate this to other FromString functions.
		++str;
	if (*str == ',' || *str == ';')
		++str;
	q.y = (float)strtod(str, const_cast<char**>(&str));
	while(*str == ' ' || *str == '\t')
		++str;
	if (*str == ',' || *str == ';')
		++str;
	q.z = (float)strtod(str, const_cast<char**>(&str));
	while(*str == ' ' || *str == '\t')
		++str;
	if (*str == ',' || *str == ';')
		++str;
	q.w = (float)strtod(str, const_cast<char**>(&str));
	return q;
}
コード例 #3
0
ファイル: Quat.cpp プロジェクト: Garfield-Chen/tng
Quat MUST_USE_RESULT Quat::FromString(const char *str, const char **outEndStr)
{
	assert(IsNeutralCLocale());
	assume(str);
	if (!str)
		return Quat::nan;
	MATH_SKIP_WORD(str, "Quat");
	MATH_SKIP_WORD(str, "(");
	Quat f;
	f.x = DeserializeFloat(str, &str);
	f.y = DeserializeFloat(str, &str);
	f.z = DeserializeFloat(str, &str);
	f.w = DeserializeFloat(str, &str);
	if (*str == ')')
		++str;
	if (*str == ',')
		++str;
	if (outEndStr)
		*outEndStr = str;
	return f;
}