Toroidal2dVertexMesh.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
00031
00032
00033
00034
00035
00036 #ifndef TOROIDAL2DVERTEXMESH_HPP_
00037 #define TOROIDAL2DVERTEXMESH_HPP_
00038
00039 #include "ChasteSerialization.hpp"
00040 #include <boost/serialization/base_object.hpp>
00041
00042 #include "MutableVertexMesh.hpp"
00043
00053 class Toroidal2dVertexMesh : public MutableVertexMesh<2,2>
00054 {
00055 friend class TestToroidal2dVertexMesh;
00056
00057 private:
00058
00060 double mWidth;
00061
00063 double mHeight;
00064
00066 friend class boost::serialization::access;
00077 template<class Archive>
00078 void serialize(Archive & archive, const unsigned int version)
00079 {
00080 archive & boost::serialization::base_object<MutableVertexMesh<2,2> >(*this);
00081 archive & mWidth;
00082 archive & mHeight;
00083 }
00084
00088 Toroidal2dVertexMesh();
00089
00090 public:
00091
00102 Toroidal2dVertexMesh(double width,
00103 double height,
00104 std::vector<Node<2>*> nodes,
00105 std::vector<VertexElement<2,2>*> vertexElements,
00106 double cellRearrangementThreshold=0.01,
00107 double t2Threshold=0.001);
00108
00112 ~Toroidal2dVertexMesh();
00113
00125 c_vector<double, 2> GetVectorFromAtoB(const c_vector<double, 2>& rLocation1, const c_vector<double, 2>& rLocation2);
00126
00136 void SetNode(unsigned nodeIndex, ChastePoint<2> point);
00137
00147 double GetWidth(const unsigned& rDimension) const;
00148
00156 unsigned AddNode(Node<2>* pNewNode);
00157
00165 MutableVertexMesh<2, 2>* GetMeshForVtk();
00166 };
00167
00168 #include "SerializationExportWrapper.hpp"
00169 CHASTE_CLASS_EXPORT(Toroidal2dVertexMesh)
00170
00171 #endif