minor regularization of vectors and matrices

This commit is contained in:
Mathew Sutcliffe
2013-08-19 17:44:33 +01:00
parent f9f35f27d5
commit 5f267e8245
9 changed files with 72 additions and 177 deletions

View File

@@ -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
*/