mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-01 05:26:45 +08:00
minor regularization of vectors and matrices
This commit is contained in:
@@ -43,29 +43,31 @@ template <class ImplVector> void CVector3DBase<ImplVector>::fill(double value)
|
||||
this->m_k = value;
|
||||
}
|
||||
|
||||
/*
|
||||
* Element (return by reference)
|
||||
*/
|
||||
template <class ImplVector> double &CVector3DBase<ImplVector>::getElement(size_t row)
|
||||
{
|
||||
switch (row)
|
||||
{
|
||||
case 0:
|
||||
return this->m_i;
|
||||
case 1:
|
||||
return this->m_j;
|
||||
case 2:
|
||||
return this->m_k;
|
||||
default:
|
||||
Q_ASSERT_X(true, "getElement", "Detected invalid index in 3D vector");
|
||||
throw std::range_error("Detected invalid index in 3D vector");
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Element
|
||||
*/
|
||||
template <class ImplVector> double CVector3DBase<ImplVector>::getElement(size_t row) const
|
||||
{
|
||||
double d;
|
||||
switch (row)
|
||||
{
|
||||
case 0:
|
||||
d = this->m_i;
|
||||
break;
|
||||
case 1:
|
||||
d = this->m_j;
|
||||
break;
|
||||
case 2:
|
||||
d = this->m_k;
|
||||
break;
|
||||
default:
|
||||
Q_ASSERT_X(true, "getElement", "Detected invalid index in 3D vector");
|
||||
throw std::range_error("Detected invalid index in 3D vector");
|
||||
break;
|
||||
}
|
||||
return d;
|
||||
return const_cast<CVector3DBase<ImplVector>*>(this)->getElement(row);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -112,17 +114,6 @@ template <class ImplVector> double CVector3DBase<ImplVector>::dotProduct(const I
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Multiply with matrix
|
||||
*/
|
||||
template <class ImplVector> void CVector3DBase<ImplVector>::matrixMultiplication(const CMatrix3x3 &matrix)
|
||||
{
|
||||
CMatrix3x1 m = matrix * this->toMatrix3x1();
|
||||
this->m_i = m(0, 0);
|
||||
this->m_j = m(1, 0);
|
||||
this->m_k = m(2, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert to matrix
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user