src/librpp/rpp.h
Go to the documentation of this file.
1 /* ========================================================================
2  * PROJECT: ARToolKitPlus
3  * ========================================================================
4  *
5  * The robust pose estimator algorithm has been provided by G. Schweighofer
6  * and A. Pinz (Inst.of El.Measurement and Measurement Signal Processing,
7  * Graz University of Technology). Details about the algorithm are given in
8  * a Technical Report: TR-EMT-2005-01, available at:
9  * http://www.emt.tu-graz.ac.at/publications/index.htm
10  *
11  * Ported from MATLAB to C by T.Pintaric (Vienna University of Technology).
12  *
13  * Copyright of the derived and new portions of this work
14  * (C) 2006 Graz University of Technology
15  *
16  * This framework is free software; you can redistribute it and/or modify
17  * it under the terms of the GNU General Public License as published by
18  * the Free Software Foundation; either version 2 of the License, or
19  * (at your option) any later version.
20  *
21  * This framework is distributed in the hope that it will be useful,
22  * but WITHOUT ANY WARRANTY; without even the implied warranty of
23  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24  * GNU General Public License for more details.
25  *
26  * You should have received a copy of the GNU General Public License
27  * along with this framework; if not, write to the Free Software
28  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
29  *
30  * For further information please contact
31  * Dieter Schmalstieg
32  * <schmalstieg@icg.tu-graz.ac.at>
33  * Graz University of Technology,
34  * Institut for Computer Graphics and Vision,
35  * Inffeldgasse 16a, 8010 Graz, Austria.
36  * ========================================================================
37  ** @author Thomas Pintaric
38  *
39  * $Id: rpp.h 162 2006-04-19 21:28:10Z grabner $
40  * @file
41  * ======================================================================== */
42 
43 
44 #ifndef __RPP_H__
45 #define __RPP_H__
46 
47 #include "rpp_types.h"
48 
49 namespace rpp {
50 // ------------------------------------------------------------------------------------------
51 void Quaternion_byAngleAndVector(quat_t &Q, const real_t &q_angle, const vec3_t &q_vector);
52 void GetRotationbyVector(mat33_t &R, const vec3_t &v1, const vec3_t &v2);
53 void xform(vec3_array &Q, const vec3_array &P, const mat33_t &R, const vec3_t &t);
54 void xformproj(vec3_array &Qp, const vec3_array &P, const mat33_t &R, const vec3_t &t);
55 void rpyMat(mat33_t &R, const vec3_t &rpy);
56 void rpyAng(vec3_t &angs, const mat33_t &R);
57 void rpyAng_X(vec3_t &ang_zyx, const mat33_t &R);
58 void decomposeR(mat33_t &Rz, const mat33_t &R);
59 void abskernel(mat33_t &R, vec3_t &t, vec3_array &Qout, real_t &err2,
60  const vec3_array _P, const vec3_array _Q,
61  const mat33_array F, const mat33_t G);
62 void objpose(mat33_t &R, vec3_t &t, unsigned int &it, real_t &obj_err, real_t &img_err,
63  bool calc_img_err, const vec3_array _P, const vec3_array Qp, const options_t options);
64 void getRotationY_wrtT(scalar_array &al_ret, vec3_array &tnew, const vec3_array &v,
65  const vec3_array &p, const vec3_t &t, const real_t &DB,
66  const mat33_t &Rz);
67 void getRfor2ndPose_V_Exact(pose_vec &sol, const vec3_array &v, const vec3_array &P,
68  const mat33_t R, const vec3_t t, const real_t DB);
69 void get2ndPose_Exact(pose_vec &sol, const vec3_array &v, const vec3_array &P,
70  const mat33_t R, const vec3_t t, const real_t DB);
71 
72 // ------------------------------------------------------------------------------------------
73 void robust_pose(real_t &err, mat33_t &R, vec3_t &t,
74  const vec3_array &_model, const vec3_array &_iprts,
75  const options_t _options);
76 // ------------------------------------------------------------------------------------------
77 } // namespace rpp
78 
79 #endif
std::vector< pose_t > pose_vec
Definition: rpp_types.h:95
void rpyAng_X(vec3_t &ang_zyx, const mat33_t &R)
Definition: rpp.cpp:157
void objpose(mat33_t &R, vec3_t &t, unsigned int &it, real_t &obj_err, real_t &img_err, bool calc_img_err, const vec3_array _P, const vec3_array Qp, const options_t options)
Definition: rpp.cpp:266
Definition: rpp.cpp:55
std::vector< mat33_t > mat33_array
Definition: rpp_types.h:77
void abskernel(mat33_t &R, vec3_t &t, vec3_array &Qout, real_t &err2, const vec3_array _P, const vec3_array _Q, const mat33_array F, const mat33_t G)
Definition: rpp.cpp:192
void Quaternion_byAngleAndVector(quat_t &Q, const real_t &q_angle, const vec3_t &q_vector)
Definition: rpp.cpp:58
void rpyAng(vec3_t &angs, const mat33_t &R)
Definition: rpp.cpp:134
void rpyMat(mat33_t &R, const vec3_t &rpy)
Definition: rpp.cpp:110
std::vector< vec3_t > vec3_array
Definition: rpp_types.h:71
std::vector< real_t > scalar_array
Definition: rpp_types.h:81
void GetRotationbyVector(mat33_t &R, const vec3_t &v1, const vec3_t &v2)
Definition: rpp.cpp:71
void get2ndPose_Exact(pose_vec &sol, const vec3_array &v, const vec3_array &P, const mat33_t R, const vec3_t t, const real_t DB)
Definition: rpp.cpp:704
void xform(vec3_array &Q, const vec3_array &P, const mat33_t &R, const vec3_t &t)
Definition: rpp.cpp:82
double real_t
Definition: rpp_types.h:64
void decomposeR(mat33_t &Rz, const mat33_t &R)
Definition: rpp.cpp:183
void getRotationY_wrtT(scalar_array &al_ret, vec3_array &tnew, const vec3_array &v, const vec3_array &p, const vec3_t &t, const real_t &DB, const mat33_t &Rz)
Definition: rpp.cpp:397
void getRfor2ndPose_V_Exact(pose_vec &sol, const vec3_array &v, const vec3_array &P, const mat33_t R, const vec3_t t, const real_t DB)
Definition: rpp.cpp:639
void robust_pose(real_t &err, mat33_t &R, vec3_t &t, const vec3_array &_model, const vec3_array &_iprts, const options_t _options)
Definition: rpp.cpp:741
void xformproj(vec3_array &Qp, const vec3_array &P, const mat33_t &R, const vec3_t &t)
Definition: rpp.cpp:93


tuw_artoolkitplus
Author(s): Markus Bader
autogenerated on Sun Sep 4 2016 03:24:33