Pose.h
Go to the documentation of this file.
00001 /*
00002  * This file is part of ALVAR, A Library for Virtual and Augmented Reality.
00003  *
00004  * Copyright 2007-2012 VTT Technical Research Centre of Finland
00005  *
00006  * Contact: VTT Augmented Reality Team <alvar.info@vtt.fi>
00007  *          <http://www.vtt.fi/multimedia/alvar.html>
00008  *
00009  * ALVAR is free software; you can redistribute it and/or modify it under the
00010  * terms of the GNU Lesser General Public License as published by the Free
00011  * Software Foundation; either version 2.1 of the License, or (at your option)
00012  * any later version.
00013  *
00014  * This library is distributed in the hope that it will be useful, but WITHOUT
00015  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00016  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
00017  * for more details.
00018  *
00019  * You should have received a copy of the GNU Lesser General Public License
00020  * along with ALVAR; if not, see
00021  * <http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html>.
00022  */
00023 
00024 #ifndef POSE_H
00025 #define POSE_H
00026 
00027 #include "Alvar.h"
00028 #include "Rotation.h"
00029 
00036 namespace alvar {
00037 
00050 class ALVAR_EXPORT Pose : public Rotation {
00051 protected:
00052         // Note, although we are using homogeneous coordinates x, y, z, w --  w is now mostly ignored
00053 public:
00054         double translation[4];
00055         CvMat  translation_mat;
00056 
00058         void Output() const;
00060         Pose();
00066         Pose(CvMat *tra, CvMat *rot, RotationType t);
00070         Pose(CvMat *mat);
00072         Pose(const Pose& p);
00074         void Reset();
00078         void SetMatrix(const CvMat *mat);
00083         void SetMatrixGL(double gl[16], bool mirror=true);
00087         void GetMatrix(CvMat *mat) const;
00092         void GetMatrixGL(double gl[16], bool mirror=true);
00094         void Transpose();
00096         void Invert();
00102         void Mirror(bool x, bool y, bool z);
00106         void SetTranslation(const CvMat *tra);
00110         void SetTranslation(const double *tra);
00112         void SetTranslation(const double x, const double y, const double z);
00116         void GetTranslation(CvMat *tra) const;
00118         Pose& operator  = (const Pose& p);
00119 };
00120 
00121 } // namespace alvar
00122 
00123 #endif


ar_track_alvar
Author(s): Scott Niekum
autogenerated on Sun Oct 5 2014 22:16:26