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 <triSurface/triSurface.H>
00027
00028
00029
00030 namespace Foam
00031 {
00032
00033
00034
00035 void triSurface::writeSMESH(const bool writeSorted, Ostream& os) const
00036 {
00037 const pointField& ps = points();
00038
00039
00040 os << "# tetgen .smesh file" << endl
00041 << ps.size() << " 3" << endl;
00042
00043
00044 forAll(ps, pointi)
00045 {
00046 os << pointi << ' '
00047 << ps[pointi].x() << ' '
00048 << ps[pointi].y() << ' '
00049 << ps[pointi].z() << endl;
00050 }
00051
00052 if (writeSorted)
00053 {
00054 labelList faceMap;
00055
00056 surfacePatchList myPatches(calcPatches(faceMap));
00057
00058 os << size() << " 1" << endl;
00059
00060 label faceIndex = 0;
00061
00062 forAll(myPatches, patchI)
00063 {
00064
00065
00066 for
00067 (
00068 label patchFaceI = 0;
00069 patchFaceI < myPatches[patchI].size();
00070 patchFaceI++
00071 )
00072 {
00073 const label faceI = faceMap[faceIndex++];
00074
00075 os << "3 "
00076 << operator[](faceI)[0] << ' '
00077 << operator[](faceI)[1] << ' '
00078 << operator[](faceI)[2] << ' '
00079 << operator[](faceI).region()
00080 << endl;
00081 }
00082 }
00083
00084 os << '0' << endl
00085 << '0' << endl;
00086 }
00087 else
00088 {
00089 os << size() << " 1" << endl;
00090
00091 forAll(*this, faceI)
00092 {
00093 os << "3 "
00094 << operator[](faceI)[0] << ' '
00095 << operator[](faceI)[1] << ' '
00096 << operator[](faceI)[2] << ' '
00097 << operator[](faceI).region()
00098 << endl;
00099 }
00100
00101 os << '0' << endl
00102 << '0' << endl;
00103 }
00104 }
00105
00106
00107
00108
00109 }
00110
00111