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
00110 bool IsSamePoint(const ChastePoint<DIM>& rPoint) const;
00111 };
00112
00116 template<>
00117 class ChastePoint<0>
00118 {
00119 public:
00120
00129 ChastePoint(double v1=0, double v2=0, double v3=0)
00130 {
00131 }
00132
00138 double operator[] (unsigned i) const
00139 {
00140 EXCEPTION("Zero-dimensional point has no data");
00141 }
00142 };
00143
00144
00145 #endif //_CHASTEPOINT_HPP_