![]() |
00001 // Copyright (C) 2003 Johan Hoffman and Anders Logg. 00002 // Licensed under the GNU GPL Version 00003 00004 #ifndef __TRI_MESH_REFINEMENT_H 00005 #define __TRI_MESH_REFINEMENT_H 00006 00007 #include <dolfin/MeshRefinement.h> 00008 00009 namespace dolfin { 00010 00011 class Mesh; 00012 class Cell; 00013 00017 00018 class TriMeshRefinement : public MeshRefinement { 00019 public: 00020 00022 static bool checkRule(Cell& cell, int no_marked_edges); 00023 00025 static void refine(Cell& cell, Mesh& mesh); 00026 00027 // Friends 00028 friend class MeshRefinement; 00029 00030 private: 00031 00032 static bool checkRuleRegular (Cell& cell, int no_marked_edges); 00033 static bool checkRuleIrregular1(Cell& cell, int no_marked_edges); 00034 static bool checkRuleIrregular2(Cell& cell, int no_marked_edges); 00035 00036 static void refineNoRefine (Cell& cell, Mesh& mesh); 00037 static void refineRegular (Cell& cell, Mesh& mesh); 00038 static void refineIrregular1(Cell& cell, Mesh& mesh); 00039 static void refineIrregular2(Cell& cell, Mesh& mesh); 00040 00041 static Cell& createCell(Node& n0, Node& n1, Node& n2, Mesh& mesh, 00042 Cell& cell); 00043 00044 }; 00045 00046 } 00047 00048 #endif
Documentation automatically generated with Doxygen on 10 Sep 2004.