00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef _CHASTEPOINT_HPP_
00031 #define _CHASTEPOINT_HPP_
00032
00033 #include "UblasVectorInclude.hpp"
00034
00035 #include <vector>
00036
00037 #include "Exception.hpp"
00038
00042 template<unsigned DIM>
00043 class ChastePoint
00044 {
00045 private:
00046
00048 c_vector<double, DIM> mLocation;
00049
00050 public:
00051
00066 ChastePoint(double v1=0, double v2=0, double v3=0);
00067
00075 ChastePoint(std::vector<double> coords);
00076
00082 ChastePoint(c_vector<double, DIM> location);
00083
00087 c_vector<double, DIM>& rGetLocation();
00088
00094 double operator[] (unsigned i) const;
00095
00102 void SetCoordinate(unsigned i, double value);
00103
00104 };
00105
00109 template<>
00110 class ChastePoint<0>
00111 {
00112 public:
00113
00122 ChastePoint(double v1=0, double v2=0, double v3=0)
00123 {
00124 }
00125
00131 double operator[] (unsigned i) const
00132 {
00133 EXCEPTION("Zero-dimensional point has no data");
00134 }
00135 };
00136
00137
00138 #endif //_CHASTEPOINT_HPP_