source: flair-src/trunk/lib/FlairCore/src/OneAxisRotation.cpp @ 167

Last change on this file since 167 was 167, checked in by Sanahuja Guillaume, 4 years ago

modifs pour template vectors

File size: 1.8 KB
Line 
1// %flair:license{
2// This file is part of the Flair framework distributed under the
3// CECILL-C License, Version 1.0.
4// %flair:license}
5//  created:    2013/04/17
6//  filename:   OneAxisRotation.cpp
7//
8//  author:     Guillaume Sanahuja
9//              Copyright Heudiasyc UMR UTC/CNRS 7253
10//
11//  version:    $Id: $
12//
13//  purpose:    Class defining a rotation around one axis
14//
15//
16/*********************************************************************/
17
18// this "filter" is in core but it should be in filter
19// filter depends on sensoractuator
20// sensoractuators depends on oneaxisrotation
21// so if oneaxisrotation is in fiter we have a circular dependency
22// TODO: fix this!
23
24#include "OneAxisRotation.h"
25#include "OneAxisRotation_impl.h"
26#include <Euler.h>
27
28using std::string;
29
30namespace flair {
31namespace core {
32
33template void OneAxisRotation::ComputeRotation(core::Vector3D<float> &) const;
34template void OneAxisRotation::ComputeRotation(core::Vector3D<double> &) const;
35 
36OneAxisRotation::OneAxisRotation(const gui::LayoutPosition *position,
37                                 string name)
38    : gui::GroupBox(position, name) {
39  pimpl_ = new OneAxisRotation_impl(this);
40}
41
42OneAxisRotation::~OneAxisRotation() { delete pimpl_; }
43
44template <typename T> void OneAxisRotation::ComputeRotation(Vector3D<T> &vector) const {
45  pimpl_->ComputeRotation(vector);
46}
47
48void OneAxisRotation::ComputeRotation(Euler &euler) const {
49  pimpl_->ComputeRotation(euler);
50}
51
52void OneAxisRotation::ComputeRotation(Quaternion &quaternion) const {
53  pimpl_->ComputeRotation(quaternion);
54}
55
56void OneAxisRotation::ComputeRotation(RotationMatrix &matrix) const {
57  pimpl_->ComputeRotation(matrix);
58}
59
60float OneAxisRotation::GetAngle() const {
61  return Euler::ToRadian(pimpl_->GetAngle());
62}
63
64int OneAxisRotation::GetAxis() const {
65  return pimpl_->GetAxis();
66}
67
68} // end namespace core
69} // end namespace flair
Note: See TracBrowser for help on using the repository browser.