diff --git a/Common/Context.h b/Common/Context.h index a468e0c57749d82b4ac99cb8cc187147316ba38b..cd9f0e69c1d3316746517b1c97bf45d10cbb8c60 100644 --- a/Common/Context.h +++ b/Common/Context.h @@ -152,7 +152,6 @@ class Context_T { double tolerance; double snap[3]; int occ_fix_small_edges, occ_fix_small_faces, occ_sew_faces; - int sphere_geodesic; } geom; // mesh options @@ -174,6 +173,7 @@ class Context_T { int light, light_two_side, light_lines; int format, nb_smoothing, algo2d, algo3d, algo_recombine; int order, second_order_linear, second_order_incomplete; + int second_order_experimental; int smooth_internal_edges, c1_continuity; int min_circ_points, min_curv_points; double normals, tangents, explode; diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h index a852255dc9c99968f448085a5c96a113e266ad5b..b3bae8bf32b7113df570aed2e858fecfc9fc6b8c 100644 --- a/Common/DefaultOptions.h +++ b/Common/DefaultOptions.h @@ -871,8 +871,6 @@ StringXNumber GeometryOptions_Number[] = { "Snapping grid spacing along the Y-axis" }, { F|O, "SnapZ" , opt_geometry_snap2 , 0.1 , "Snapping grid spacing along the Z-axis" }, - { F|O, "SphereGeodesic" , opt_geometry_sphere_geodesic , 0. , - "Use projection to compute sphere geodesic" }, { F|O, "Surfaces" , opt_geometry_surfaces , 0. , "Display geometry surfaces?" }, { F|O, "SurfaceNumbers" , opt_geometry_surfaces_num , 0. , @@ -1049,6 +1047,8 @@ StringXNumber MeshOptions_Number[] = { "Save groups of nodes for each physical line and surface (UNV mesh format only)" }, { F|O, "ScalingFactor" , opt_mesh_scaling_factor , 1.0 , "Global scaling factor applied to the saved mesh" }, + { F|O, "SecondOrderExperimental" , opt_mesh_second_order_experimental , 0. , + "Use experimental code to generate second order mesh" }, { F|O, "SecondOrderIncomplete" , opt_mesh_second_order_incomplete , 1. , "Create incomplete second order elements? (8-node quads, 20-node hexas, etc.)" }, { F|O, "SecondOrderLinear" , opt_mesh_second_order_linear , 0. , diff --git a/Common/Options.cpp b/Common/Options.cpp index 4c0b3782dc6b6f79d1f118c45170df9123c611de..24b6a03bef1b372d7a95692e3b984384bfbf497d 100644 --- a/Common/Options.cpp +++ b/Common/Options.cpp @@ -1,4 +1,4 @@ -// $Id: Options.cpp,v 1.400 2008-06-20 05:51:36 geuzaine Exp $ +// $Id: Options.cpp,v 1.401 2008-06-20 11:50:00 geuzaine Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -4035,13 +4035,6 @@ double opt_geometry_tolerance(OPT_ARGS_NUM) return CTX.geom.tolerance; } -double opt_geometry_sphere_geodesic(OPT_ARGS_NUM) -{ - if(action & GMSH_SET) - CTX.geom.sphere_geodesic = val; - return CTX.geom.sphere_geodesic; -} - double opt_geometry_normals(OPT_ARGS_NUM) { if(action & GMSH_SET) @@ -5139,6 +5132,13 @@ double opt_mesh_smooth_internal_edges(OPT_ARGS_NUM) return CTX.mesh.smooth_internal_edges; } +double opt_mesh_second_order_experimental(OPT_ARGS_NUM) +{ + if(action & GMSH_SET) + CTX.mesh.second_order_experimental = (int)val; + return CTX.mesh.second_order_experimental; +} + double opt_mesh_second_order_linear(OPT_ARGS_NUM) { if(action & GMSH_SET) diff --git a/Common/Options.h b/Common/Options.h index 0beacbcfca7b44f28c569f1a69a683cd0d900c05..7dbce6a5ab0c2057fdec6102c04fe4d058310f0d 100644 --- a/Common/Options.h +++ b/Common/Options.h @@ -399,7 +399,6 @@ double opt_general_light53(OPT_ARGS_NUM); double opt_geometry_auto_coherence(OPT_ARGS_NUM); double opt_geometry_highlight_orphans(OPT_ARGS_NUM); double opt_geometry_tolerance(OPT_ARGS_NUM); -double opt_geometry_sphere_geodesic(OPT_ARGS_NUM); double opt_geometry_normals(OPT_ARGS_NUM); double opt_geometry_tangents(OPT_ARGS_NUM); double opt_geometry_points(OPT_ARGS_NUM); @@ -493,6 +492,7 @@ double opt_mesh_min_curv_points(OPT_ARGS_NUM); double opt_mesh_order(OPT_ARGS_NUM); double opt_mesh_c1(OPT_ARGS_NUM); double opt_mesh_smooth_internal_edges(OPT_ARGS_NUM); +double opt_mesh_second_order_experimental(OPT_ARGS_NUM); double opt_mesh_second_order_linear(OPT_ARGS_NUM); double opt_mesh_second_order_incomplete(OPT_ARGS_NUM); double opt_mesh_dual(OPT_ARGS_NUM); diff --git a/Geo/gmshFace.cpp b/Geo/gmshFace.cpp index 85c9c9ada36fafe69c297ce39488b7ed1d72e0dc..9897d25ba685294708077bd704c0f5d0094652b0 100644 --- a/Geo/gmshFace.cpp +++ b/Geo/gmshFace.cpp @@ -1,4 +1,4 @@ -// $Id: gmshFace.cpp,v 1.61 2008-06-20 05:51:37 geuzaine Exp $ +// $Id: gmshFace.cpp,v 1.62 2008-06-20 11:50:00 geuzaine Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -249,7 +249,7 @@ GEntity::GeomType gmshFace::geomType() const // by default we assume that straight lines are geodesics SPoint2 gmshFace::geodesic(const SPoint2 &pt1 , const SPoint2 &pt2 , double t) { - if(isSphere && CTX.geom.sphere_geodesic){ + if(isSphere && CTX.mesh.second_order_experimental){ // FIXME: this is buggy -- remove the CTX option once we do it in // a robust manner GPoint gp1 = point(pt1.x(), pt1.y()); diff --git a/Mesh/meshGRegion.cpp b/Mesh/meshGRegion.cpp index 1bc78152c28895afa3096c66ff50b01392cc7ec9..09b80552a0a1aee3ddc0dc462ce04c64846b5323 100644 --- a/Mesh/meshGRegion.cpp +++ b/Mesh/meshGRegion.cpp @@ -1,4 +1,4 @@ -// $Id: meshGRegion.cpp,v 1.52 2008-06-12 12:23:29 geuzaine Exp $ +// $Id: meshGRegion.cpp,v 1.53 2008-06-20 11:50:00 geuzaine Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -183,7 +183,7 @@ void TransferTetgenMesh(GRegion *gr, tetgenio &in, tetgenio &out, v[j]->onWhat()->mesh_vertices.end(), v[j])); MVertex *v1b; - if (CTX.mesh.order > 1){ + if (CTX.mesh.order > 1 && CTX.mesh.second_order_experimental){ // PARAMETRIC COORDINATES SHOULD BE SET for the vertex !!!!!!!!!!!!! // This is not 100 % safe yet, so we reserve that operation for high order // meshes.