42 #include <visp3/core/vpRzyzVector.h> 94 if ((fabs(R[1][2]) < 1e-6) && (fabs(R[0][2]) < 1e-6))
97 phi = atan2(R[1][2], R[0][2]);
98 double cphi = cos(phi);
99 double sphi = sin(phi);
101 double theta = atan2(cphi * R[0][2] + sphi * R[1][2], R[2][2]);
103 double psi = atan2(-sphi * R[0][0] + cphi * R[1][0], -sphi * R[0][1] + cphi * R[1][1]);
130 if (rzyz.
size() != 3) {
134 for (
unsigned int i = 0; i < 3; i++)
145 if (rzyz.size() != 3) {
149 for (
unsigned int i = 0; i < 3; i++)
176 for (
unsigned int i = 0; i <
dsize; i++)
220 if (rzyz.
size() != 3) {
224 for (
unsigned int i = 0; i < 3; i++)
230 #if (VISP_CXX_STANDARD >= VISP_CXX_STANDARD_11) 250 if (list.size() >
size()) {
253 "Cannot set Euler x-y-z vector out of bounds. It has only %d values while you try to initialize with %d values",
254 size(), list.size()));
256 std::copy(list.begin(), list.end(),
data);
Implementation of a generic rotation vector.
vpRzyzVector buildFrom(const vpRotationMatrix &R)
error that can be emited by ViSP classes.
double * data
Address of the first element of the data array.
unsigned int size() const
Return the number of elements of the 2D array.
Implementation of a rotation matrix and operations on such kind of matrices.
vpRotationMatrix buildFrom(const vpHomogeneousMatrix &M)
Implementation of column vector and the associated operations.
unsigned int dsize
Current array size (rowNum * colNum)
Implementation of a rotation vector as Euler angle minimal representation.
Implementation of a rotation vector as axis-angle minimal representation.
vpRzyzVector & operator=(const vpColVector &rzyz)