Fix Vector4 constructors and clean up compiler errors

This commit is contained in:
Eryn Wells 2014-08-08 21:47:44 -07:00
parent 3bf72bd78d
commit 2cadffd7d4
4 changed files with 25 additions and 8 deletions

View file

@ -11,12 +11,14 @@
#include "basics/matrix.hh" #include "basics/matrix.hh"
#include "basics/types.hh" #include "basics/types.hh"
#include "basics/vector.hh"
namespace charles { namespace charles {
namespace basics { namespace basics {
typedef Matrix<4,4> Matrix4; /** A 4-square matrix */
typedef Matrix<4> Matrix4;
} /* namespace basics */ } /* namespace basics */
} /* namespace charles */ } /* namespace charles */

View file

@ -216,9 +216,9 @@ Matrix<N,M>::operator*(Matrix<M,P> rhs)
for (int j = 0; j < P; j++) { for (int j = 0; j < P; j++) {
/* Each cell is Sigma(k=0, M)(lhs[ik] * rhs[kj]) */ /* Each cell is Sigma(k=0, M)(lhs[ik] * rhs[kj]) */
const int ij = i*N + j; const int ij = i*N + j;
mCells[ij] = 0.0; mData[ij] = 0.0;
for (int k = 0; k < M; k++) { for (int k = 0; k < M; k++) {
result.mCells[ij] += mCells[i*N + k] * rhs.mCells[k*P + j]; result.mData[ij] += mData[i*N + k] * rhs.mData[k*P + j];
} }
} }
} }

View file

@ -9,10 +9,25 @@
namespace charles { namespace charles {
namespace basics { namespace basics {
/*
* charles::basics::Vector4::Vector4 --
*/
Vector4::Vector4() Vector4::Vector4()
: mCells({0.0, 0.0, 0.0, 1.0}) : Vector4(0, 0, 0)
{ { }
/*
* charles::basics::Vector4::Vector4 --
*/
Vector4::Vector4(const Double& x,
const Double& y,
const Double& z)
{
mData[0] = x;
mData[1] = y;
mData[2] = z;
mData[3] = 1.0;
} }

View file

@ -13,7 +13,7 @@
namespace charles { namespace charles {
namespace basics { namespace basics {
template<uint N> template<UInt N>
struct Vector struct Vector
: public Matrix<N,1> : public Matrix<N,1>
{ }; { };
@ -23,7 +23,7 @@ struct Vector4
: public Vector<4> : public Vector<4>
{ {
Vector4(); Vector4();
Vector4(Double x, Double y, Double z); Vector4(const Double& x, const Double& y, const Double& z);
Double& X(); Double& X();
Double& Y(); Double& Y();