47 bool triSurface::readTRI(
const fileName& TRIfileName)
49 IFstream TRIfile(TRIfileName);
54 <<
"Cannot read file " << TRIfileName
58 SLList<STLpoint> STLpoints;
59 SLList<label> STLlabels;
60 HashTable<label, string> STLsolidNames;
67 string line = getLineNoComment(TRIfile);
74 IStringStream lineStream(line);
83 if (!lineStream)
break;
110 word rawSolidName(lineStream);
112 word solidName(
"patch" + rawSolidName(1, rawSolidName.size()-1));
116 HashTable<label, string>::const_iterator findName =
117 STLsolidNames.find(solidName);
119 if (findName != STLsolidNames.end())
125 Pout<<
"Mapping triangle colour 0" << rawSolidName
126 <<
" to region " << maxRegion <<
" name " << solidName
129 region = maxRegion++;
130 STLsolidNames.insert(solidName, region);
132 STLlabels.append(region);
141 SLList<STLpoint>::iterator iter = STLpoints.begin();
142 iter != STLpoints.end();
146 rawPoints[i++] = *iter;
162 stitchTriangles(rawPoints);
167 patches_.
setSize(names.size());
171 patches_[nameI].name() = names[nameI];
172 patches_[nameI].geometricType() =
"empty";