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

island0.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_INITIALCURVES_ISLAND0_HXX
00021 
00022 
00023 #include "../errors.cxx"
00024 #include <stdio.h>
00025 #include <math.h>
00026 
00027 
00028 namespace Multivac
00029 {
00030 
00031 
00032 
00034   // CISLAND0 //
00036 
00041   template <class T>
00042   class CIsland0: public CInitialCurve<T>
00043   {
00044 
00045 
00046     /**************
00047      * ATTRIBUTES *
00048      **************/
00049 
00050   protected:
00051 
00052     T CenterX1;
00053     T CenterY1;
00054     T CenterX2;
00055     T CenterY2;
00056     T CenterX3;
00057     T CenterY3;
00058 
00059     T Radius1;
00060     T Radius2;
00061     T Radius3;
00062 
00063 
00064     /*****************************
00065      * CONSTRUCTORS & DESTRUCTOR *
00066      *****************************/
00067 
00068   public:
00069 
00070     CIsland0()  throw();
00071     CIsland0(T CenterX1_, T CenterY1_, T Radius1_,
00072              T CenterX2_, T CenterY2_, T Radius2_,
00073              T CenterX3_, T CenterY3_, T Radius3_,
00074              bool reversed_ = false)  throw();
00075 
00076     ~CIsland0()  throw();
00077 
00078 
00079     /***********
00080      * METHODS *
00081      ***********/
00082     
00083   public:
00084   
00085     virtual void SetDistances(CMesh<T>& Mesh, CLevelSet<T>& Phi);
00086     virtual T GetDistance(T x, T y);
00087 
00088     virtual void GetProjectionOnMesh(T& x, T& y, CMesh<T>& Mesh);
00089 
00090     virtual void Save(string CurveFile) const;
00091 
00092   };  // CIsland0.
00093 
00094 
00095 }  // namespace Multivac.
00096 
00097 
00098 #define FILE_INITIALCURVES_ISLAND0_HXX
00099 #endif

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