00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef FILE_SAVER_TRACK_HXX
00021
00022
00023 #include "../errors.cxx"
00024 #include <stdio.h>
00025
00026
00027 namespace Multivac
00028 {
00029
00030
00032
00034
00036
00039 template <class T>
00040 class CTrack: public CSaver<T>
00041 {
00042
00043
00044
00045
00046
00047
00048 protected:
00050 List<Curve<T> > Fronts;
00052 Curve<T> Path;
00053
00054
00055
00056
00057
00058
00059 public:
00060
00061 CTrack() throw();
00062 CTrack(string TimeFileName, string CurvesFileName,
00063 string CurveLengthsFileName, string PhiFileName,
00064 string FFileName, string XFileName, string YFileName,
00065 string PointsFileName, string EdgesFileName,
00066 string TrianglesFileName, int Period_);
00067
00068 ~CTrack() throw();
00069
00070
00071
00072
00073
00074
00075 public:
00076
00077 virtual void SaveAtTheBeginning(CMesh<T>& Mesh,
00078 CSpeedFunction<T>& F,
00079 CLevelSet<T>& Phi,
00080 CInitializer<T>& Initializer);
00081 virtual void SaveAtCurrentIteration(CMesh<T>& Mesh,
00082 CSpeedFunction<T>& F,
00083 CLevelSet<T>& Phi,
00084 T time, int iter,
00085 CInitializer<T>& Initializer);
00086 virtual void SaveAtTheEnd(CMesh<T>& Mesh,
00087 CSpeedFunction<T>& F,
00088 CLevelSet<T>& Phi,
00089 Vector<T>& time,
00090 int iter,
00091 CInitializer<T>& Initializer);
00092
00093 void FindPath(Vector<T>& X);
00094
00095 };
00096
00097
00098 }
00099
00100
00101 #define FILE_SAVER_TRACK_HXX
00102 #endif