Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "polyTopoChange.H"
00027
00028
00029
00030 template <class T>
00031 void Foam::polyTopoChange::reorder
00032 (
00033 const labelList& oldToNew,
00034 DynamicList<T>& lst
00035 )
00036 {
00037
00038 DynamicList<T> oldLst(lst);
00039
00040 forAll(oldToNew, elemI)
00041 {
00042 label newElemI = oldToNew[elemI];
00043
00044 if (newElemI != -1)
00045 {
00046 lst[newElemI] = oldLst[elemI];
00047 }
00048 }
00049 }
00050
00051
00052 template <class T>
00053 void Foam::polyTopoChange::reorder
00054 (
00055 const labelList& oldToNew,
00056 List<DynamicList<T> >& lst
00057 )
00058 {
00059
00060 List<DynamicList<T> > oldLst(lst);
00061
00062 forAll(oldToNew, elemI)
00063 {
00064 label newElemI = oldToNew[elemI];
00065
00066 if (newElemI != -1)
00067 {
00068 lst[newElemI].transfer(oldLst[elemI]);
00069 }
00070 }
00071 }
00072
00073
00074 template <class T>
00075 void Foam::polyTopoChange::renumberKey
00076 (
00077 const labelList& oldToNew,
00078 Map<T>& elems
00079 )
00080 {
00081 Map<T> newElems(elems.size());
00082
00083 forAllConstIter(typename Map<T>, elems, iter)
00084 {
00085 label newElem = oldToNew[iter.key()];
00086
00087 if (newElem >= 0)
00088 {
00089 newElems.insert(newElem, iter());
00090 }
00091 }
00092
00093 elems.transfer(newElems);
00094 }
00095
00096
00097