diff --git a/src/basics/vector.cc b/src/basics/vector.cc new file mode 100644 index 0000000..31842b8 --- /dev/null +++ b/src/basics/vector.cc @@ -0,0 +1,50 @@ +/* vector.cc + * vim: set tw=80: + * Eryn Wells + */ + +#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 */ + diff --git a/src/basics/vector.hh b/src/basics/vector.hh index b16c103..c383b19 100644 --- a/src/basics/vector.hh +++ b/src/basics/vector.hh @@ -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 */