From da127ccde3a7e237b2ae44f547486534a1175b12 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Fri, 8 Aug 2014 21:12:37 -0700 Subject: [PATCH] Vector4 subclass instead of typedef --- src/basics/vector.cc | 50 ++++++++++++++++++++++++++++++++++++++++++++ src/basics/vector.hh | 11 +++++++++- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 src/basics/vector.cc 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 */