ChastePoint.hpp
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_