00001 // This file is part of ff3d - http://www.freefem.org/ff3d 00002 // Copyright (C) 2001, 2002, 2003, 2004, 2005 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: VerticesCorrespondance.hpp,v 1.1 2005/01/29 20:20:33 delpinux Exp $ 00019 00020 #ifndef VERTICES_CORRESPONDANCE_HPP 00021 #define VERTICES_CORRESPONDANCE_HPP 00022 00023 #include <ReferenceCounting.hpp> 00024 #include <Vector.hpp> 00025 00037 class VerticesCorrespondance 00038 { 00039 private: 00044 const size_t __numberOfCorrespondances; 00045 00047 ReferenceCounting <Vector<size_t> > __pVerticesNumbers; 00048 00050 Vector<size_t>& __verticesNumbers; 00051 00052 public: 00058 const size_t& numberOfCorrespondances() const 00059 { 00060 return __numberOfCorrespondances; 00061 } 00062 00070 inline const size_t& operator[] (const size_t& i) const 00071 { 00072 return __verticesNumbers[i]; 00073 } 00074 00082 inline size_t& operator[] (const size_t& i) 00083 { 00084 return __verticesNumbers[i]; 00085 } 00086 00093 VerticesCorrespondance(const size_t& nbVertices) 00094 : __numberOfCorrespondances(nbVertices), 00095 __pVerticesNumbers(new Vector<size_t>(nbVertices)), 00096 __verticesNumbers(*__pVerticesNumbers) 00097 { 00098 for (size_t i=0; i<nbVertices; ++i) { 00099 __verticesNumbers[i] = i; 00100 } 00101 } 00102 00109 VerticesCorrespondance(const size_t& nbCorrespondances, 00110 ReferenceCounting<Vector<size_t> > verticesNumbers) 00111 : __numberOfCorrespondances(nbCorrespondances), 00112 __pVerticesNumbers(verticesNumbers), 00113 __verticesNumbers(*__pVerticesNumbers) 00114 { 00115 ; 00116 } 00117 00123 VerticesCorrespondance(const VerticesCorrespondance& v) 00124 : __numberOfCorrespondances(v.__numberOfCorrespondances), 00125 __pVerticesNumbers(new Vector<size_t>(v.__verticesNumbers)), 00126 __verticesNumbers(*__pVerticesNumbers) 00127 { 00128 ; 00129 } 00130 00135 ~VerticesCorrespondance() 00136 { 00137 ; 00138 } 00139 }; 00140 00141 #endif // VERTICES_CORRESPONDANCE_HPP
1.5.6