forked from Archive/PX4-Autopilot
matrix: return value simplifications
This commit is contained in:
parent
44a8c553fb
commit
88102d82db
|
@ -40,8 +40,6 @@ template<typename Type>
|
||||||
class Dcm : public SquareMatrix<Type, 3>
|
class Dcm : public SquareMatrix<Type, 3>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
using Vector3 = Matrix<Type, 3, 1>;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Standard constructor
|
* Standard constructor
|
||||||
*
|
*
|
||||||
|
@ -159,14 +157,10 @@ public:
|
||||||
dcm = Quaternion<Type>(aa);
|
dcm = Quaternion<Type>(aa);
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector<Type, 3> vee() const // inverse to Vector.hat() operation
|
Vector3<Type> vee() const // inverse to Vector.hat() operation
|
||||||
{
|
{
|
||||||
const Dcm &A(*this);
|
const Dcm &A(*this);
|
||||||
Vector<Type, 3> v;
|
return {-A(1, 2), A(0, 2), -A(0, 1)};
|
||||||
v(0) = -A(1, 2);
|
|
||||||
v(1) = A(0, 2);
|
|
||||||
v(2) = -A(0, 1);
|
|
||||||
return v;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void renormalize()
|
void renormalize()
|
||||||
|
|
|
@ -114,10 +114,10 @@ public:
|
||||||
|
|
||||||
void renormalize()
|
void renormalize()
|
||||||
{
|
{
|
||||||
/* renormalize rows */
|
// renormalize rows
|
||||||
for (size_t r = 0; r < 2; r++) {
|
for (size_t r = 0; r < 2; r++) {
|
||||||
matrix::Vector2<Type> rvec(Matrix<Type, 1, 2>(this->Matrix<Type, 2, 2>::row(r)).transpose());
|
Vector2<Type> rvec(Matrix<Type, 1, 2>(this->row(r)).transpose());
|
||||||
this->Matrix<Type, 2, 2>::row(r) = rvec.normalized();
|
this->row(r) = rvec.normalized();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -440,13 +440,13 @@ public:
|
||||||
template<size_t P, size_t Q>
|
template<size_t P, size_t Q>
|
||||||
const Slice<Type, P, Q, M, N> slice(size_t x0, size_t y0) const
|
const Slice<Type, P, Q, M, N> slice(size_t x0, size_t y0) const
|
||||||
{
|
{
|
||||||
return Slice<Type, P, Q, M, N>(x0, y0, this);
|
return {x0, y0, this};
|
||||||
}
|
}
|
||||||
|
|
||||||
template<size_t P, size_t Q>
|
template<size_t P, size_t Q>
|
||||||
Slice<Type, P, Q, M, N> slice(size_t x0, size_t y0)
|
Slice<Type, P, Q, M, N> slice(size_t x0, size_t y0)
|
||||||
{
|
{
|
||||||
return Slice<Type, P, Q, M, N>(x0, y0, this);
|
return {x0, y0, this};
|
||||||
}
|
}
|
||||||
|
|
||||||
const Slice<Type, 1, N, M, N> row(size_t i) const
|
const Slice<Type, 1, N, M, N> row(size_t i) const
|
||||||
|
|
|
@ -57,13 +57,13 @@ public:
|
||||||
template<size_t P, size_t Q>
|
template<size_t P, size_t Q>
|
||||||
const Slice<Type, P, Q, M, M> slice(size_t x0, size_t y0) const
|
const Slice<Type, P, Q, M, M> slice(size_t x0, size_t y0) const
|
||||||
{
|
{
|
||||||
return Slice<Type, P, Q, M, M>(x0, y0, this);
|
return {x0, y0, this};
|
||||||
}
|
}
|
||||||
|
|
||||||
template<size_t P, size_t Q>
|
template<size_t P, size_t Q>
|
||||||
Slice<Type, P, Q, M, M> slice(size_t x0, size_t y0)
|
Slice<Type, P, Q, M, M> slice(size_t x0, size_t y0)
|
||||||
{
|
{
|
||||||
return Slice<Type, P, Q, M, M>(x0, y0, this);
|
return {x0, y0, this};
|
||||||
}
|
}
|
||||||
|
|
||||||
// inverse alias
|
// inverse alias
|
||||||
|
|
|
@ -103,30 +103,16 @@ public:
|
||||||
return (*this).cross(b);
|
return (*this).cross(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Override vector ops so Vector3 type is returned
|
|
||||||
*/
|
|
||||||
inline Vector3 unit() const
|
|
||||||
{
|
|
||||||
return Vector3(Vector<Type, 3>::unit());
|
|
||||||
}
|
|
||||||
|
|
||||||
inline Vector3 normalized() const
|
|
||||||
{
|
|
||||||
return unit();
|
|
||||||
}
|
|
||||||
|
|
||||||
const Slice<Type, 2, 1, 3, 1> xy() const
|
const Slice<Type, 2, 1, 3, 1> xy() const
|
||||||
{
|
{
|
||||||
return Slice<Type, 2, 1, 3, 1>(0, 0, this);
|
return {0, 0, this};
|
||||||
}
|
}
|
||||||
|
|
||||||
Slice<Type, 2, 1, 3, 1> xy()
|
Slice<Type, 2, 1, 3, 1> xy()
|
||||||
{
|
{
|
||||||
return Slice<Type, 2, 1, 3, 1>(0, 0, this);
|
return {0, 0, this};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Dcm<Type> hat() const // inverse to Dcm.vee() operation
|
Dcm<Type> hat() const // inverse to Dcm.vee() operation
|
||||||
{
|
{
|
||||||
const Vector3 &v(*this);
|
const Vector3 &v(*this);
|
||||||
|
|
Loading…
Reference in New Issue