#ifndef BLUECORE_TRANSFORMATION_H #define BLUECORE_TRANSFORMATION_H #include "Quaternion.h" #include "Vector.h" namespace BlueCore { template class TransformationTemplate { public: QuaternionTemplate rotation; Vector3Template translation; TransformationTemplate() { } template TransformationTemplate( const QuaternionTemplate &rot) : rotation(rot) { } template TransformationTemplate( const Vector3Template &trans) : translation(trans) { } template TransformationTemplate( const QuaternionTemplate &rot, const Vector3Template &trans) : rotation(rot), translation(trans) { } template Vector3Template transform(const Vector3Template &v) { return rotation.apply(v) + translation; } }; typedef TransformationTemplate TransformationFloat; typedef TransformationTemplate TransformationDouble; typedef TransformationTemplate Transformation; } // namespace BlueCore #endif /*TRANSFORMATION_H_*/