00001 // This file is part of ff3d - http://www.freefem.org/ff3d 00002 // Copyright (C) 2001, 2002, 2003 Stéphane Del Pino 00003 00004 // This program is free software; you can redistribute it and/or modify 00005 // it under the terms of the GNU General Public License as published by 00006 // the Free Software Foundation; either version 2, or (at your option) 00007 // any later version. 00008 00009 // This program is distributed in the hope that it will be useful, 00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 // GNU General Public License for more details. 00013 00014 // You should have received a copy of the GNU General Public License 00015 // along with this program; if not, write to the Free Software Foundation, 00016 // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00017 00018 // $Id: Boundary.hpp,v 1.4 2004/08/28 08:28:03 delpinux Exp $ 00019 00020 #ifndef BOUNDARY_HPP 00021 #define BOUNDARY_HPP 00022 00023 #include <StreamCenter.hpp> 00024 00033 class Boundary 00034 { 00035 public: 00036 enum Type { 00037 povRay, 00038 structured3DMesh, 00039 surfaceMesh, 00040 references, 00041 list 00042 }; 00043 private: 00045 const Boundary::Type __type; 00046 00048 virtual void put(std::ostream& os) const = 0; 00049 00050 public: 00052 const Boundary::Type& type() const 00053 { 00054 return __type; 00055 } 00056 00058 friend std::ostream& operator << (std::ostream& os, 00059 const Boundary& B) 00060 { 00061 B.put(os); 00062 return os; 00063 } 00064 00066 Boundary(const Boundary& B) 00067 : __type(B.__type) 00068 { 00069 ; 00070 } 00071 00073 Boundary(const Boundary::Type aType) 00074 : __type(aType) 00075 { 00076 ; 00077 } 00078 00079 virtual ~Boundary() 00080 { 00081 ; 00082 } 00083 }; 00084 00085 #endif // BOUNDARY_HPP
1.5.6