typedef cml::constants<Scalar> Constants;
-inline Vector3& demoteVector(Vector3& left, const Vector4& right)
+inline Vector3 demote(const Vector4& vec)
{
- left[0] = right[0];
- left[1] = right[1];
- left[2] = right[2];
- return left;
+ return Vector3(vec[0], vec[1], vec[2]);
}
-inline Vector2& demoteVector(Vector2& left, const Vector3& right)
+inline Vector2 demote(const Vector3& vec)
{
- left[0] = right[0];
- left[1] = right[1];
- return left;
+ return Vector2(vec[0], vec[1]);
}
-inline Vector4& promoteVector(Vector4& left, const Vector3& right, Scalar extra = 1.0)
+inline Vector4 promote(const Vector3& vec, Scalar extra = 1.0)
{
- left[0] = right[0];
- left[1] = right[1];
- left[2] = right[2];
- left[3] = extra;
- return left;
+ return Vector4(vec[0], vec[1], vec[2], extra);
}
-inline Vector3& promoteVector(Vector3& left, const Vector2& right, Scalar extra = 1.0)
+inline Vector3 promote(const Vector2& vec, Scalar extra = 1.0)
{
- left[0] = right[0];
- left[1] = right[1];
- left[3] = extra;
- return left;
+ return Vector3(vec[0], vec[1], extra);
}