typedef cml::quaternion< Scalar, cml::fixed<>, cml::vector_first,
cml::positive_cross > Quaternion;
+typedef cml::constants<Scalar> Constants;
+
+
+inline Vector3& demoteVector(Vector3& left, const Vector4& right)
+{
+ left[0] = right[0];
+ left[1] = right[1];
+ left[2] = right[2];
+ return left;
+}
+
+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] = 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;
+}
+
+
const Scalar EPSILON = 0.000001;
* Check the equality of scalars with a certain degree of error allowed.
*/
-inline bool checkEquality(Scalar a, Scalar b, Scalar epsilon = EPSILON)
+inline bool isEqual(Scalar a, Scalar b, Scalar epsilon = EPSILON)
{
return std::abs(a - b) < epsilon;
}