ENH: Tensor: access for vector component

This commit is contained in:
mattijs 2013-07-18 13:05:34 +01:00
parent 57db18c3a8
commit f35a8798d8
2 changed files with 25 additions and 7 deletions

View File

@ -152,11 +152,11 @@ public:
inline Cmpt& zz();
// Access vector components.
// Note: returning const only to find out lhs usage
inline const Vector<Cmpt> x() const;
inline const Vector<Cmpt> y() const;
inline const Vector<Cmpt> z() const;
inline Vector<Cmpt> x() const;
inline Vector<Cmpt> y() const;
inline Vector<Cmpt> z() const;
inline Vector<Cmpt> vectorComponent(const direction) const;
//- Transpose
inline Tensor<Cmpt> T() const;

View File

@ -118,24 +118,42 @@ inline Tensor<Cmpt>::Tensor(Istream& is)
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class Cmpt>
inline const Vector<Cmpt> Tensor<Cmpt>::x() const
inline Vector<Cmpt> Tensor<Cmpt>::x() const
{
return Vector<Cmpt>(this->v_[XX], this->v_[XY], this->v_[XZ]);
}
template<class Cmpt>
inline const Vector<Cmpt> Tensor<Cmpt>::y() const
inline Vector<Cmpt> Tensor<Cmpt>::y() const
{
return Vector<Cmpt>(this->v_[YX], this->v_[YY], this->v_[YZ]);
}
template<class Cmpt>
inline const Vector<Cmpt> Tensor<Cmpt>::z() const
inline Vector<Cmpt> Tensor<Cmpt>::z() const
{
return Vector<Cmpt>(this->v_[ZX], this->v_[ZY], this->v_[ZZ]);
}
template<class Cmpt>
inline Vector<Cmpt> Tensor<Cmpt>::vectorComponent(const direction cmpt) const
{
switch (cmpt)
{
case 0:
return x();
break;
case 1:
return y();
break;
case 2:
return z();
break;
}
}
template<class Cmpt>
inline const Cmpt& Tensor<Cmpt>::xx() const
{