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

Diff of /ff3d/solver/MeshSimplifier.cpp

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

revision 1.1 by delpinux, Sun Apr 27 16:57:38 2003 UTC revision 1.2 by delpinux, Sun Apr 27 20:48:11 2003 UTC
# Line 27  Line 27 
27  template <typename MeshType>  template <typename MeshType>
28  void MeshSimplifier::__proceed(const MeshType& m)  void MeshSimplifier::__proceed(const MeshType& m)
29  {  {
30    Connectivity<typename MeshType::ElementsGeometry>    typedef typename MeshType::ElementsGeometry ElementType;
31      connectivity(m.numberOfCells());  
32      Connectivity<ElementType> connectivity(m.numberOfCells());
33    
34      Vector<size_t> references(m.numberOfCells());
35      references = 0;
36    
37      std::set<size_t> toRemove;     /**< This element is to remove */
38    
39    ConnectivityBuilder<MeshType> connectivityBuilder(m, connectivity);    ConnectivityBuilder<MeshType> connectivityBuilder(m, connectivity);
40      for (size_t i=0; i<m.numberOfCells(); ++i) {
41        for (size_t j=0; j<ElementType::NumberOfNeighbours; ++j) {
42          if (m.cell(i).volume() < 0.2* (*connectivity(i)[j]).volume()) {
43            references[i] = 1;
44            toRemove.insert(i);
45          }
46        }
47      }
48    
49      ReferenceCounting<VerticesSet> vertices
50        = new VerticesSet(m.numberOfVertices());
51      for (size_t i=0; i<m.numberOfVertices(); ++i) {
52        (*vertices)[i] = m.vertex(i);
53      }
54    
55      ReferenceCounting<Vector<ElementType> > cells
56        = new Vector<ElementType>(m.numberOfCells());
57    
58      for (size_t i=0; i<m.numberOfCells(); ++i) {
59        const ElementType& C = m.cell(i);
60        (*cells)(i) = Triangle((*vertices)[m.vertexNumber(C(0))],
61                               (*vertices)[m.vertexNumber(C(1))],
62                               (*vertices)[m.vertexNumber(C(2))],
63                               references[i]);
64      }
65    
66    fferr(0) << __FILE__ << ':' << __LINE__ << ": Not implemented\n";    __mesh = new MeshType(vertices, cells);
   std::exit(1);  
67  }  }
68    
69  MeshSimplifier::MeshSimplifier(ReferenceCounting<Mesh> originalMesh)  MeshSimplifier::MeshSimplifier(ReferenceCounting<Mesh> originalMesh)

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

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