Main Page | User's guide | Class Hierarchy | Class List | File List | Class Members

narrowbandneverinit.hxx

00001 // Copyright (C) 2002-2004 Vivien Mallet
00002 //
00003 // This file is part of Multivac library.
00004 // Multivac library provides front-tracking algorithms.
00005 // 
00006 // Multivac is free software; you can redistribute it and/or modify
00007 // it under the terms of the GNU General Public License as published by
00008 // the Free Software Foundation; either version 2 of the License, or
00009 // (at your option) any later version.
00010 // 
00011 // Multivac is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 // GNU General Public License (file "license") for more details.
00015 //
00016 // For more information, please see the Multivac home page:
00017 //     http://spacetown.free.fr/fronts/
00018 
00019 
00020 #ifndef FILE_INITIALIZER_NARROWBANDNEVERINIT_HXX
00021 
00022 
00023 #include "../errors.cxx"
00024 #include <stdio.h>
00025 
00026 
00027 namespace Multivac
00028 {
00029 
00030 
00032   // CNEVERINIT //
00034 
00038 
00049   template <class T>
00050   class CNarrowBandNeverInit: public CInitializer<T>
00051   {
00052 
00053 
00054     /**************
00055      * ATTRIBUTES *
00056      **************/
00057 
00058   protected:
00059 
00060 
00061     /*****************************
00062      * CONSTRUCTORS & DESTRUCTOR *
00063      *****************************/
00064 
00065   public:
00066 
00067     CNarrowBandNeverInit()  throw();
00068 
00069     ~CNarrowBandNeverInit()  throw();
00070 
00071 
00072     /***********
00073      * METHODS *
00074      ***********/
00075     
00076   public:
00077   
00078     virtual bool IsNarrowBand() const;
00079     virtual bool IsFastMarching() const;
00080   
00081     virtual void FirstInitMesh(CMesh<T>& Mesh) const;
00082     virtual void FirstInitInitialCurve(CMesh<T>& Mesh,
00083                                        CInitialCurve<T>& InitialCurve) const;
00084     virtual void FirstInitPhiAndF(CMesh<T>& Mesh,
00085                                   CInitialCurve<T>& InitialCurve,
00086                                   CLevelSet<T>& Phi,
00087                                   CSpeedFunction<T>& F,
00088                                   CUpdater<T>& Updater);
00089 
00090     virtual void InitMesh(int iter, CMesh<T>& Mesh,
00091                           CLevelSet<T>& Phi, CSpeedFunction<T>& F,
00092                           CUpdater<T>& Updater, T CurrentTime) const;
00093     virtual void InitPhiAndF(int iter, CMesh<T>& Mesh,
00094                              CLevelSet<T>& Phi, CSpeedFunction<T>& F,
00095                              CUpdater<T>& Updater, T CurrentTime);
00096     virtual void InitPhi(int iter, CMesh<T>& Mesh,
00097                          CLevelSet<T>& Phi, CUpdater<T>& Updater);
00098     virtual void InitF(CMesh<T>& Mesh, Vector<List<Vector<int> >, Vect_Full, NewAlloc<List<Vector<int> > > >& Tube,
00099                        CLevelSet<T>& Phi, T CurrentTime,
00100                        CSpeedFunction<T>& F);
00101 
00102     virtual void BuildCurveForDisplay(int iter, CMesh<T>& Mesh, CLevelSet<T>& Phi);
00103 
00104   };  // CCNarrowBandNeverInit.
00105 
00106 
00107 }  // namespace Multivac.
00108 
00109 
00110 #define FILE_INITIALIZER_NARROWBANDNEVERINIT_HXX
00111 #endif

Generated on Mon Apr 19 01:59:14 2004 for Multivac by doxygen 1.3.6-20040222