typedef cml::vector< Scalar, cml::fixed<3> > Vector3;
typedef cml::vector< Scalar, cml::fixed<4> > Vector4;
+typedef cml::matrix< Scalar, cml::fixed<2,2>,
+ cml::col_basis, cml::col_major > Matrix2;
typedef cml::matrix< Scalar, cml::fixed<3,3>,
cml::col_basis, cml::col_major > Matrix3;
typedef cml::matrix< Scalar, cml::fixed<4,4>,
return left;
}
-inline Vector4& promoteVector(Vector4& left, const Vector3& right)
+inline Vector2& demoteVector(Vector2& left, const Vector3& right)
+{
+ left[0] = right[0];
+ left[1] = right[1];
+ return left;
+}
+
+inline Vector4& promoteVector(Vector4& left, const Vector3& right, Scalar extra = 1.0)
{
left[0] = right[0];
left[1] = right[1];
left[2] = right[2];
- left[3] = 1.0;
+ left[3] = extra;
+ return left;
+}
+
+inline Vector3& promoteVector(Vector3& left, const Vector2& right, Scalar extra = 1.0)
+{
+ left[0] = right[0];
+ left[1] = right[1];
+ left[3] = extra;
return left;
}