00001 // -*- C++ -*- 00002 00008 // CONTINUE: Use the medial axis to get information on the local feature size. 00009 // Check out papers by Marshal Bern. 00010 00011 /* CONTINUE: Move this documentation to a refinement page. 00012 There are three ways to use the refinement and coarsening operations: 00013 - Specify a maximum/minimum allowed edge length function. 00014 - Specify a set of cells. 00015 - Specify an element quality criterion. This can be used in conjuction 00016 with the edge length function. One can specify a <em>minimum allowed 00017 element quality</em> (split or collapse only when the resulting elements meet 00018 the specified minimum quality) and/or a <em>quality factor</em> (proceed 00019 only when the quality of the resulting elements is no less that the quality 00020 of the initial elements times the factor). 00021 */ 00022 00023 00024 //---------------------------------------------------------------------------- 00043 //---------------------------------------------------------------------------- 00150 //---------------------------------------------------------------------------- 00272 //---------------------------------------------------------------------------- 00300 //---------------------------------------------------------------------------- 00315 //---------------------------------------------------------------------------- 00431 //---------------------------------------------------------------------------- 00520 //---------------------------------------------------------------------------- 00549 //--------------------------------------------------------------------------- 00670 //--------------------------------------------------------------------------- 00761 //--------------------------------------------------------------------------- 00828 //--------------------------------------------------------------------------- 00925 //---------------------------------------------------------------------------- 01003 //---------------------------------------------------------------------------- 01004 // CONTINUE: Update this after I revert geomOptBoundaryCondition to the old 01005 // method. 01127 //---------------------------------------------------------------------------- 01199 #if !defined(__geom_mesh_h__) 01200 #define __geom_mesh_h__ 01201 01202 #include "mesh/iss.h" 01203 #include "mesh/simplex.h" 01204 #include "mesh/simplicial.h" 01205 #include "mesh/structured_grid.h" 01206 #include "mesh/tetrahedral.h" 01207 01208 BEGIN_NAMESPACE_GEOM 01209 01210 //----------------------------------------------------------------------------- 01218 01219 // CONTINUE: I will probably abandon the API and remove these functions. 01220 01222 template<int N, int M, typename T> 01223 inline 01224 void 01225 readAscii(std::istream& in, IndSimpSet<N,M,true,T>* mesh) { 01226 typedef IndSimpSet<N,M,true,T> ISS; 01227 typedef typename ISS::Vertex V; 01228 typedef typename ISS::IndexedSimplex IS; 01229 readAscii<N,M,T,V,IS>(in, mesh); 01230 } 01231 01233 template<int N, int M, typename T> 01234 inline 01235 void 01236 writeAscii(std::ostream& out, const IndSimpSet<N,M,true,T>& mesh) { 01237 typedef IndSimpSet<N,M,true,T> ISS; 01238 typedef typename ISS::Vertex V; 01239 typedef typename ISS::IndexedSimplex IS; 01240 writeAscii<N,M,true,T,V,IS>(out, mesh); 01241 } 01242 01244 01245 END_NAMESPACE_GEOM 01246 01247 #endif