Esempio n. 1
0
OBB OBB::FromString(const char *str, const char **outEndStr)
{
	assume(str);
	if (!str)
		return OBB(vec::nan, vec::nan, vec::nan, vec::nan, vec::nan);
	OBB o;
	MATH_SKIP_WORD(str, "OBB(");
	MATH_SKIP_WORD(str, "Pos:(");
	o.pos = PointVecFromString(str, &str);
	MATH_SKIP_WORD(str, " Halfsize:(");
	o.r = DirVecFromString(str, &str);
	MATH_SKIP_WORD(str, " X:(");
	o.axis[0] = DirVecFromString(str, &str);
	MATH_SKIP_WORD(str, " Y:(");
	o.axis[1] = DirVecFromString(str, &str);
	MATH_SKIP_WORD(str, " Z:(");
	o.axis[2] = DirVecFromString(str, &str);
	if (outEndStr)
		*outEndStr = str;
	return o;
}
Esempio n. 2
0
Line Line::FromString(const char *str, const char **outEndStr)
{
    assume(str);
    if (!str)
        return Line(vec::nan, vec::nan);
    Line l;
    MATH_SKIP_WORD(str, "Line(");
    MATH_SKIP_WORD(str, "Pos:(");
    l.pos = PointVecFromString(str, &str);
    MATH_SKIP_WORD(str, " Dir:(");
    l.dir = DirVecFromString(str, &str);
    if (outEndStr)
        *outEndStr = str;
    return l;
}
Esempio n. 3
0
Ray Ray::FromString(const char *str, const char **outEndStr)
{
	assume(str);
	if (!str)
		return Ray(vec::nan, vec::nan);
	Ray r;
	MATH_SKIP_WORD(str, "Ray(");
	MATH_SKIP_WORD(str, "Pos:(");
	r.pos = PointVecFromString(str, &str);
	MATH_SKIP_WORD(str, " Dir:(");
	r.dir = DirVecFromString(str, &str);
	if (outEndStr)
		*outEndStr = str;
	return r;
}
Esempio n. 4
0
Plane Plane::FromString(const char *str, const char **outEndStr)
{
	assume(str);
	if (!str)
		return Plane(vec::nan, FLOAT_NAN);
	Plane p;
	MATH_SKIP_WORD(str, "Plane(");
	MATH_SKIP_WORD(str, "Normal:(");
	p.normal = DirVecFromString(str, &str);
	MATH_SKIP_WORD(str, " d:");
	p.d = DeserializeFloat(str, &str);
	if (outEndStr)
		*outEndStr = str;
	return p;
}