diff --git a/Geo/gmshSurface.cpp b/Geo/gmshSurface.cpp index 4602825aa5a0e0a0cff8cabd1fa34fc28585b5f7..c178318f2cf5abd5e2432a77b4b0177e36307eef 100644 --- a/Geo/gmshSurface.cpp +++ b/Geo/gmshSurface.cpp @@ -89,8 +89,8 @@ SPoint3 gmshPolarSphere::point(double parA, double parB) const //at the center of the sphere //parA=2rx/(r+z) parB=2ry/(r+z) double rp2 = parA * parA + parB * parB; - SPoint3 p(2*parA/(1+rp2),2*parB/(1+rp2),(rp2-1)/(rp2+1)); - p *= -r; + double z=r*(4*r*r-rp2)/(4*r*r+rp2); + SPoint3 p(parA*(r+z)/(2*r),parB*(r+z)/(2*r),z); p += o; return p; } @@ -135,7 +135,7 @@ SPoint3 gmshParametricSurface::point(double par1, double par2) const Msg::Error("MathEval is not compiled in this version of Gmsh"); return SPoint3(0.,0.,0.); #else - char *names[2] = {"u", "v"}; + char *names[2] = {(char*)"u", (char*)"v"}; double values [2] = {par1, par2}; const double x = evaluator_evaluate(evalX, 2, names, values); const double y = evaluator_evaluate(evalY, 2, names, values); diff --git a/Plugin/GSHHS.cpp b/Plugin/GSHHS.cpp index e8b5cdc4bc83fd2f451680a27d46f8c38b9bbf90..fcc09a52f82792a5c1a54b225a3142d9f5368104 100644 --- a/Plugin/GSHHS.cpp +++ b/Plugin/GSHHS.cpp @@ -51,7 +51,7 @@ class GMSH_GSHHSPlugin:public GMSH_Post_Plugin } }; class reader_gshhs:public reader{ - /* $Id: GSHHS.cpp,v 1.20 2009-01-12 16:17:37 remacle Exp $ + /* $Id: GSHHS.cpp,v 1.21 2009-01-13 11:11:39 remacle Exp $ * * Include file defining structures used in gshhs.c * @@ -766,8 +766,8 @@ class GMSH_GSHHSPlugin:public GMSH_Post_Plugin file->close(); } void add_point(SPoint3 point){ - SPoint3 pll; - SPoint2 stereo(-point.x() / (1 + point.z()), -point.y() / (1 + point.z())); + double r=sqrt(point.x()*point.x()+point.y()*point.y()+point.z()*point.z()); + SPoint2 stereo(2*r*point.x() / (r + point.z()), 2*r*point.y() / (r + point.z())); loop_buff << "Point ( IP + " << ip++ << " ) = {" << stereo. x() << ", " << stereo.y() << ", " << 0 << " };\n"; }