Visual Servoing Platform
version 3.7.0
Toggle main menu visibility
Loading...
Searching...
No Matches
vpThetaUVector.h
1
/*
2
* ViSP, open source Visual Servoing Platform software.
3
* Copyright (C) 2005 - 2025 by Inria. All rights reserved.
4
*
5
* This software is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
* See the file LICENSE.txt at the root directory of this source
10
* distribution for additional information about the GNU GPL.
11
*
12
* For using ViSP with software that can not be combined with the GNU
13
* GPL, please contact Inria about acquiring a ViSP Professional
14
* Edition License.
15
*
16
* See https://visp.inria.fr for more information.
17
*
18
* This software was developed at:
19
* Inria Rennes - Bretagne Atlantique
20
* Campus Universitaire de Beaulieu
21
* 35042 Rennes Cedex
22
* France
23
*
24
* If you have questions regarding the use of this file, please contact
25
* Inria at visp@inria.fr
26
*
27
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
28
* WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
29
*
30
* Description:
31
* Theta U parameterization for the rotation.
32
*/
33
39
40
#ifndef VP_THETAU_VECTOR_H
41
#define VP_THETAU_VECTOR_H
42
43
#include <visp3/core/vpColVector.h>
44
#include <visp3/core/vpHomogeneousMatrix.h>
45
#include <visp3/core/vpQuaternionVector.h>
46
#include <visp3/core/vpRotationMatrix.h>
47
#include <visp3/core/vpRotationVector.h>
48
#include <visp3/core/vpRxyzVector.h>
49
#include <visp3/core/vpRzyxVector.h>
50
51
BEGIN_VISP_NAMESPACE
52
53
class
vpHomogeneousMatrix
;
54
class
vpRotationMatrix
;
55
class
vpPoseVector
;
56
class
vpRzyxVector
;
57
class
vpRxyzVector
;
58
class
vpRzyzVector
;
59
class
vpColVector
;
60
class
vpRotationVector
;
61
class
vpQuaternionVector
;
62
171
class
VISP_EXPORT
vpThetaUVector
:
public
vpRotationVector
172
{
173
public
:
174
vpThetaUVector
();
175
#if (VISP_CXX_STANDARD > VISP_CXX_STANDARD_98)
176
vpThetaUVector
(
const
vpThetaUVector
&) =
default
;
177
virtual
~vpThetaUVector
() VP_OVERRIDE = default;
178
#else
179
virtual
~vpThetaUVector
() { }
180
#endif
181
// constructor initialize a Theta U vector from a homogeneous matrix
182
VP_EXPLICIT
vpThetaUVector
(
const
vpHomogeneousMatrix
&M);
183
// constructor initialize a Theta U vector from a pose vector
184
VP_EXPLICIT
vpThetaUVector
(
const
vpPoseVector
&p);
185
// constructor initialize a Theta U vector from a rotation matrix
186
VP_EXPLICIT
vpThetaUVector
(
const
vpRotationMatrix
&R);
187
// constructor initialize a Theta U vector from a RzyxVector
188
VP_EXPLICIT
vpThetaUVector
(
const
vpRzyxVector
&rzyx);
189
// constructor initialize a Theta U vector from a RzyzVector
190
VP_EXPLICIT
vpThetaUVector
(
const
vpRzyzVector
&rzyz);
191
// constructor initialize a Theta U vector from a RxyzVector
192
VP_EXPLICIT
vpThetaUVector
(
const
vpRxyzVector
&rxyz);
193
VP_EXPLICIT
vpThetaUVector
(
const
vpQuaternionVector
&q);
194
VP_EXPLICIT
vpThetaUVector
(
const
vpColVector
&tu);
195
VP_EXPLICIT
vpThetaUVector
(
const
std::vector<double> &tu);
196
197
vpThetaUVector
(
double
tux,
double
tuy,
double
tuz);
198
199
// convert an homogeneous matrix into Theta U vector
200
vpThetaUVector
&buildFrom(
const
vpHomogeneousMatrix
&M);
201
// convert a pose vector into Theta U vector
202
vpThetaUVector
&buildFrom(
const
vpPoseVector
&p);
203
// convert a rotation matrix into Theta U vector
204
vpThetaUVector
&buildFrom(
const
vpRotationMatrix
&R);
205
// convert an Rzyx vector into Theta U vector
206
vpThetaUVector
&buildFrom(
const
vpRzyxVector
&rzyx);
207
// convert an Rzyz vector into Theta U vector
208
vpThetaUVector
&buildFrom(
const
vpRzyzVector
&zyz);
209
// convert an Rxyz vector into Theta U vector
210
vpThetaUVector
&buildFrom(
const
vpRxyzVector
&xyz);
211
vpThetaUVector
&buildFrom(
const
vpQuaternionVector
&q);
212
vpThetaUVector
&buildFrom(
const
vpColVector
&tu);
213
vpThetaUVector
&buildFrom(
const
std::vector<double> &tu);
214
215
vpThetaUVector
&buildFrom(
const
double
&tux,
const
double
&tuy,
const
double
&tuz);
216
217
// extract the angle and the axis from the ThetaU representation
218
void
extract(
double
&theta,
vpColVector
&u)
const
;
219
double
getTheta()
const
;
220
vpColVector
getU()
const
;
221
222
vpThetaUVector
&
operator=
(
const
vpColVector
&tu);
223
vpThetaUVector
&
operator=
(
double
x);
224
vpThetaUVector
operator*
(
const
vpThetaUVector
&tu_b)
const
;
225
226
#if (VISP_CXX_STANDARD > VISP_CXX_STANDARD_98)
227
vpThetaUVector
&
operator=
(
const
vpThetaUVector
&) =
default
;
228
#endif
229
230
#if (VISP_CXX_STANDARD >= VISP_CXX_STANDARD_11)
231
vpThetaUVector
&
operator=
(
const
std::initializer_list<double> &list);
232
#endif
233
234
private
:
235
static
const
double
minimum;
236
static
const
unsigned
int
constr_val_3;
237
238
};
239
END_VISP_NAMESPACE
240
#endif
vpColVector
Implementation of column vector and the associated operations.
Definition
vpColVector.h:191
vpHomogeneousMatrix
Implementation of an homogeneous matrix and operations on such kind of matrices.
Definition
vpHomogeneousMatrix.h:221
vpPoseVector
Implementation of a pose vector and operations on poses.
Definition
vpPoseVector.h:203
vpQuaternionVector
Implementation of a rotation vector as quaternion angle minimal representation.
Definition
vpQuaternionVector.h:106
vpRotationMatrix
Implementation of a rotation matrix and operations on such kind of matrices.
Definition
vpRotationMatrix.h:130
vpRotationVector
Implementation of a generic rotation vector.
Definition
vpRotationVector.h:103
vpRotationVector::operator=
vpRotationVector & operator=(const vpRotationVector &v)
Definition
vpRotationVector.h:134
vpRotationVector::vpRotationVector
vpRotationVector()
Constructor that constructs a 0-size rotation vector.
Definition
vpRotationVector.h:106
vpRotationVector::operator*
vpColVector operator*(double x) const
Definition
vpRotationVector.cpp:88
vpRxyzVector
Implementation of a rotation vector as Euler angle minimal representation.
Definition
vpRxyzVector.h:183
vpRzyxVector
Implementation of a rotation vector as Euler angle minimal representation.
Definition
vpRzyxVector.h:184
vpRzyzVector
Implementation of a rotation vector as Euler angle minimal representation.
Definition
vpRzyzVector.h:182
vpThetaUVector
Implementation of a rotation vector as axis-angle minimal representation.
Definition
vpThetaUVector.h:172
vpThetaUVector::~vpThetaUVector
virtual ~vpThetaUVector() VP_OVERRIDE=default
vpThetaUVector::vpThetaUVector
vpThetaUVector()
Definition
vpThetaUVector.cpp:50
vpThetaUVector::vpThetaUVector
vpThetaUVector(const vpThetaUVector &)=default
vpThetaUVector::operator=
vpThetaUVector & operator=(const vpThetaUVector &)=default
BEGIN_VISP_NAMESPACE
Definition
vpMbtDistanceCircle.cpp:55
modules
core
include
visp3
core
vpThetaUVector.h
Generated by
1.17.0