Vector4 subclass instead of typedef

This commit is contained in:
Eryn Wells 2014-08-08 21:12:37 -07:00
parent 2b9fec5d82
commit da127ccde3
2 changed files with 60 additions and 1 deletions

50
src/basics/vector.cc Normal file
View file

@ -0,0 +1,50 @@
/* vector.cc
* vim: set tw=80:
* Eryn Wells <eryn@erynwells.me>
*/
#include "basics/vector.hh"
namespace charles {
namespace basics {
Vector4::Vector4()
: mCells({0.0, 0.0, 0.0, 1.0})
{
}
/*
* charles::basics::Vector4::X --
*/
Double&
Vector4::X()
{
return mData[0];
}
/*
* charles::basics::Vector4::Y --
*/
Double&
Vector4::Y()
{
return mData[1];
}
/*
* charles::basics::Vector4::Z --
*/
Double&
Vector4::Z()
{
return mData[2];
}
} /* namespace basics */
} /* namespace charles */

View file

@ -19,7 +19,16 @@ struct Vector
{ };
typedef Vector<4> Vector4;
struct Vector4
: public Vector<4>
{
Vector4();
Vector4(Double x, Double y, Double z);
Double& X();
Double& Y();
Double& Z();
};
} /* namespace basics */
} /* namespace charles */