/[ff3d]/ff3d/solver/SurfaceMeshGenerator.cpp
ViewVC logotype

Diff of /ff3d/solver/SurfaceMeshGenerator.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.47 by dobj, Wed Oct 8 15:49:11 2003 UTC revision 1.48 by delpinux, Wed Oct 8 17:11:08 2003 UTC
# Line 328  private: Line 328  private:
328    
329    bool __createTriangleSurface(VerticesList& verticesListes,    bool __createTriangleSurface(VerticesList& verticesListes,
330                                 EdgePairList& localTriangleList,                                 EdgePairList& localTriangleList,
                                EdgesRef& edgesRef,  
331                                 const Shape& S ,                                 const Shape& S ,
332                                 std::vector<const Edge*>& cutEdges,                                 std::vector<const Edge*>& cutEdges,
333                                 const Cell& currentCell,                                 const Cell& currentCell,
# Line 339  private: Line 338  private:
338                         EdgePairList& triangleListes,                         EdgePairList& triangleListes,
339                         EdgePairList& localTriangleListesEdges,                         EdgePairList& localTriangleListesEdges,
340                         VerticesList& verticesListes,                         VerticesList& verticesListes,
                        EdgesRef& edgesRef,  
341                         MotherCellList& cellListObject);                         MotherCellList& cellListObject);
342    
343    bool __isDegenerate(const Triangle& T);    bool __isDegenerate(const Triangle& T);
# Line 2494  __createTrianglesIntersection(const size Line 2492  __createTrianglesIntersection(const size
2492  bool SurfaceMeshGenerator::Internals::  bool SurfaceMeshGenerator::Internals::
2493  __createTriangleSurface(VerticesList& verticesListes,  __createTriangleSurface(VerticesList& verticesListes,
2494                          EdgePairList& localTriangleList,                          EdgePairList& localTriangleList,
                         EdgesRef& edgesRef,  
2495                          const Shape& S ,                          const Shape& S ,
2496                          std::vector<const Edge*>& cutEdges,                          std::vector<const Edge*>& cutEdges,
2497                          const Cell& currentCell,                          const Cell& currentCell,
# Line 2509  __createTriangleSurface(VerticesList& ve Line 2506  __createTriangleSurface(VerticesList& ve
2506        TinyVector<3> V=__splitEdge(*cutEdges[i], S);        TinyVector<3> V=__splitEdge(*cutEdges[i], S);
2507        verticesListes[*cutEdges[i]]        verticesListes[*cutEdges[i]]
2508          =  new Vertex(V);          =  new Vertex(V);
       edgesRef[*cutEdges[i]] = 1;  
2509      }      }
2510            
2511      //! Addes a triangle to the list.      //! Addes a triangle to the list.
# Line 2546  __createTriangleSurface(VerticesList& ve Line 2542  __createTriangleSurface(VerticesList& ve
2542        TinyVector<3> V=__splitEdge(*cutEdges[i], S);        TinyVector<3> V=__splitEdge(*cutEdges[i], S);
2543        verticesListes[*cutEdges[i]]        verticesListes[*cutEdges[i]]
2544          =  new Vertex(V);          =  new Vertex(V);
       edgesRef[*cutEdges[i]] = 1;  
2545      }      }
2546            
2547      //! Orders the Edges using a map !      //! Orders the Edges using a map !
# Line 2627  __createSurface(Structured3DMesh& SMesh, Line 2622  __createSurface(Structured3DMesh& SMesh,
2622                  EdgePairList& triangleListes,                  EdgePairList& triangleListes,
2623                  EdgePairList& localTriangleListesEdges,                  EdgePairList& localTriangleListesEdges,
2624                  VerticesList& verticesListes,                  VerticesList& verticesListes,
                 EdgesRef& edgesRef,  
2625                  MotherCellList& cellListObject)                  MotherCellList& cellListObject)
2626  {  {
2627      Vector<unsigned> references(SMesh.nbEdges());
2628    
2629      for (unsigned i=0; i<references.size(); ++i) {
2630        Edge& e = SMesh.edge(i);
2631        references[i] = e.reference();
2632        e.reference() = 0;
2633      }
2634    
2635    EdgePairList localTriangleList;    EdgePairList localTriangleList;
2636    
2637    
2638    for (size_t i = 0; i<SMesh.nbEdges(); i++) {    for (size_t i = 0; i<SMesh.nbEdges(); i++) {
2639      Edge& e = SMesh.edge(i);      Edge& e = SMesh.edge(i);
2640  #warning THIS TEST IS NOT ENOUGH! THINK TO THE BORDER!  #warning THIS TEST IS NOT ENOUGH! THINK TO THE BORDER!
2641      if(e(0).reference() != e(1).reference()) {      if(e(0).reference() != e(1).reference()) {
2642        verticesListes[e] = new Vertex(__splitEdge(e, S));        verticesListes[e] = new Vertex(__splitEdge(e, S));
2643        edgesRef[e] = 1;        e.reference() = 1;
2644      }      }
2645    }    }
2646            
# Line 2735  __createSurface(Structured3DMesh& SMesh, Line 2738  __createSurface(Structured3DMesh& SMesh,
2738                  Edge& e = (*currentAddedEdge);                  Edge& e = (*currentAddedEdge);
2739                  if (e(0).reference() != e(1).reference()) {                  if (e(0).reference() != e(1).reference()) {
2740                    e.reference() = 1;                    e.reference() = 1;
                   edgesRef[e] = 1;  
2741                  }                  }
2742                  currentAddedEdge++;                  currentAddedEdge++;
2743                }                }
# Line 2825  __createSurface(Structured3DMesh& SMesh, Line 2827  __createSurface(Structured3DMesh& SMesh,
2827                            
2828              for(size_t ie=0; ie<6; ++ie) {              for(size_t ie=0; ie<6; ++ie) {
2829                const Edge& e = currentT->edge(ie);                const Edge& e = currentT->edge(ie);
2830                if (edgesRef.find(e) != edgesRef.end()) {                if (e.reference() == 1) {
2831                  cutEdges.push_back(&e);                  cutEdges.push_back(&e);
2832                }                }
2833              }              }
2834                
2835              bool jobDone2=__createTriangleSurface(verticesListes,              bool jobDone2=__createTriangleSurface(verticesListes,
2836                                                    localTriangleList,                                                    localTriangleList,
                                                   edgesRef,  
2837                                                    S, cutEdges,                                                    S, cutEdges,
2838                                                    currentCell,                                                    currentCell,
2839                                                    cellList);                                                    cellList);
# Line 2867  __createSurface(Structured3DMesh& SMesh, Line 2868  __createSurface(Structured3DMesh& SMesh,
2868        }        }
2869      }      }
2870    }    }
2871    
2872      for (unsigned i=0; i<references.size(); ++i) {
2873        SMesh.edge(i).reference() = references[i];
2874      }
2875  }  }
2876    
2877  void  void
# Line 3187  __marchingTetrahedra(Structured3DMesh& S Line 3192  __marchingTetrahedra(Structured3DMesh& S
3192    EdgePairList triangleListes;    EdgePairList triangleListes;
3193    EdgePairList localTriangleListesEdges;    EdgePairList localTriangleListesEdges;
3194    VerticesList verticesListes;    VerticesList verticesListes;
   EdgesRef edgesRef;  
3195    MotherCellList cellListObject;    MotherCellList cellListObject;
3196    
3197    SMesh.createReferences(*(O.shape()));    SMesh.createReferences(*(O.shape()));
3198    
3199    __createSurface(SMesh, *(O.shape()), triangleListes, localTriangleListesEdges,    __createSurface(SMesh, *(O.shape()), triangleListes, localTriangleListesEdges,
3200                    verticesListes, edgesRef, cellListObject);                    verticesListes, cellListObject);
3201    
3202    __dataStructureConvertion(O, triangleListes, verticesListes, cellListObject);    __dataStructureConvertion(O, triangleListes, verticesListes, cellListObject);
3203    ffout(3) << " done\n";    ffout(3) << " done\n";

Legend:
Removed from v.1.47  
changed lines
  Added in v.1.48

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26