27 #ifndef CDPL_MATH_QUATERNIONASSIGNMENT_HPP
28 #define CDPL_MATH_QUATERNIONASSIGNMENT_HPP
40 class QuaternionExpression;
42 template <
template <
typename T1,
typename T2>
class F,
typename Q,
typename E>
45 typedef F<typename Q::Reference, typename E::ValueType> FunctorType;
47 FunctorType::apply(q.getC1(), e().getC1());
48 FunctorType::apply(q.getC2(), e().getC2());
49 FunctorType::apply(q.getC3(), e().getC3());
50 FunctorType::apply(q.getC4(), e().getC4());
53 template <
template <
typename T1,
typename T2>
class F,
typename Q,
typename T>
56 typedef F<typename Q::Reference, T> FunctorType;
58 FunctorType::apply(q.getC1(), t);
59 FunctorType::apply(q.getC2(), t);
60 FunctorType::apply(q.getC3(), t);
61 FunctorType::apply(q.getC4(), t);
64 template <
typename Q,
typename E>
67 std::swap(q.getC1(), e().getC1());
68 std::swap(q.getC2(), e().getC2());
69 std::swap(q.getC3(), e().getC3());
70 std::swap(q.getC4(), e().getC4());
75 #endif // CDPL_MATH_QUATERNIONASSIGNMENT_HPP