268{
269
270
271 SoTessellated * soTessellated = new SoTessellated;
272 for(
size_t i=0;
i<geoTessellated->getNumberOfFacets();++
i) {
273 GeoFacet* facet = geoTessellated->getFacet(i);
274 if(facet->getNumberOfVertices()==3) {
275 if(facet->getVertexType()==GeoFacet::ABSOLUTE)
276 soTessellated->
addTriangularFacet(facet->getVertex(0).x(),facet->getVertex(0).y(),facet->getVertex(0).z(),
277 facet->getVertex(1).x(),facet->getVertex(1).y(),facet->getVertex(1).z(),
278 facet->getVertex(2).x(),facet->getVertex(2).y(),facet->getVertex(2).z());
279 else
280 soTessellated->
addTriangularFacet(facet->getVertex(0).x(),facet->getVertex(0).y(),facet->getVertex(0).z(),
281 facet->getVertex(0).x()+facet->getVertex(1).x(),
282 facet->getVertex(0).y()+facet->getVertex(1).y(),
283 facet->getVertex(0).z()+facet->getVertex(1).z(),
284 facet->getVertex(0).x()+facet->getVertex(2).x(),
285 facet->getVertex(0).y()+facet->getVertex(2).y(),
286 facet->getVertex(0).z()+facet->getVertex(2).z());
287 }
288 else {
289 if(facet->getVertexType()==GeoFacet::ABSOLUTE)
290 soTessellated->
addQuadrangularFacet(facet->getVertex(0).x(),facet->getVertex(0).y(),facet->getVertex(0).z(),
291 facet->getVertex(1).x(),facet->getVertex(1).y(),facet->getVertex(1).z(),
292 facet->getVertex(2).x(),facet->getVertex(2).y(),facet->getVertex(2).z(),
293 facet->getVertex(3).x(),facet->getVertex(3).y(),facet->getVertex(3).z());
294 else
295 soTessellated->
addQuadrangularFacet(facet->getVertex(0).x(),facet->getVertex(0).y(),facet->getVertex(0).z(),
296 facet->getVertex(0).x()+facet->getVertex(1).x(),
297 facet->getVertex(0).y()+facet->getVertex(1).y(),
298 facet->getVertex(0).z()+facet->getVertex(1).z(),
299 facet->getVertex(0).x()+facet->getVertex(2).x(),
300 facet->getVertex(0).y()+facet->getVertex(2).y(),
301 facet->getVertex(0).z()+facet->getVertex(2).z(),
302 facet->getVertex(0).x()+facet->getVertex(3).x(),
303 facet->getVertex(0).y()+facet->getVertex(3).y(),
304 facet->getVertex(0).z()+facet->getVertex(3).z());
305
306 }
307 }
310}
void addTriangularFacet(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3)
void addQuadrangularFacet(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3, double x4, double y4, double z4)