AppCamPy.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (c) 2007                                                    *
00003  *   Joachim Zettler <Joachim.Zettler@gmx.de>                              *
00004  *   Jürgen Riegel <Juergen.Riegel@web.de                                  *
00005  *   This file is part of the FreeCAD CAx development system.              *
00006  *                                                                         *
00007  *   This library is free software; you can redistribute it and/or         *
00008  *   modify it under the terms of the GNU Library General Public           *
00009  *   License as published by the Free Software Foundation; either          *
00010  *   version 2 of the License, or (at your option) any later version.      *
00011  *                                                                         *
00012  *   This library  is distributed in the hope that it will be useful,      *
00013  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00014  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00015  *   GNU Library General Public License for more details.                  *
00016  *                                                                         *
00017  *   You should have received a copy of the GNU Library General Public     *
00018  *   License along with this library; see the file COPYING.LIB. If not,    *
00019  *   write to the Free Software Foundation, Inc., 59 Temple Place,         *
00020  *   Suite 330, Boston, MA  02111-1307, USA                                *
00021  *                                                                         *
00022  ***************************************************************************/
00023 
00024 #include "PreCompiled.h"
00025 
00026 # if defined (_POSIX_C_SOURCE)
00027 #   undef  _POSIX_C_SOURCE
00028 # endif // (re-)defined in pyconfig.h
00029 
00030 //Basic Stuff
00031 #include <Base/Console.h>
00032 #include <Base/PyObjectBase.h>
00033 #include <Base/Handle.h>
00034 #include <Base/Exception.h>
00035 #include <Base/FileInfo.h>
00036 #include <Base/Builder3D.h>
00037 #include <App/Application.h>
00038 #include <App/Document.h>
00039 
00040 
00041 //Part Stuff
00042 #include <Mod/Part/App/TopoShape.h>
00043 #include <Mod/Part/App/TopoShapePy.h>
00044 
00045 //Mesh Stuff
00046 #include <Mod/Mesh/App/Core/MeshKernel.h>
00047 #include <Mod/Mesh/App/Core/TopoAlgorithm.h>
00048 #include <Mod/Mesh/App/Core/Iterator.h>
00049 #include <Mod/Mesh/App/Core/Builder.h>
00050 #include <Mod/Mesh/App/Core/MeshKernel.h>
00051 #include <Mod/Mesh/App/MeshPy.h>
00052 #include <Mod/Mesh/App/Mesh.h>
00053 #include <Mod/Mesh/App/Core/Elements.h>
00054 #include <Mod/Mesh/App/Core/Evaluation.h>
00055 #include <Mod/Mesh/App/Core/Triangulation.h>
00056 
00057 //OCC Stuff
00058 #include <Poly_Triangulation.hxx>
00059 #include <BRepOffsetAPI_MakeOffsetShape.hxx>
00060 #include <BRepAlgoAPI_Cut.hxx>
00061 #include <BRepAlgoAPI_Section.hxx>
00062 #include <BRepBndLib.hxx>
00063 #include <BRep_Builder.hxx>
00064 #include <BRep_Tool.hxx>
00065 #include <BRepTools.hxx>
00066 #include <BRepBuilderAPI_MakeFace.hxx>
00067 #include <BRepMesh.hxx>
00068 #include <Geom_OffsetSurface.hxx>
00069 #include <GeomAPI_PointsToBSplineSurface.hxx>
00070 #include <TColgp_HArray2OfPnt.hxx>
00071 #include <TColStd_Array1OfReal.hxx>
00072 #include <TColStd_Array1OfInteger.hxx>
00073 #include <BRepGProp.hxx>
00074 #include <IntCurvesFace_ShapeIntersector.hxx>
00075 #include <GProp_PrincipalProps.hxx>
00076 #include <TopExp_Explorer.hxx>
00077 #include <TopoDS.hxx>
00078 #include <TopoDS_Compound.hxx>
00079 #include <BRepPrimAPI_MakeBox.hxx>
00080 #include <BRepAdaptor_Surface.hxx>
00081 #include <Geom_BSplineSurface.hxx>
00082 #include <Handle_Geom_Plane.hxx>
00083 #include <Geom_Plane.hxx>
00084 #include <Geom2d_Curve.hxx>
00085 #include <gp_Lin.hxx>
00086 #include <gp_Dir.hxx>
00087 
00088 //Own Stuff
00089 #include "Approx.h"
00090 #include "ConvertDyna.h"
00091 #include "cutting_tools.h"
00092 #include "best_fit.h"
00093 #include "SpringbackCorrection.h"
00094 
00095 
00096 
00097 
00098 
00099 using namespace Part;
00100 using namespace Mesh;
00101 using namespace std;
00102 using MeshCore::MeshKernel;
00103 
00104 
00105 /* module functions */
00106 static PyObject *
00107 open(PyObject *self, PyObject *args)
00108 {
00109     const char* Name;
00110     if (! PyArg_ParseTuple(args, "s",&Name))
00111         return NULL;
00112 
00113     PY_TRY
00114     {
00115 
00116 
00117     } PY_CATCH;
00118 
00119     Py_Return;
00120 }
00121 
00122 
00123 /* module functions */
00124 static PyObject * insert(PyObject *self, PyObject *args)
00125 {
00126     const char* Name;
00127     const char* DocName;
00128     if (! PyArg_ParseTuple(args, "ss",&Name,&DocName))
00129         return NULL;
00130 
00131     PY_TRY
00132     {
00133 
00134     } PY_CATCH;
00135 
00136     Py_Return;
00137 }
00138 
00139 /* module functions */
00140 static PyObject * read(PyObject *self, PyObject *args)
00141 {
00142     const char* Name;
00143     if (! PyArg_ParseTuple(args, "s",&Name))
00144         return NULL;
00145     PY_TRY
00146     {
00147 
00148     } PY_CATCH;
00149     Py_Return;
00150 }
00151 
00152 
00153 static PyObject * tesselateShape(PyObject *self, PyObject *args)
00154 {
00155 
00156     PyObject *pcObj;
00157     float aDeflection;
00158     //PyObject *pcObj2;
00159     if (!PyArg_ParseTuple(args, "O!f", &(TopoShapePy::Type), &pcObj, &aDeflection))    // convert args: Python->C
00160         return NULL;                             // NULL triggers exception
00161 
00162     TopoShapePy *pcShape = static_cast<TopoShapePy*>(pcObj); //Surface oder Step-File wird übergeben
00163 
00164 
00165     Base::Builder3D aBuild;
00166 
00167     MeshCore::MeshKernel mesh;
00168     MeshCore::MeshBuilder builder(mesh);
00169     builder.Initialize(1000);
00170     Base::Vector3f Points[3];
00171 
00172     PY_TRY
00173     {
00174         // removes all the triangulations of the faces ,
00175         //and all the polygons on the triangulations of the edges:
00176         TopoDS_Shape aShape = pcShape->getTopoShapePtr()->_Shape;
00177         BRepTools::Clean(aShape);
00178 
00179         // adds a triangulation of the shape aShape with the deflection aDeflection:
00180         //BRepMesh_IncrementalMesh Mesh(pcShape->getShape(),aDeflection);
00181 
00182         BRepMesh::Mesh(aShape,aDeflection);
00183         TopExp_Explorer aExpFace;
00184         for (aExpFace.Init(aShape,TopAbs_FACE);aExpFace.More();aExpFace.Next())
00185         {
00186             TopoDS_Face aFace = TopoDS::Face(aExpFace.Current());
00187             TopLoc_Location aLocation;
00188             // takes the triangulation of the face aFace:
00189             Handle_Poly_Triangulation aTr = BRep_Tool::Triangulation(aFace,aLocation);
00190             if (!aTr.IsNull()) // if this triangulation is not NULL
00191             {
00192                 // takes the array of nodes for this triangulation:
00193                 const TColgp_Array1OfPnt& aNodes = aTr->Nodes();
00194                 // takes the array of triangles for this triangulation:
00195                 const Poly_Array1OfTriangle& triangles = aTr->Triangles();
00196                 // create array of node points in absolute coordinate system
00197                 TColgp_Array1OfPnt aPoints(1, aNodes.Length());
00198                 for ( Standard_Integer i = 1; i < aNodes.Length()+1; i++)
00199                     aPoints(i) = aNodes(i).Transformed(aLocation);
00200                 // Takes the node points of each triangle of this triangulation.
00201                 // takes a number of triangles:
00202                 Standard_Integer nnn = aTr->NbTriangles();
00203                 Standard_Integer nt,n1,n2,n3;
00204                 for ( nt = 1 ; nt < nnn+1 ; nt++)
00205                 {
00206                     // takes the node indices of each triangle in n1,n2,n3:
00207                     triangles(nt).Get(n1,n2,n3);
00208                     // takes the node points:
00209                     gp_Pnt aPnt1 = aPoints(n1);
00210                     Points[0].Set(float(aPnt1.X()),float(aPnt1.Y()),float(aPnt1.Z()));
00211                     gp_Pnt aPnt2 = aPoints(n2);
00212                     Points[1].Set(float(aPnt2.X()),float(aPnt2.Y()),float(aPnt2.Z()));
00213                     gp_Pnt aPnt3 = aPoints(n3);
00214                     Points[2].Set(float(aPnt3.X()),float(aPnt3.Y()),float(aPnt3.Z()));
00215                     // give the occ faces to the internal mesh structure of freecad
00216                     MeshCore::MeshGeomFacet Face(Points[0],Points[1],Points[2]);
00217                     builder.AddFacet(Face);
00218 
00219                 }
00220 
00221             }
00222             // if the triangulation of only one face is not possible to get
00223             else
00224             {
00225                 throw Base::Exception("Empty face triangulation\n");
00226             }
00227         }
00228         // finish FreeCAD Mesh Builder and exit with new mesh
00229         builder.Finish();
00230         /*return new MeshPy(&mesh);*/
00231     } PY_CATCH;
00232 
00233     Py_Return;
00234 }
00235 
00236 static PyObject * best_fit_coarse(PyObject *self, PyObject *args)
00237 {
00238     PyObject *pcObj2;
00239 
00240     if (!PyArg_ParseTuple(args, "O!; Need one Mesh objects and one toposhape", &(TopoShapePy::Type), &pcObj2))     // convert args: Python->C
00241         return NULL;                             // NULL triggers exception
00242 
00243     PY_TRY
00244     {
00245 
00246         TopoShapePy *pcShape = static_cast<TopoShapePy*>(pcObj2); //Shape wird übergeben
00247         TopoDS_Shape cad           = pcShape->getTopoShapePtr()->_Shape;  // Input CAD
00248 
00249 
00250         //best_fit befi(cad);
00251         //best_fit::Tesselate_Shape(pcShape->getShape(),mesh,0.1);
00252 
00253         //return new MeshPy(&befi.m_CadMesh);
00254 
00255         //return new TopoShapePyOld(befi.m_Cad);
00256 
00257         /*
00258         befi.MeshFit_Coarse();
00259         */
00260 
00261     }PY_CATCH;
00262 
00263     Py_Return;
00264 }
00265 
00266 
00267 #include <GeomAdaptor_Curve.hxx>
00268 #include <GCPnts_QuasiUniformDeflection.hxx>
00269 
00270 //static PyObject * makeToolPath(PyObject *self, PyObject *args)
00271 //{
00274 //    ofstream anoutput,anoutput2;
00275 //    anoutput.open("c:/bspline_output.txt");
00276 //    anoutput2.open("c:/bspline2_output.txt");
00277 //    PyObject *pcObj;
00278 //    //PyObject *pcObj2;
00279 //    if (!PyArg_ParseTuple(args, "O!", &(TopoShapePyOld::Type), &pcObj))    // convert args: Python->C
00280 //        return NULL;                             // NULL triggers exception
00281 //
00282 //    TopoShapePyOld *pcShape = static_cast<TopoShapePyOld*>(pcObj); //Surface wird übergeben
00284 //    PY_TRY
00285 //    {
00286 //
00287 //        cutting_tools anewCuttingEnv(pcShape->getShape(),10.0);
00288 //        anewCuttingEnv.arrangecuts_ZLEVEL();
00289 //        std::vector<std::pair<float,TopoDS_Shape> > aTestOutput = anewCuttingEnv.getCutShape();
00290 //        BRep_Builder BB;
00291 //
00292 //        TopoDS_Compound aCompound;
00293 //
00294 //        BB.MakeCompound(aCompound);
00295 //        for (unsigned int i=0;i<aTestOutput.size();++i)
00296 //        {
00297 //
00298 //            BB.Add(aCompound,TopoDS::Compound(aTestOutput[i].second));
00299 //        }
00300 //
00301 //        anewCuttingEnv.OffsetWires_Standard(10.0);
00302 //
00303 //        std::vector<Handle_Geom_BSplineCurve> topCurves;
00304 //        std::vector<Handle_Geom_BSplineCurve> botCurves;
00305 //        std::vector<Handle_Geom_BSplineCurve>::iterator an_it;
00306 //        topCurves = *(anewCuttingEnv.getOutputhigh());
00307 //        botCurves = *(anewCuttingEnv.getOutputlow());
00308 //        for (unsigned int i=0;i<topCurves.size();++i)
00309 //        {
00310 //            GeomAdaptor_Curve aCurveAdaptor(topCurves[i]);
00311 //            GCPnts_QuasiUniformDeflection aPointGenerator(aCurveAdaptor,0.1);
00312 //            for (int t=1;t<=aPointGenerator.NbPoints();++t)
00313 //            {
00314 //                anoutput << (aPointGenerator.Value(t)).X() <<","<< (aPointGenerator.Value(t)).Y() <<","<<(aPointGenerator.Value(t)).Z()<<std::endl;
00315 //            }
00316 //        }
00317 //        for (unsigned int i=0;i<botCurves.size();++i)
00318 //        {
00319 //            GeomAdaptor_Curve aCurveAdaptor(botCurves[i]);
00320 //            GCPnts_QuasiUniformDeflection aPointGenerator(aCurveAdaptor,0.1);
00321 //            for (int t=1;t<=aPointGenerator.NbPoints();++t)
00322 //            {
00323 //                anoutput2 << (aPointGenerator.Value(t)).X() <<","<< (aPointGenerator.Value(t)).Y() <<","<<(aPointGenerator.Value(t)).Z()<<std::endl;
00324 //            }
00325 //        }
00326 //        anoutput.close();
00327 //        anoutput2.close();
00328 //
00329 //        //botCurves.push_back(*(topCurves.begin()));
00330 //
00331 //        //path_simulate path(topCurves , botCurves);
00332 //        ////path.MakePathSimulate();
00333 //        //path.MakePathRobot();
00334 //
00335 //        //GeomAdaptor_Curve anAdaptorCurve;
00336 //        //for(an_it=topCurves.begin();an_it<topCurves.end();++an_it)
00337 //        //{
00338 //        // anAdaptorCurve.Load(*an_it);
00339 //        // double length = GCPnts_AbscissaPoint::Length(anAdaptorCurve);
00340 //        // std::cout << "Length: " << length << std::endl;
00341 //        //}
00342 //
00343 //        return new TopoShapePyOld(aCompound);
00344 //
00345 //
00346 //    } PY_CATCH;
00347 //
00348 //    Py_Return;
00349 //}
00350 //
00351 //
00352 
00353 static PyObject * offset(PyObject *self,PyObject *args)
00354 {
00355     float offset;
00356     PyObject *pcObj;
00357     if (!PyArg_ParseTuple(args, "O!f",&(TopoShapePy::Type), &pcObj,&offset ))
00358         return NULL;
00359 
00360     TopoShapePy *pcShape = static_cast<TopoShapePy*>(pcObj); //Original-Shape wird hier übergeben
00361 
00362     PY_TRY
00363     {
00364 
00365         BRepOffsetAPI_MakeOffsetShape MakeOffsetShape (pcShape->getTopoShapePtr()->_Shape,
00366             offset,0.001,BRepOffset_Skin);
00367         return new TopoShapePy(new TopoShape(MakeOffsetShape.Shape()));
00368 
00369 
00370     } PY_CATCH;
00371 
00372 }
00373 
00374 
00375 /*
00376 static PyObject * cut(PyObject *self, PyObject *args)
00377 {
00378  PyObject *pcObj;
00379  double z_pitch;
00380  //double rGap = 1000.0; //Rand um die Bounding Box für ein sauberes Ergebnis
00381  if (!PyArg_ParseTuple(args, "O!d", &(TopoShapePyOld::Type), &pcObj,&z_pitch))     // convert args: Python->C
00382   return NULL;                             // NULL triggers exception
00383 
00384  TopoShapePyOld *pcShape =  static_cast<TopoShapePyOld*>(pcObj); //Surface to cut
00385  //TopoShapePyOld *pcShape2 = static_cast<TopoShapePyOld*>(pcObj2); //Cutting Plane
00386 
00387 
00388  ofstream outputfile;
00389  outputfile.open("c:/allpoints.out");
00390 
00391  PY_TRY
00392  {
00393 
00394 
00395    Base::Builder3D logit;
00396 
00397 
00398    Jetzt die eigentlichen Schnitte erzeugen:
00399    1. Wenn die oberste Ebene ein flacher Bereich ist, werden von dort die Bounding Wires genommen
00400     Ermittlung über die Bounding Box
00401    2. Anschließend über die Differenz von zwei Flat-Bereichen die Anzahl von Schnitten ermitteln mit gegebenem Abstand
00402    3. Die Edges bzw. Wires in B-Spline Kurven wandeln und anschließend evaluieren
00403    4. Abfahrreihenfolge festlegen und Output für die Simulation bzw. Versuch vorbereiten
00404 
00405 
00406 
00407 
00408      //builder.Add(totalwire,mkWire.Wire());
00409 
00410 
00411 
00412 
00413 
00414 
00415      BRep_Builder buildface;
00416      TopoDS_Face topoface;
00417      buildface.MakeFace(topoface,asecondPlane,0.001);
00418      //TopoDS_Wire wire = TopoDS::Wire(explore_cut.Current());
00419 
00420      //Exp_Wire.Init(wire);
00421      explore_cut.ReInit();
00422      for(; explore_cut.More(); explore_cut.Next())
00423      {
00424       TopoDS_Edge edge = TopoDS::Edge(explore_cut.Current());
00425       BRepAdaptor_Curve cutedge(edge);
00426 
00427       Handle(BRepAdaptor_HCurve) hadapt_cutedge = new BRepAdaptor_HCurve(cutedge);
00428       BRepAdaptor_Surface cutplane(topoface);
00429       Handle(BRepAdaptor_HSurface) hadapt_cutplane = new BRepAdaptor_HSurface(cutplane);
00430       intersect.Perform(hadapt_cutedge,hadapt_cutplane);
00431       int numberofpoints = 0;
00432       numberofpoints = intersect.NbPoints();
00433       if (numberofpoints > 0)
00434       {
00435        IntCurveSurface_IntersectionPoint pointofintersect = intersect.Point(1);
00436        gp_Pnt actualIntersectPoint = pointofintersect.Pnt();
00437        logit.addSinglePoint(actualIntersectPoint.X(),actualIntersectPoint.Y(),actualIntersectPoint.Z(),10);
00438       }
00439      }
00440 
00441     }
00442    }
00443 
00444   }
00445   for(int i =0;i<allcutPoints.size();++i)
00446   {
00447    outputfile <<  allcutPoints[i].X() << "," << allcutPoints[i].Y() << "," << allcutPoints[i].Z() <<endl;
00448   }
00449   outputfile.close();
00450   logit.saveToFile("c:/test.iv");
00451   return new TopoShapePyOld( totalwire);
00452 
00453 }PY_CATCH;
00454 
00455 }
00456 */
00457 
00458 /* Approximate test function */
00459 
00460 static PyObject * createTestApproximate(PyObject *self, PyObject *args)
00461 {
00462     if (! PyArg_ParseTuple(args, ""))
00463         return NULL;
00464 
00465     PY_TRY
00466     {
00467 
00469 // Approximation of surface.
00470 // Building a BSpline surface which approximates a set of points.
00472         /*
00473         // creating a set of points:
00474         Standard_Real Step = 175;
00475         Standard_Integer Upper = 4;
00476 
00477           //a set of X and Y coordinates:
00478             Standard_Real aXStep = Step , aYStep = Step ;
00479             Standard_Real aX0 = -300, aY0 = -200;
00480           //Z coordinates:
00481             TColStd_Array2OfReal aZPoints( 1, Upper , 1, Upper );
00482 
00483         // initializing array of Z coordinates:
00484         // aZPoints(1,1) = -2;
00485         // aZPoints(1,2) = 3;
00486         // ...
00487 
00488         //creating a approximate BSpline surface:
00489         Parameters of surface:
00490         DegMin = 3;
00491         DegMax = 9;
00492         Continuity = GeomAbs_C1;
00493         Tolerance = 0.7;
00494 
00495         GeomAPI_PointsToBSplineSurface aPTBS;
00496         aPTBS.Init(aZPoints,aX0,aXStep,aY0,aYStep,
00497                    DegMin,DegMax,Continuity,Tolerance);
00498         Handle_Geom_BSplineSurface aSurface = aPTBS.Surface();
00499 
00500 
00501 
00502 
00503 
00504 
00505         */
00506 
00507 
00508 
00509         TColgp_Array2OfPnt Input(1,2,1,3);
00510         Input.SetValue(1,1,gp_Pnt(20,20,0));
00511         Input.SetValue(1,2,gp_Pnt(25,25,0));
00512         Input.SetValue(1,3,gp_Pnt(30,30,0));
00513         Input.SetValue(2,1,gp_Pnt(18,35,0));
00514         Input.SetValue(2,2,gp_Pnt(23,37,-3));
00515         Input.SetValue(2,3,gp_Pnt(40,40,0));
00516 
00517 
00518 
00519 
00520 
00521         GeomAPI_PointsToBSplineSurface *Approx_Surface = new GeomAPI_PointsToBSplineSurface(Input, 3, 8, GeomAbs_C2,0.001);
00522         Handle(Geom_BSplineSurface) Final_Approx = Approx_Surface->Surface () ;
00523 
00524         BRepBuilderAPI_MakeFace  Face(Final_Approx);
00525 
00526         return new TopoShapePy(new TopoShape(Face.Face()));
00527     } PY_CATCH;
00528 }
00529 /* BREP test function */
00530 static PyObject *
00531 createTestBSPLINE(PyObject *self, PyObject *args)
00532 {
00533     //const char* Name;
00534     if (! PyArg_ParseTuple(args, ""))
00535         return NULL;
00536 
00537     PY_TRY
00538     {
00539         TColgp_Array2OfPnt Poles(1,48,1,48);
00540 
00541 
00542         Poles.SetValue(1,1,gp_Pnt(-150.004,-150.032,0.000561847));
00543         Poles.SetValue(1,2,gp_Pnt(-150.002,-142.327,-0.00168953));
00544         Poles.SetValue(1,3,gp_Pnt(-150,-126.92,-0.00028435));
00545         Poles.SetValue(1,4,gp_Pnt(-150,-103.831,-0.000519289));
00546         Poles.SetValue(1,5,gp_Pnt(-150,-84.6001,-0.000265669));
00547         Poles.SetValue(1,6,gp_Pnt(-150,-71.1405,-0.00162853));
00548         Poles.SetValue(1,7,gp_Pnt(-150,-63.4497,0.00623225));
00549         Poles.SetValue(1,8,gp_Pnt(-150,-57.6819,-0.00552693));
00550         Poles.SetValue(1,9,gp_Pnt(-150,-51.9139,-0.000608209));
00551         Poles.SetValue(1,10,gp_Pnt(-150.001,-47.107,-0.000761491));
00552         Poles.SetValue(1,11,gp_Pnt(-150.001,-43.2611,-0.000606976));
00553         Poles.SetValue(1,12,gp_Pnt(-150.001,-40.3767,0.000301703));
00554         Poles.SetValue(1,13,gp_Pnt(-150.001,-37.492,0.00136356));
00555         Poles.SetValue(1,14,gp_Pnt(-150.001,-34.6077,-0.000772864));
00556         Poles.SetValue(1,15,gp_Pnt(-150.001,-32.2036,-0.00110298));
00557         Poles.SetValue(1,16,gp_Pnt(-150.001,-30.2806,-0.000821554));
00558         Poles.SetValue(1,17,gp_Pnt(-150.001,-27.3959,-0.000341639));
00559         Poles.SetValue(1,18,gp_Pnt(-150.002,-24.0305,0.00107516));
00560         Poles.SetValue(1,19,gp_Pnt(-150.002,-20.1843,0.000545201));
00561         Poles.SetValue(1,20,gp_Pnt(-150.003,-16.3382,-0.0036344));
00562         Poles.SetValue(1,21,gp_Pnt(-150.003,-12.4921,-0.00133336));
00563         Poles.SetValue(1,22,gp_Pnt(-150.003,-8.64594,0.000602981));
00564         Poles.SetValue(1,23,gp_Pnt(-150.004,-5.76127,0.000740304));
00565         Poles.SetValue(1,24,gp_Pnt(-150.004,-1.91501,-0.000669011));
00566         Poles.SetValue(1,25,gp_Pnt(-150.004,1.93125,0.00331739));
00567         Poles.SetValue(1,26,gp_Pnt(-150.003,5.77745,0.00628266));
00568         Poles.SetValue(1,27,gp_Pnt(-150.003,8.6621,0.00185797));
00569         Poles.SetValue(1,28,gp_Pnt(-150.002,12.5083,0.00117201));
00570         Poles.SetValue(1,29,gp_Pnt(-150.002,16.3543,0.00359695));
00571         Poles.SetValue(1,30,gp_Pnt(-150.001,20.2004,-0.000866218));
00572         Poles.SetValue(1,31,gp_Pnt(-150.001,24.0465,0.0024382));
00573         Poles.SetValue(1,32,gp_Pnt(-150.001,27.4119,0.000782921));
00574         Poles.SetValue(1,33,gp_Pnt(-150.001,30.2965,0.00019153));
00575         Poles.SetValue(1,34,gp_Pnt(-150.001,32.2196,0.000181438));
00576         Poles.SetValue(1,35,gp_Pnt(-150.001,34.6234,-0.00175203));
00577         Poles.SetValue(1,36,gp_Pnt(-150,37.5078,0.00248825));
00578         Poles.SetValue(1,37,gp_Pnt(-150.001,40.3923,0.000162624));
00579         Poles.SetValue(1,38,gp_Pnt(-150.001,43.2767,-0.00043742));
00580         Poles.SetValue(1,39,gp_Pnt(-150.001,47.1224,-0.00243046));
00581         Poles.SetValue(1,40,gp_Pnt(-150,51.9291,0.00271265));
00582         Poles.SetValue(1,41,gp_Pnt(-150,57.6971,-0.00206532));
00583         Poles.SetValue(1,42,gp_Pnt(-150,63.4651,-0.000689487));
00584         Poles.SetValue(1,43,gp_Pnt(-150,71.1557,0.000696594));
00585         Poles.SetValue(1,44,gp_Pnt(-150,84.6148,-0.00159957));
00586         Poles.SetValue(1,45,gp_Pnt(-150,103.843,0.00079398));
00587         Poles.SetValue(1,46,gp_Pnt(-150,126.921,0.00325858));
00588         Poles.SetValue(1,47,gp_Pnt(-150,142.308,-0.00205645));
00589         Poles.SetValue(1,48,gp_Pnt(-150.001,150.002,0.000266785));
00590         Poles.SetValue(2,1,gp_Pnt(-142.31,-150.021,-0.00181926));
00591         Poles.SetValue(2,2,gp_Pnt(-142.309,-142.316,-0.126204));
00592         Poles.SetValue(2,3,gp_Pnt(-142.305,-126.903,-0.0907513));
00593         Poles.SetValue(2,4,gp_Pnt(-142.304,-103.808,-0.172784));
00594         Poles.SetValue(2,5,gp_Pnt(-142.302,-84.571,-0.256387));
00595         Poles.SetValue(2,6,gp_Pnt(-142.298,-71.1085,-0.215109));
00596         Poles.SetValue(2,7,gp_Pnt(-142.301,-63.4178,-0.321454));
00597         Poles.SetValue(2,8,gp_Pnt(-142.302,-57.6491,-0.362883));
00598         Poles.SetValue(2,9,gp_Pnt(-142.304,-51.8812,-0.411528));
00599         Poles.SetValue(2,10,gp_Pnt(-142.305,-47.0752,-0.435599));
00600         Poles.SetValue(2,11,gp_Pnt(-142.305,-43.2302,-0.438131));
00601         Poles.SetValue(2,12,gp_Pnt(-142.305,-40.3466,-0.445607));
00602         Poles.SetValue(2,13,gp_Pnt(-142.305,-37.4617,-0.436859));
00603         Poles.SetValue(2,14,gp_Pnt(-142.305,-34.5771,-0.442155));
00604         Poles.SetValue(2,15,gp_Pnt(-142.304,-32.1727,-0.43872));
00605         Poles.SetValue(2,16,gp_Pnt(-142.305,-30.2502,-0.452521));
00606         Poles.SetValue(2,17,gp_Pnt(-142.307,-27.3666,-0.474689));
00607         Poles.SetValue(2,18,gp_Pnt(-142.311,-24.0038,-0.521193));
00608         Poles.SetValue(2,19,gp_Pnt(-142.314,-20.1589,-0.56475));
00609         Poles.SetValue(2,20,gp_Pnt(-142.319,-16.3146,-0.619306));
00610         Poles.SetValue(2,21,gp_Pnt(-142.321,-12.4685,-0.646119));
00611         Poles.SetValue(2,22,gp_Pnt(-142.321,-8.62227,-0.646118));
00612         Poles.SetValue(2,23,gp_Pnt(-142.321,-5.73782,-0.634708));
00613         Poles.SetValue(2,24,gp_Pnt(-142.317,-1.89155,-0.588682));
00614         Poles.SetValue(2,25,gp_Pnt(-142.316,1.95492,-0.560158));
00615         Poles.SetValue(2,26,gp_Pnt(-142.316,5.80123,-0.547648));
00616         Poles.SetValue(2,27,gp_Pnt(-142.313,8.68585,-0.518341));
00617         Poles.SetValue(2,28,gp_Pnt(-142.312,12.532,-0.500341));
00618         Poles.SetValue(2,29,gp_Pnt(-142.311,16.3777,-0.499537));
00619         Poles.SetValue(2,30,gp_Pnt(-142.307,20.2226,-0.465716));
00620         Poles.SetValue(2,31,gp_Pnt(-142.307,24.0679,-0.460146));
00621         Poles.SetValue(2,32,gp_Pnt(-142.304,27.4314,-0.438242));
00622         Poles.SetValue(2,33,gp_Pnt(-142.304,30.315,-0.433771));
00623         Poles.SetValue(2,34,gp_Pnt(-142.304,32.2374,-0.432231));
00624         Poles.SetValue(2,35,gp_Pnt(-142.306,34.6411,-0.446475));
00625         Poles.SetValue(2,36,gp_Pnt(-142.306,37.525,-0.445412));
00626         Poles.SetValue(2,37,gp_Pnt(-142.307,40.4085,-0.44998));
00627         Poles.SetValue(2,38,gp_Pnt(-142.306,43.2916,-0.431981));
00628         Poles.SetValue(2,39,gp_Pnt(-142.305,47.1355,-0.408878));
00629         Poles.SetValue(2,40,gp_Pnt(-142.303,51.94,-0.366882));
00630         Poles.SetValue(2,41,gp_Pnt(-142.301,57.7052,-0.307906));
00631         Poles.SetValue(2,42,gp_Pnt(-142.301,63.4721,-0.30131));
00632         Poles.SetValue(2,43,gp_Pnt(-142.302,71.1622,-0.256453));
00633         Poles.SetValue(2,44,gp_Pnt(-142.302,84.6149,-0.220375));
00634         Poles.SetValue(2,45,gp_Pnt(-142.31,103.846,-0.23077));
00635         Poles.SetValue(2,46,gp_Pnt(-142.304,126.92,0.0181769));
00636         Poles.SetValue(2,47,gp_Pnt(-142.309,142.309,-0.0738464));
00637         Poles.SetValue(2,48,gp_Pnt(-142.307,150.001,0.000863329));
00638         Poles.SetValue(3,1,gp_Pnt(-126.921,-150,0.00165292));
00639         Poles.SetValue(3,2,gp_Pnt(-126.921,-142.291,-0.108971));
00640         Poles.SetValue(3,3,gp_Pnt(-126.916,-126.875,-0.280815));
00641         Poles.SetValue(3,4,gp_Pnt(-126.912,-103.76,-0.548913));
00642         Poles.SetValue(3,5,gp_Pnt(-126.904,-84.5133,-0.647195));
00643         Poles.SetValue(3,6,gp_Pnt(-126.909,-71.0494,-0.979561));
00644         Poles.SetValue(3,7,gp_Pnt(-126.905,-63.3539,-0.997419));
00645         Poles.SetValue(3,8,gp_Pnt(-126.904,-57.5844,-1.07424));
00646         Poles.SetValue(3,9,gp_Pnt(-126.902,-51.8141,-1.11764));
00647         Poles.SetValue(3,10,gp_Pnt(-126.901,-47.0063,-1.16545));
00648         Poles.SetValue(3,11,gp_Pnt(-126.904,-43.162,-1.23177));
00649         Poles.SetValue(3,12,gp_Pnt(-126.906,-40.2796,-1.27218));
00650         Poles.SetValue(3,13,gp_Pnt(-126.91,-37.3996,-1.3403));
00651         Poles.SetValue(3,14,gp_Pnt(-126.913,-34.5199,-1.37958));
00652         Poles.SetValue(3,15,gp_Pnt(-126.918,-32.1209,-1.42493));
00653         Poles.SetValue(3,16,gp_Pnt(-126.919,-30.1996,-1.43471));
00654         Poles.SetValue(3,17,gp_Pnt(-126.92,-27.3171,-1.44871));
00655         Poles.SetValue(3,18,gp_Pnt(-126.916,-23.9503,-1.43521));
00656         Poles.SetValue(3,19,gp_Pnt(-126.915,-20.1051,-1.43151));
00657         Poles.SetValue(3,20,gp_Pnt(-126.906,-16.2565,-1.38855));
00658         Poles.SetValue(3,21,gp_Pnt(-126.903,-12.4114,-1.40876));
00659         Poles.SetValue(3,22,gp_Pnt(-126.9,-8.56614,-1.41947));
00660         Poles.SetValue(3,23,gp_Pnt(-126.897,-5.68165,-1.41744));
00661         Poles.SetValue(3,24,gp_Pnt(-126.899,-1.83662,-1.46074));
00662         Poles.SetValue(3,25,gp_Pnt(-126.896,2.00777,-1.45305));
00663         Poles.SetValue(3,26,gp_Pnt(-126.895,5.85236,-1.4119));
00664         Poles.SetValue(3,27,gp_Pnt(-126.9,8.73579,-1.42133));
00665         Poles.SetValue(3,28,gp_Pnt(-126.903,12.58,-1.39958));
00666         Poles.SetValue(3,29,gp_Pnt(-126.905,16.4245,-1.35132));
00667         Poles.SetValue(3,30,gp_Pnt(-126.914,20.2695,-1.36455));
00668         Poles.SetValue(3,31,gp_Pnt(-126.911,24.1114,-1.3157));
00669         Poles.SetValue(3,32,gp_Pnt(-126.913,27.4746,-1.29886));
00670         Poles.SetValue(3,33,gp_Pnt(-126.911,30.3549,-1.2689));
00671         Poles.SetValue(3,34,gp_Pnt(-126.909,32.275,-1.24747));
00672         Poles.SetValue(3,35,gp_Pnt(-126.904,34.6731,-1.20445));
00673         Poles.SetValue(3,36,gp_Pnt(-126.901,37.5522,-1.17054));
00674         Poles.SetValue(3,37,gp_Pnt(-126.898,40.4322,-1.14411));
00675         Poles.SetValue(3,38,gp_Pnt(-126.898,43.3131,-1.12165));
00676         Poles.SetValue(3,39,gp_Pnt(-126.899,47.1552,-1.1049));
00677         Poles.SetValue(3,40,gp_Pnt(-126.903,51.9593,-1.08453));
00678         Poles.SetValue(3,41,gp_Pnt(-126.906,57.7251,-1.02902));
00679         Poles.SetValue(3,42,gp_Pnt(-126.909,63.4889,-0.984029));
00680         Poles.SetValue(3,43,gp_Pnt(-126.912,71.1726,-0.939984));
00681         Poles.SetValue(3,44,gp_Pnt(-126.916,84.6287,-0.75009));
00682         Poles.SetValue(3,45,gp_Pnt(-126.914,103.84,-0.446948));
00683         Poles.SetValue(3,46,gp_Pnt(-126.922,126.917,-0.208932));
00684         Poles.SetValue(3,47,gp_Pnt(-126.919,142.304,-0.0369009));
00685         Poles.SetValue(3,48,gp_Pnt(-126.921,150,-0.00113251));
00686         Poles.SetValue(4,1,gp_Pnt(-103.843,-150,-0.0010153));
00687         Poles.SetValue(4,2,gp_Pnt(-103.841,-142.278,-0.149614));
00688         Poles.SetValue(4,3,gp_Pnt(-103.841,-126.835,-0.557018));
00689         Poles.SetValue(4,4,gp_Pnt(-103.832,-103.697,-1.04331));
00690         Poles.SetValue(4,5,gp_Pnt(-103.825,-84.4296,-1.51248));
00691         Poles.SetValue(4,6,gp_Pnt(-103.814,-70.9483,-1.71721));
00692         Poles.SetValue(4,7,gp_Pnt(-103.81,-63.2492,-1.91447));
00693         Poles.SetValue(4,8,gp_Pnt(-103.805,-57.475,-2.0133));
00694         Poles.SetValue(4,9,gp_Pnt(-103.802,-51.7032,-2.17279));
00695         Poles.SetValue(4,10,gp_Pnt(-103.796,-46.8927,-2.30177));
00696         Poles.SetValue(4,11,gp_Pnt(-103.786,-43.0402,-2.38814));
00697         Poles.SetValue(4,12,gp_Pnt(-103.778,-40.152,-2.44243));
00698         Poles.SetValue(4,13,gp_Pnt(-103.765,-37.2574,-2.50059));
00699         Poles.SetValue(4,14,gp_Pnt(-103.753,-34.3676,-2.54694));
00700         Poles.SetValue(4,15,gp_Pnt(-103.741,-31.9551,-2.60633));
00701         Poles.SetValue(4,16,gp_Pnt(-103.734,-30.0306,-2.65752));
00702         Poles.SetValue(4,17,gp_Pnt(-103.725,-27.1449,-2.73151));
00703         Poles.SetValue(4,18,gp_Pnt(-103.722,-23.7866,-2.82704));
00704         Poles.SetValue(4,19,gp_Pnt(-103.716,-19.9474,-2.91344));
00705         Poles.SetValue(4,20,gp_Pnt(-103.726,-16.1157,-3.04938));
00706         Poles.SetValue(4,21,gp_Pnt(-103.727,-12.2811,-3.06216));
00707         Poles.SetValue(4,22,gp_Pnt(-103.73,-8.44811,-3.0722));
00708         Poles.SetValue(4,23,gp_Pnt(-103.734,-5.57452,-3.08626));
00709         Poles.SetValue(4,24,gp_Pnt(-103.733,-1.74218,-3.02862));
00710         Poles.SetValue(4,25,gp_Pnt(-103.739,2.09027,-3.04208));
00711         Poles.SetValue(4,26,gp_Pnt(-103.743,5.92168,-3.09969));
00712         Poles.SetValue(4,27,gp_Pnt(-103.739,8.795,-3.08108));
00713         Poles.SetValue(4,28,gp_Pnt(-103.737,12.6264,-3.09153));
00714         Poles.SetValue(4,29,gp_Pnt(-103.739,16.4571,-3.11293));
00715         Poles.SetValue(4,30,gp_Pnt(-103.733,20.2881,-3.01659));
00716         Poles.SetValue(4,31,gp_Pnt(-103.744,24.1243,-2.98515));
00717         Poles.SetValue(4,32,gp_Pnt(-103.749,27.4798,-2.90047));
00718         Poles.SetValue(4,33,gp_Pnt(-103.759,30.3609,-2.8434));
00719         Poles.SetValue(4,34,gp_Pnt(-103.766,32.282,-2.80723));
00720         Poles.SetValue(4,35,gp_Pnt(-103.781,34.6883,-2.77627));
00721         Poles.SetValue(4,36,gp_Pnt(-103.792,37.5714,-2.73126));
00722         Poles.SetValue(4,37,gp_Pnt(-103.803,40.4561,-2.66247));
00723         Poles.SetValue(4,38,gp_Pnt(-103.811,43.3376,-2.62498));
00724         Poles.SetValue(4,39,gp_Pnt(-103.819,47.1799,-2.53849));
00725         Poles.SetValue(4,40,gp_Pnt(-103.824,51.9789,-2.42499));
00726         Poles.SetValue(4,41,gp_Pnt(-103.828,57.7369,-2.30022));
00727         Poles.SetValue(4,42,gp_Pnt(-103.83,63.4966,-2.12922));
00728         Poles.SetValue(4,43,gp_Pnt(-103.832,71.1786,-1.8623));
00729         Poles.SetValue(4,44,gp_Pnt(-103.837,84.6178,-1.53092));
00730         Poles.SetValue(4,45,gp_Pnt(-103.85,103.844,-1.13325));
00731         Poles.SetValue(4,46,gp_Pnt(-103.848,126.916,-0.481826));
00732         Poles.SetValue(4,47,gp_Pnt(-103.846,142.306,-0.137169));
00733         Poles.SetValue(4,48,gp_Pnt(-103.844,150,0.000586788));
00734         Poles.SetValue(5,1,gp_Pnt(-84.614,-150,0.000270488));
00735         Poles.SetValue(5,2,gp_Pnt(-84.6141,-142.269,-0.159149));
00736         Poles.SetValue(5,3,gp_Pnt(-84.6159,-126.815,-0.660259));
00737         Poles.SetValue(5,4,gp_Pnt(-84.6086,-103.651,-1.4185));
00738         Poles.SetValue(5,5,gp_Pnt(-84.5935,-84.3582,-2.06391));
00739         Poles.SetValue(5,6,gp_Pnt(-84.5714,-70.8586,-2.4464));
00740         Poles.SetValue(5,7,gp_Pnt(-84.5628,-63.1503,-2.67335));
00741         Poles.SetValue(5,8,gp_Pnt(-84.5613,-57.3748,-2.91676));
00742         Poles.SetValue(5,9,gp_Pnt(-84.5613,-51.6011,-3.07405));
00743         Poles.SetValue(5,10,gp_Pnt(-84.5691,-46.7952,-3.20612));
00744         Poles.SetValue(5,11,gp_Pnt(-84.5837,-42.9554,-3.33601));
00745         Poles.SetValue(5,12,gp_Pnt(-84.5994,-40.0793,-3.44324));
00746         Poles.SetValue(5,13,gp_Pnt(-84.6194,-37.2057,-3.54474));
00747         Poles.SetValue(5,14,gp_Pnt(-84.6441,-34.3358,-3.66032));
00748         Poles.SetValue(5,15,gp_Pnt(-84.6655,-31.9433,-3.73538));
00749         Poles.SetValue(5,16,gp_Pnt(-84.6811,-30.0273,-3.78877));
00750         Poles.SetValue(5,17,gp_Pnt(-84.704,-27.1526,-3.87363));
00751         Poles.SetValue(5,18,gp_Pnt(-84.7235,-23.7921,-3.94992));
00752         Poles.SetValue(5,19,gp_Pnt(-84.7453,-19.953,-4.04994));
00753         Poles.SetValue(5,20,gp_Pnt(-84.7487,-16.1062,-4.06117));
00754         Poles.SetValue(5,21,gp_Pnt(-84.761,-12.2635,-4.21439));
00755         Poles.SetValue(5,22,gp_Pnt(-84.7646,-8.4186,-4.30051));
00756         Poles.SetValue(5,23,gp_Pnt(-84.7638,-5.53345,-4.32728));
00757         Poles.SetValue(5,24,gp_Pnt(-84.7694,-1.6881,-4.45068));
00758         Poles.SetValue(5,25,gp_Pnt(-84.762,2.15614,-4.45867));
00759         Poles.SetValue(5,26,gp_Pnt(-84.7563,6.00003,-4.40673));
00760         Poles.SetValue(5,27,gp_Pnt(-84.7609,8.88229,-4.44703));
00761         Poles.SetValue(5,28,gp_Pnt(-84.7604,12.7235,-4.42816));
00762         Poles.SetValue(5,29,gp_Pnt(-84.7534,16.563,-4.35447));
00763         Poles.SetValue(5,30,gp_Pnt(-84.754,20.3999,-4.39459));
00764         Poles.SetValue(5,31,gp_Pnt(-84.7327,24.2293,-4.30122));
00765         Poles.SetValue(5,32,gp_Pnt(-84.7173,27.5803,-4.27802));
00766         Poles.SetValue(5,33,gp_Pnt(-84.6977,30.4479,-4.21241));
00767         Poles.SetValue(5,34,gp_Pnt(-84.6843,32.3595,-4.16497));
00768         Poles.SetValue(5,35,gp_Pnt(-84.6617,34.7453,-4.05325));
00769         Poles.SetValue(5,36,gp_Pnt(-84.642,37.6106,-3.97243));
00770         Poles.SetValue(5,37,gp_Pnt(-84.626,40.4793,-3.88558));
00771         Poles.SetValue(5,38,gp_Pnt(-84.613,43.3488,-3.76512));
00772         Poles.SetValue(5,39,gp_Pnt(-84.602,47.1786,-3.6382));
00773         Poles.SetValue(5,40,gp_Pnt(-84.5979,51.9706,-3.48883));
00774         Poles.SetValue(5,41,gp_Pnt(-84.5955,57.7241,-3.24621));
00775         Poles.SetValue(5,42,gp_Pnt(-84.5981,63.4805,-3.0356));
00776         Poles.SetValue(5,43,gp_Pnt(-84.6055,71.1595,-2.79784));
00777         Poles.SetValue(5,44,gp_Pnt(-84.622,84.6125,-2.27334));
00778         Poles.SetValue(5,45,gp_Pnt(-84.632,103.829,-1.5763));
00779         Poles.SetValue(5,46,gp_Pnt(-84.6319,126.911,-0.827433));
00780         Poles.SetValue(5,47,gp_Pnt(-84.6202,142.302,-0.277168));
00781         Poles.SetValue(5,48,gp_Pnt(-84.616,150,-0.00084759));
00782         Poles.SetValue(6,1,gp_Pnt(-71.1545,-150,0.000818217));
00783         Poles.SetValue(6,2,gp_Pnt(-71.1559,-142.265,-0.171988));
00784         Poles.SetValue(6,3,gp_Pnt(-71.1636,-126.808,-0.877511));
00785         Poles.SetValue(6,4,gp_Pnt(-71.156,-103.621,-1.6021));
00786         Poles.SetValue(6,5,gp_Pnt(-71.1356,-84.3088,-2.3871));
00787         Poles.SetValue(6,6,gp_Pnt(-71.1082,-70.796,-2.8955));
00788         Poles.SetValue(6,7,gp_Pnt(-71.0937,-63.0781,-3.24057));
00789         Poles.SetValue(6,8,gp_Pnt(-71.0799,-57.2886,-3.46587));
00790         Poles.SetValue(6,9,gp_Pnt(-71.0655,-51.499,-3.70299));
00791         Poles.SetValue(6,10,gp_Pnt(-71.0546,-46.6771,-3.94985));
00792         Poles.SetValue(6,11,gp_Pnt(-71.0462,-42.8205,-4.15299));
00793         Poles.SetValue(6,12,gp_Pnt(-71.0381,-39.9275,-4.28235));
00794         Poles.SetValue(6,13,gp_Pnt(-71.0329,-37.0353,-4.43768));
00795         Poles.SetValue(6,14,gp_Pnt(-71.026,-34.1434,-4.56256));
00796         Poles.SetValue(6,15,gp_Pnt(-71.0223,-31.7352,-4.68719));
00797         Poles.SetValue(6,16,gp_Pnt(-71.0206,-29.8116,-4.79297));
00798         Poles.SetValue(6,17,gp_Pnt(-71.0187,-26.9274,-4.95523));
00799         Poles.SetValue(6,18,gp_Pnt(-71.0182,-23.5685,-5.15222));
00800         Poles.SetValue(6,19,gp_Pnt(-71.0127,-19.7304,-5.35227));
00801         Poles.SetValue(6,20,gp_Pnt(-71.0136,-15.8989,-5.56506));
00802         Poles.SetValue(6,21,gp_Pnt(-71.0096,-12.0712,-5.68795));
00803         Poles.SetValue(6,22,gp_Pnt(-71.0107,-8.25242,-5.79463));
00804         Poles.SetValue(6,23,gp_Pnt(-71.0139,-5.39299,-5.88817));
00805         Poles.SetValue(6,24,gp_Pnt(-71.0145,-1.5833,-5.93167));
00806         Poles.SetValue(6,25,gp_Pnt(-71.0292,2.22315,-5.99844));
00807         Poles.SetValue(6,26,gp_Pnt(-71.0411,6.02965,-6.03414));
00808         Poles.SetValue(6,27,gp_Pnt(-71.0445,8.88553,-5.98762));
00809         Poles.SetValue(6,28,gp_Pnt(-71.0538,12.6963,-5.9483));
00810         Poles.SetValue(6,29,gp_Pnt(-71.0673,16.5105,-5.90522));
00811         Poles.SetValue(6,30,gp_Pnt(-71.0725,20.328,-5.76435));
00812         Poles.SetValue(6,31,gp_Pnt(-71.0851,24.1504,-5.66147));
00813         Poles.SetValue(6,32,gp_Pnt(-71.0875,27.4934,-5.51298));
00814         Poles.SetValue(6,33,gp_Pnt(-71.0908,30.364,-5.39372));
00815         Poles.SetValue(6,34,gp_Pnt(-71.0932,32.2778,-5.31749));
00816         Poles.SetValue(6,35,gp_Pnt(-71.0997,34.6747,-5.24058));
00817         Poles.SetValue(6,36,gp_Pnt(-71.1085,37.552,-5.1317));
00818         Poles.SetValue(6,37,gp_Pnt(-71.1096,40.4266,-4.95936));
00819         Poles.SetValue(6,38,gp_Pnt(-71.1188,43.3052,-4.8684));
00820         Poles.SetValue(6,39,gp_Pnt(-71.1247,47.1418,-4.66742));
00821         Poles.SetValue(6,40,gp_Pnt(-71.1323,51.9393,-4.41857));
00822         Poles.SetValue(6,41,gp_Pnt(-71.1417,57.6996,-4.12519));
00823         Poles.SetValue(6,42,gp_Pnt(-71.1508,63.4613,-3.8404));
00824         Poles.SetValue(6,43,gp_Pnt(-71.162,71.1459,-3.46491));
00825         Poles.SetValue(6,44,gp_Pnt(-71.1789,84.5949,-2.84945));
00826         Poles.SetValue(6,45,gp_Pnt(-71.191,103.827,-1.9693));
00827         Poles.SetValue(6,46,gp_Pnt(-71.1797,126.907,-0.936212));
00828         Poles.SetValue(6,47,gp_Pnt(-71.1648,142.304,-0.336438));
00829         Poles.SetValue(6,48,gp_Pnt(-71.1568,150,-0.000475897));
00830         Poles.SetValue(7,1,gp_Pnt(-63.4635,-150,0.000362352));
00831         Poles.SetValue(7,2,gp_Pnt(-63.4667,-142.266,-0.270865));
00832         Poles.SetValue(7,3,gp_Pnt(-63.4754,-126.801,-0.886325));
00833         Poles.SetValue(7,4,gp_Pnt(-63.4707,-103.604,-1.70578));
00834         Poles.SetValue(7,5,gp_Pnt(-63.4505,-84.2857,-2.5768));
00835         Poles.SetValue(7,6,gp_Pnt(-63.4181,-70.7632,-3.20272));
00836         Poles.SetValue(7,7,gp_Pnt(-63.3948,-63.0341,-3.53045));
00837         Poles.SetValue(7,8,gp_Pnt(-63.3767,-57.2389,-3.80851));
00838         Poles.SetValue(7,9,gp_Pnt(-63.3583,-51.4454,-4.13513));
00839         Poles.SetValue(7,10,gp_Pnt(-63.338,-46.6134,-4.37957));
00840         Poles.SetValue(7,11,gp_Pnt(-63.319,-42.7455,-4.60555));
00841         Poles.SetValue(7,12,gp_Pnt(-63.3044,-39.8447,-4.78324));
00842         Poles.SetValue(7,13,gp_Pnt(-63.2827,-36.9396,-4.96843));
00843         Poles.SetValue(7,14,gp_Pnt(-63.2624,-34.0396,-5.18158));
00844         Poles.SetValue(7,15,gp_Pnt(-63.2386,-31.6189,-5.33987));
00845         Poles.SetValue(7,16,gp_Pnt(-63.221,-29.6882,-5.45269));
00846         Poles.SetValue(7,17,gp_Pnt(-63.1927,-26.7909,-5.60579));
00847         Poles.SetValue(7,18,gp_Pnt(-63.1645,-23.4252,-5.7359));
00848         Poles.SetValue(7,19,gp_Pnt(-63.1509,-19.5935,-5.838));
00849         Poles.SetValue(7,20,gp_Pnt(-63.1439,-15.77,-5.92716));
00850         Poles.SetValue(7,21,gp_Pnt(-63.1534,-11.9628,-6.05663));
00851         Poles.SetValue(7,22,gp_Pnt(-63.1624,-8.16097,-6.16538));
00852         Poles.SetValue(7,23,gp_Pnt(-63.1713,-5.31206,-6.20947));
00853         Poles.SetValue(7,24,gp_Pnt(-63.193,-1.51882,-6.33325));
00854         Poles.SetValue(7,25,gp_Pnt(-63.1982,2.26931,-6.42672));
00855         Poles.SetValue(7,26,gp_Pnt(-63.2064,6.05752,-6.45684));
00856         Poles.SetValue(7,27,gp_Pnt(-63.2158,8.89967,-6.49216));
00857         Poles.SetValue(7,28,gp_Pnt(-63.2266,12.6896,-6.5197));
00858         Poles.SetValue(7,29,gp_Pnt(-63.2272,16.4827,-6.46308));
00859         Poles.SetValue(7,30,gp_Pnt(-63.2514,20.2851,-6.51582));
00860         Poles.SetValue(7,31,gp_Pnt(-63.2665,24.0915,-6.41687));
00861         Poles.SetValue(7,32,gp_Pnt(-63.3025,27.4349,-6.36479));
00862         Poles.SetValue(7,33,gp_Pnt(-63.3303,30.3117,-6.22694));
00863         Poles.SetValue(7,34,gp_Pnt(-63.3488,32.2305,-6.13272));
00864         Poles.SetValue(7,35,gp_Pnt(-63.366,34.6316,-5.97585));
00865         Poles.SetValue(7,36,gp_Pnt(-63.3837,37.5115,-5.82491));
00866         Poles.SetValue(7,37,gp_Pnt(-63.4034,40.3963,-5.69285));
00867         Poles.SetValue(7,38,gp_Pnt(-63.4132,43.2758,-5.49842));
00868         Poles.SetValue(7,39,gp_Pnt(-63.4263,47.1169,-5.25128));
00869         Poles.SetValue(7,40,gp_Pnt(-63.4394,51.9183,-4.95511));
00870         Poles.SetValue(7,41,gp_Pnt(-63.4539,57.6817,-4.64148));
00871         Poles.SetValue(7,42,gp_Pnt(-63.4684,63.4475,-4.3285));
00872         Poles.SetValue(7,43,gp_Pnt(-63.4802,71.1311,-3.82751));
00873         Poles.SetValue(7,44,gp_Pnt(-63.499,84.589,-3.10785));
00874         Poles.SetValue(7,45,gp_Pnt(-63.5115,103.821,-2.17125));
00875         Poles.SetValue(7,46,gp_Pnt(-63.4944,126.908,-1.06963));
00876         Poles.SetValue(7,47,gp_Pnt(-63.4761,142.304,-0.392153));
00877         Poles.SetValue(7,48,gp_Pnt(-63.4659,150,0.000947448));
00878         Poles.SetValue(8,1,gp_Pnt(-57.6952,-150,-0.00314282));
00879         Poles.SetValue(8,2,gp_Pnt(-57.6995,-142.266,-0.311295));
00880         Poles.SetValue(8,3,gp_Pnt(-57.7097,-126.797,-0.921112));
00881         Poles.SetValue(8,4,gp_Pnt(-57.7066,-103.591,-1.73366));
00882         Poles.SetValue(8,5,gp_Pnt(-57.6899,-84.2722,-2.7131));
00883         Poles.SetValue(8,6,gp_Pnt(-57.6482,-70.7348,-3.36076));
00884         Poles.SetValue(8,7,gp_Pnt(-57.6215,-63.0007,-3.76313));
00885         Poles.SetValue(8,8,gp_Pnt(-57.5991,-57.2001,-4.08499));
00886         Poles.SetValue(8,9,gp_Pnt(-57.5756,-51.4007,-4.39273));
00887         Poles.SetValue(8,10,gp_Pnt(-57.554,-46.5664,-4.69516));
00888         Poles.SetValue(8,11,gp_Pnt(-57.5322,-42.6946,-4.96155));
00889         Poles.SetValue(8,12,gp_Pnt(-57.5132,-39.7891,-5.21994));
00890         Poles.SetValue(8,13,gp_Pnt(-57.4836,-36.8743,-5.38283));
00891         Poles.SetValue(8,14,gp_Pnt(-57.4423,-33.9556,-5.4932));
00892         Poles.SetValue(8,15,gp_Pnt(-57.402,-31.5272,-5.53467));
00893         Poles.SetValue(8,16,gp_Pnt(-57.3861,-29.5989,-5.60063));
00894         Poles.SetValue(8,17,gp_Pnt(-57.3688,-26.7132,-5.72085));
00895         Poles.SetValue(8,18,gp_Pnt(-57.398,-23.3843,-5.9876));
00896         Poles.SetValue(8,19,gp_Pnt(-57.4294,-19.5722,-6.26213));
00897         Poles.SetValue(8,20,gp_Pnt(-57.5035,-15.7794,-6.68012));
00898         Poles.SetValue(8,21,gp_Pnt(-57.5719,-11.9809,-7.06297));
00899         Poles.SetValue(8,22,gp_Pnt(-57.6221,-8.1767,-7.32819));
00900         Poles.SetValue(8,23,gp_Pnt(-57.6505,-5.32072,-7.50978));
00901         Poles.SetValue(8,24,gp_Pnt(-57.6777,-1.51151,-7.67969));
00902         Poles.SetValue(8,25,gp_Pnt(-57.7106,2.29043,-7.79385));
00903         Poles.SetValue(8,26,gp_Pnt(-57.6789,6.09212,-7.72725));
00904         Poles.SetValue(8,27,gp_Pnt(-57.6575,8.94134,-7.67509));
00905         Poles.SetValue(8,28,gp_Pnt(-57.6107,12.7342,-7.50788));
00906         Poles.SetValue(8,29,gp_Pnt(-57.5593,16.5215,-7.2957));
00907         Poles.SetValue(8,30,gp_Pnt(-57.5083,20.3002,-7.009));
00908         Poles.SetValue(8,31,gp_Pnt(-57.4814,24.0877,-6.79325));
00909         Poles.SetValue(8,32,gp_Pnt(-57.4846,27.4081,-6.67069));
00910         Poles.SetValue(8,33,gp_Pnt(-57.5135,30.2753,-6.61361));
00911         Poles.SetValue(8,34,gp_Pnt(-57.5328,32.1869,-6.57093));
00912         Poles.SetValue(8,35,gp_Pnt(-57.5743,34.5945,-6.55824));
00913         Poles.SetValue(8,36,gp_Pnt(-57.6121,37.4882,-6.44634));
00914         Poles.SetValue(8,37,gp_Pnt(-57.628,40.3737,-6.21298));
00915         Poles.SetValue(8,38,gp_Pnt(-57.6442,43.2575,-6.00935));
00916         Poles.SetValue(8,39,gp_Pnt(-57.6633,47.1029,-5.76432));
00917         Poles.SetValue(8,40,gp_Pnt(-57.6718,51.9,-5.37064));
00918         Poles.SetValue(8,41,gp_Pnt(-57.6883,57.6662,-5.02319));
00919         Poles.SetValue(8,42,gp_Pnt(-57.7048,63.4336,-4.65762));
00920         Poles.SetValue(8,43,gp_Pnt(-57.7185,71.1203,-4.08762));
00921         Poles.SetValue(8,44,gp_Pnt(-57.7448,84.5871,-3.3533));
00922         Poles.SetValue(8,45,gp_Pnt(-57.7511,103.816,-2.29786));
00923         Poles.SetValue(8,46,gp_Pnt(-57.7309,126.907,-1.1419));
00924         Poles.SetValue(8,47,gp_Pnt(-57.7091,142.303,-0.384611));
00925         Poles.SetValue(8,48,gp_Pnt(-57.6978,150,-0.00163315));
00926         Poles.SetValue(9,1,gp_Pnt(-51.9266,-150,-0.000170689));
00927         Poles.SetValue(9,2,gp_Pnt(-51.9325,-142.265,-0.308476));
00928         Poles.SetValue(9,3,gp_Pnt(-51.9437,-126.792,-0.954312));
00929         Poles.SetValue(9,4,gp_Pnt(-51.9434,-103.579,-1.79846));
00930         Poles.SetValue(9,5,gp_Pnt(-51.9339,-84.2654,-2.84979));
00931         Poles.SetValue(9,6,gp_Pnt(-51.8762,-70.7033,-3.47842));
00932         Poles.SetValue(9,7,gp_Pnt(-51.8492,-62.9676,-3.99915));
00933         Poles.SetValue(9,8,gp_Pnt(-51.8239,-57.1623,-4.34605));
00934         Poles.SetValue(9,9,gp_Pnt(-51.7903,-51.3504,-4.69053));
00935         Poles.SetValue(9,10,gp_Pnt(-51.7729,-46.5189,-5.09883));
00936         Poles.SetValue(9,11,gp_Pnt(-51.757,-42.6481,-5.27347));
00937         Poles.SetValue(9,12,gp_Pnt(-51.7513,-39.7469,-5.30536));
00938         Poles.SetValue(9,13,gp_Pnt(-51.7401,-36.8465,-5.38604));
00939         Poles.SetValue(9,14,gp_Pnt(-51.7694,-33.9846,-5.66624));
00940         Poles.SetValue(9,15,gp_Pnt(-51.7798,-31.5914,-5.96847));
00941         Poles.SetValue(9,16,gp_Pnt(-51.8152,-29.6949,-6.3184));
00942         Poles.SetValue(9,17,gp_Pnt(-51.8773,-26.8541,-6.90413));
00943         Poles.SetValue(9,18,gp_Pnt(-51.9335,-23.5242,-7.53269));
00944         Poles.SetValue(9,19,gp_Pnt(-52.0359,-19.7223,-8.2157));
00945         Poles.SetValue(9,20,gp_Pnt(-52.1308,-15.9092,-8.84603));
00946         Poles.SetValue(9,21,gp_Pnt(-52.2346,-12.094,-9.39748));
00947         Poles.SetValue(9,22,gp_Pnt(-52.3068,-8.26388,-9.81203));
00948         Poles.SetValue(9,23,gp_Pnt(-52.3488,-5.38726,-10.0427));
00949         Poles.SetValue(9,24,gp_Pnt(-52.391,-1.54826,-10.2726));
00950         Poles.SetValue(9,25,gp_Pnt(-52.4088,2.29184,-10.382));
00951         Poles.SetValue(9,26,gp_Pnt(-52.3622,6.12771,-10.2589));
00952         Poles.SetValue(9,27,gp_Pnt(-52.3201,8.99991,-10.0938));
00953         Poles.SetValue(9,28,gp_Pnt(-52.2783,12.8262,-9.86285));
00954         Poles.SetValue(9,29,gp_Pnt(-52.1925,16.6338,-9.442));
00955         Poles.SetValue(9,30,gp_Pnt(-52.1187,20.4371,-8.97308));
00956         Poles.SetValue(9,31,gp_Pnt(-52.0376,24.2289,-8.44813));
00957         Poles.SetValue(9,32,gp_Pnt(-51.9688,27.5366,-7.90192));
00958         Poles.SetValue(9,33,gp_Pnt(-51.9242,30.3704,-7.47434));
00959         Poles.SetValue(9,34,gp_Pnt(-51.9019,32.2644,-7.22041));
00960         Poles.SetValue(9,35,gp_Pnt(-51.8684,34.6208,-6.88143));
00961         Poles.SetValue(9,36,gp_Pnt(-51.8535,37.4738,-6.68843));
00962         Poles.SetValue(9,37,gp_Pnt(-51.8792,40.3596,-6.69292));
00963         Poles.SetValue(9,38,gp_Pnt(-51.8924,43.2452,-6.61057));
00964         Poles.SetValue(9,39,gp_Pnt(-51.8939,47.0764,-6.26774));
00965         Poles.SetValue(9,40,gp_Pnt(-51.9082,51.8812,-5.88782));
00966         Poles.SetValue(9,41,gp_Pnt(-51.9297,57.653,-5.46697));
00967         Poles.SetValue(9,42,gp_Pnt(-51.9428,63.4193,-5.00425));
00968         Poles.SetValue(9,43,gp_Pnt(-51.9613,71.113,-4.45556));
00969         Poles.SetValue(9,44,gp_Pnt(-51.9912,84.5843,-3.48722));
00970         Poles.SetValue(9,45,gp_Pnt(-51.9934,103.813,-2.50034));
00971         Poles.SetValue(9,46,gp_Pnt(-51.9654,126.903,-1.154));
00972         Poles.SetValue(9,47,gp_Pnt(-51.9437,142.306,-0.456106));
00973         Poles.SetValue(9,48,gp_Pnt(-51.9293,150,0.00113058));
00974         Poles.SetValue(10,1,gp_Pnt(-46.1581,-150.001,-0.000638257));
00975         Poles.SetValue(10,2,gp_Pnt(-46.1658,-142.266,-0.338908));
00976         Poles.SetValue(10,3,gp_Pnt(-46.1771,-126.787,-0.982666));
00977         Poles.SetValue(10,4,gp_Pnt(-46.1819,-103.569,-1.90958));
00978         Poles.SetValue(10,5,gp_Pnt(-46.1784,-84.261,-2.93134));
00979         Poles.SetValue(10,6,gp_Pnt(-46.1093,-70.6785,-3.69831));
00980         Poles.SetValue(10,7,gp_Pnt(-46.0739,-62.928,-4.17581));
00981         Poles.SetValue(10,8,gp_Pnt(-46.047,-57.1203,-4.57934));
00982         Poles.SetValue(10,9,gp_Pnt(-46.0154,-51.3116,-5.03379));
00983         Poles.SetValue(10,10,gp_Pnt(-45.9925,-46.4699,-5.18556));
00984         Poles.SetValue(10,11,gp_Pnt(-46.012,-42.6314,-5.32418));
00985         Poles.SetValue(10,12,gp_Pnt(-46.0662,-39.7925,-5.76494));
00986         Poles.SetValue(10,13,gp_Pnt(-46.1808,-37.0074,-6.4582));
00987         Poles.SetValue(10,14,gp_Pnt(-46.2627,-34.1775,-7.11737));
00988         Poles.SetValue(10,15,gp_Pnt(-46.3521,-31.8361,-7.6892));
00989         Poles.SetValue(10,16,gp_Pnt(-46.4119,-29.9436,-8.15917));
00990         Poles.SetValue(10,17,gp_Pnt(-46.4974,-27.1051,-8.83871));
00991         Poles.SetValue(10,18,gp_Pnt(-46.6385,-23.7928,-9.76221));
00992         Poles.SetValue(10,19,gp_Pnt(-46.7404,-19.9549,-10.6246));
00993         Poles.SetValue(10,20,gp_Pnt(-46.8688,-16.1204,-11.4653));
00994         Poles.SetValue(10,21,gp_Pnt(-46.9478,-12.2561,-12.113));
00995         Poles.SetValue(10,22,gp_Pnt(-47.0023,-8.38515,-12.5828));
00996         Poles.SetValue(10,23,gp_Pnt(-47.0269,-5.4785,-12.8456));
00997         Poles.SetValue(10,24,gp_Pnt(-47.0386,-1.60018,-13.0705));
00998         Poles.SetValue(10,25,gp_Pnt(-47.0287,2.2868,-13.1044));
00999         Poles.SetValue(10,26,gp_Pnt(-47.034,6.16793,-13.0276));
01000         Poles.SetValue(10,27,gp_Pnt(-47.0114,9.0735,-12.8621));
01001         Poles.SetValue(10,28,gp_Pnt(-46.9836,12.9397,-12.5471));
01002         Poles.SetValue(10,29,gp_Pnt(-46.9389,16.7984,-12.1024));
01003         Poles.SetValue(10,30,gp_Pnt(-46.8056,20.6199,-11.386));
01004         Poles.SetValue(10,31,gp_Pnt(-46.729,24.4527,-10.7291));
01005         Poles.SetValue(10,32,gp_Pnt(-46.5805,27.7429,-9.92361));
01006         Poles.SetValue(10,33,gp_Pnt(-46.5017,30.5752,-9.34857));
01007         Poles.SetValue(10,34,gp_Pnt(-46.4461,32.4597,-8.95609));
01008         Poles.SetValue(10,35,gp_Pnt(-46.3462,34.7849,-8.34287));
01009         Poles.SetValue(10,36,gp_Pnt(-46.2837,37.6128,-7.82045));
01010         Poles.SetValue(10,37,gp_Pnt(-46.162,40.3806,-7.10571));
01011         Poles.SetValue(10,38,gp_Pnt(-46.1171,43.2098,-6.73439));
01012         Poles.SetValue(10,39,gp_Pnt(-46.1366,47.0603,-6.75792));
01013         Poles.SetValue(10,40,gp_Pnt(-46.1512,51.8648,-6.41774));
01014         Poles.SetValue(10,41,gp_Pnt(-46.1664,57.632,-5.86914));
01015         Poles.SetValue(10,42,gp_Pnt(-46.1871,63.4077,-5.41307));
01016         Poles.SetValue(10,43,gp_Pnt(-46.2021,71.1,-4.72497));
01017         Poles.SetValue(10,44,gp_Pnt(-46.2443,84.5899,-3.70014));
01018         Poles.SetValue(10,45,gp_Pnt(-46.2336,103.804,-2.61154));
01019         Poles.SetValue(10,46,gp_Pnt(-46.2013,126.902,-1.24637));
01020         Poles.SetValue(10,47,gp_Pnt(-46.1774,142.306,-0.449946));
01021         Poles.SetValue(10,48,gp_Pnt(-46.1611,150.001,-0.00144769));
01022         Poles.SetValue(11,1,gp_Pnt(-41.3506,-150.001,0.000129401));
01023         Poles.SetValue(11,2,gp_Pnt(-41.3604,-142.268,-0.369782));
01024         Poles.SetValue(11,3,gp_Pnt(-41.3715,-126.784,-1.01965));
01025         Poles.SetValue(11,4,gp_Pnt(-41.381,-103.559,-1.98585));
01026         Poles.SetValue(11,5,gp_Pnt(-41.3846,-84.2649,-3.02478));
01027         Poles.SetValue(11,6,gp_Pnt(-41.3076,-70.6584,-3.82604));
01028         Poles.SetValue(11,7,gp_Pnt(-41.2583,-62.8898,-4.34596));
01029         Poles.SetValue(11,8,gp_Pnt(-41.2301,-57.0807,-4.77554));
01030         Poles.SetValue(11,9,gp_Pnt(-41.208,-51.2838,-5.08544));
01031         Poles.SetValue(11,10,gp_Pnt(-41.2328,-46.4935,-5.34778));
01032         Poles.SetValue(11,11,gp_Pnt(-41.3268,-42.7488,-6.24075));
01033         Poles.SetValue(11,12,gp_Pnt(-41.4109,-39.9421,-6.96341));
01034         Poles.SetValue(11,13,gp_Pnt(-41.4934,-37.1246,-7.70505));
01035         Poles.SetValue(11,14,gp_Pnt(-41.6366,-34.3514,-8.60427));
01036         Poles.SetValue(11,15,gp_Pnt(-41.7592,-32.0314,-9.39254));
01037         Poles.SetValue(11,16,gp_Pnt(-41.866,-30.171,-10.027));
01038         Poles.SetValue(11,17,gp_Pnt(-42.007,-27.3579,-10.9448));
01039         Poles.SetValue(11,18,gp_Pnt(-42.1295,-24.0111,-11.8554));
01040         Poles.SetValue(11,19,gp_Pnt(-42.2841,-20.1843,-12.84));
01041         Poles.SetValue(11,20,gp_Pnt(-42.4397,-16.3348,-13.7597));
01042         Poles.SetValue(11,21,gp_Pnt(-42.6184,-12.4706,-14.5978));
01043         Poles.SetValue(11,22,gp_Pnt(-42.7575,-8.5647,-15.2417));
01044         Poles.SetValue(11,23,gp_Pnt(-42.8491,-5.62091,-15.6293));
01045         Poles.SetValue(11,24,gp_Pnt(-42.8914,-1.67076,-15.914));
01046         Poles.SetValue(11,25,gp_Pnt(-42.8577,2.29453,-15.9201));
01047         Poles.SetValue(11,26,gp_Pnt(-42.8099,6.24375,-15.7308));
01048         Poles.SetValue(11,27,gp_Pnt(-42.7438,9.19033,-15.4664));
01049         Poles.SetValue(11,28,gp_Pnt(-42.6546,13.1006,-15.0329));
01050         Poles.SetValue(11,29,gp_Pnt(-42.4397,16.9381,-14.2592));
01051         Poles.SetValue(11,30,gp_Pnt(-42.3321,20.793,-13.586));
01052         Poles.SetValue(11,31,gp_Pnt(-42.202,24.6193,-12.7928));
01053         Poles.SetValue(11,32,gp_Pnt(-42.0702,27.9455,-11.976));
01054         Poles.SetValue(11,33,gp_Pnt(-41.926,30.743,-11.1473));
01055         Poles.SetValue(11,34,gp_Pnt(-41.8424,32.617,-10.6229));
01056         Poles.SetValue(11,35,gp_Pnt(-41.7499,34.9475,-9.97304));
01057         Poles.SetValue(11,36,gp_Pnt(-41.6445,37.7479,-9.23094));
01058         Poles.SetValue(11,37,gp_Pnt(-41.557,40.5517,-8.47969));
01059         Poles.SetValue(11,38,gp_Pnt(-41.4664,43.3478,-7.79497));
01060         Poles.SetValue(11,39,gp_Pnt(-41.3421,47.0459,-6.80636));
01061         Poles.SetValue(11,40,gp_Pnt(-41.3394,51.8371,-6.68123));
01062         Poles.SetValue(11,41,gp_Pnt(-41.3706,57.6167,-6.22193));
01063         Poles.SetValue(11,42,gp_Pnt(-41.3831,63.3849,-5.68374));
01064         Poles.SetValue(11,43,gp_Pnt(-41.4131,71.0964,-4.98988));
01065         Poles.SetValue(11,44,gp_Pnt(-41.4553,84.5966,-3.8597));
01066         Poles.SetValue(11,45,gp_Pnt(-41.4358,103.797,-2.69226));
01067         Poles.SetValue(11,46,gp_Pnt(-41.396,126.901,-1.33321));
01068         Poles.SetValue(11,47,gp_Pnt(-41.3733,142.306,-0.423026));
01069         Poles.SetValue(11,48,gp_Pnt(-41.3535,150.001,0.000856916));
01070         Poles.SetValue(12,1,gp_Pnt(-37.5046,-150.002,-0.000990159));
01071         Poles.SetValue(12,2,gp_Pnt(-37.5158,-142.268,-0.362104));
01072         Poles.SetValue(12,3,gp_Pnt(-37.5275,-126.781,-1.04216));
01073         Poles.SetValue(12,4,gp_Pnt(-37.54,-103.548,-2.02727));
01074         Poles.SetValue(12,5,gp_Pnt(-37.5516,-84.2718,-3.08919));
01075         Poles.SetValue(12,6,gp_Pnt(-37.4692,-70.645,-3.92736));
01076         Poles.SetValue(12,7,gp_Pnt(-37.4034,-62.8516,-4.46926));
01077         Poles.SetValue(12,8,gp_Pnt(-37.3656,-57.0305,-4.90814));
01078         Poles.SetValue(12,9,gp_Pnt(-37.38,-51.2739,-5.03776));
01079         Poles.SetValue(12,10,gp_Pnt(-37.4847,-46.6009,-5.98182));
01080         Poles.SetValue(12,11,gp_Pnt(-37.5865,-42.8757,-7.03982));
01081         Poles.SetValue(12,12,gp_Pnt(-37.6857,-40.0925,-7.9519));
01082         Poles.SetValue(12,13,gp_Pnt(-37.8317,-37.3448,-9.00586));
01083         Poles.SetValue(12,14,gp_Pnt(-38.0147,-34.6055,-10.1344));
01084         Poles.SetValue(12,15,gp_Pnt(-38.1289,-32.2759,-10.9655));
01085         Poles.SetValue(12,16,gp_Pnt(-38.2014,-30.3789,-11.5644));
01086         Poles.SetValue(12,17,gp_Pnt(-38.3098,-27.5372,-12.4577));
01087         Poles.SetValue(12,18,gp_Pnt(-38.5591,-24.2661,-13.6428));
01088         Poles.SetValue(12,19,gp_Pnt(-38.8481,-20.4819,-14.8886));
01089         Poles.SetValue(12,20,gp_Pnt(-39.176,-16.67,-16.0722));
01090         Poles.SetValue(12,21,gp_Pnt(-39.431,-12.7582,-16.9903));
01091         Poles.SetValue(12,22,gp_Pnt(-39.6338,-8.78775,-17.6581));
01092         Poles.SetValue(12,23,gp_Pnt(-39.7083,-5.77365,-17.9709));
01093         Poles.SetValue(12,24,gp_Pnt(-39.7945,-1.73776,-18.2789));
01094         Poles.SetValue(12,25,gp_Pnt(-39.7792,2.31582,-18.3108));
01095         Poles.SetValue(12,26,gp_Pnt(-39.7111,6.3468,-18.1589));
01096         Poles.SetValue(12,27,gp_Pnt(-39.6071,9.34647,-17.8966));
01097         Poles.SetValue(12,28,gp_Pnt(-39.4225,13.3136,-17.3697));
01098         Poles.SetValue(12,29,gp_Pnt(-39.1565,17.2006,-16.5688));
01099         Poles.SetValue(12,30,gp_Pnt(-38.8412,21.0139,-15.5401));
01100         Poles.SetValue(12,31,gp_Pnt(-38.5614,24.7878,-14.4514));
01101         Poles.SetValue(12,32,gp_Pnt(-38.3865,28.1004,-13.5309));
01102         Poles.SetValue(12,33,gp_Pnt(-38.2837,30.935,-12.7238));
01103         Poles.SetValue(12,34,gp_Pnt(-38.1998,32.81,-12.1537));
01104         Poles.SetValue(12,35,gp_Pnt(-38.0919,35.1348,-11.3864));
01105         Poles.SetValue(12,36,gp_Pnt(-37.9482,37.9015,-10.4242));
01106         Poles.SetValue(12,37,gp_Pnt(-37.8069,40.6462,-9.43281));
01107         Poles.SetValue(12,38,gp_Pnt(-37.7142,43.4352,-8.61957));
01108         Poles.SetValue(12,39,gp_Pnt(-37.5907,47.134,-7.52689));
01109         Poles.SetValue(12,40,gp_Pnt(-37.5157,51.8377,-6.80127));
01110         Poles.SetValue(12,41,gp_Pnt(-37.5183,57.5848,-6.49516));
01111         Poles.SetValue(12,42,gp_Pnt(-37.5412,63.3635,-5.90827));
01112         Poles.SetValue(12,43,gp_Pnt(-37.5834,71.0941,-5.20371));
01113         Poles.SetValue(12,44,gp_Pnt(-37.6269,84.6055,-3.9813));
01114         Poles.SetValue(12,45,gp_Pnt(-37.5971,103.791,-2.77693));
01115         Poles.SetValue(12,46,gp_Pnt(-37.5523,126.898,-1.36182));
01116         Poles.SetValue(12,47,gp_Pnt(-37.5291,142.307,-0.42845));
01117         Poles.SetValue(12,48,gp_Pnt(-37.5076,150.002,0.00471985));
01118         Poles.SetValue(13,1,gp_Pnt(-34.62,-150.003,-0.0023316));
01119         Poles.SetValue(13,2,gp_Pnt(-34.632,-142.268,-0.349958));
01120         Poles.SetValue(13,3,gp_Pnt(-34.645,-126.78,-1.05185));
01121         Poles.SetValue(13,4,gp_Pnt(-34.6586,-103.539,-2.05983));
01122         Poles.SetValue(13,5,gp_Pnt(-34.6791,-84.2792,-3.11805));
01123         Poles.SetValue(13,6,gp_Pnt(-34.591,-70.6351,-4.00171));
01124         Poles.SetValue(13,7,gp_Pnt(-34.5131,-62.8198,-4.56575));
01125         Poles.SetValue(13,8,gp_Pnt(-34.4669,-56.9824,-4.92811));
01126         Poles.SetValue(13,9,gp_Pnt(-34.5266,-51.29,-5.24163));
01127         Poles.SetValue(13,10,gp_Pnt(-34.6876,-46.7104,-6.52793));
01128         Poles.SetValue(13,11,gp_Pnt(-34.8026,-43.0114,-7.78986));
01129         Poles.SetValue(13,12,gp_Pnt(-34.9344,-40.2726,-8.89694));
01130         Poles.SetValue(13,13,gp_Pnt(-35.0891,-37.5373,-10.0435));
01131         Poles.SetValue(13,14,gp_Pnt(-35.2348,-34.7597,-11.1199));
01132         Poles.SetValue(13,15,gp_Pnt(-35.3211,-32.4067,-11.9429));
01133         Poles.SetValue(13,16,gp_Pnt(-35.4497,-30.5606,-12.6961));
01134         Poles.SetValue(13,17,gp_Pnt(-35.614,-27.7584,-13.7623));
01135         Poles.SetValue(13,18,gp_Pnt(-35.9962,-24.5678,-15.2273));
01136         Poles.SetValue(13,19,gp_Pnt(-36.363,-20.7882,-16.5677));
01137         Poles.SetValue(13,20,gp_Pnt(-36.6904,-16.9282,-17.7055));
01138         Poles.SetValue(13,21,gp_Pnt(-36.8578,-12.9306,-18.3233));
01139         Poles.SetValue(13,22,gp_Pnt(-36.9527,-8.88561,-18.7197));
01140         Poles.SetValue(13,23,gp_Pnt(-36.9967,-5.83477,-18.8948));
01141         Poles.SetValue(13,24,gp_Pnt(-37.0318,-1.75551,-19.0735));
01142         Poles.SetValue(13,25,gp_Pnt(-37.0313,2.32873,-19.1232));
01143         Poles.SetValue(13,26,gp_Pnt(-37.0175,6.39695,-19.1615));
01144         Poles.SetValue(13,27,gp_Pnt(-36.9594,9.43212,-19.0345));
01145         Poles.SetValue(13,28,gp_Pnt(-36.8675,13.4561,-18.7867));
01146         Poles.SetValue(13,29,gp_Pnt(-36.6616,17.4137,-18.1833));
01147         Poles.SetValue(13,30,gp_Pnt(-36.3331,21.2595,-17.2008));
01148         Poles.SetValue(13,31,gp_Pnt(-35.995,25.041,-16.0204));
01149         Poles.SetValue(13,32,gp_Pnt(-35.6555,28.2725,-14.7687));
01150         Poles.SetValue(13,33,gp_Pnt(-35.5108,31.0696,-13.8117));
01151         Poles.SetValue(13,34,gp_Pnt(-35.4456,32.9642,-13.2402));
01152         Poles.SetValue(13,35,gp_Pnt(-35.3492,35.2949,-12.4616));
01153         Poles.SetValue(13,36,gp_Pnt(-35.189,38.0465,-11.4098));
01154         Poles.SetValue(13,37,gp_Pnt(-35.0275,40.7699,-10.3096));
01155         Poles.SetValue(13,38,gp_Pnt(-34.9073,43.5243,-9.30737));
01156         Poles.SetValue(13,39,gp_Pnt(-34.7987,47.2339,-8.14392));
01157         Poles.SetValue(13,40,gp_Pnt(-34.651,51.8373,-6.91992));
01158         Poles.SetValue(13,41,gp_Pnt(-34.6284,57.5527,-6.63443));
01159         Poles.SetValue(13,42,gp_Pnt(-34.659,63.3436,-6.09258));
01160         Poles.SetValue(13,43,gp_Pnt(-34.7102,71.0895,-5.31871));
01161         Poles.SetValue(13,44,gp_Pnt(-34.7584,84.6162,-4.09984));
01162         Poles.SetValue(13,45,gp_Pnt(-34.7172,103.784,-2.82096));
01163         Poles.SetValue(13,46,gp_Pnt(-34.6703,126.897,-1.3891));
01164         Poles.SetValue(13,47,gp_Pnt(-34.6455,142.308,-0.431219));
01165         Poles.SetValue(13,48,gp_Pnt(-34.6232,150.002,0.00496173));
01166         Poles.SetValue(14,1,gp_Pnt(-31.7352,-150.003,-0.00154848));
01167         Poles.SetValue(14,2,gp_Pnt(-31.7482,-142.267,-0.331617));
01168         Poles.SetValue(14,3,gp_Pnt(-31.763,-126.779,-1.063));
01169         Poles.SetValue(14,4,gp_Pnt(-31.7766,-103.527,-2.07596));
01170         Poles.SetValue(14,5,gp_Pnt(-31.8089,-84.2907,-3.17444));
01171         Poles.SetValue(14,6,gp_Pnt(-31.7122,-70.6219,-4.03525));
01172         Poles.SetValue(14,7,gp_Pnt(-31.6249,-62.7848,-4.66387));
01173         Poles.SetValue(14,8,gp_Pnt(-31.5769,-56.9282,-4.89998));
01174         Poles.SetValue(14,9,gp_Pnt(-31.6802,-51.3146,-5.53692));
01175         Poles.SetValue(14,10,gp_Pnt(-31.8745,-46.8081,-7.10223));
01176         Poles.SetValue(14,11,gp_Pnt(-32.018,-43.1597,-8.56607));
01177         Poles.SetValue(14,12,gp_Pnt(-32.1638,-40.4524,-9.81769));
01178         Poles.SetValue(14,13,gp_Pnt(-32.3073,-37.7124,-11.0081));
01179         Poles.SetValue(14,14,gp_Pnt(-32.4358,-34.9155,-12.0817));
01180         Poles.SetValue(14,15,gp_Pnt(-32.5926,-32.6407,-13.1205));
01181         Poles.SetValue(14,16,gp_Pnt(-32.7344,-30.7964,-13.9191));
01182         Poles.SetValue(14,17,gp_Pnt(-33.0143,-28.0979,-15.252));
01183         Poles.SetValue(14,18,gp_Pnt(-33.4113,-24.8923,-16.747));
01184         Poles.SetValue(14,19,gp_Pnt(-33.7395,-21.0593,-17.9381));
01185         Poles.SetValue(14,20,gp_Pnt(-33.9529,-17.0987,-18.7264));
01186         Poles.SetValue(14,21,gp_Pnt(-34.0517,-13.0389,-19.0923));
01187         Poles.SetValue(14,22,gp_Pnt(-34.0927,-8.94344,-19.1565));
01188         Poles.SetValue(14,23,gp_Pnt(-34.1148,-5.86615,-19.2346));
01189         Poles.SetValue(14,24,gp_Pnt(-34.1342,-1.75859,-19.3087));
01190         Poles.SetValue(14,25,gp_Pnt(-34.1496,2.34806,-19.3815));
01191         Poles.SetValue(14,26,gp_Pnt(-34.1479,6.43942,-19.5269));
01192         Poles.SetValue(14,27,gp_Pnt(-34.1348,9.49773,-19.5973));
01193         Poles.SetValue(14,28,gp_Pnt(-34.086,13.5579,-19.6271));
01194         Poles.SetValue(14,29,gp_Pnt(-33.9618,17.5747,-19.3248));
01195         Poles.SetValue(14,30,gp_Pnt(-33.7384,21.5045,-18.634));
01196         Poles.SetValue(14,31,gp_Pnt(-33.4066,25.3178,-17.5646));
01197         Poles.SetValue(14,32,gp_Pnt(-33.0544,28.5653,-16.2703));
01198         Poles.SetValue(14,33,gp_Pnt(-32.8588,31.3256,-15.1565));
01199         Poles.SetValue(14,34,gp_Pnt(-32.6532,33.099,-14.2631));
01200         Poles.SetValue(14,35,gp_Pnt(-32.5381,35.4039,-13.3772));
01201         Poles.SetValue(14,36,gp_Pnt(-32.393,38.1751,-12.3245));
01202         Poles.SetValue(14,37,gp_Pnt(-32.231,40.8861,-11.1505));
01203         Poles.SetValue(14,38,gp_Pnt(-32.1223,43.6538,-10.1046));
01204         Poles.SetValue(14,39,gp_Pnt(-31.9975,47.3317,-8.76792));
01205         Poles.SetValue(14,40,gp_Pnt(-31.8214,51.8667,-7.32186));
01206         Poles.SetValue(14,41,gp_Pnt(-31.7377,57.5022,-6.67478));
01207         Poles.SetValue(14,42,gp_Pnt(-31.7779,63.3209,-6.2713));
01208         Poles.SetValue(14,43,gp_Pnt(-31.838,71.0853,-5.43635));
01209         Poles.SetValue(14,44,gp_Pnt(-31.8903,84.6268,-4.19797));
01210         Poles.SetValue(14,45,gp_Pnt(-31.8372,103.777,-2.86658));
01211         Poles.SetValue(14,46,gp_Pnt(-31.7884,126.895,-1.40853));
01212         Poles.SetValue(14,47,gp_Pnt(-31.7622,142.309,-0.438532));
01213         Poles.SetValue(14,48,gp_Pnt(-31.7384,150.003,0.00199423));
01214         Poles.SetValue(15,1,gp_Pnt(-28.8504,-150.003,-0.000296043));
01215         Poles.SetValue(15,2,gp_Pnt(-28.8644,-142.267,-0.326339));
01216         Poles.SetValue(15,3,gp_Pnt(-28.8809,-126.778,-1.04463));
01217         Poles.SetValue(15,4,gp_Pnt(-28.8954,-103.518,-2.13061));
01218         Poles.SetValue(15,5,gp_Pnt(-28.9393,-84.3,-3.15907));
01219         Poles.SetValue(15,6,gp_Pnt(-28.837,-70.6117,-4.10819));
01220         Poles.SetValue(15,7,gp_Pnt(-28.7434,-62.7489,-4.72495));
01221         Poles.SetValue(15,8,gp_Pnt(-28.708,-56.8994,-4.89063));
01222         Poles.SetValue(15,9,gp_Pnt(-28.8485,-51.3762,-6.00024));
01223         Poles.SetValue(15,10,gp_Pnt(-29.054,-46.9121,-7.70424));
01224         Poles.SetValue(15,11,gp_Pnt(-29.2298,-43.3343,-9.40211));
01225         Poles.SetValue(15,12,gp_Pnt(-29.3671,-40.6219,-10.6912));
01226         Poles.SetValue(15,13,gp_Pnt(-29.4868,-37.8621,-11.8917));
01227         Poles.SetValue(15,14,gp_Pnt(-29.653,-35.1193,-13.1207));
01228         Poles.SetValue(15,15,gp_Pnt(-29.8374,-32.8838,-14.2764));
01229         Poles.SetValue(15,16,gp_Pnt(-30.0554,-31.1218,-15.2551));
01230         Poles.SetValue(15,17,gp_Pnt(-30.3616,-28.4511,-16.6604));
01231         Poles.SetValue(15,18,gp_Pnt(-30.7128,-25.1891,-18.0319));
01232         Poles.SetValue(15,19,gp_Pnt(-30.8848,-21.2184,-18.7039));
01233         Poles.SetValue(15,20,gp_Pnt(-31.0171,-17.1843,-19.1198));
01234         Poles.SetValue(15,21,gp_Pnt(-31.0697,-13.0808,-19.0549));
01235         Poles.SetValue(15,22,gp_Pnt(-31.0917,-8.96259,-19.0617));
01236         Poles.SetValue(15,23,gp_Pnt(-31.1082,-5.8717,-19.0769));
01237         Poles.SetValue(15,24,gp_Pnt(-31.1282,-1.74971,-19.1218));
01238         Poles.SetValue(15,25,gp_Pnt(-31.1451,2.36805,-19.2344));
01239         Poles.SetValue(15,26,gp_Pnt(-31.1463,6.47208,-19.4017));
01240         Poles.SetValue(15,27,gp_Pnt(-31.1369,9.5398,-19.563));
01241         Poles.SetValue(15,28,gp_Pnt(-31.125,13.624,-19.676));
01242         Poles.SetValue(15,29,gp_Pnt(-31.0629,17.6731,-19.8221));
01243         Poles.SetValue(15,30,gp_Pnt(-30.9394,21.6753,-19.5784));
01244         Poles.SetValue(15,31,gp_Pnt(-30.7208,25.5796,-18.8941));
01245         Poles.SetValue(15,32,gp_Pnt(-30.429,28.8939,-17.7437));
01246         Poles.SetValue(15,33,gp_Pnt(-30.1355,31.5716,-16.4029));
01247         Poles.SetValue(15,34,gp_Pnt(-30.004,33.4123,-15.6337));
01248         Poles.SetValue(15,35,gp_Pnt(-29.7454,35.5561,-14.3595));
01249         Poles.SetValue(15,36,gp_Pnt(-29.5827,38.3004,-13.2055));
01250         Poles.SetValue(15,37,gp_Pnt(-29.4071,40.9896,-11.9148));
01251         Poles.SetValue(15,38,gp_Pnt(-29.3087,43.7647,-10.8315));
01252         Poles.SetValue(15,39,gp_Pnt(-29.1671,47.4036,-9.29662));
01253         Poles.SetValue(15,40,gp_Pnt(-28.9805,51.9045,-7.68659));
01254         Poles.SetValue(15,41,gp_Pnt(-28.8656,57.4635,-6.70615));
01255         Poles.SetValue(15,42,gp_Pnt(-28.899,63.2886,-6.3862));
01256         Poles.SetValue(15,43,gp_Pnt(-28.9679,71.0817,-5.5474));
01257         Poles.SetValue(15,44,gp_Pnt(-29.0236,84.6395,-4.29974));
01258         Poles.SetValue(15,45,gp_Pnt(-28.9571,103.767,-2.89536));
01259         Poles.SetValue(15,46,gp_Pnt(-28.9071,126.895,-1.43175));
01260         Poles.SetValue(15,47,gp_Pnt(-28.8786,142.31,-0.451004));
01261         Poles.SetValue(15,48,gp_Pnt(-28.8536,150.003,-0.000328798));
01262         Poles.SetValue(16,1,gp_Pnt(-25.9656,-150.004,0.00137713));
01263         Poles.SetValue(16,2,gp_Pnt(-25.9803,-142.267,-0.325925));
01264         Poles.SetValue(16,3,gp_Pnt(-25.9991,-126.777,-1.02412));
01265         Poles.SetValue(16,4,gp_Pnt(-26.0145,-103.507,-2.17811));
01266         Poles.SetValue(16,5,gp_Pnt(-26.071,-84.312,-3.15724));
01267         Poles.SetValue(16,6,gp_Pnt(-25.9635,-70.5999,-4.17961));
01268         Poles.SetValue(16,7,gp_Pnt(-25.8703,-62.7171,-4.72997));
01269         Poles.SetValue(16,8,gp_Pnt(-25.8574,-56.9015,-4.98549));
01270         Poles.SetValue(16,9,gp_Pnt(-26.0153,-51.4433,-6.4689));
01271         Poles.SetValue(16,10,gp_Pnt(-26.2167,-47.0041,-8.31462));
01272         Poles.SetValue(16,11,gp_Pnt(-26.414,-43.4866,-10.1773));
01273         Poles.SetValue(16,12,gp_Pnt(-26.5319,-40.7572,-11.4557));
01274         Poles.SetValue(16,13,gp_Pnt(-26.6786,-38.0475,-12.8017));
01275         Poles.SetValue(16,14,gp_Pnt(-26.9109,-35.41,-14.2563));
01276         Poles.SetValue(16,15,gp_Pnt(-27.1481,-33.2466,-15.577));
01277         Poles.SetValue(16,16,gp_Pnt(-27.3362,-31.4586,-16.4821));
01278         Poles.SetValue(16,17,gp_Pnt(-27.6323,-28.7816,-17.8543));
01279         Poles.SetValue(16,18,gp_Pnt(-27.8191,-25.3474,-18.6862));
01280         Poles.SetValue(16,19,gp_Pnt(-27.9266,-21.3202,-19.0118));
01281         Poles.SetValue(16,20,gp_Pnt(-27.9944,-17.2306,-19.0069));
01282         Poles.SetValue(16,21,gp_Pnt(-28.0229,-13.1072,-18.9149));
01283         Poles.SetValue(16,22,gp_Pnt(-28.0429,-8.9775,-18.9805));
01284         Poles.SetValue(16,23,gp_Pnt(-28.0561,-5.87853,-19.0437));
01285         Poles.SetValue(16,24,gp_Pnt(-28.0792,-1.74655,-19.1248));
01286         Poles.SetValue(16,25,gp_Pnt(-28.0969,2.38173,-19.2133));
01287         Poles.SetValue(16,26,gp_Pnt(-28.121,6.50036,-19.3792));
01288         Poles.SetValue(16,27,gp_Pnt(-28.1339,9.58285,-19.5254));
01289         Poles.SetValue(16,28,gp_Pnt(-28.1071,13.6792,-19.5675));
01290         Poles.SetValue(16,29,gp_Pnt(-28.0705,17.7504,-19.8531));
01291         Poles.SetValue(16,30,gp_Pnt(-28.0003,21.791,-19.912));
01292         Poles.SetValue(16,31,gp_Pnt(-27.911,25.7842,-19.8198));
01293         Poles.SetValue(16,32,gp_Pnt(-27.6949,29.1933,-18.9987));
01294         Poles.SetValue(16,33,gp_Pnt(-27.4332,31.8849,-17.6989));
01295         Poles.SetValue(16,34,gp_Pnt(-27.2196,33.6394,-16.7355));
01296         Poles.SetValue(16,35,gp_Pnt(-26.9796,35.7881,-15.4254));
01297         Poles.SetValue(16,36,gp_Pnt(-26.7348,38.4053,-13.9907));
01298         Poles.SetValue(16,37,gp_Pnt(-26.6103,41.1531,-12.7843));
01299         Poles.SetValue(16,38,gp_Pnt(-26.4815,43.872,-11.5302));
01300         Poles.SetValue(16,39,gp_Pnt(-26.3471,47.5059,-9.95418));
01301         Poles.SetValue(16,40,gp_Pnt(-26.1542,51.9566,-8.16439));
01302         Poles.SetValue(16,41,gp_Pnt(-26.0013,57.4301,-6.7748));
01303         Poles.SetValue(16,42,gp_Pnt(-26.0309,63.2656,-6.51026));
01304         Poles.SetValue(16,43,gp_Pnt(-26.0987,71.0753,-5.64577));
01305         Poles.SetValue(16,44,gp_Pnt(-26.1566,84.652,-4.37635));
01306         Poles.SetValue(16,45,gp_Pnt(-26.0777,103.757,-2.92071));
01307         Poles.SetValue(16,46,gp_Pnt(-26.0262,126.895,-1.44846));
01308         Poles.SetValue(16,47,gp_Pnt(-25.9946,142.312,-0.475798));
01309         Poles.SetValue(16,48,gp_Pnt(-25.9691,150.004,0.000603631));
01310         Poles.SetValue(17,1,gp_Pnt(-23.0806,-150.004,0.0019641));
01311         Poles.SetValue(17,2,gp_Pnt(-23.0964,-142.267,-0.330405));
01312         Poles.SetValue(17,3,gp_Pnt(-23.1173,-126.777,-0.994297));
01313         Poles.SetValue(17,4,gp_Pnt(-23.1339,-103.497,-2.23784));
01314         Poles.SetValue(17,5,gp_Pnt(-23.203,-84.3232,-3.12651));
01315         Poles.SetValue(17,6,gp_Pnt(-23.0914,-70.5857,-4.25051));
01316         Poles.SetValue(17,7,gp_Pnt(-23.0079,-62.6967,-4.71921));
01317         Poles.SetValue(17,8,gp_Pnt(-23.0207,-56.9337,-5.11304));
01318         Poles.SetValue(17,9,gp_Pnt(-23.1812,-51.5274,-6.94389));
01319         Poles.SetValue(17,10,gp_Pnt(-23.3792,-47.1212,-8.95957));
01320         Poles.SetValue(17,11,gp_Pnt(-23.5592,-43.5991,-10.8437));
01321         Poles.SetValue(17,12,gp_Pnt(-23.6823,-40.8919,-12.1796));
01322         Poles.SetValue(17,13,gp_Pnt(-23.8673,-38.2715,-13.717));
01323         Poles.SetValue(17,14,gp_Pnt(-24.1096,-35.6834,-15.2627));
01324         Poles.SetValue(17,15,gp_Pnt(-24.3579,-33.557,-16.646));
01325         Poles.SetValue(17,16,gp_Pnt(-24.5176,-31.7432,-17.4483));
01326         Poles.SetValue(17,17,gp_Pnt(-24.7308,-28.9759,-18.5377));
01327         Poles.SetValue(17,18,gp_Pnt(-24.8179,-25.4266,-18.8272));
01328         Poles.SetValue(17,19,gp_Pnt(-24.8974,-21.3738,-18.951));
01329         Poles.SetValue(17,20,gp_Pnt(-24.9391,-17.2569,-18.7823));
01330         Poles.SetValue(17,21,gp_Pnt(-24.9579,-13.1274,-18.8788));
01331         Poles.SetValue(17,22,gp_Pnt(-24.9753,-8.98927,-18.9409));
01332         Poles.SetValue(17,23,gp_Pnt(-24.9913,-5.88506,-19.0143));
01333         Poles.SetValue(17,24,gp_Pnt(-25.0155,-1.74473,-19.0767));
01334         Poles.SetValue(17,25,gp_Pnt(-25.0387,2.39217,-19.1733));
01335         Poles.SetValue(17,26,gp_Pnt(-25.0554,6.52043,-19.304));
01336         Poles.SetValue(17,27,gp_Pnt(-25.062,9.61116,-19.3704));
01337         Poles.SetValue(17,28,gp_Pnt(-25.0579,13.7179,-19.5885));
01338         Poles.SetValue(17,29,gp_Pnt(-25.0328,17.8051,-19.6948));
01339         Poles.SetValue(17,30,gp_Pnt(-24.9947,21.8711,-19.9465));
01340         Poles.SetValue(17,31,gp_Pnt(-24.9153,25.8755,-20.1336));
01341         Poles.SetValue(17,32,gp_Pnt(-24.8254,29.3978,-19.7884));
01342         Poles.SetValue(17,33,gp_Pnt(-24.5662,32.0898,-18.5604));
01343         Poles.SetValue(17,34,gp_Pnt(-24.4055,33.8853,-17.7436));
01344         Poles.SetValue(17,35,gp_Pnt(-24.178,36.0383,-16.4151));
01345         Poles.SetValue(17,36,gp_Pnt(-23.9261,38.6092,-14.8899));
01346         Poles.SetValue(17,37,gp_Pnt(-23.7426,41.2345,-13.4103));
01347         Poles.SetValue(17,38,gp_Pnt(-23.6547,44.0121,-12.2559));
01348         Poles.SetValue(17,39,gp_Pnt(-23.4902,47.5631,-10.4569));
01349         Poles.SetValue(17,40,gp_Pnt(-23.3099,52.0088,-8.56085));
01350         Poles.SetValue(17,41,gp_Pnt(-23.1561,57.4374,-6.92122));
01351         Poles.SetValue(17,42,gp_Pnt(-23.1683,63.2457,-6.58119));
01352         Poles.SetValue(17,43,gp_Pnt(-23.2319,71.0684,-5.75082));
01353         Poles.SetValue(17,44,gp_Pnt(-23.2881,84.6629,-4.4223));
01354         Poles.SetValue(17,45,gp_Pnt(-23.199,103.747,-2.94621));
01355         Poles.SetValue(17,46,gp_Pnt(-23.1451,126.896,-1.46385));
01356         Poles.SetValue(17,47,gp_Pnt(-23.1109,142.313,-0.498328));
01357         Poles.SetValue(17,48,gp_Pnt(-23.0842,150.004,0.000641323));
01358         Poles.SetValue(18,1,gp_Pnt(-20.1956,-150.004,-0.000939892));
01359         Poles.SetValue(18,2,gp_Pnt(-20.2119,-142.265,-0.324814));
01360         Poles.SetValue(18,3,gp_Pnt(-20.2367,-126.781,-0.99002));
01361         Poles.SetValue(18,4,gp_Pnt(-20.2522,-103.48,-2.25874));
01362         Poles.SetValue(18,5,gp_Pnt(-20.3366,-84.3417,-3.14413));
01363         Poles.SetValue(18,6,gp_Pnt(-20.2198,-70.5658,-4.30028));
01364         Poles.SetValue(18,7,gp_Pnt(-20.1558,-62.6899,-4.68856));
01365         Poles.SetValue(18,8,gp_Pnt(-20.1905,-56.9911,-5.31764));
01366         Poles.SetValue(18,9,gp_Pnt(-20.3412,-51.6127,-7.37483));
01367         Poles.SetValue(18,10,gp_Pnt(-20.5364,-47.2541,-9.61034));
01368         Poles.SetValue(18,11,gp_Pnt(-20.6972,-43.7208,-11.486));
01369         Poles.SetValue(18,12,gp_Pnt(-20.8365,-41.0734,-12.9256));
01370         Poles.SetValue(18,13,gp_Pnt(-21.037,-38.5159,-14.5838));
01371         Poles.SetValue(18,14,gp_Pnt(-21.299,-36.0127,-16.2371));
01372         Poles.SetValue(18,15,gp_Pnt(-21.5046,-33.834,-17.4931));
01373         Poles.SetValue(18,16,gp_Pnt(-21.6031,-31.945,-18.0503));
01374         Poles.SetValue(18,17,gp_Pnt(-21.7517,-29.0964,-18.8401));
01375         Poles.SetValue(18,18,gp_Pnt(-21.7895,-25.4868,-18.7856));
01376         Poles.SetValue(18,19,gp_Pnt(-21.8447,-21.407,-18.7832));
01377         Poles.SetValue(18,20,gp_Pnt(-21.8724,-17.2831,-18.7158));
01378         Poles.SetValue(18,21,gp_Pnt(-21.8885,-13.1476,-18.8247));
01379         Poles.SetValue(18,22,gp_Pnt(-21.9053,-9.00401,-18.9335));
01380         Poles.SetValue(18,23,gp_Pnt(-21.9203,-5.89434,-19.0031));
01381         Poles.SetValue(18,24,gp_Pnt(-21.9444,-1.74696,-19.0678));
01382         Poles.SetValue(18,25,gp_Pnt(-21.9704,2.39832,-19.1774));
01383         Poles.SetValue(18,26,gp_Pnt(-21.9895,6.53686,-19.2539));
01384         Poles.SetValue(18,27,gp_Pnt(-21.9976,9.63356,-19.3732));
01385         Poles.SetValue(18,28,gp_Pnt(-21.9987,13.7521,-19.5004));
01386         Poles.SetValue(18,29,gp_Pnt(-21.9832,17.8493,-19.6642));
01387         Poles.SetValue(18,30,gp_Pnt(-21.9481,21.9195,-19.8425));
01388         Poles.SetValue(18,31,gp_Pnt(-21.8998,25.958,-20.0751));
01389         Poles.SetValue(18,32,gp_Pnt(-21.8165,29.4779,-20.0877));
01390         Poles.SetValue(18,33,gp_Pnt(-21.6537,32.2814,-19.218));
01391         Poles.SetValue(18,34,gp_Pnt(-21.5332,34.1277,-18.592));
01392         Poles.SetValue(18,35,gp_Pnt(-21.3059,36.244,-17.2119));
01393         Poles.SetValue(18,36,gp_Pnt(-21.0772,38.8004,-15.6898));
01394         Poles.SetValue(18,37,gp_Pnt(-20.8763,41.346,-14.041));
01395         Poles.SetValue(18,38,gp_Pnt(-20.7928,44.1142,-12.8629));
01396         Poles.SetValue(18,39,gp_Pnt(-20.6422,47.6606,-11.0393));
01397         Poles.SetValue(18,40,gp_Pnt(-20.4703,52.0726,-9.0358));
01398         Poles.SetValue(18,41,gp_Pnt(-20.3288,57.4895,-7.14688));
01399         Poles.SetValue(18,42,gp_Pnt(-20.3107,63.2274,-6.59652));
01400         Poles.SetValue(18,43,gp_Pnt(-20.366,71.0607,-5.86066));
01401         Poles.SetValue(18,44,gp_Pnt(-20.4189,84.6755,-4.47339));
01402         Poles.SetValue(18,45,gp_Pnt(-20.32,103.734,-2.95074));
01403         Poles.SetValue(18,46,gp_Pnt(-20.2644,126.899,-1.49374));
01404         Poles.SetValue(18,47,gp_Pnt(-20.227,142.314,-0.508887));
01405         Poles.SetValue(18,48,gp_Pnt(-20.1991,150.004,-0.00112432));
01406         Poles.SetValue(19,1,gp_Pnt(-16.3491,-150.003,0.00439318));
01407         Poles.SetValue(19,2,gp_Pnt(-16.3656,-142.264,-0.34061));
01408         Poles.SetValue(19,3,gp_Pnt(-16.3951,-126.785,-0.955435));
01409         Poles.SetValue(19,4,gp_Pnt(-16.4123,-103.462,-2.32584));
01410         Poles.SetValue(19,5,gp_Pnt(-16.5104,-84.3597,-3.09639));
01411         Poles.SetValue(19,6,gp_Pnt(-16.3944,-70.5334,-4.33957));
01412         Poles.SetValue(19,7,gp_Pnt(-16.3623,-62.6963,-4.6472));
01413         Poles.SetValue(19,8,gp_Pnt(-16.4203,-57.084,-5.58419));
01414         Poles.SetValue(19,9,gp_Pnt(-16.5511,-51.7391,-7.92073));
01415         Poles.SetValue(19,10,gp_Pnt(-16.7137,-47.3952,-10.3398));
01416         Poles.SetValue(19,11,gp_Pnt(-16.8584,-43.8683,-12.2379));
01417         Poles.SetValue(19,12,gp_Pnt(-17.0069,-41.2968,-13.8148));
01418         Poles.SetValue(19,13,gp_Pnt(-17.234,-38.8784,-15.6644));
01419         Poles.SetValue(19,14,gp_Pnt(-17.4559,-36.3846,-17.2802));
01420         Poles.SetValue(19,15,gp_Pnt(-17.5711,-34.0769,-18.2311));
01421         Poles.SetValue(19,16,gp_Pnt(-17.6306,-32.1332,-18.5268));
01422         Poles.SetValue(19,17,gp_Pnt(-17.7058,-29.1815,-18.8298));
01423         Poles.SetValue(19,18,gp_Pnt(-17.7222,-25.5444,-18.565));
01424         Poles.SetValue(19,19,gp_Pnt(-17.755,-21.4437,-18.6143));
01425         Poles.SetValue(19,20,gp_Pnt(-17.7721,-17.3146,-18.6936));
01426         Poles.SetValue(19,21,gp_Pnt(-17.7833,-13.1725,-18.7973));
01427         Poles.SetValue(19,22,gp_Pnt(-17.7956,-9.02146,-18.8982));
01428         Poles.SetValue(19,23,gp_Pnt(-17.8084,-5.90664,-18.9585));
01429         Poles.SetValue(19,24,gp_Pnt(-17.8297,-1.75266,-19.0369));
01430         Poles.SetValue(19,25,gp_Pnt(-17.8562,2.40144,-19.105));
01431         Poles.SetValue(19,26,gp_Pnt(-17.8776,6.54951,-19.2157));
01432         Poles.SetValue(19,27,gp_Pnt(-17.8892,9.65525,-19.2919));
01433         Poles.SetValue(19,28,gp_Pnt(-17.8977,13.7848,-19.4492));
01434         Poles.SetValue(19,29,gp_Pnt(-17.8891,17.8872,-19.6002));
01435         Poles.SetValue(19,30,gp_Pnt(-17.8651,21.9666,-19.7805));
01436         Poles.SetValue(19,31,gp_Pnt(-17.8168,26.0004,-19.778));
01437         Poles.SetValue(19,32,gp_Pnt(-17.7893,29.5844,-20.0714));
01438         Poles.SetValue(19,33,gp_Pnt(-17.6844,32.4681,-19.7048));
01439         Poles.SetValue(19,34,gp_Pnt(-17.6156,34.381,-19.3921));
01440         Poles.SetValue(19,35,gp_Pnt(-17.468,36.5995,-18.2429));
01441         Poles.SetValue(19,36,gp_Pnt(-17.273,39.1443,-16.764));
01442         Poles.SetValue(19,37,gp_Pnt(-17.0603,41.5783,-14.9142));
01443         Poles.SetValue(19,38,gp_Pnt(-16.942,44.2046,-13.5092));
01444         Poles.SetValue(19,39,gp_Pnt(-16.8113,47.7336,-11.6467));
01445         Poles.SetValue(19,40,gp_Pnt(-16.6707,52.1542,-9.5335));
01446         Poles.SetValue(19,41,gp_Pnt(-16.5537,57.549,-7.39217));
01447         Poles.SetValue(19,42,gp_Pnt(-16.5136,63.2221,-6.59968));
01448         Poles.SetValue(19,43,gp_Pnt(-16.5433,71.0421,-5.99115));
01449         Poles.SetValue(19,44,gp_Pnt(-16.5912,84.6886,-4.45254));
01450         Poles.SetValue(19,45,gp_Pnt(-16.4831,103.728,-3.08142));
01451         Poles.SetValue(19,46,gp_Pnt(-16.423,126.896,-1.4405));
01452         Poles.SetValue(19,47,gp_Pnt(-16.3811,142.316,-0.552973));
01453         Poles.SetValue(19,48,gp_Pnt(-16.3527,150.004,0.00512247));
01454         Poles.SetValue(20,1,gp_Pnt(-11.5409,-150.004,0.00117643));
01455         Poles.SetValue(20,2,gp_Pnt(-11.5567,-142.255,-0.323629));
01456         Poles.SetValue(20,3,gp_Pnt(-11.5945,-126.808,-1.00415));
01457         Poles.SetValue(20,4,gp_Pnt(-11.6123,-103.418,-2.2741));
01458         Poles.SetValue(20,5,gp_Pnt(-11.7238,-84.4038,-3.17774));
01459         Poles.SetValue(20,6,gp_Pnt(-11.6216,-70.4805,-4.34939));
01460         Poles.SetValue(20,7,gp_Pnt(-11.6306,-62.7158,-4.61848));
01461         Poles.SetValue(20,8,gp_Pnt(-11.6985,-57.2166,-5.86008));
01462         Poles.SetValue(20,9,gp_Pnt(-11.804,-51.9451,-8.59692));
01463         Poles.SetValue(20,10,gp_Pnt(-11.9017,-47.511,-11.0341));
01464         Poles.SetValue(20,11,gp_Pnt(-12.0348,-44.054,-13.0527));
01465         Poles.SetValue(20,12,gp_Pnt(-12.1892,-41.6494,-14.8698));
01466         Poles.SetValue(20,13,gp_Pnt(-12.3712,-39.2779,-16.7157));
01467         Poles.SetValue(20,14,gp_Pnt(-12.4805,-36.6354,-17.9375));
01468         Poles.SetValue(20,15,gp_Pnt(-12.5363,-34.226,-18.5069));
01469         Poles.SetValue(20,16,gp_Pnt(-12.561,-32.2298,-18.5446));
01470         Poles.SetValue(20,17,gp_Pnt(-12.6007,-29.2245,-18.4861));
01471         Poles.SetValue(20,18,gp_Pnt(-12.6061,-25.5943,-18.4035));
01472         Poles.SetValue(20,19,gp_Pnt(-12.6185,-21.4799,-18.541));
01473         Poles.SetValue(20,20,gp_Pnt(-12.6259,-17.3464,-18.6219));
01474         Poles.SetValue(20,21,gp_Pnt(-12.6294,-13.198,-18.7456));
01475         Poles.SetValue(20,22,gp_Pnt(-12.6383,-9.04337,-18.8541));
01476         Poles.SetValue(20,23,gp_Pnt(-12.6485,-5.92505,-18.9104));
01477         Poles.SetValue(20,24,gp_Pnt(-12.6659,-1.76525,-18.964));
01478         Poles.SetValue(20,25,gp_Pnt(-12.6869,2.39485,-19.067));
01479         Poles.SetValue(20,26,gp_Pnt(-12.7086,6.55182,-19.1737));
01480         Poles.SetValue(20,27,gp_Pnt(-12.7237,9.66537,-19.2438));
01481         Poles.SetValue(20,28,gp_Pnt(-12.7365,13.803,-19.406));
01482         Poles.SetValue(20,29,gp_Pnt(-12.7387,17.9165,-19.5004));
01483         Poles.SetValue(20,30,gp_Pnt(-12.725,21.9984,-19.5481));
01484         Poles.SetValue(20,31,gp_Pnt(-12.7006,26.0496,-19.5971));
01485         Poles.SetValue(20,32,gp_Pnt(-12.6724,29.61,-19.7481));
01486         Poles.SetValue(20,33,gp_Pnt(-12.6172,32.5589,-19.7855));
01487         Poles.SetValue(20,34,gp_Pnt(-12.577,34.5045,-19.6765));
01488         Poles.SetValue(20,35,gp_Pnt(-12.5091,36.8627,-18.9431));
01489         Poles.SetValue(20,36,gp_Pnt(-12.3992,39.4504,-17.717));
01490         Poles.SetValue(20,37,gp_Pnt(-12.2417,41.8732,-15.8993));
01491         Poles.SetValue(20,38,gp_Pnt(-12.1136,44.3374,-14.2229));
01492         Poles.SetValue(20,39,gp_Pnt(-12.0124,47.8838,-12.4053));
01493         Poles.SetValue(20,40,gp_Pnt(-11.9096,52.2497,-10.0193));
01494         Poles.SetValue(20,41,gp_Pnt(-11.8312,57.645,-7.74397));
01495         Poles.SetValue(20,42,gp_Pnt(-11.7795,63.2306,-6.59009));
01496         Poles.SetValue(20,43,gp_Pnt(-11.7676,71.0031,-6.05246));
01497         Poles.SetValue(20,44,gp_Pnt(-11.803,84.7251,-4.53343));
01498         Poles.SetValue(20,45,gp_Pnt(-11.6834,103.69,-3.04429));
01499         Poles.SetValue(20,46,gp_Pnt(-11.6246,126.918,-1.52563));
01500         Poles.SetValue(20,47,gp_Pnt(-11.5716,142.307,-0.515972));
01501         Poles.SetValue(20,48,gp_Pnt(-11.5446,150.004,0.000245205));
01502         Poles.SetValue(21,1,gp_Pnt(-7.21355,-150.004,-0.0025218));
01503         Poles.SetValue(21,2,gp_Pnt(-7.23063,-142.252,-0.331648));
01504         Poles.SetValue(21,3,gp_Pnt(-7.2677,-126.82,-1.02226));
01505         Poles.SetValue(21,4,gp_Pnt(-7.30323,-103.391,-2.23259));
01506         Poles.SetValue(21,5,gp_Pnt(-7.39757,-84.4224,-3.1889));
01507         Poles.SetValue(21,6,gp_Pnt(-7.34772,-70.4538,-4.37072));
01508         Poles.SetValue(21,7,gp_Pnt(-7.3712,-62.7345,-4.5951));
01509         Poles.SetValue(21,8,gp_Pnt(-7.42816,-57.2934,-6.04634));
01510         Poles.SetValue(21,9,gp_Pnt(-7.49535,-52.026,-8.86275));
01511         Poles.SetValue(21,10,gp_Pnt(-7.55838,-47.6033,-11.3943));
01512         Poles.SetValue(21,11,gp_Pnt(-7.65,-44.2056,-13.5286));
01513         Poles.SetValue(21,12,gp_Pnt(-7.75695,-41.8805,-15.4454));
01514         Poles.SetValue(21,13,gp_Pnt(-7.85282,-39.4135,-17.0864));
01515         Poles.SetValue(21,14,gp_Pnt(-7.91823,-36.7399,-18.1659));
01516         Poles.SetValue(21,15,gp_Pnt(-7.94146,-34.2627,-18.4245));
01517         Poles.SetValue(21,16,gp_Pnt(-7.95506,-32.2581,-18.4508));
01518         Poles.SetValue(21,17,gp_Pnt(-7.97185,-29.2355,-18.438));
01519         Poles.SetValue(21,18,gp_Pnt(-7.9724,-25.6227,-18.4383));
01520         Poles.SetValue(21,19,gp_Pnt(-7.97498,-21.5055,-18.5136));
01521         Poles.SetValue(21,20,gp_Pnt(-7.97332,-17.3696,-18.5895));
01522         Poles.SetValue(21,21,gp_Pnt(-7.9724,-13.2197,-18.6677));
01523         Poles.SetValue(21,22,gp_Pnt(-7.97728,-9.06333,-18.7605));
01524         Poles.SetValue(21,23,gp_Pnt(-7.98383,-5.94346,-18.8376));
01525         Poles.SetValue(21,24,gp_Pnt(-7.99613,-1.78048,-18.9102));
01526         Poles.SetValue(21,25,gp_Pnt(-8.0124,2.38413,-18.9749));
01527         Poles.SetValue(21,26,gp_Pnt(-8.03056,6.5435,-19.1002));
01528         Poles.SetValue(21,27,gp_Pnt(-8.04412,9.658,-19.2087));
01529         Poles.SetValue(21,28,gp_Pnt(-8.06164,13.8027,-19.2687));
01530         Poles.SetValue(21,29,gp_Pnt(-8.0717,17.9217,-19.335));
01531         Poles.SetValue(21,30,gp_Pnt(-8.07055,22.0086,-19.4167));
01532         Poles.SetValue(21,31,gp_Pnt(-8.05978,26.0647,-19.4458));
01533         Poles.SetValue(21,32,gp_Pnt(-8.05131,29.6191,-19.5118));
01534         Poles.SetValue(21,33,gp_Pnt(-8.01648,32.5759,-19.5302));
01535         Poles.SetValue(21,34,gp_Pnt(-7.99358,34.5369,-19.5134));
01536         Poles.SetValue(21,35,gp_Pnt(-7.96305,36.995,-19.2659));
01537         Poles.SetValue(21,36,gp_Pnt(-7.89264,39.5831,-18.0731));
01538         Poles.SetValue(21,37,gp_Pnt(-7.80775,42.0631,-16.4261));
01539         Poles.SetValue(21,38,gp_Pnt(-7.72798,44.4322,-14.6014));
01540         Poles.SetValue(21,39,gp_Pnt(-7.66064,47.9074,-12.6609));
01541         Poles.SetValue(21,40,gp_Pnt(-7.60827,52.3383,-10.3218));
01542         Poles.SetValue(21,41,gp_Pnt(-7.5563,57.6762,-7.76823));
01543         Poles.SetValue(21,42,gp_Pnt(-7.51475,63.2251,-6.53953));
01544         Poles.SetValue(21,43,gp_Pnt(-7.4842,70.9764,-6.08044));
01545         Poles.SetValue(21,44,gp_Pnt(-7.47797,84.7397,-4.49862));
01546         Poles.SetValue(21,45,gp_Pnt(-7.3721,103.678,-3.1159));
01547         Poles.SetValue(21,46,gp_Pnt(-7.30045,126.923,-1.49726));
01548         Poles.SetValue(21,47,gp_Pnt(-7.24466,142.305,-0.525039));
01549         Poles.SetValue(21,48,gp_Pnt(-7.21746,150.004,0.00128023));
01550         Poles.SetValue(22,1,gp_Pnt(-4.32857,-150.003,-0.00540373));
01551         Poles.SetValue(22,2,gp_Pnt(-4.34699,-142.25,-0.340193));
01552         Poles.SetValue(22,3,gp_Pnt(-4.38209,-126.827,-1.02934));
01553         Poles.SetValue(22,4,gp_Pnt(-4.43222,-103.375,-2.20818));
01554         Poles.SetValue(22,5,gp_Pnt(-4.51083,-84.4311,-3.19069));
01555         Poles.SetValue(22,6,gp_Pnt(-4.50022,-70.4378,-4.36422));
01556         Poles.SetValue(22,7,gp_Pnt(-4.53329,-62.7487,-4.58414));
01557         Poles.SetValue(22,8,gp_Pnt(-4.57686,-57.3432,-6.16997));
01558         Poles.SetValue(22,9,gp_Pnt(-4.61953,-52.0531,-8.97091));
01559         Poles.SetValue(22,10,gp_Pnt(-4.66076,-47.6551,-11.5891));
01560         Poles.SetValue(22,11,gp_Pnt(-4.71605,-44.2575,-13.7456));
01561         Poles.SetValue(22,12,gp_Pnt(-4.77767,-41.9525,-15.6786));
01562         Poles.SetValue(22,13,gp_Pnt(-4.83539,-39.4972,-17.3021));
01563         Poles.SetValue(22,14,gp_Pnt(-4.8662,-36.7917,-18.2384));
01564         Poles.SetValue(22,15,gp_Pnt(-4.87772,-34.2883,-18.3918));
01565         Poles.SetValue(22,16,gp_Pnt(-4.88127,-32.275,-18.4126));
01566         Poles.SetValue(22,17,gp_Pnt(-4.88815,-29.2471,-18.3654));
01567         Poles.SetValue(22,18,gp_Pnt(-4.88172,-25.6402,-18.4073));
01568         Poles.SetValue(22,19,gp_Pnt(-4.87676,-21.522,-18.4843));
01569         Poles.SetValue(22,20,gp_Pnt(-4.86998,-17.3855,-18.5721));
01570         Poles.SetValue(22,21,gp_Pnt(-4.86604,-13.2345,-18.6261));
01571         Poles.SetValue(22,22,gp_Pnt(-4.868,-9.07675,-18.7038));
01572         Poles.SetValue(22,23,gp_Pnt(-4.87197,-5.95561,-18.7836));
01573         Poles.SetValue(22,24,gp_Pnt(-4.88122,-1.79016,-18.8508));
01574         Poles.SetValue(22,25,gp_Pnt(-4.89416,2.37596,-18.9454));
01575         Poles.SetValue(22,26,gp_Pnt(-4.91129,6.53746,-19.0539));
01576         Poles.SetValue(22,27,gp_Pnt(-4.92518,9.65454,-19.1026));
01577         Poles.SetValue(22,28,gp_Pnt(-4.944,13.8012,-19.1613));
01578         Poles.SetValue(22,29,gp_Pnt(-4.95795,17.9235,-19.2456));
01579         Poles.SetValue(22,30,gp_Pnt(-4.96475,22.0131,-19.3102));
01580         Poles.SetValue(22,31,gp_Pnt(-4.96533,26.0736,-19.3498));
01581         Poles.SetValue(22,32,gp_Pnt(-4.96079,29.6176,-19.4284));
01582         Poles.SetValue(22,33,gp_Pnt(-4.94348,32.5873,-19.466));
01583         Poles.SetValue(22,34,gp_Pnt(-4.93172,34.561,-19.4669));
01584         Poles.SetValue(22,35,gp_Pnt(-4.91254,37.0161,-19.3038));
01585         Poles.SetValue(22,36,gp_Pnt(-4.88212,39.6621,-18.2512));
01586         Poles.SetValue(22,37,gp_Pnt(-4.83796,42.1306,-16.6572));
01587         Poles.SetValue(22,38,gp_Pnt(-4.79279,44.4479,-14.7487));
01588         Poles.SetValue(22,39,gp_Pnt(-4.75792,47.9195,-12.7903));
01589         Poles.SetValue(22,40,gp_Pnt(-4.73201,52.3475,-10.3957));
01590         Poles.SetValue(22,41,gp_Pnt(-4.70638,57.7231,-7.87102));
01591         Poles.SetValue(22,42,gp_Pnt(-4.67107,63.2171,-6.47477));
01592         Poles.SetValue(22,43,gp_Pnt(-4.63073,70.9601,-6.08756));
01593         Poles.SetValue(22,44,gp_Pnt(-4.59233,84.7477,-4.47556));
01594         Poles.SetValue(22,45,gp_Pnt(-4.49985,103.673,-3.18097));
01595         Poles.SetValue(22,46,gp_Pnt(-4.41639,126.923,-1.46262));
01596         Poles.SetValue(22,47,gp_Pnt(-4.36049,142.305,-0.536542));
01597         Poles.SetValue(22,48,gp_Pnt(-4.3327,150.004,0.000952771));
01598         Poles.SetValue(23,1,gp_Pnt(-2.88635,-150.004,-0.00575623));
01599         Poles.SetValue(23,2,gp_Pnt(-2.90517,-142.249,-0.341549));
01600         Poles.SetValue(23,3,gp_Pnt(-2.93974,-126.829,-1.02278));
01601         Poles.SetValue(23,4,gp_Pnt(-2.99795,-103.372,-2.19554));
01602         Poles.SetValue(23,5,gp_Pnt(-3.06615,-84.432,-3.18891));
01603         Poles.SetValue(23,6,gp_Pnt(-3.07817,-70.436,-4.35294));
01604         Poles.SetValue(23,7,gp_Pnt(-3.11358,-62.751,-4.58803));
01605         Poles.SetValue(23,8,gp_Pnt(-3.149,-57.3489,-6.16224));
01606         Poles.SetValue(23,9,gp_Pnt(-3.18087,-52.0832,-9.02443));
01607         Poles.SetValue(23,10,gp_Pnt(-3.20794,-47.6671,-11.6136));
01608         Poles.SetValue(23,11,gp_Pnt(-3.24262,-44.2844,-13.7946));
01609         Poles.SetValue(23,12,gp_Pnt(-3.28123,-41.9804,-15.721));
01610         Poles.SetValue(23,13,gp_Pnt(-3.31573,-39.5144,-17.3255));
01611         Poles.SetValue(23,14,gp_Pnt(-3.33437,-36.7949,-18.2234));
01612         Poles.SetValue(23,15,gp_Pnt(-3.34011,-34.2951,-18.3746));
01613         Poles.SetValue(23,16,gp_Pnt(-3.34154,-32.2808,-18.382));
01614         Poles.SetValue(23,17,gp_Pnt(-3.34327,-29.2512,-18.3471));
01615         Poles.SetValue(23,18,gp_Pnt(-3.33398,-25.6485,-18.3903));
01616         Poles.SetValue(23,19,gp_Pnt(-3.32526,-21.5295,-18.4702));
01617         Poles.SetValue(23,20,gp_Pnt(-3.31575,-17.3931,-18.5594));
01618         Poles.SetValue(23,21,gp_Pnt(-3.30973,-13.2415,-18.6106));
01619         Poles.SetValue(23,22,gp_Pnt(-3.3096,-9.08307,-18.6879));
01620         Poles.SetValue(23,23,gp_Pnt(-3.31238,-5.96107,-18.7525));
01621         Poles.SetValue(23,24,gp_Pnt(-3.31981,-1.7953,-18.8291));
01622         Poles.SetValue(23,25,gp_Pnt(-3.33173,2.3711,-18.9327));
01623         Poles.SetValue(23,26,gp_Pnt(-3.34803,6.53266,-19.0255));
01624         Poles.SetValue(23,27,gp_Pnt(-3.36177,9.6497,-19.0722));
01625         Poles.SetValue(23,28,gp_Pnt(-3.38073,13.796,-19.1329));
01626         Poles.SetValue(23,29,gp_Pnt(-3.39705,17.9191,-19.2008));
01627         Poles.SetValue(23,30,gp_Pnt(-3.40752,22.0091,-19.2675));
01628         Poles.SetValue(23,31,gp_Pnt(-3.41262,26.0715,-19.318));
01629         Poles.SetValue(23,32,gp_Pnt(-3.4138,29.6137,-19.3688));
01630         Poles.SetValue(23,33,gp_Pnt(-3.40248,32.5858,-19.4134));
01631         Poles.SetValue(23,34,gp_Pnt(-3.39479,34.5605,-19.4192));
01632         Poles.SetValue(23,35,gp_Pnt(-3.38139,37.0117,-19.2935));
01633         Poles.SetValue(23,36,gp_Pnt(-3.36593,39.6724,-18.2438));
01634         Poles.SetValue(23,37,gp_Pnt(-3.34268,42.1365,-16.6785));
01635         Poles.SetValue(23,38,gp_Pnt(-3.32014,44.4714,-14.7844));
01636         Poles.SetValue(23,39,gp_Pnt(-3.30336,47.9303,-12.8108));
01637         Poles.SetValue(23,40,gp_Pnt(-3.29238,52.3621,-10.4158));
01638         Poles.SetValue(23,41,gp_Pnt(-3.27781,57.7309,-7.88219));
01639         Poles.SetValue(23,42,gp_Pnt(-3.24892,63.2201,-6.4727));
01640         Poles.SetValue(23,43,gp_Pnt(-3.20448,70.9551,-6.07441));
01641         Poles.SetValue(23,44,gp_Pnt(-3.14808,84.7489,-4.47297));
01642         Poles.SetValue(23,45,gp_Pnt(-3.06369,103.669,-3.15564));
01643         Poles.SetValue(23,46,gp_Pnt(-2.97399,126.928,-1.47488));
01644         Poles.SetValue(23,47,gp_Pnt(-2.9181,142.304,-0.533731));
01645         Poles.SetValue(23,48,gp_Pnt(-2.8902,150.005,-0.00415237));
01646         Poles.SetValue(24,1,gp_Pnt(-0.963346,-150.005,-0.00635749));
01647         Poles.SetValue(24,2,gp_Pnt(-0.982765,-142.248,-0.343803));
01648         Poles.SetValue(24,3,gp_Pnt(-1.01653,-126.833,-1.01474));
01649         Poles.SetValue(24,4,gp_Pnt(-1.0855,-103.368,-2.17966));
01650         Poles.SetValue(24,5,gp_Pnt(-1.14,-84.4332,-3.18535));
01651         Poles.SetValue(24,6,gp_Pnt(-1.18193,-70.4337,-4.33879));
01652         Poles.SetValue(24,7,gp_Pnt(-1.22089,-62.7532,-4.58618));
01653         Poles.SetValue(24,8,gp_Pnt(-1.24557,-57.3605,-6.16284));
01654         Poles.SetValue(24,9,gp_Pnt(-1.26254,-52.1152,-9.08105));
01655         Poles.SetValue(24,10,gp_Pnt(-1.27132,-47.6865,-11.6584));
01656         Poles.SetValue(24,11,gp_Pnt(-1.27992,-44.3077,-13.8385));
01657         Poles.SetValue(24,12,gp_Pnt(-1.28505,-42.028,-15.8032));
01658         Poles.SetValue(24,13,gp_Pnt(-1.29202,-39.5278,-17.3361));
01659         Poles.SetValue(24,14,gp_Pnt(-1.29044,-36.8146,-18.2432));
01660         Poles.SetValue(24,15,gp_Pnt(-1.2914,-34.2976,-18.337));
01661         Poles.SetValue(24,16,gp_Pnt(-1.28862,-32.2873,-18.3422));
01662         Poles.SetValue(24,17,gp_Pnt(-1.28371,-29.2589,-18.3188));
01663         Poles.SetValue(24,18,gp_Pnt(-1.27051,-25.6583,-18.3674));
01664         Poles.SetValue(24,19,gp_Pnt(-1.25674,-21.5399,-18.4519));
01665         Poles.SetValue(24,20,gp_Pnt(-1.24362,-17.4031,-18.5423));
01666         Poles.SetValue(24,21,gp_Pnt(-1.23485,-13.2508,-18.5894));
01667         Poles.SetValue(24,22,gp_Pnt(-1.23205,-9.09139,-18.6638));
01668         Poles.SetValue(24,23,gp_Pnt(-1.23315,-5.96846,-18.7159));
01669         Poles.SetValue(24,24,gp_Pnt(-1.23832,-1.80206,-18.7988));
01670         Poles.SetValue(24,25,gp_Pnt(-1.24872,2.36463,-18.9162));
01671         Poles.SetValue(24,26,gp_Pnt(-1.26403,6.5264,-18.9901));
01672         Poles.SetValue(24,27,gp_Pnt(-1.27763,9.64349,-19.0285));
01673         Poles.SetValue(24,28,gp_Pnt(-1.29677,13.7898,-19.0962));
01674         Poles.SetValue(24,29,gp_Pnt(-1.31634,17.9135,-19.1409));
01675         Poles.SetValue(24,30,gp_Pnt(-1.33161,22.005,-19.2088));
01676         Poles.SetValue(24,31,gp_Pnt(-1.34301,26.0674,-19.2798));
01677         Poles.SetValue(24,32,gp_Pnt(-1.35106,29.6117,-19.2876));
01678         Poles.SetValue(24,33,gp_Pnt(-1.34846,32.5823,-19.3398));
01679         Poles.SetValue(24,34,gp_Pnt(-1.34527,34.5559,-19.385));
01680         Poles.SetValue(24,35,gp_Pnt(-1.34071,37.0193,-19.2612));
01681         Poles.SetValue(24,36,gp_Pnt(-1.34509,39.6789,-18.263));
01682         Poles.SetValue(24,37,gp_Pnt(-1.35008,42.1558,-16.6984));
01683         Poles.SetValue(24,38,gp_Pnt(-1.35773,44.4897,-14.8274));
01684         Poles.SetValue(24,39,gp_Pnt(-1.36444,47.9479,-12.8384));
01685         Poles.SetValue(24,40,gp_Pnt(-1.37307,52.376,-10.4394));
01686         Poles.SetValue(24,41,gp_Pnt(-1.37346,57.7433,-7.89619));
01687         Poles.SetValue(24,42,gp_Pnt(-1.35291,63.2224,-6.46618));
01688         Poles.SetValue(24,43,gp_Pnt(-1.30269,70.9487,-6.0561));
01689         Poles.SetValue(24,44,gp_Pnt(-1.2225,84.7507,-4.47221));
01690         Poles.SetValue(24,45,gp_Pnt(-1.1488,103.665,-3.1278));
01691         Poles.SetValue(24,46,gp_Pnt(-1.05086,126.933,-1.48899));
01692         Poles.SetValue(24,47,gp_Pnt(-0.994938,142.302,-0.530106));
01693         Poles.SetValue(24,48,gp_Pnt(-0.966871,150.006,-0.0110631));
01694         Poles.SetValue(25,1,gp_Pnt(0.959819,-150.003,0.00568631));
01695         Poles.SetValue(25,2,gp_Pnt(0.940055,-142.247,-0.331366));
01696         Poles.SetValue(25,3,gp_Pnt(0.906483,-126.833,-0.995719));
01697         Poles.SetValue(25,4,gp_Pnt(0.827614,-103.361,-2.15145));
01698         Poles.SetValue(25,5,gp_Pnt(0.785273,-84.4342,-3.16894));
01699         Poles.SetValue(25,6,gp_Pnt(0.714392,-70.4325,-4.31753));
01700         Poles.SetValue(25,7,gp_Pnt(0.672237,-62.7537,-4.559));
01701         Poles.SetValue(25,8,gp_Pnt(0.659329,-57.3653,-6.14528));
01702         Poles.SetValue(25,9,gp_Pnt(0.661645,-52.1004,-9.03387));
01703         Poles.SetValue(25,10,gp_Pnt(0.669516,-47.6625,-11.5964));
01704         Poles.SetValue(25,11,gp_Pnt(0.689569,-44.3049,-13.8062));
01705         Poles.SetValue(25,12,gp_Pnt(0.71644,-42.0351,-15.7831));
01706         Poles.SetValue(25,13,gp_Pnt(0.738005,-39.535,-17.3193));
01707         Poles.SetValue(25,14,gp_Pnt(0.754916,-36.82,-18.2146));
01708         Poles.SetValue(25,15,gp_Pnt(0.759797,-34.3048,-18.3011));
01709         Poles.SetValue(25,16,gp_Pnt(0.766913,-32.293,-18.3232));
01710         Poles.SetValue(25,17,gp_Pnt(0.776889,-29.2662,-18.2948));
01711         Poles.SetValue(25,18,gp_Pnt(0.794825,-25.6669,-18.3503));
01712         Poles.SetValue(25,19,gp_Pnt(0.812837,-21.5492,-18.4233));
01713         Poles.SetValue(25,20,gp_Pnt(0.829745,-17.4125,-18.5129));
01714         Poles.SetValue(25,21,gp_Pnt(0.841595,-13.2595,-18.5688));
01715         Poles.SetValue(25,22,gp_Pnt(0.847267,-9.09893,-18.6407));
01716         Poles.SetValue(25,23,gp_Pnt(0.848219,-5.97561,-18.6984));
01717         Poles.SetValue(25,24,gp_Pnt(0.844946,-1.80848,-18.7707));
01718         Poles.SetValue(25,25,gp_Pnt(0.835788,2.35803,-18.8937));
01719         Poles.SetValue(25,26,gp_Pnt(0.820538,6.52081,-18.96));
01720         Poles.SetValue(25,27,gp_Pnt(0.806453,9.63874,-18.9827));
01721         Poles.SetValue(25,28,gp_Pnt(0.786356,13.7858,-19.059));
01722         Poles.SetValue(25,29,gp_Pnt(0.763708,17.9106,-19.0832));
01723         Poles.SetValue(25,30,gp_Pnt(0.743879,22.0023,-19.1557));
01724         Poles.SetValue(25,31,gp_Pnt(0.727329,26.0648,-19.2442));
01725         Poles.SetValue(25,32,gp_Pnt(0.712384,29.6076,-19.2121));
01726         Poles.SetValue(25,33,gp_Pnt(0.709962,32.5804,-19.3472));
01727         Poles.SetValue(25,34,gp_Pnt(0.705581,34.5476,-19.3214));
01728         Poles.SetValue(25,35,gp_Pnt(0.704066,37.0253,-19.2554));
01729         Poles.SetValue(25,36,gp_Pnt(0.68005,39.6706,-18.2118));
01730         Poles.SetValue(25,37,gp_Pnt(0.648205,42.1617,-16.677));
01731         Poles.SetValue(25,38,gp_Pnt(0.61021,44.4849,-14.7789));
01732         Poles.SetValue(25,39,gp_Pnt(0.578672,47.947,-12.7969));
01733         Poles.SetValue(25,40,gp_Pnt(0.549361,52.3609,-10.3659));
01734         Poles.SetValue(25,41,gp_Pnt(0.531102,57.7221,-7.80854));
01735         Poles.SetValue(25,42,gp_Pnt(0.542483,63.2121,-6.41916));
01736         Poles.SetValue(25,43,gp_Pnt(0.600457,70.9445,-6.01981));
01737         Poles.SetValue(25,44,gp_Pnt(0.701564,84.7526,-4.48639));
01738         Poles.SetValue(25,45,gp_Pnt(0.766341,103.657,-3.09192));
01739         Poles.SetValue(25,46,gp_Pnt(0.870496,126.929,-1.44947));
01740         Poles.SetValue(25,47,gp_Pnt(0.927725,142.298,-0.506458));
01741         Poles.SetValue(25,48,gp_Pnt(0.955638,150.002,0.013664));
01742         Poles.SetValue(26,1,gp_Pnt(2.88276,-150.003,0.00510712));
01743         Poles.SetValue(26,2,gp_Pnt(2.86273,-142.249,-0.334571));
01744         Poles.SetValue(26,3,gp_Pnt(2.82941,-126.831,-0.981236));
01745         Poles.SetValue(26,4,gp_Pnt(2.74035,-103.363,-2.14876));
01746         Poles.SetValue(26,5,gp_Pnt(2.71066,-84.4321,-3.14812));
01747         Poles.SetValue(26,6,gp_Pnt(2.61085,-70.4333,-4.28563));
01748         Poles.SetValue(26,7,gp_Pnt(2.56523,-62.7558,-4.53254));
01749         Poles.SetValue(26,8,gp_Pnt(2.56347,-57.3598,-6.10287));
01750         Poles.SetValue(26,9,gp_Pnt(2.58158,-52.1003,-8.99526));
01751         Poles.SetValue(26,10,gp_Pnt(2.60803,-47.6567,-11.5441));
01752         Poles.SetValue(26,11,gp_Pnt(2.65382,-44.2876,-13.7304));
01753         Poles.SetValue(26,12,gp_Pnt(2.71408,-42.0076,-15.6963));
01754         Poles.SetValue(26,13,gp_Pnt(2.7632,-39.5234,-17.2513));
01755         Poles.SetValue(26,14,gp_Pnt(2.80034,-36.8171,-18.1742));
01756         Poles.SetValue(26,15,gp_Pnt(2.81048,-34.3087,-18.2745));
01757         Poles.SetValue(26,16,gp_Pnt(2.82183,-32.2984,-18.2966));
01758         Poles.SetValue(26,17,gp_Pnt(2.83832,-29.2732,-18.2842));
01759         Poles.SetValue(26,18,gp_Pnt(2.8597,-25.6748,-18.3055));
01760         Poles.SetValue(26,19,gp_Pnt(2.88306,-21.5575,-18.3968));
01761         Poles.SetValue(26,20,gp_Pnt(2.9041,-17.4213,-18.4977));
01762         Poles.SetValue(26,21,gp_Pnt(2.91912,-13.2677,-18.5504));
01763         Poles.SetValue(26,22,gp_Pnt(2.92733,-9.10621,-18.6181));
01764         Poles.SetValue(26,23,gp_Pnt(2.9299,-5.98236,-18.6736));
01765         Poles.SetValue(26,24,gp_Pnt(2.92848,-1.81523,-18.7537));
01766         Poles.SetValue(26,25,gp_Pnt(2.92031,2.35123,-18.8647));
01767         Poles.SetValue(26,26,gp_Pnt(2.90582,6.51345,-18.9446));
01768         Poles.SetValue(26,27,gp_Pnt(2.89198,9.63105,-18.9812));
01769         Poles.SetValue(26,28,gp_Pnt(2.87035,13.7782,-19.0068));
01770         Poles.SetValue(26,29,gp_Pnt(2.84585,17.9026,-19.0689));
01771         Poles.SetValue(26,30,gp_Pnt(2.82094,21.9938,-19.1239));
01772         Poles.SetValue(26,31,gp_Pnt(2.79658,26.0594,-19.1547));
01773         Poles.SetValue(26,32,gp_Pnt(2.77809,29.5996,-19.2041));
01774         Poles.SetValue(26,33,gp_Pnt(2.76651,32.5773,-19.2914));
01775         Poles.SetValue(26,34,gp_Pnt(2.75864,34.5628,-19.3306));
01776         Poles.SetValue(26,35,gp_Pnt(2.74443,36.979,-19.1345));
01777         Poles.SetValue(26,36,gp_Pnt(2.70387,39.6961,-18.1971));
01778         Poles.SetValue(26,37,gp_Pnt(2.63982,42.114,-16.5479));
01779         Poles.SetValue(26,38,gp_Pnt(2.5746,44.4902,-14.7277));
01780         Poles.SetValue(26,39,gp_Pnt(2.51798,47.9308,-12.7131));
01781         Poles.SetValue(26,40,gp_Pnt(2.46965,52.3578,-10.3138));
01782         Poles.SetValue(26,41,gp_Pnt(2.43642,57.712,-7.75158));
01783         Poles.SetValue(26,42,gp_Pnt(2.43995,63.2076,-6.38184));
01784         Poles.SetValue(26,43,gp_Pnt(2.50293,70.9438,-5.9876));
01785         Poles.SetValue(26,44,gp_Pnt(2.62733,84.7471,-4.46429));
01786         Poles.SetValue(26,45,gp_Pnt(2.68225,103.665,-3.11603));
01787         Poles.SetValue(26,46,gp_Pnt(2.79269,126.925,-1.43235));
01788         Poles.SetValue(26,47,gp_Pnt(2.85123,142.301,-0.519032));
01789         Poles.SetValue(26,48,gp_Pnt(2.87892,150.003,0.00754219));
01790         Poles.SetValue(27,1,gp_Pnt(4.32494,-150.003,0.00465984));
01791         Poles.SetValue(27,2,gp_Pnt(4.30474,-142.25,-0.336806));
01792         Poles.SetValue(27,3,gp_Pnt(4.2716,-126.829,-0.969986));
01793         Poles.SetValue(27,4,gp_Pnt(4.17478,-103.363,-2.1468));
01794         Poles.SetValue(27,5,gp_Pnt(4.15476,-84.4306,-3.13459));
01795         Poles.SetValue(27,6,gp_Pnt(4.0329,-70.4336,-4.25922));
01796         Poles.SetValue(27,7,gp_Pnt(3.98517,-62.757,-4.50984));
01797         Poles.SetValue(27,8,gp_Pnt(3.9913,-57.3574,-6.07543));
01798         Poles.SetValue(27,9,gp_Pnt(4.02248,-52.0977,-8.96381));
01799         Poles.SetValue(27,10,gp_Pnt(4.06134,-47.6524,-11.5091));
01800         Poles.SetValue(27,11,gp_Pnt(4.12878,-44.273,-13.6756));
01801         Poles.SetValue(27,12,gp_Pnt(4.21141,-41.9866,-15.6295));
01802         Poles.SetValue(27,13,gp_Pnt(4.28353,-39.5132,-17.2059));
01803         Poles.SetValue(27,14,gp_Pnt(4.33348,-36.8179,-18.1432));
01804         Poles.SetValue(27,15,gp_Pnt(4.34938,-34.3123,-18.2685));
01805         Poles.SetValue(27,16,gp_Pnt(4.36331,-32.3022,-18.2773));
01806         Poles.SetValue(27,17,gp_Pnt(4.38418,-29.2798,-18.2738));
01807         Poles.SetValue(27,18,gp_Pnt(4.40847,-25.6802,-18.2617));
01808         Poles.SetValue(27,19,gp_Pnt(4.43585,-21.5644,-18.385));
01809         Poles.SetValue(27,20,gp_Pnt(4.45998,-17.428,-18.4847));
01810         Poles.SetValue(27,21,gp_Pnt(4.47734,-13.274,-18.5362));
01811         Poles.SetValue(27,22,gp_Pnt(4.48745,-9.11172,-18.5999));
01812         Poles.SetValue(27,23,gp_Pnt(4.49128,-5.98756,-18.6581));
01813         Poles.SetValue(27,24,gp_Pnt(4.49121,-1.8203,-18.7405));
01814         Poles.SetValue(27,25,gp_Pnt(4.48385,2.34609,-18.8459));
01815         Poles.SetValue(27,26,gp_Pnt(4.46986,6.50806,-18.9314));
01816         Poles.SetValue(27,27,gp_Pnt(4.45634,9.62519,-18.9867));
01817         Poles.SetValue(27,28,gp_Pnt(4.43334,13.773,-18.962));
01818         Poles.SetValue(27,29,gp_Pnt(4.40783,17.8965,-19.0659));
01819         Poles.SetValue(27,30,gp_Pnt(4.37876,21.9885,-19.0986));
01820         Poles.SetValue(27,31,gp_Pnt(4.34905,26.0539,-19.0891));
01821         Poles.SetValue(27,32,gp_Pnt(4.32668,29.5961,-19.1878));
01822         Poles.SetValue(27,33,gp_Pnt(4.30965,32.5756,-19.2608));
01823         Poles.SetValue(27,34,gp_Pnt(4.29649,34.547,-19.2801));
01824         Poles.SetValue(27,35,gp_Pnt(4.27784,36.9972,-19.1272));
01825         Poles.SetValue(27,36,gp_Pnt(4.21947,39.6638,-18.1139));
01826         Poles.SetValue(27,37,gp_Pnt(4.13554,42.1168,-16.5088));
01827         Poles.SetValue(27,38,gp_Pnt(4.04783,44.4726,-14.6594));
01828         Poles.SetValue(27,39,gp_Pnt(3.97295,47.9284,-12.6694));
01829         Poles.SetValue(27,40,gp_Pnt(3.90975,52.3484,-10.2657));
01830         Poles.SetValue(27,41,gp_Pnt(3.86598,57.7104,-7.72202));
01831         Poles.SetValue(27,42,gp_Pnt(3.86291,63.2023,-6.3517));
01832         Poles.SetValue(27,43,gp_Pnt(3.92956,70.9439,-5.96309));
01833         Poles.SetValue(27,44,gp_Pnt(4.07168,84.743,-4.45222));
01834         Poles.SetValue(27,45,gp_Pnt(4.11915,103.671,-3.13599));
01835         Poles.SetValue(27,46,gp_Pnt(4.23427,126.922,-1.42098));
01836         Poles.SetValue(27,47,gp_Pnt(4.2939,142.303,-0.528462));
01837         Poles.SetValue(27,48,gp_Pnt(4.3214,150.003,0.00181057));
01838         Poles.SetValue(28,1,gp_Pnt(7.20975,-150.003,0.00199379));
01839         Poles.SetValue(28,2,gp_Pnt(7.18882,-142.253,-0.339409));
01840         Poles.SetValue(28,3,gp_Pnt(7.15603,-126.823,-0.960991));
01841         Poles.SetValue(28,4,gp_Pnt(7.04705,-103.378,-2.14121));
01842         Poles.SetValue(28,5,gp_Pnt(7.04011,-84.4152,-3.0599));
01843         Poles.SetValue(28,6,gp_Pnt(6.8827,-70.4519,-4.22491));
01844         Poles.SetValue(28,7,gp_Pnt(6.82633,-62.7416,-4.45356));
01845         Poles.SetValue(28,8,gp_Pnt(6.84632,-57.3274,-5.92928));
01846         Poles.SetValue(28,9,gp_Pnt(6.90313,-52.0603,-8.76894));
01847         Poles.SetValue(28,10,gp_Pnt(6.96541,-47.6191,-11.2651));
01848         Poles.SetValue(28,11,gp_Pnt(7.06713,-44.2153,-13.3835));
01849         Poles.SetValue(28,12,gp_Pnt(7.19512,-41.9163,-15.3266));
01850         Poles.SetValue(28,13,gp_Pnt(7.31552,-39.4707,-16.9917));
01851         Poles.SetValue(28,14,gp_Pnt(7.39349,-36.7863,-18.0229));
01852         Poles.SetValue(28,15,gp_Pnt(7.42239,-34.3003,-18.2325));
01853         Poles.SetValue(28,16,gp_Pnt(7.44451,-32.3001,-18.2769));
01854         Poles.SetValue(28,17,gp_Pnt(7.47675,-29.2865,-18.2652));
01855         Poles.SetValue(28,18,gp_Pnt(7.50629,-25.6849,-18.2576));
01856         Poles.SetValue(28,19,gp_Pnt(7.5408,-21.5692,-18.3235));
01857         Poles.SetValue(28,20,gp_Pnt(7.57163,-17.4339,-18.426));
01858         Poles.SetValue(28,21,gp_Pnt(7.59489,-13.282,-18.5025));
01859         Poles.SetValue(28,22,gp_Pnt(7.60855,-9.11981,-18.5619));
01860         Poles.SetValue(28,23,gp_Pnt(7.61471,-5.99647,-18.6513));
01861         Poles.SetValue(28,24,gp_Pnt(7.6166,-1.8301,-18.7256));
01862         Poles.SetValue(28,25,gp_Pnt(7.61019,2.33523,-18.8123));
01863         Poles.SetValue(28,26,gp_Pnt(7.59637,6.49519,-18.8964));
01864         Poles.SetValue(28,27,gp_Pnt(7.5818,9.61113,-18.9175));
01865         Poles.SetValue(28,28,gp_Pnt(7.55779,13.7559,-18.9587));
01866         Poles.SetValue(28,29,gp_Pnt(7.52587,17.8776,-18.9626));
01867         Poles.SetValue(28,30,gp_Pnt(7.4901,21.9674,-19.0247));
01868         Poles.SetValue(28,31,gp_Pnt(7.45312,26.0294,-19.1257));
01869         Poles.SetValue(28,32,gp_Pnt(7.42514,29.5856,-19.167));
01870         Poles.SetValue(28,33,gp_Pnt(7.39395,32.555,-19.2183));
01871         Poles.SetValue(28,34,gp_Pnt(7.37239,34.5295,-19.2131));
01872         Poles.SetValue(28,35,gp_Pnt(7.33162,36.946,-18.9418));
01873         Poles.SetValue(28,36,gp_Pnt(7.24313,39.6032,-17.8455));
01874         Poles.SetValue(28,37,gp_Pnt(7.11296,42.0514,-16.191));
01875         Poles.SetValue(28,38,gp_Pnt(6.98647,44.4381,-14.3835));
01876         Poles.SetValue(28,39,gp_Pnt(6.88127,47.9054,-12.4221));
01877         Poles.SetValue(28,40,gp_Pnt(6.79154,52.3186,-10.0449));
01878         Poles.SetValue(28,41,gp_Pnt(6.72185,57.6668,-7.53612));
01879         Poles.SetValue(28,42,gp_Pnt(6.71345,63.1976,-6.30207));
01880         Poles.SetValue(28,43,gp_Pnt(6.78803,70.9427,-5.8544));
01881         Poles.SetValue(28,44,gp_Pnt(6.9604,84.7347,-4.44573));
01882         Poles.SetValue(28,45,gp_Pnt(6.99436,103.676,-3.08077));
01883         Poles.SetValue(28,46,gp_Pnt(7.11838,126.92,-1.41297));
01884         Poles.SetValue(28,47,gp_Pnt(7.17835,142.303,-0.517264));
01885         Poles.SetValue(28,48,gp_Pnt(7.20607,150.004,0.000972213));
01886         Poles.SetValue(29,1,gp_Pnt(11.537,-150.004,-0.0019364));
01887         Poles.SetValue(29,2,gp_Pnt(11.5153,-142.257,-0.344646));
01888         Poles.SetValue(29,3,gp_Pnt(11.4814,-126.814,-0.945148));
01889         Poles.SetValue(29,4,gp_Pnt(11.3573,-103.399,-2.13514));
01890         Poles.SetValue(29,5,gp_Pnt(11.367,-84.3943,-2.97324));
01891         Poles.SetValue(29,6,gp_Pnt(11.1587,-70.4767,-4.1361));
01892         Poles.SetValue(29,7,gp_Pnt(11.0926,-62.7343,-4.37369));
01893         Poles.SetValue(29,8,gp_Pnt(11.1242,-57.2568,-5.69537));
01894         Poles.SetValue(29,9,gp_Pnt(11.2126,-51.9572,-8.35841));
01895         Poles.SetValue(29,10,gp_Pnt(11.3271,-47.5822,-10.8942));
01896         Poles.SetValue(29,11,gp_Pnt(11.4644,-44.1049,-12.8681));
01897         Poles.SetValue(29,12,gp_Pnt(11.6405,-41.7204,-14.7153));
01898         Poles.SetValue(29,13,gp_Pnt(11.826,-39.3053,-16.4686));
01899         Poles.SetValue(29,14,gp_Pnt(11.9708,-36.7063,-17.7552));
01900         Poles.SetValue(29,15,gp_Pnt(12.0323,-34.2848,-18.2164));
01901         Poles.SetValue(29,16,gp_Pnt(12.0665,-32.2944,-18.2456));
01902         Poles.SetValue(29,17,gp_Pnt(12.1134,-29.2928,-18.2183));
01903         Poles.SetValue(29,18,gp_Pnt(12.1502,-25.6859,-18.2702));
01904         Poles.SetValue(29,19,gp_Pnt(12.1962,-21.5727,-18.2883));
01905         Poles.SetValue(29,20,gp_Pnt(12.2377,-17.4404,-18.3531));
01906         Poles.SetValue(29,21,gp_Pnt(12.2704,-13.2922,-18.4587));
01907         Poles.SetValue(29,22,gp_Pnt(12.2909,-9.1316,-18.5394));
01908         Poles.SetValue(29,23,gp_Pnt(12.3004,-6.00847,-18.5853));
01909         Poles.SetValue(29,24,gp_Pnt(12.3062,-1.84393,-18.668));
01910         Poles.SetValue(29,25,gp_Pnt(12.3017,2.31872,-18.7656));
01911         Poles.SetValue(29,26,gp_Pnt(12.2867,6.47589,-18.8211));
01912         Poles.SetValue(29,27,gp_Pnt(12.27,9.58913,-18.8432));
01913         Poles.SetValue(29,28,gp_Pnt(12.242,13.7302,-18.8857));
01914         Poles.SetValue(29,29,gp_Pnt(12.2013,17.8471,-18.8567));
01915         Poles.SetValue(29,30,gp_Pnt(12.1551,21.9335,-18.9411));
01916         Poles.SetValue(29,31,gp_Pnt(12.1027,25.9912,-19.0065));
01917         Poles.SetValue(29,32,gp_Pnt(12.0689,29.5626,-19.1079));
01918         Poles.SetValue(29,33,gp_Pnt(12.0248,32.536,-19.2146));
01919         Poles.SetValue(29,34,gp_Pnt(11.9908,34.506,-19.2085));
01920         Poles.SetValue(29,35,gp_Pnt(11.9133,36.8769,-18.6385));
01921         Poles.SetValue(29,36,gp_Pnt(11.7541,39.4633,-17.3418));
01922         Poles.SetValue(29,37,gp_Pnt(11.5496,41.8804,-15.5601));
01923         Poles.SetValue(29,38,gp_Pnt(11.3811,44.3392,-13.8642));
01924         Poles.SetValue(29,39,gp_Pnt(11.2454,47.87,-12.0305));
01925         Poles.SetValue(29,40,gp_Pnt(11.1037,52.2433,-9.63697));
01926         Poles.SetValue(29,41,gp_Pnt(11.0077,57.6157,-7.26995));
01927         Poles.SetValue(29,42,gp_Pnt(10.9873,63.1748,-6.14324));
01928         Poles.SetValue(29,43,gp_Pnt(11.0809,70.9505,-5.75361));
01929         Poles.SetValue(29,44,gp_Pnt(11.2905,84.7164,-4.38829));
01930         Poles.SetValue(29,45,gp_Pnt(11.3097,103.688,-3.03385));
01931         Poles.SetValue(29,46,gp_Pnt(11.443,126.913,-1.36961));
01932         Poles.SetValue(29,47,gp_Pnt(11.5055,142.304,-0.513898));
01933         Poles.SetValue(29,48,gp_Pnt(11.5331,150.004,0.00143569));
01934         Poles.SetValue(30,1,gp_Pnt(16.3445,-150.003,0.00578743));
01935         Poles.SetValue(30,2,gp_Pnt(16.3249,-142.267,-0.370801));
01936         Poles.SetValue(30,3,gp_Pnt(16.2799,-126.795,-0.898163));
01937         Poles.SetValue(30,4,gp_Pnt(16.1574,-103.437,-2.15905));
01938         Poles.SetValue(30,5,gp_Pnt(16.1621,-84.359,-2.81595));
01939         Poles.SetValue(30,6,gp_Pnt(15.9355,-70.522,-4.02929));
01940         Poles.SetValue(30,7,gp_Pnt(15.8353,-62.7113,-4.30109));
01941         Poles.SetValue(30,8,gp_Pnt(15.8592,-57.1301,-5.29219));
01942         Poles.SetValue(30,9,gp_Pnt(15.9885,-51.8279,-7.70639));
01943         Poles.SetValue(30,10,gp_Pnt(16.1458,-47.454,-10.0875));
01944         Poles.SetValue(30,11,gp_Pnt(16.3056,-43.9394,-11.9786));
01945         Poles.SetValue(30,12,gp_Pnt(16.4697,-41.3722,-13.5536));
01946         Poles.SetValue(30,13,gp_Pnt(16.7346,-38.9838,-15.419));
01947         Poles.SetValue(30,14,gp_Pnt(16.9692,-36.4718,-16.9881));
01948         Poles.SetValue(30,15,gp_Pnt(17.0978,-34.1539,-17.8546));
01949         Poles.SetValue(30,16,gp_Pnt(17.1618,-32.2064,-18.1241));
01950         Poles.SetValue(30,17,gp_Pnt(17.2498,-29.2572,-18.3817));
01951         Poles.SetValue(30,18,gp_Pnt(17.2843,-25.6335,-18.1023));
01952         Poles.SetValue(30,19,gp_Pnt(17.349,-21.5427,-18.2505));
01953         Poles.SetValue(30,20,gp_Pnt(17.4018,-17.4207,-18.275));
01954         Poles.SetValue(30,21,gp_Pnt(17.4446,-13.282,-18.3905));
01955         Poles.SetValue(30,22,gp_Pnt(17.4712,-9.12898,-18.4481));
01956         Poles.SetValue(30,23,gp_Pnt(17.484,-6.01145,-18.4793));
01957         Poles.SetValue(30,24,gp_Pnt(17.4931,-1.85495,-18.5611));
01958         Poles.SetValue(30,25,gp_Pnt(17.489,2.29988,-18.6221));
01959         Poles.SetValue(30,26,gp_Pnt(17.4726,6.44817,-18.6907));
01960         Poles.SetValue(30,27,gp_Pnt(17.4549,9.55413,-18.7566));
01961         Poles.SetValue(30,28,gp_Pnt(17.4205,13.6861,-18.7666));
01962         Poles.SetValue(30,29,gp_Pnt(17.3732,17.7936,-18.8446));
01963         Poles.SetValue(30,30,gp_Pnt(17.3181,21.8766,-18.906));
01964         Poles.SetValue(30,31,gp_Pnt(17.2501,25.9253,-18.909));
01965         Poles.SetValue(30,32,gp_Pnt(17.2175,29.502,-19.3082));
01966         Poles.SetValue(30,33,gp_Pnt(17.1165,32.4131,-19.0021));
01967         Poles.SetValue(30,34,gp_Pnt(17.0447,34.3389,-18.7229));
01968         Poles.SetValue(30,35,gp_Pnt(16.8753,36.5819,-17.6749));
01969         Poles.SetValue(30,36,gp_Pnt(16.6444,39.1331,-16.2131));
01970         Poles.SetValue(30,37,gp_Pnt(16.3774,41.5535,-14.3732));
01971         Poles.SetValue(30,38,gp_Pnt(16.2266,44.1917,-12.9771));
01972         Poles.SetValue(30,39,gp_Pnt(16.0512,47.7031,-11.1156));
01973         Poles.SetValue(30,40,gp_Pnt(15.8965,52.1551,-9.02732));
01974         Poles.SetValue(30,41,gp_Pnt(15.7531,57.497,-6.73597));
01975         Poles.SetValue(30,42,gp_Pnt(15.7515,63.1508,-5.99587));
01976         Poles.SetValue(30,43,gp_Pnt(15.8708,70.9704,-5.59492));
01977         Poles.SetValue(30,44,gp_Pnt(16.0904,84.6832,-4.25753));
01978         Poles.SetValue(30,45,gp_Pnt(16.1141,103.717,-3.04271));
01979         Poles.SetValue(30,46,gp_Pnt(16.2429,126.893,-1.24525));
01980         Poles.SetValue(30,47,gp_Pnt(16.3147,142.31,-0.535292));
01981         Poles.SetValue(30,48,gp_Pnt(16.341,150.003,0.00253219));
01982         Poles.SetValue(31,1,gp_Pnt(20.1907,-150.004,-0.000526058));
01983         Poles.SetValue(31,2,gp_Pnt(20.1704,-142.268,-0.331239));
01984         Poles.SetValue(31,3,gp_Pnt(20.122,-126.794,-0.970591));
01985         Poles.SetValue(31,4,gp_Pnt(19.9951,-103.451,-1.9936));
01986         Poles.SetValue(31,5,gp_Pnt(19.9957,-84.3412,-2.79149));
01987         Poles.SetValue(31,6,gp_Pnt(19.7663,-70.5532,-3.8958));
01988         Poles.SetValue(31,7,gp_Pnt(19.6372,-62.6961,-4.24537));
01989         Poles.SetValue(31,8,gp_Pnt(19.6312,-57.0153,-4.8376));
01990         Poles.SetValue(31,9,gp_Pnt(19.8029,-51.7257,-7.12882));
01991         Poles.SetValue(31,10,gp_Pnt(19.9903,-47.3456,-9.33312));
01992         Poles.SetValue(31,11,gp_Pnt(20.1544,-43.7936,-11.1495));
01993         Poles.SetValue(31,12,gp_Pnt(20.3067,-41.1475,-12.5808));
01994         Poles.SetValue(31,13,gp_Pnt(20.5363,-38.6079,-14.2468));
01995         Poles.SetValue(31,14,gp_Pnt(20.84,-36.134,-15.9275));
01996         Poles.SetValue(31,15,gp_Pnt(21.0623,-33.9474,-17.1599));
01997         Poles.SetValue(31,16,gp_Pnt(21.1716,-32.0518,-17.667));
01998         Poles.SetValue(31,17,gp_Pnt(21.3214,-29.179,-18.3673));
01999         Poles.SetValue(31,18,gp_Pnt(21.3793,-25.5812,-18.3124));
02000         Poles.SetValue(31,19,gp_Pnt(21.4548,-21.5049,-18.1853));
02001         Poles.SetValue(31,20,gp_Pnt(21.5142,-17.3922,-18.2366));
02002         Poles.SetValue(31,21,gp_Pnt(21.558,-13.2603,-18.3063));
02003         Poles.SetValue(31,22,gp_Pnt(21.5878,-9.11659,-18.3336));
02004         Poles.SetValue(31,23,gp_Pnt(21.6056,-6.00831,-18.4512));
02005         Poles.SetValue(31,24,gp_Pnt(21.6167,-1.86141,-18.4833));
02006         Poles.SetValue(31,25,gp_Pnt(21.6127,2.2836,-18.5266));
02007         Poles.SetValue(31,26,gp_Pnt(21.5944,6.42098,-18.6074));
02008         Poles.SetValue(31,27,gp_Pnt(21.5727,9.51941,-18.6404));
02009         Poles.SetValue(31,28,gp_Pnt(21.5378,13.6411,-18.7487));
02010         Poles.SetValue(31,29,gp_Pnt(21.4866,17.743,-18.7215));
02011         Poles.SetValue(31,30,gp_Pnt(21.4258,21.8165,-18.8984));
02012         Poles.SetValue(31,31,gp_Pnt(21.3369,25.8371,-19.0188));
02013         Poles.SetValue(31,32,gp_Pnt(21.2862,29.4092,-19.1007));
02014         Poles.SetValue(31,33,gp_Pnt(21.1135,32.2368,-18.3775));
02015         Poles.SetValue(31,34,gp_Pnt(20.9861,34.1014,-17.8358));
02016         Poles.SetValue(31,35,gp_Pnt(20.7501,36.2734,-16.587));
02017         Poles.SetValue(31,36,gp_Pnt(20.4474,38.7816,-15.0031));
02018         Poles.SetValue(31,37,gp_Pnt(20.2219,41.3577,-13.4124));
02019         Poles.SetValue(31,38,gp_Pnt(20.0752,44.046,-12.1119));
02020         Poles.SetValue(31,39,gp_Pnt(19.9,47.6135,-10.3667));
02021         Poles.SetValue(31,40,gp_Pnt(19.7027,52.0328,-8.33553));
02022         Poles.SetValue(31,41,gp_Pnt(19.5529,57.4314,-6.41226));
02023         Poles.SetValue(31,42,gp_Pnt(19.5744,63.1466,-5.88305));
02024         Poles.SetValue(31,43,gp_Pnt(19.7084,70.9809,-5.38238));
02025         Poles.SetValue(31,44,gp_Pnt(19.9269,84.6646,-4.23097));
02026         Poles.SetValue(31,45,gp_Pnt(19.9547,103.723,-2.89651));
02027         Poles.SetValue(31,46,gp_Pnt(20.0869,126.892,-1.26097));
02028         Poles.SetValue(31,47,gp_Pnt(20.16,142.308,-0.498836));
02029         Poles.SetValue(31,48,gp_Pnt(20.1872,150.004,-0.000635283));
02030         Poles.SetValue(32,1,gp_Pnt(23.0753,-150.004,0.00144521));
02031         Poles.SetValue(32,2,gp_Pnt(23.0548,-142.27,-0.337801));
02032         Poles.SetValue(32,3,gp_Pnt(23.0016,-126.788,-0.942781));
02033         Poles.SetValue(32,4,gp_Pnt(22.8773,-103.469,-1.9433));
02034         Poles.SetValue(32,5,gp_Pnt(22.8673,-84.3255,-2.74248));
02035         Poles.SetValue(32,6,gp_Pnt(22.6434,-70.5754,-3.79108));
02036         Poles.SetValue(32,7,gp_Pnt(22.4949,-62.6931,-4.17157));
02037         Poles.SetValue(32,8,gp_Pnt(22.4768,-56.9735,-4.67076));
02038         Poles.SetValue(32,9,gp_Pnt(22.6398,-51.6068,-6.54067));
02039         Poles.SetValue(32,10,gp_Pnt(22.85,-47.2263,-8.64328));
02040         Poles.SetValue(32,11,gp_Pnt(23.0318,-43.6813,-10.4638));
02041         Poles.SetValue(32,12,gp_Pnt(23.1562,-40.9615,-11.764));
02042         Poles.SetValue(32,13,gp_Pnt(23.368,-38.3504,-13.3038));
02043         Poles.SetValue(32,14,gp_Pnt(23.6652,-35.817,-14.919));
02044         Poles.SetValue(32,15,gp_Pnt(23.9354,-33.6785,-16.2623));
02045         Poles.SetValue(32,16,gp_Pnt(24.0927,-31.8451,-17.0162));
02046         Poles.SetValue(32,17,gp_Pnt(24.3261,-29.0715,-18.0603));
02047         Poles.SetValue(32,18,gp_Pnt(24.4211,-25.5163,-18.3534));
02048         Poles.SetValue(32,19,gp_Pnt(24.5253,-21.4717,-18.3276));
02049         Poles.SetValue(32,20,gp_Pnt(24.5868,-17.3628,-18.1811));
02050         Poles.SetValue(32,21,gp_Pnt(24.6337,-13.2388,-18.2382));
02051         Poles.SetValue(32,22,gp_Pnt(24.6633,-9.10443,-18.3301));
02052         Poles.SetValue(32,23,gp_Pnt(24.6763,-6.00141,-18.3329));
02053         Poles.SetValue(32,24,gp_Pnt(24.6883,-1.86447,-18.4));
02054         Poles.SetValue(32,25,gp_Pnt(24.685,2.27094,-18.4513));
02055         Poles.SetValue(32,26,gp_Pnt(24.6679,6.39927,-18.5271));
02056         Poles.SetValue(32,27,gp_Pnt(24.6503,9.49024,-18.6028));
02057         Poles.SetValue(32,28,gp_Pnt(24.6143,13.6057,-18.6066));
02058         Poles.SetValue(32,29,gp_Pnt(24.5631,17.7003,-18.6756));
02059         Poles.SetValue(32,30,gp_Pnt(24.4992,21.766,-18.9712));
02060         Poles.SetValue(32,31,gp_Pnt(24.3992,25.7809,-18.8799));
02061         Poles.SetValue(32,32,gp_Pnt(24.3004,29.3057,-18.7554));
02062         Poles.SetValue(32,33,gp_Pnt(24.037,32.0419,-17.6838));
02063         Poles.SetValue(32,34,gp_Pnt(23.8657,33.8604,-16.9256));
02064         Poles.SetValue(32,35,gp_Pnt(23.5774,35.9803,-15.5713));
02065         Poles.SetValue(32,36,gp_Pnt(23.2968,38.5683,-14.0879));
02066         Poles.SetValue(32,37,gp_Pnt(23.093,41.2165,-12.6479));
02067         Poles.SetValue(32,38,gp_Pnt(22.9531,43.9435,-11.4158));
02068         Poles.SetValue(32,39,gp_Pnt(22.7622,47.5105,-9.68785));
02069         Poles.SetValue(32,40,gp_Pnt(22.5568,51.9527,-7.8039));
02070         Poles.SetValue(32,41,gp_Pnt(22.4004,57.3744,-6.1033));
02071         Poles.SetValue(32,42,gp_Pnt(22.4489,63.1511,-5.80662));
02072         Poles.SetValue(32,43,gp_Pnt(22.5902,70.9891,-5.2305));
02073         Poles.SetValue(32,44,gp_Pnt(22.799,84.6457,-4.15543));
02074         Poles.SetValue(32,45,gp_Pnt(22.8398,103.734,-2.83232));
02075         Poles.SetValue(32,46,gp_Pnt(22.9682,126.889,-1.24771));
02076         Poles.SetValue(32,47,gp_Pnt(23.0442,142.308,-0.479822));
02077         Poles.SetValue(32,48,gp_Pnt(23.072,150.003,-0.00023355));
02078         Poles.SetValue(33,1,gp_Pnt(25.96,-150.004,-0.00107395));
02079         Poles.SetValue(33,2,gp_Pnt(25.9383,-142.271,-0.323802));
02080         Poles.SetValue(33,3,gp_Pnt(25.883,-126.787,-0.940847));
02081         Poles.SetValue(33,4,gp_Pnt(25.7581,-103.481,-1.84472));
02082         Poles.SetValue(33,5,gp_Pnt(25.7408,-84.3172,-2.76066));
02083         Poles.SetValue(33,6,gp_Pnt(25.52,-70.5894,-3.62915));
02084         Poles.SetValue(33,7,gp_Pnt(25.366,-62.7115,-4.17081));
02085         Poles.SetValue(33,8,gp_Pnt(25.3057,-56.9037,-4.30025));
02086         Poles.SetValue(33,9,gp_Pnt(25.4874,-51.5283,-6.03263));
02087         Poles.SetValue(33,10,gp_Pnt(25.6972,-47.1048,-7.91375));
02088         Poles.SetValue(33,11,gp_Pnt(25.8911,-43.5608,-9.71674));
02089         Poles.SetValue(33,12,gp_Pnt(26.0083,-40.8113,-10.9474));
02090         Poles.SetValue(33,13,gp_Pnt(26.1812,-38.1233,-12.3183));
02091         Poles.SetValue(33,14,gp_Pnt(26.4261,-35.4747,-13.7471));
02092         Poles.SetValue(33,15,gp_Pnt(26.7228,-33.3637,-15.1404));
02093         Poles.SetValue(33,16,gp_Pnt(26.9425,-31.5869,-16.0448));
02094         Poles.SetValue(33,17,gp_Pnt(27.2466,-28.8898,-17.3418));
02095         Poles.SetValue(33,18,gp_Pnt(27.4392,-25.4377,-18.079));
02096         Poles.SetValue(33,19,gp_Pnt(27.5703,-21.4197,-18.3425));
02097         Poles.SetValue(33,20,gp_Pnt(27.6524,-17.3331,-18.2754));
02098         Poles.SetValue(33,21,gp_Pnt(27.691,-13.2136,-18.2387));
02099         Poles.SetValue(33,22,gp_Pnt(27.7352,-9.09145,-18.3076));
02100         Poles.SetValue(33,23,gp_Pnt(27.7708,-5.99784,-18.3543));
02101         Poles.SetValue(33,24,gp_Pnt(27.7901,-1.8693,-18.4133));
02102         Poles.SetValue(33,25,gp_Pnt(27.7867,2.25931,-18.461));
02103         Poles.SetValue(33,26,gp_Pnt(27.7597,6.37821,-18.527));
02104         Poles.SetValue(33,27,gp_Pnt(27.7183,9.46104,-18.5728));
02105         Poles.SetValue(33,28,gp_Pnt(27.6728,13.5629,-18.5809));
02106         Poles.SetValue(33,29,gp_Pnt(27.6341,17.6553,-18.7896));
02107         Poles.SetValue(33,30,gp_Pnt(27.5313,21.69,-18.856));
02108         Poles.SetValue(33,31,gp_Pnt(27.4221,25.7022,-18.6912));
02109         Poles.SetValue(33,32,gp_Pnt(27.1858,29.0914,-17.9663));
02110         Poles.SetValue(33,33,gp_Pnt(26.8754,31.7892,-16.6502));
02111         Poles.SetValue(33,34,gp_Pnt(26.6629,33.5795,-15.8008));
02112         Poles.SetValue(33,35,gp_Pnt(26.392,35.7345,-14.5141));
02113         Poles.SetValue(33,36,gp_Pnt(26.1302,38.3859,-13.1359));
02114         Poles.SetValue(33,37,gp_Pnt(25.9577,41.0989,-11.8672));
02115         Poles.SetValue(33,38,gp_Pnt(25.8174,43.84,-10.6733));
02116         Poles.SetValue(33,39,gp_Pnt(25.6131,47.4059,-8.97942));
02117         Poles.SetValue(33,40,gp_Pnt(25.4162,51.8971,-7.31061));
02118         Poles.SetValue(33,41,gp_Pnt(25.2618,57.3518,-5.8554));
02119         Poles.SetValue(33,42,gp_Pnt(25.3309,63.1621,-5.70901));
02120         Poles.SetValue(33,43,gp_Pnt(25.4737,70.9955,-5.07709));
02121         Poles.SetValue(33,44,gp_Pnt(25.6714,84.6291,-4.0924));
02122         Poles.SetValue(33,45,gp_Pnt(25.7247,103.742,-2.75106));
02123         Poles.SetValue(33,46,gp_Pnt(25.8505,126.888,-1.25015));
02124         Poles.SetValue(33,47,gp_Pnt(25.9279,142.307,-0.4543));
02125         Poles.SetValue(33,48,gp_Pnt(25.9567,150.003,1.78031e-006));
02126         Poles.SetValue(34,1,gp_Pnt(28.8443,-150.003,-0.000814414));
02127         Poles.SetValue(34,2,gp_Pnt(28.822,-142.272,-0.314965));
02128         Poles.SetValue(34,3,gp_Pnt(28.7639,-126.784,-0.915393));
02129         Poles.SetValue(34,4,gp_Pnt(28.6408,-103.496,-1.77607));
02130         Poles.SetValue(34,5,gp_Pnt(28.6108,-84.3033,-2.7051));
02131         Poles.SetValue(34,6,gp_Pnt(28.4002,-70.6057,-3.51828));
02132         Poles.SetValue(34,7,gp_Pnt(28.2459,-62.7375,-4.07858));
02133         Poles.SetValue(34,8,gp_Pnt(28.1744,-56.9104,-4.20906));
02134         Poles.SetValue(34,9,gp_Pnt(28.3177,-51.4347,-5.41731));
02135         Poles.SetValue(34,10,gp_Pnt(28.5405,-47,-7.20566));
02136         Poles.SetValue(34,11,gp_Pnt(28.7156,-43.4043,-8.86385));
02137         Poles.SetValue(34,12,gp_Pnt(28.8516,-40.6751,-10.1127));
02138         Poles.SetValue(34,13,gp_Pnt(28.9811,-37.9111,-11.2996));
02139         Poles.SetValue(34,14,gp_Pnt(29.1942,-35.2049,-12.5938));
02140         Poles.SetValue(34,15,gp_Pnt(29.4218,-32.9982,-13.7949));
02141         Poles.SetValue(34,16,gp_Pnt(29.6546,-31.2373,-14.7599));
02142         Poles.SetValue(34,17,gp_Pnt(30.0209,-28.5986,-16.2161));
02143         Poles.SetValue(34,18,gp_Pnt(30.3511,-25.2896,-17.4304));
02144         Poles.SetValue(34,19,gp_Pnt(30.5644,-21.3363,-18.1086));
02145         Poles.SetValue(34,20,gp_Pnt(30.6971,-17.2907,-18.3429));
02146         Poles.SetValue(34,21,gp_Pnt(30.7624,-13.191,-18.3042));
02147         Poles.SetValue(34,22,gp_Pnt(30.7888,-9.07614,-18.2619));
02148         Poles.SetValue(34,23,gp_Pnt(30.7984,-5.98767,-18.2612));
02149         Poles.SetValue(34,24,gp_Pnt(30.8028,-1.86922,-18.3218));
02150         Poles.SetValue(34,25,gp_Pnt(30.8038,2.24578,-18.378));
02151         Poles.SetValue(34,26,gp_Pnt(30.7952,6.35643,-18.4258));
02152         Poles.SetValue(34,27,gp_Pnt(30.783,9.43271,-18.5099));
02153         Poles.SetValue(34,28,gp_Pnt(30.7508,13.5293,-18.5862));
02154         Poles.SetValue(34,29,gp_Pnt(30.6756,17.5933,-18.7948));
02155         Poles.SetValue(34,30,gp_Pnt(30.5377,21.6111,-18.5821));
02156         Poles.SetValue(34,31,gp_Pnt(30.3253,25.5499,-17.9497));
02157         Poles.SetValue(34,32,gp_Pnt(29.9809,28.8453,-16.7757));
02158         Poles.SetValue(34,33,gp_Pnt(29.6116,31.4959,-15.4039));
02159         Poles.SetValue(34,34,gp_Pnt(29.3795,33.2673,-14.4675));
02160         Poles.SetValue(34,35,gp_Pnt(29.1738,35.5112,-13.3894));
02161         Poles.SetValue(34,36,gp_Pnt(28.9461,38.2178,-12.1512));
02162         Poles.SetValue(34,37,gp_Pnt(28.8226,41.0067,-11.0898));
02163         Poles.SetValue(34,38,gp_Pnt(28.6485,43.7085,-9.8326));
02164         Poles.SetValue(34,39,gp_Pnt(28.4613,47.3204,-8.29397));
02165         Poles.SetValue(34,40,gp_Pnt(28.2597,51.8236,-6.71601));
02166         Poles.SetValue(34,41,gp_Pnt(28.1363,57.35,-5.69854));
02167         Poles.SetValue(34,42,gp_Pnt(28.2228,63.1847,-5.58611));
02168         Poles.SetValue(34,43,gp_Pnt(28.3583,70.9987,-4.92408));
02169         Poles.SetValue(34,44,gp_Pnt(28.5449,84.6147,-4.02298));
02170         Poles.SetValue(34,45,gp_Pnt(28.6102,103.75,-2.67549));
02171         Poles.SetValue(34,46,gp_Pnt(28.733,126.887,-1.24976));
02172         Poles.SetValue(34,47,gp_Pnt(28.8119,142.306,-0.431209));
02173         Poles.SetValue(34,48,gp_Pnt(28.8411,150.003,0.000394087));
02174         Poles.SetValue(35,1,gp_Pnt(31.7287,-150.003,-0.00159563));
02175         Poles.SetValue(35,2,gp_Pnt(31.7054,-142.271,-0.292958));
02176         Poles.SetValue(35,3,gp_Pnt(31.6455,-126.784,-0.897779));
02177         Poles.SetValue(35,4,gp_Pnt(31.5244,-103.509,-1.70454));
02178         Poles.SetValue(35,5,gp_Pnt(31.4818,-84.2933,-2.66393));
02179         Poles.SetValue(35,6,gp_Pnt(31.2818,-70.6177,-3.40872));
02180         Poles.SetValue(35,7,gp_Pnt(31.1379,-62.7777,-3.96987));
02181         Poles.SetValue(35,8,gp_Pnt(31.0487,-56.922,-4.10969));
02182         Poles.SetValue(35,9,gp_Pnt(31.1572,-51.3677,-4.89488));
02183         Poles.SetValue(35,10,gp_Pnt(31.3712,-46.8953,-6.51595));
02184         Poles.SetValue(35,11,gp_Pnt(31.5139,-43.2378,-7.96936));
02185         Poles.SetValue(35,12,gp_Pnt(31.6758,-40.5316,-9.22108));
02186         Poles.SetValue(35,13,gp_Pnt(31.8199,-37.7807,-10.3811));
02187         Poles.SetValue(35,14,gp_Pnt(31.9893,-35.0147,-11.5145));
02188         Poles.SetValue(35,15,gp_Pnt(32.1247,-32.7053,-12.464));
02189         Poles.SetValue(35,16,gp_Pnt(32.3218,-30.8986,-13.34));
02190         Poles.SetValue(35,17,gp_Pnt(32.6432,-28.2165,-14.6979));
02191         Poles.SetValue(35,18,gp_Pnt(33.097,-25.0373,-16.1855));
02192         Poles.SetValue(35,19,gp_Pnt(33.4343,-21.1834,-17.345));
02193         Poles.SetValue(35,20,gp_Pnt(33.6567,-17.2197,-18.0405));
02194         Poles.SetValue(35,21,gp_Pnt(33.7429,-13.1456,-18.2543));
02195         Poles.SetValue(35,22,gp_Pnt(33.7947,-9.05496,-18.3306));
02196         Poles.SetValue(35,23,gp_Pnt(33.814,-5.97761,-18.3713));
02197         Poles.SetValue(35,24,gp_Pnt(33.8326,-1.87322,-18.3889));
02198         Poles.SetValue(35,25,gp_Pnt(33.8307,2.23248,-18.5068));
02199         Poles.SetValue(35,26,gp_Pnt(33.8103,6.3285,-18.5284));
02200         Poles.SetValue(35,27,gp_Pnt(33.7859,9.39575,-18.5442));
02201         Poles.SetValue(35,28,gp_Pnt(33.7311,13.4669,-18.5787));
02202         Poles.SetValue(35,29,gp_Pnt(33.6309,17.5149,-18.4035));
02203         Poles.SetValue(35,30,gp_Pnt(33.3631,21.4402,-17.6914));
02204         Poles.SetValue(35,31,gp_Pnt(33.0314,25.2897,-16.6389));
02205         Poles.SetValue(35,32,gp_Pnt(32.5814,28.4766,-15.2398));
02206         Poles.SetValue(35,33,gp_Pnt(32.2879,31.1937,-13.9832));
02207         Poles.SetValue(35,34,gp_Pnt(32.101,33.016,-13.1896));
02208         Poles.SetValue(35,35,gp_Pnt(31.9711,35.3393,-12.3157));
02209         Poles.SetValue(35,36,gp_Pnt(31.762,38.0751,-11.166));
02210         Poles.SetValue(35,37,gp_Pnt(31.6205,40.8468,-10.1215));
02211         Poles.SetValue(35,38,gp_Pnt(31.4569,43.5672,-8.96315));
02212         Poles.SetValue(35,39,gp_Pnt(31.304,47.2348,-7.63002));
02213         Poles.SetValue(35,40,gp_Pnt(31.1056,51.7662,-6.18385));
02214         Poles.SetValue(35,41,gp_Pnt(31.032,57.3778,-5.59198));
02215         Poles.SetValue(35,42,gp_Pnt(31.1183,63.208,-5.41945));
02216         Poles.SetValue(35,43,gp_Pnt(31.2462,71.0036,-4.78942));
02217         Poles.SetValue(35,44,gp_Pnt(31.4185,84.5987,-3.92699));
02218         Poles.SetValue(35,45,gp_Pnt(31.4967,103.758,-2.61174));
02219         Poles.SetValue(35,46,gp_Pnt(31.6157,126.886,-1.24044));
02220         Poles.SetValue(35,47,gp_Pnt(31.6958,142.305,-0.417113));
02221         Poles.SetValue(35,48,gp_Pnt(31.7255,150.002,0.00194988));
02222         Poles.SetValue(36,1,gp_Pnt(34.613,-150.003,-8.84142e-006));
02223         Poles.SetValue(36,2,gp_Pnt(34.5892,-142.271,-0.281898));
02224         Poles.SetValue(36,3,gp_Pnt(34.5259,-126.782,-0.842126));
02225         Poles.SetValue(36,4,gp_Pnt(34.4114,-103.526,-1.69502));
02226         Poles.SetValue(36,5,gp_Pnt(34.3501,-84.279,-2.54815));
02227         Poles.SetValue(36,6,gp_Pnt(34.1678,-70.6326,-3.32282));
02228         Poles.SetValue(36,7,gp_Pnt(34.0367,-62.8161,-3.82536));
02229         Poles.SetValue(36,8,gp_Pnt(33.9563,-56.9857,-4.13682));
02230         Poles.SetValue(36,9,gp_Pnt(34.0087,-51.3335,-4.46806));
02231         Poles.SetValue(36,10,gp_Pnt(34.1924,-46.7917,-5.85857));
02232         Poles.SetValue(36,11,gp_Pnt(34.3026,-43.0822,-7.10693));
02233         Poles.SetValue(36,12,gp_Pnt(34.4437,-40.3441,-8.2133));
02234         Poles.SetValue(36,13,gp_Pnt(34.6249,-37.6272,-9.39894));
02235         Poles.SetValue(36,14,gp_Pnt(34.7778,-34.844,-10.4473));
02236         Poles.SetValue(36,15,gp_Pnt(34.8915,-32.5077,-11.3048));
02237         Poles.SetValue(36,16,gp_Pnt(35.0303,-30.6596,-12.0421));
02238         Poles.SetValue(36,17,gp_Pnt(35.2632,-27.9023,-13.1946));
02239         Poles.SetValue(36,18,gp_Pnt(35.6871,-24.7181,-14.6532));
02240         Poles.SetValue(36,19,gp_Pnt(36.0775,-20.9311,-15.9594));
02241         Poles.SetValue(36,20,gp_Pnt(36.3883,-17.0442,-16.9645));
02242         Poles.SetValue(36,21,gp_Pnt(36.6346,-13.0717,-17.6564));
02243         Poles.SetValue(36,22,gp_Pnt(36.703,-9.00817,-17.8864));
02244         Poles.SetValue(36,23,gp_Pnt(36.753,-5.9561,-18.0651));
02245         Poles.SetValue(36,24,gp_Pnt(36.7617,-1.86876,-18.1671));
02246         Poles.SetValue(36,25,gp_Pnt(36.7651,2.21985,-18.2173));
02247         Poles.SetValue(36,26,gp_Pnt(36.7472,6.29944,-18.1998));
02248         Poles.SetValue(36,27,gp_Pnt(36.7037,9.34658,-18.1186));
02249         Poles.SetValue(36,28,gp_Pnt(36.6083,13.3906,-17.8978));
02250         Poles.SetValue(36,29,gp_Pnt(36.3678,17.3552,-17.2999));
02251         Poles.SetValue(36,30,gp_Pnt(36.0217,21.2169,-16.3136));
02252         Poles.SetValue(36,31,gp_Pnt(35.6137,24.997,-15.0642));
02253         Poles.SetValue(36,32,gp_Pnt(35.226,28.2063,-13.7406));
02254         Poles.SetValue(36,33,gp_Pnt(34.9984,30.9793,-12.6852));
02255         Poles.SetValue(36,34,gp_Pnt(34.8482,32.8226,-11.9616));
02256         Poles.SetValue(36,35,gp_Pnt(34.7496,35.1802,-11.2179));
02257         Poles.SetValue(36,36,gp_Pnt(34.5774,37.9518,-10.2031));
02258         Poles.SetValue(36,37,gp_Pnt(34.4083,40.6991,-9.15684));
02259         Poles.SetValue(36,38,gp_Pnt(34.2536,43.4345,-8.10986));
02260         Poles.SetValue(36,39,gp_Pnt(34.1265,47.141,-6.95245));
02261         Poles.SetValue(36,40,gp_Pnt(33.9694,51.7379,-5.79187));
02262         Poles.SetValue(36,41,gp_Pnt(33.9407,57.4177,-5.51793));
02263         Poles.SetValue(36,42,gp_Pnt(34.0186,63.2307,-5.20171));
02264         Poles.SetValue(36,43,gp_Pnt(34.1362,71.0089,-4.67244));
02265         Poles.SetValue(36,44,gp_Pnt(34.2957,84.5851,-3.80167));
02266         Poles.SetValue(36,45,gp_Pnt(34.383,103.766,-2.5642));
02267         Poles.SetValue(36,46,gp_Pnt(34.4993,126.886,-1.22044));
02268         Poles.SetValue(36,47,gp_Pnt(34.5794,142.304,-0.409319));
02269         Poles.SetValue(36,48,gp_Pnt(34.61,150.002,0.00244459));
02270         Poles.SetValue(37,1,gp_Pnt(37.4972,-150.002,0.000555526));
02271         Poles.SetValue(37,2,gp_Pnt(37.4728,-142.27,-0.265447));
02272         Poles.SetValue(37,3,gp_Pnt(37.4079,-126.783,-0.802161));
02273         Poles.SetValue(37,4,gp_Pnt(37.2967,-103.539,-1.66555));
02274         Poles.SetValue(37,5,gp_Pnt(37.2229,-84.2708,-2.46547));
02275         Poles.SetValue(37,6,gp_Pnt(37.0545,-70.6462,-3.22563));
02276         Poles.SetValue(37,7,gp_Pnt(36.9382,-62.8514,-3.69803));
02277         Poles.SetValue(37,8,gp_Pnt(36.8695,-57.0355,-4.05169));
02278         Poles.SetValue(37,9,gp_Pnt(36.8664,-51.3068,-4.20071));
02279         Poles.SetValue(37,10,gp_Pnt(36.9963,-46.6801,-5.21492));
02280         Poles.SetValue(37,11,gp_Pnt(37.1028,-42.9622,-6.32347));
02281         Poles.SetValue(37,12,gp_Pnt(37.2217,-40.1924,-7.25707));
02282         Poles.SetValue(37,13,gp_Pnt(37.3806,-37.45,-8.32532));
02283         Poles.SetValue(37,14,gp_Pnt(37.5666,-34.6987,-9.40192));
02284         Poles.SetValue(37,15,gp_Pnt(37.6875,-32.3677,-10.2225));
02285         Poles.SetValue(37,16,gp_Pnt(37.7796,-30.4815,-10.8337));
02286         Poles.SetValue(37,17,gp_Pnt(37.8949,-27.6361,-11.7039));
02287         Poles.SetValue(37,18,gp_Pnt(38.1939,-24.3881,-12.9412));
02288         Poles.SetValue(37,19,gp_Pnt(38.5477,-20.6236,-14.2289));
02289         Poles.SetValue(37,20,gp_Pnt(38.9367,-16.8248,-15.4489));
02290         Poles.SetValue(37,21,gp_Pnt(39.2113,-12.9073,-16.3298));
02291         Poles.SetValue(37,22,gp_Pnt(39.4234,-8.92763,-16.959));
02292         Poles.SetValue(37,23,gp_Pnt(39.4867,-5.90171,-17.2202));
02293         Poles.SetValue(37,24,gp_Pnt(39.5456,-1.85585,-17.4489));
02294         Poles.SetValue(37,25,gp_Pnt(39.5315,2.20624,-17.47));
02295         Poles.SetValue(37,26,gp_Pnt(39.4789,6.249,-17.3411));
02296         Poles.SetValue(37,27,gp_Pnt(39.3801,9.26259,-17.0826));
02297         Poles.SetValue(37,28,gp_Pnt(39.1782,13.2421,-16.5416));
02298         Poles.SetValue(37,29,gp_Pnt(38.9025,17.148,-15.7336));
02299         Poles.SetValue(37,30,gp_Pnt(38.4895,20.9378,-14.5637));
02300         Poles.SetValue(37,31,gp_Pnt(38.1479,24.7114,-13.3818));
02301         Poles.SetValue(37,32,gp_Pnt(37.8908,27.991,-12.3161));
02302         Poles.SetValue(37,33,gp_Pnt(37.7444,30.8157,-11.4556));
02303         Poles.SetValue(37,34,gp_Pnt(37.6502,32.7032,-10.8985));
02304         Poles.SetValue(37,35,gp_Pnt(37.5088,35.0224,-10.1));
02305         Poles.SetValue(37,36,gp_Pnt(37.3138,37.7726,-9.07484));
02306         Poles.SetValue(37,37,gp_Pnt(37.1382,40.5101,-8.05559));
02307         Poles.SetValue(37,38,gp_Pnt(37.054,43.3215,-7.31185));
02308         Poles.SetValue(37,39,gp_Pnt(36.9421,47.0468,-6.33184));
02309         Poles.SetValue(37,40,gp_Pnt(36.8379,51.7166,-5.49796));
02310         Poles.SetValue(37,41,gp_Pnt(36.8607,57.4567,-5.443));
02311         Poles.SetValue(37,42,gp_Pnt(36.9222,63.2529,-5.029));
02312         Poles.SetValue(37,43,gp_Pnt(37.0259,71.0129,-4.53609));
02313         Poles.SetValue(37,44,gp_Pnt(37.1745,84.5734,-3.68955));
02314         Poles.SetValue(37,45,gp_Pnt(37.2692,103.772,-2.50735));
02315         Poles.SetValue(37,46,gp_Pnt(37.3831,126.887,-1.20321));
02316         Poles.SetValue(37,47,gp_Pnt(37.4633,142.303,-0.401612));
02317         Poles.SetValue(37,48,gp_Pnt(37.4942,150.002,0.00165959));
02318         Poles.SetValue(38,1,gp_Pnt(41.3427,-150.002,0.000910129));
02319         Poles.SetValue(38,2,gp_Pnt(41.3172,-142.269,-0.250994));
02320         Poles.SetValue(38,3,gp_Pnt(41.252,-126.785,-0.743205));
02321         Poles.SetValue(38,4,gp_Pnt(41.1432,-103.556,-1.64006));
02322         Poles.SetValue(38,5,gp_Pnt(41.0572,-84.2638,-2.33977));
02323         Poles.SetValue(38,6,gp_Pnt(40.9025,-70.662,-3.09061));
02324         Poles.SetValue(38,7,gp_Pnt(40.8094,-62.8944,-3.52967));
02325         Poles.SetValue(38,8,gp_Pnt(40.7531,-57.091,-3.91119));
02326         Poles.SetValue(38,9,gp_Pnt(40.7096,-51.3094,-4.15327));
02327         Poles.SetValue(38,10,gp_Pnt(40.7225,-46.5336,-4.39732));
02328         Poles.SetValue(38,11,gp_Pnt(40.8349,-42.8149,-5.35507));
02329         Poles.SetValue(38,12,gp_Pnt(40.9198,-40.01,-6.07186));
02330         Poles.SetValue(38,13,gp_Pnt(41.039,-37.2275,-6.89946));
02331         Poles.SetValue(38,14,gp_Pnt(41.1807,-34.446,-7.76251));
02332         Poles.SetValue(38,15,gp_Pnt(41.3421,-32.1529,-8.6033));
02333         Poles.SetValue(38,16,gp_Pnt(41.4528,-30.2866,-9.22754));
02334         Poles.SetValue(38,17,gp_Pnt(41.6048,-27.4727,-10.1338));
02335         Poles.SetValue(38,18,gp_Pnt(41.7346,-24.1213,-11.015));
02336         Poles.SetValue(38,19,gp_Pnt(41.93,-20.3071,-12.0361));
02337         Poles.SetValue(38,20,gp_Pnt(42.1256,-16.4709,-12.9787));
02338         Poles.SetValue(38,21,gp_Pnt(42.3664,-12.6243,-13.8833));
02339         Poles.SetValue(38,22,gp_Pnt(42.5253,-8.71352,-14.5112));
02340         Poles.SetValue(38,23,gp_Pnt(42.6203,-5.76323,-14.8691));
02341         Poles.SetValue(38,24,gp_Pnt(42.6798,-1.79912,-15.1424));
02342         Poles.SetValue(38,25,gp_Pnt(42.6737,2.17503,-15.1747));
02343         Poles.SetValue(38,26,gp_Pnt(42.5953,6.13666,-14.9438));
02344         Poles.SetValue(38,27,gp_Pnt(42.5039,9.08523,-14.6485));
02345         Poles.SetValue(38,28,gp_Pnt(42.3376,12.9911,-14.0849));
02346         Poles.SetValue(38,29,gp_Pnt(42.1163,16.8397,-13.292));
02347         Poles.SetValue(38,30,gp_Pnt(41.8966,20.6667,-12.3969));
02348         Poles.SetValue(38,31,gp_Pnt(41.7151,24.4907,-11.5063));
02349         Poles.SetValue(38,32,gp_Pnt(41.5833,27.8377,-10.6892));
02350         Poles.SetValue(38,33,gp_Pnt(41.412,30.6412,-9.8422));
02351         Poles.SetValue(38,34,gp_Pnt(41.2857,32.4975,-9.24392));
02352         Poles.SetValue(38,35,gp_Pnt(41.1281,34.7988,-8.48532));
02353         Poles.SetValue(38,36,gp_Pnt(40.9982,37.5923,-7.7491));
02354         Poles.SetValue(38,37,gp_Pnt(40.9022,40.4018,-7.05478));
02355         Poles.SetValue(38,38,gp_Pnt(40.8045,43.2027,-6.38438));
02356         Poles.SetValue(38,39,gp_Pnt(40.6947,46.9351,-5.51775));
02357         Poles.SetValue(38,40,gp_Pnt(40.6936,51.7133,-5.40542));
02358         Poles.SetValue(38,41,gp_Pnt(40.7465,57.4932,-5.2213));
02359         Poles.SetValue(38,42,gp_Pnt(40.7949,63.2798,-4.80832));
02360         Poles.SetValue(38,43,gp_Pnt(40.8787,71.0181,-4.35466));
02361         Poles.SetValue(38,44,gp_Pnt(41.0184,84.563,-3.55086));
02362         Poles.SetValue(38,45,gp_Pnt(41.1158,103.778,-2.42645));
02363         Poles.SetValue(38,46,gp_Pnt(41.2295,126.889,-1.17679));
02364         Poles.SetValue(38,47,gp_Pnt(41.308,142.302,-0.393553));
02365         Poles.SetValue(38,48,gp_Pnt(41.3397,150.001,-0.000267641));
02366         Poles.SetValue(39,1,gp_Pnt(46.1496,-150.001,0.00111063));
02367         Poles.SetValue(39,2,gp_Pnt(46.1222,-142.268,-0.24987));
02368         Poles.SetValue(39,3,gp_Pnt(46.0591,-126.79,-0.697635));
02369         Poles.SetValue(39,4,gp_Pnt(45.9503,-103.571,-1.56599));
02370         Poles.SetValue(39,5,gp_Pnt(45.856,-84.2638,-2.23446));
02371         Poles.SetValue(39,6,gp_Pnt(45.7158,-70.683,-2.88403));
02372         Poles.SetValue(39,7,gp_Pnt(45.6442,-62.9379,-3.34584));
02373         Poles.SetValue(39,8,gp_Pnt(45.5919,-57.1341,-3.69072));
02374         Poles.SetValue(39,9,gp_Pnt(45.5333,-51.33,-4.08565));
02375         Poles.SetValue(39,10,gp_Pnt(45.4961,-46.5017,-4.13549));
02376         Poles.SetValue(39,11,gp_Pnt(45.5149,-42.6839,-4.33983));
02377         Poles.SetValue(39,12,gp_Pnt(45.5827,-39.8663,-4.80837));
02378         Poles.SetValue(39,13,gp_Pnt(45.6781,-37.0642,-5.3692));
02379         Poles.SetValue(39,14,gp_Pnt(45.8102,-34.2784,-6.16223));
02380         Poles.SetValue(39,15,gp_Pnt(45.8709,-31.9134,-6.65192));
02381         Poles.SetValue(39,16,gp_Pnt(45.9562,-30.039,-7.1593));
02382         Poles.SetValue(39,17,gp_Pnt(46.0717,-27.2191,-7.89044));
02383         Poles.SetValue(39,18,gp_Pnt(46.2519,-23.9199,-8.84437));
02384         Poles.SetValue(39,19,gp_Pnt(46.4143,-20.1034,-9.76693));
02385         Poles.SetValue(39,20,gp_Pnt(46.5429,-16.2588,-10.5643));
02386         Poles.SetValue(39,21,gp_Pnt(46.6217,-12.3944,-11.1733));
02387         Poles.SetValue(39,22,gp_Pnt(46.681,-8.52657,-11.622));
02388         Poles.SetValue(39,23,gp_Pnt(46.7153,-5.61927,-11.8682));
02389         Poles.SetValue(39,24,gp_Pnt(46.7497,-1.73975,-12.0911));
02390         Poles.SetValue(39,25,gp_Pnt(46.7278,2.15162,-12.0955));
02391         Poles.SetValue(39,26,gp_Pnt(46.7066,6.03283,-11.9712));
02392         Poles.SetValue(39,27,gp_Pnt(46.6796,8.93942,-11.7865));
02393         Poles.SetValue(39,28,gp_Pnt(46.6257,12.8059,-11.425));
02394         Poles.SetValue(39,29,gp_Pnt(46.5243,16.6605,-10.8643));
02395         Poles.SetValue(39,30,gp_Pnt(46.3615,20.4856,-10.0971));
02396         Poles.SetValue(39,31,gp_Pnt(46.2089,24.304,-9.28958));
02397         Poles.SetValue(39,32,gp_Pnt(46.0224,27.5938,-8.42989));
02398         Poles.SetValue(39,33,gp_Pnt(45.9077,30.415,-7.785));
02399         Poles.SetValue(39,34,gp_Pnt(45.8414,32.3032,-7.38582));
02400         Poles.SetValue(39,35,gp_Pnt(45.7555,34.647,-6.87832));
02401         Poles.SetValue(39,36,gp_Pnt(45.6756,37.4791,-6.33131));
02402         Poles.SetValue(39,37,gp_Pnt(45.5588,40.2637,-5.71115));
02403         Poles.SetValue(39,38,gp_Pnt(45.4983,43.0898,-5.31195));
02404         Poles.SetValue(39,39,gp_Pnt(45.4876,46.9076,-5.26074));
02405         Poles.SetValue(39,40,gp_Pnt(45.5315,51.7279,-5.25925));
02406         Poles.SetValue(39,41,gp_Pnt(45.5802,57.5155,-4.81316));
02407         Poles.SetValue(39,42,gp_Pnt(45.6332,63.3069,-4.55574));
02408         Poles.SetValue(39,43,gp_Pnt(45.6962,71.0259,-4.09811));
02409         Poles.SetValue(39,44,gp_Pnt(45.8254,84.5537,-3.37827));
02410         Poles.SetValue(39,45,gp_Pnt(45.9243,103.783,-2.3236));
02411         Poles.SetValue(39,46,gp_Pnt(46.0379,126.89,-1.12458));
02412         Poles.SetValue(39,47,gp_Pnt(46.1137,142.301,-0.395727));
02413         Poles.SetValue(39,48,gp_Pnt(46.1465,150.001,0.000996613));
02414         Poles.SetValue(40,1,gp_Pnt(51.9175,-150,-0.000207971));
02415         Poles.SetValue(40,2,gp_Pnt(51.8891,-142.268,-0.241315));
02416         Poles.SetValue(40,3,gp_Pnt(51.8282,-126.796,-0.673804));
02417         Poles.SetValue(40,4,gp_Pnt(51.7199,-103.588,-1.45857));
02418         Poles.SetValue(40,5,gp_Pnt(51.6194,-84.2705,-2.10744));
02419         Poles.SetValue(40,6,gp_Pnt(51.5011,-70.7153,-2.68959));
02420         Poles.SetValue(40,7,gp_Pnt(51.438,-62.979,-3.06884));
02421         Poles.SetValue(40,8,gp_Pnt(51.3917,-57.1815,-3.4528));
02422         Poles.SetValue(40,9,gp_Pnt(51.333,-51.3737,-3.73088));
02423         Poles.SetValue(40,10,gp_Pnt(51.2926,-46.5422,-4.00316));
02424         Poles.SetValue(40,11,gp_Pnt(51.2652,-42.6804,-4.15327));
02425         Poles.SetValue(40,12,gp_Pnt(51.2481,-39.786,-4.14827));
02426         Poles.SetValue(40,13,gp_Pnt(51.2355,-36.9009,-4.17909));
02427         Poles.SetValue(40,14,gp_Pnt(51.269,-34.0518,-4.48805));
02428         Poles.SetValue(40,15,gp_Pnt(51.2999,-31.6825,-4.8317));
02429         Poles.SetValue(40,16,gp_Pnt(51.3423,-29.7917,-5.18954));
02430         Poles.SetValue(40,17,gp_Pnt(51.4157,-26.9599,-5.75758));
02431         Poles.SetValue(40,18,gp_Pnt(51.4915,-23.638,-6.34409));
02432         Poles.SetValue(40,19,gp_Pnt(51.6134,-19.8436,-7.01661));
02433         Poles.SetValue(40,20,gp_Pnt(51.7563,-16.0473,-7.67254));
02434         Poles.SetValue(40,21,gp_Pnt(51.9147,-12.2466,-8.28467));
02435         Poles.SetValue(40,22,gp_Pnt(52.0172,-8.41953,-8.69997));
02436         Poles.SetValue(40,23,gp_Pnt(52.0633,-5.54232,-8.92052));
02437         Poles.SetValue(40,24,gp_Pnt(52.1076,-1.69853,-9.12971));
02438         Poles.SetValue(40,25,gp_Pnt(52.1149,2.14658,-9.19114));
02439         Poles.SetValue(40,26,gp_Pnt(52.0573,5.98803,-9.04481));
02440         Poles.SetValue(40,27,gp_Pnt(52.0106,8.86368,-8.89058));
02441         Poles.SetValue(40,28,gp_Pnt(51.8867,12.6814,-8.51757));
02442         Poles.SetValue(40,29,gp_Pnt(51.7526,16.4859,-8.05187));
02443         Poles.SetValue(40,30,gp_Pnt(51.6058,20.2741,-7.46264));
02444         Poles.SetValue(40,31,gp_Pnt(51.4828,24.0629,-6.88014));
02445         Poles.SetValue(40,32,gp_Pnt(51.4123,27.3832,-6.35298));
02446         Poles.SetValue(40,33,gp_Pnt(51.3431,30.2167,-5.90237));
02447         Poles.SetValue(40,34,gp_Pnt(51.2972,32.1041,-5.6001));
02448         Poles.SetValue(40,35,gp_Pnt(51.2645,34.472,-5.32012));
02449         Poles.SetValue(40,36,gp_Pnt(51.2449,37.3238,-5.1352));
02450         Poles.SetValue(40,37,gp_Pnt(51.2601,40.2033,-5.10074));
02451         Poles.SetValue(40,38,gp_Pnt(51.2747,43.0862,-5.12741));
02452         Poles.SetValue(40,39,gp_Pnt(51.2989,46.9359,-5.04137));
02453         Poles.SetValue(40,40,gp_Pnt(51.3275,51.7504,-4.70088));
02454         Poles.SetValue(40,41,gp_Pnt(51.3841,57.5438,-4.49279));
02455         Poles.SetValue(40,42,gp_Pnt(51.4284,63.3289,-4.20573));
02456         Poles.SetValue(40,43,gp_Pnt(51.4853,71.0399,-3.80369));
02457         Poles.SetValue(40,44,gp_Pnt(51.5952,84.5486,-3.19745));
02458         Poles.SetValue(40,45,gp_Pnt(51.696,103.788,-2.1844));
02459         Poles.SetValue(40,46,gp_Pnt(51.8075,126.892,-1.07015));
02460         Poles.SetValue(40,47,gp_Pnt(51.8814,142.3,-0.382549));
02461         Poles.SetValue(40,48,gp_Pnt(51.9141,150,0.00156463));
02462         Poles.SetValue(41,1,gp_Pnt(57.6856,-150,-0.00138605));
02463         Poles.SetValue(41,2,gp_Pnt(57.6563,-142.267,-0.207898));
02464         Poles.SetValue(41,3,gp_Pnt(57.5975,-126.803,-0.672181));
02465         Poles.SetValue(41,4,gp_Pnt(57.4914,-103.604,-1.36423));
02466         Poles.SetValue(41,5,gp_Pnt(57.3865,-84.2807,-1.92972));
02467         Poles.SetValue(41,6,gp_Pnt(57.2896,-70.7489,-2.50829));
02468         Poles.SetValue(41,7,gp_Pnt(57.2325,-63.0194,-2.86727));
02469         Poles.SetValue(41,8,gp_Pnt(57.1871,-57.2225,-3.14507));
02470         Poles.SetValue(41,9,gp_Pnt(57.1423,-51.4292,-3.42927));
02471         Poles.SetValue(41,10,gp_Pnt(57.1017,-46.5994,-3.67864));
02472         Poles.SetValue(41,11,gp_Pnt(57.0621,-42.7292,-3.85432));
02473         Poles.SetValue(41,12,gp_Pnt(57.03,-39.8239,-4.01388));
02474         Poles.SetValue(41,13,gp_Pnt(56.9862,-36.9115,-4.15465));
02475         Poles.SetValue(41,14,gp_Pnt(56.9332,-33.9994,-4.17982));
02476         Poles.SetValue(41,15,gp_Pnt(56.8867,-31.5805,-4.17145));
02477         Poles.SetValue(41,16,gp_Pnt(56.8715,-29.6623,-4.20861));
02478         Poles.SetValue(41,17,gp_Pnt(56.8491,-26.7863,-4.25366));
02479         Poles.SetValue(41,18,gp_Pnt(56.889,-23.4691,-4.52661));
02480         Poles.SetValue(41,19,gp_Pnt(56.9549,-19.6804,-4.85027));
02481         Poles.SetValue(41,20,gp_Pnt(57.0475,-15.8997,-5.24921));
02482         Poles.SetValue(41,21,gp_Pnt(57.1486,-12.1132,-5.61949));
02483         Poles.SetValue(41,22,gp_Pnt(57.2089,-8.31776,-5.89532));
02484         Poles.SetValue(41,23,gp_Pnt(57.2368,-5.4661,-6.04286));
02485         Poles.SetValue(41,24,gp_Pnt(57.2712,-1.66308,-6.20009));
02486         Poles.SetValue(41,25,gp_Pnt(57.2835,2.13802,-6.25618));
02487         Poles.SetValue(41,26,gp_Pnt(57.2397,5.93802,-6.16615));
02488         Poles.SetValue(41,27,gp_Pnt(57.2064,8.78585,-6.08208));
02489         Poles.SetValue(41,28,gp_Pnt(57.1543,12.5793,-5.9372));
02490         Poles.SetValue(41,29,gp_Pnt(57.0517,16.3584,-5.62801));
02491         Poles.SetValue(41,30,gp_Pnt(56.9666,20.1329,-5.34449));
02492         Poles.SetValue(41,31,gp_Pnt(56.9077,23.9136,-5.10547));
02493         Poles.SetValue(41,32,gp_Pnt(56.8624,27.2205,-4.90474));
02494         Poles.SetValue(41,33,gp_Pnt(56.894,30.0927,-4.90413));
02495         Poles.SetValue(41,34,gp_Pnt(56.9172,32.0097,-4.91734));
02496         Poles.SetValue(41,35,gp_Pnt(56.9647,34.4197,-4.99635));
02497         Poles.SetValue(41,36,gp_Pnt(57.0094,37.3184,-4.96512));
02498         Poles.SetValue(41,37,gp_Pnt(57.0441,40.2167,-4.87499));
02499         Poles.SetValue(41,38,gp_Pnt(57.074,43.1143,-4.7391));
02500         Poles.SetValue(41,39,gp_Pnt(57.107,46.9716,-4.56627));
02501         Poles.SetValue(41,40,gp_Pnt(57.1445,51.7898,-4.39661));
02502         Poles.SetValue(41,41,gp_Pnt(57.1814,57.5667,-4.1162));
02503         Poles.SetValue(41,42,gp_Pnt(57.2214,63.3465,-3.84863));
02504         Poles.SetValue(41,43,gp_Pnt(57.2769,71.057,-3.56972));
02505         Poles.SetValue(41,44,gp_Pnt(57.3669,84.5447,-2.9687));
02506         Poles.SetValue(41,45,gp_Pnt(57.468,103.793,-2.06019));
02507         Poles.SetValue(41,46,gp_Pnt(57.5787,126.894,-1.02905));
02508         Poles.SetValue(41,47,gp_Pnt(57.6483,142.299,-0.34422));
02509         Poles.SetValue(41,48,gp_Pnt(57.682,150,-0.00209716));
02510         Poles.SetValue(42,1,gp_Pnt(63.4538,-150,0.0025406));
02511         Poles.SetValue(42,2,gp_Pnt(63.4247,-142.269,-0.215374));
02512         Poles.SetValue(42,3,gp_Pnt(63.3664,-126.808,-0.616228));
02513         Poles.SetValue(42,4,gp_Pnt(63.2638,-103.618,-1.25801));
02514         Poles.SetValue(42,5,gp_Pnt(63.16,-84.297,-1.79523));
02515         Poles.SetValue(42,6,gp_Pnt(63.0783,-70.7815,-2.3401));
02516         Poles.SetValue(42,7,gp_Pnt(63.027,-63.0578,-2.63615));
02517         Poles.SetValue(42,8,gp_Pnt(62.9884,-57.2671,-2.89533));
02518         Poles.SetValue(42,9,gp_Pnt(62.9474,-51.4766,-3.14791));
02519         Poles.SetValue(42,10,gp_Pnt(62.9083,-46.6481,-3.34003));
02520         Poles.SetValue(42,11,gp_Pnt(62.8727,-42.7819,-3.50126));
02521         Poles.SetValue(42,12,gp_Pnt(62.844,-39.8816,-3.60833));
02522         Poles.SetValue(42,13,gp_Pnt(62.8104,-36.9784,-3.72009));
02523         Poles.SetValue(42,14,gp_Pnt(62.778,-34.08,-3.87178));
02524         Poles.SetValue(42,15,gp_Pnt(62.7431,-31.6622,-3.99896));
02525         Poles.SetValue(42,16,gp_Pnt(62.716,-29.7336,-4.07291));
02526         Poles.SetValue(42,17,gp_Pnt(62.6769,-26.8425,-4.18869));
02527         Poles.SetValue(42,18,gp_Pnt(62.6426,-23.4886,-4.19616));
02528         Poles.SetValue(42,19,gp_Pnt(62.6334,-19.6721,-4.26579));
02529         Poles.SetValue(42,20,gp_Pnt(62.6295,-15.8635,-4.27213));
02530         Poles.SetValue(42,21,gp_Pnt(62.646,-12.069,-4.36676));
02531         Poles.SetValue(42,22,gp_Pnt(62.6617,-8.28186,-4.45874));
02532         Poles.SetValue(42,23,gp_Pnt(62.6691,-5.44261,-4.50132));
02533         Poles.SetValue(42,24,gp_Pnt(62.6758,-1.65987,-4.58196));
02534         Poles.SetValue(42,25,gp_Pnt(62.6653,2.12054,-4.61217));
02535         Poles.SetValue(42,26,gp_Pnt(62.6597,5.90097,-4.63357));
02536         Poles.SetValue(42,27,gp_Pnt(62.6549,8.73683,-4.65964));
02537         Poles.SetValue(42,28,gp_Pnt(62.6418,12.5178,-4.65205));
02538         Poles.SetValue(42,29,gp_Pnt(62.6327,16.3026,-4.65055));
02539         Poles.SetValue(42,30,gp_Pnt(62.6435,20.0986,-4.70703));
02540         Poles.SetValue(42,31,gp_Pnt(62.662,23.9034,-4.72568));
02541         Poles.SetValue(42,32,gp_Pnt(62.7054,27.2507,-4.79821));
02542         Poles.SetValue(42,33,gp_Pnt(62.7415,30.1344,-4.72137));
02543         Poles.SetValue(42,34,gp_Pnt(62.7653,32.0573,-4.65936));
02544         Poles.SetValue(42,35,gp_Pnt(62.7973,34.4696,-4.55886));
02545         Poles.SetValue(42,36,gp_Pnt(62.8292,37.3615,-4.47524));
02546         Poles.SetValue(42,37,gp_Pnt(62.8611,40.2567,-4.4017));
02547         Poles.SetValue(42,38,gp_Pnt(62.885,43.1468,-4.31334));
02548         Poles.SetValue(42,39,gp_Pnt(62.9162,47.0013,-4.18874));
02549         Poles.SetValue(42,40,gp_Pnt(62.9483,51.8154,-4.00002));
02550         Poles.SetValue(42,41,gp_Pnt(62.9852,57.5918,-3.80305));
02551         Poles.SetValue(42,42,gp_Pnt(63.0192,63.3675,-3.57283));
02552         Poles.SetValue(42,43,gp_Pnt(63.0676,71.0714,-3.31891));
02553         Poles.SetValue(42,44,gp_Pnt(63.1421,84.547,-2.75086));
02554         Poles.SetValue(42,45,gp_Pnt(63.2424,103.797,-1.92907));
02555         Poles.SetValue(42,46,gp_Pnt(63.3482,126.895,-0.959019));
02556         Poles.SetValue(42,47,gp_Pnt(63.4166,142.297,-0.27787));
02557         Poles.SetValue(42,48,gp_Pnt(63.4498,150,0.00445876));
02558         Poles.SetValue(43,1,gp_Pnt(71.145,-150,-0.000857612));
02559         Poles.SetValue(43,2,gp_Pnt(71.1162,-142.27,-0.152808));
02560         Poles.SetValue(43,3,gp_Pnt(71.0596,-126.815,-0.587576));
02561         Poles.SetValue(43,4,gp_Pnt(70.9617,-103.636,-1.09496));
02562         Poles.SetValue(43,5,gp_Pnt(70.8648,-84.3248,-1.63803));
02563         Poles.SetValue(43,6,gp_Pnt(70.796,-70.8215,-2.12446));
02564         Poles.SetValue(43,7,gp_Pnt(70.7543,-63.1072,-2.37388));
02565         Poles.SetValue(43,8,gp_Pnt(70.7215,-57.3211,-2.55159));
02566         Poles.SetValue(43,9,gp_Pnt(70.6876,-51.5353,-2.75534));
02567         Poles.SetValue(43,10,gp_Pnt(70.6596,-46.716,-2.93875));
02568         Poles.SetValue(43,11,gp_Pnt(70.638,-42.8622,-3.09314));
02569         Poles.SetValue(43,12,gp_Pnt(70.6204,-39.9716,-3.17812));
02570         Poles.SetValue(43,13,gp_Pnt(70.6043,-37.0819,-3.28977));
02571         Poles.SetValue(43,14,gp_Pnt(70.5873,-34.1932,-3.36653));
02572         Poles.SetValue(43,15,gp_Pnt(70.5748,-31.7872,-3.44513));
02573         Poles.SetValue(43,16,gp_Pnt(70.5669,-29.8663,-3.51303));
02574         Poles.SetValue(43,17,gp_Pnt(70.5542,-26.9849,-3.60722));
02575         Poles.SetValue(43,18,gp_Pnt(70.5428,-23.6313,-3.75743));
02576         Poles.SetValue(43,19,gp_Pnt(70.5216,-19.7991,-3.8651));
02577         Poles.SetValue(43,20,gp_Pnt(70.5074,-15.9743,-4.01435));
02578         Poles.SetValue(43,21,gp_Pnt(70.4895,-12.1568,-4.07719));
02579         Poles.SetValue(43,22,gp_Pnt(70.4779,-8.34932,-4.14211));
02580         Poles.SetValue(43,23,gp_Pnt(70.4743,-5.49851,-4.2144));
02581         Poles.SetValue(43,24,gp_Pnt(70.4711,-1.70019,-4.26983));
02582         Poles.SetValue(43,25,gp_Pnt(70.4772,2.09575,-4.33461));
02583         Poles.SetValue(43,26,gp_Pnt(70.4818,5.8932,-4.36337));
02584         Poles.SetValue(43,27,gp_Pnt(70.4863,8.74296,-4.35931));
02585         Poles.SetValue(43,28,gp_Pnt(70.4965,12.5464,-4.34509));
02586         Poles.SetValue(43,29,gp_Pnt(70.5111,16.3559,-4.34157));
02587         Poles.SetValue(43,30,gp_Pnt(70.5238,20.1732,-4.25483));
02588         Poles.SetValue(43,31,gp_Pnt(70.5444,23.9982,-4.20505));
02589         Poles.SetValue(43,32,gp_Pnt(70.5565,27.3468,-4.1081));
02590         Poles.SetValue(43,33,gp_Pnt(70.5753,30.2247,-4.08653));
02591         Poles.SetValue(43,34,gp_Pnt(70.5877,32.1436,-4.07523));
02592         Poles.SetValue(43,35,gp_Pnt(70.6023,34.545,-4.05073));
02593         Poles.SetValue(43,36,gp_Pnt(70.6195,37.4276,-3.98741));
02594         Poles.SetValue(43,37,gp_Pnt(70.6334,40.3106,-3.90872));
02595         Poles.SetValue(43,38,gp_Pnt(70.6494,43.1951,-3.83));
02596         Poles.SetValue(43,39,gp_Pnt(70.6689,47.0414,-3.71793));
02597         Poles.SetValue(43,40,gp_Pnt(70.6945,51.851,-3.59864));
02598         Poles.SetValue(43,41,gp_Pnt(70.7214,57.6214,-3.39071));
02599         Poles.SetValue(43,42,gp_Pnt(70.7489,63.3924,-3.20505));
02600         Poles.SetValue(43,43,gp_Pnt(70.7842,71.0857,-2.88826));
02601         Poles.SetValue(43,44,gp_Pnt(70.8464,84.5547,-2.43588));
02602         Poles.SetValue(43,45,gp_Pnt(70.9463,103.804,-1.8405));
02603         Poles.SetValue(43,46,gp_Pnt(71.0396,126.896,-0.842595));
02604         Poles.SetValue(43,47,gp_Pnt(71.1097,142.298,-0.284851));
02605         Poles.SetValue(43,48,gp_Pnt(71.1403,150,0.000935964));
02606         Poles.SetValue(44,1,gp_Pnt(84.6054,-150,-0.00110981));
02607         Poles.SetValue(44,2,gp_Pnt(84.578,-142.276,-0.19879));
02608         Poles.SetValue(44,3,gp_Pnt(84.5262,-126.827,-0.428048));
02609         Poles.SetValue(44,4,gp_Pnt(84.4365,-103.667,-0.830318));
02610         Poles.SetValue(44,5,gp_Pnt(84.36,-84.3785,-1.33467));
02611         Poles.SetValue(44,6,gp_Pnt(84.3031,-70.89,-1.70138));
02612         Poles.SetValue(44,7,gp_Pnt(84.275,-63.1861,-1.89652));
02613         Poles.SetValue(44,8,gp_Pnt(84.2584,-57.4138,-2.07504));
02614         Poles.SetValue(44,9,gp_Pnt(84.248,-51.6477,-2.24438));
02615         Poles.SetValue(44,10,gp_Pnt(84.2459,-46.8473,-2.35057));
02616         Poles.SetValue(44,11,gp_Pnt(84.2519,-43.0105,-2.40101));
02617         Poles.SetValue(44,12,gp_Pnt(84.2621,-40.138,-2.47508));
02618         Poles.SetValue(44,13,gp_Pnt(84.2775,-37.2661,-2.50855));
02619         Poles.SetValue(44,14,gp_Pnt(84.2986,-34.4008,-2.62094));
02620         Poles.SetValue(44,15,gp_Pnt(84.3172,-32.0111,-2.66065));
02621         Poles.SetValue(44,16,gp_Pnt(84.3284,-30.0979,-2.70139));
02622         Poles.SetValue(44,17,gp_Pnt(84.3451,-27.2279,-2.76856));
02623         Poles.SetValue(44,18,gp_Pnt(84.3501,-23.8723,-2.78848));
02624         Poles.SetValue(44,19,gp_Pnt(84.3568,-20.039,-2.88096));
02625         Poles.SetValue(44,20,gp_Pnt(84.3439,-16.1977,-2.86279));
02626         Poles.SetValue(44,21,gp_Pnt(84.3401,-12.3571,-2.99929));
02627         Poles.SetValue(44,22,gp_Pnt(84.3364,-8.51254,-3.10404));
02628         Poles.SetValue(44,23,gp_Pnt(84.3307,-5.62646,-3.13212));
02629         Poles.SetValue(44,24,gp_Pnt(84.3261,-1.77822,-3.18231));
02630         Poles.SetValue(44,25,gp_Pnt(84.3219,2.0692,-3.18879));
02631         Poles.SetValue(44,26,gp_Pnt(84.3241,5.91518,-3.18419));
02632         Poles.SetValue(44,27,gp_Pnt(84.3283,8.7991,-3.19732));
02633         Poles.SetValue(44,28,gp_Pnt(84.3322,12.6435,-3.19362));
02634         Poles.SetValue(44,29,gp_Pnt(84.3367,16.4878,-3.15729));
02635         Poles.SetValue(44,30,gp_Pnt(84.3449,20.3298,-3.212));
02636         Poles.SetValue(44,31,gp_Pnt(84.3382,24.1652,-3.18681));
02637         Poles.SetValue(44,32,gp_Pnt(84.3328,27.5176,-3.24238));
02638         Poles.SetValue(44,33,gp_Pnt(84.3137,30.3832,-3.1762));
02639         Poles.SetValue(44,34,gp_Pnt(84.3012,32.2934,-3.13458));
02640         Poles.SetValue(44,35,gp_Pnt(84.2835,34.6788,-3.05639));
02641         Poles.SetValue(44,36,gp_Pnt(84.2688,37.5436,-3.03341));
02642         Poles.SetValue(44,37,gp_Pnt(84.2567,40.4108,-2.97846));
02643         Poles.SetValue(44,38,gp_Pnt(84.2493,43.2807,-2.94203));
02644         Poles.SetValue(44,39,gp_Pnt(84.2426,47.1105,-2.85403));
02645         Poles.SetValue(44,40,gp_Pnt(84.2423,51.9032,-2.73437));
02646         Poles.SetValue(44,41,gp_Pnt(84.2552,57.6633,-2.65697));
02647         Poles.SetValue(44,42,gp_Pnt(84.2707,63.4255,-2.51041));
02648         Poles.SetValue(44,43,gp_Pnt(84.2947,71.1123,-2.33047));
02649         Poles.SetValue(44,44,gp_Pnt(84.3464,84.5727,-1.97042));
02650         Poles.SetValue(44,45,gp_Pnt(84.4215,103.814,-1.51302));
02651         Poles.SetValue(44,46,gp_Pnt(84.5086,126.896,-0.626681));
02652         Poles.SetValue(44,47,gp_Pnt(84.5693,142.301,-0.243958));
02653         Poles.SetValue(44,48,gp_Pnt(84.5995,150,-0.000554027));
02654         Poles.SetValue(45,1,gp_Pnt(103.838,-149.999,0.000693631));
02655         Poles.SetValue(45,2,gp_Pnt(103.817,-142.283,-0.134708));
02656         Poles.SetValue(45,3,gp_Pnt(103.771,-126.851,-0.393149));
02657         Poles.SetValue(45,4,gp_Pnt(103.704,-103.715,-0.554331));
02658         Poles.SetValue(45,5,gp_Pnt(103.653,-84.4538,-0.85582));
02659         Poles.SetValue(45,6,gp_Pnt(103.619,-70.9776,-1.13828));
02660         Poles.SetValue(45,7,gp_Pnt(103.6,-63.2834,-1.26826));
02661         Poles.SetValue(45,8,gp_Pnt(103.585,-57.5128,-1.32722));
02662         Poles.SetValue(45,9,gp_Pnt(103.569,-51.7417,-1.39145));
02663         Poles.SetValue(45,10,gp_Pnt(103.554,-46.933,-1.47713));
02664         Poles.SetValue(45,11,gp_Pnt(103.538,-43.0832,-1.56351));
02665         Poles.SetValue(45,12,gp_Pnt(103.524,-40.1968,-1.61145));
02666         Poles.SetValue(45,13,gp_Pnt(103.505,-37.3056,-1.67968));
02667         Poles.SetValue(45,14,gp_Pnt(103.487,-34.4181,-1.71097));
02668         Poles.SetValue(45,15,gp_Pnt(103.468,-32.0079,-1.76122));
02669         Poles.SetValue(45,16,gp_Pnt(103.458,-30.085,-1.80205));
02670         Poles.SetValue(45,17,gp_Pnt(103.443,-27.2014,-1.86016));
02671         Poles.SetValue(45,18,gp_Pnt(103.436,-23.8458,-1.96204));
02672         Poles.SetValue(45,19,gp_Pnt(103.426,-20.0087,-2.01108));
02673         Poles.SetValue(45,20,gp_Pnt(103.432,-16.1784,-2.11951));
02674         Poles.SetValue(45,21,gp_Pnt(103.429,-12.3464,-2.09847));
02675         Poles.SetValue(45,22,gp_Pnt(103.426,-8.51499,-2.09843));
02676         Poles.SetValue(45,23,gp_Pnt(103.427,-5.64258,-2.13298));
02677         Poles.SetValue(45,24,gp_Pnt(103.428,-1.81239,-2.15552));
02678         Poles.SetValue(45,25,gp_Pnt(103.429,2.01779,-2.2127));
02679         Poles.SetValue(45,26,gp_Pnt(103.425,5.84787,-2.24947));
02680         Poles.SetValue(45,27,gp_Pnt(103.42,8.7205,-2.23377));
02681         Poles.SetValue(45,28,gp_Pnt(103.419,12.5505,-2.2506));
02682         Poles.SetValue(45,29,gp_Pnt(103.418,16.3787,-2.27936));
02683         Poles.SetValue(45,30,gp_Pnt(103.409,20.2066,-2.15004));
02684         Poles.SetValue(45,31,gp_Pnt(103.421,24.0411,-2.1335));
02685         Poles.SetValue(45,32,gp_Pnt(103.43,27.3967,-2.05519));
02686         Poles.SetValue(45,33,gp_Pnt(103.449,30.2805,-2.04635));
02687         Poles.SetValue(45,34,gp_Pnt(103.463,32.2036,-2.0388));
02688         Poles.SetValue(45,35,gp_Pnt(103.484,34.6131,-2.03358));
02689         Poles.SetValue(45,36,gp_Pnt(103.502,37.4987,-2.0062));
02690         Poles.SetValue(45,37,gp_Pnt(103.523,40.3884,-1.97852));
02691         Poles.SetValue(45,38,gp_Pnt(103.537,43.2734,-1.95553));
02692         Poles.SetValue(45,39,gp_Pnt(103.557,47.1221,-1.93252));
02693         Poles.SetValue(45,40,gp_Pnt(103.574,51.9281,-1.89403));
02694         Poles.SetValue(45,41,gp_Pnt(103.584,57.6907,-1.74768));
02695         Poles.SetValue(45,42,gp_Pnt(103.596,63.4551,-1.66735));
02696         Poles.SetValue(45,43,gp_Pnt(103.612,71.1425,-1.54309));
02697         Poles.SetValue(45,44,gp_Pnt(103.644,84.5989,-1.46411));
02698         Poles.SetValue(45,45,gp_Pnt(103.687,103.818,-0.980467));
02699         Poles.SetValue(45,46,gp_Pnt(103.757,126.905,-0.536908));
02700         Poles.SetValue(45,47,gp_Pnt(103.805,142.3,-0.161313));
02701         Poles.SetValue(45,48,gp_Pnt(103.83,150,-0.000163518));
02702         Poles.SetValue(46,1,gp_Pnt(126.927,-150.004,-0.000100752));
02703         Poles.SetValue(46,2,gp_Pnt(126.912,-142.299,-0.130631));
02704         Poles.SetValue(46,3,gp_Pnt(126.883,-126.887,-0.24799));
02705         Poles.SetValue(46,4,gp_Pnt(126.843,-103.777,-0.260883));
02706         Poles.SetValue(46,5,gp_Pnt(126.816,-84.5309,-0.411687));
02707         Poles.SetValue(46,6,gp_Pnt(126.804,-71.0707,-0.543712));
02708         Poles.SetValue(46,7,gp_Pnt(126.796,-63.376,-0.610079));
02709         Poles.SetValue(46,8,gp_Pnt(126.79,-57.6067,-0.646868));
02710         Poles.SetValue(46,9,gp_Pnt(126.783,-51.839,-0.65842));
02711         Poles.SetValue(46,10,gp_Pnt(126.779,-47.033,-0.68082));
02712         Poles.SetValue(46,11,gp_Pnt(126.778,-43.1892,-0.711667));
02713         Poles.SetValue(46,12,gp_Pnt(126.779,-40.3077,-0.742656));
02714         Poles.SetValue(46,13,gp_Pnt(126.782,-37.4269,-0.771362));
02715         Poles.SetValue(46,14,gp_Pnt(126.785,-34.5477,-0.808585));
02716         Poles.SetValue(46,15,gp_Pnt(126.79,-32.1486,-0.836321));
02717         Poles.SetValue(46,16,gp_Pnt(126.79,-30.2277,-0.847354));
02718         Poles.SetValue(46,17,gp_Pnt(126.791,-27.3461,-0.865188));
02719         Poles.SetValue(46,18,gp_Pnt(126.786,-23.9805,-0.850589));
02720         Poles.SetValue(46,19,gp_Pnt(126.785,-20.137,-0.872177));
02721         Poles.SetValue(46,20,gp_Pnt(126.774,-16.2901,-0.841412));
02722         Poles.SetValue(46,21,gp_Pnt(126.771,-12.4455,-0.888617));
02723         Poles.SetValue(46,22,gp_Pnt(126.77,-8.6011,-0.924689));
02724         Poles.SetValue(46,23,gp_Pnt(126.769,-5.71714,-0.928362));
02725         Poles.SetValue(46,24,gp_Pnt(126.767,-1.87221,-0.950812));
02726         Poles.SetValue(46,25,gp_Pnt(126.766,1.97273,-0.93774));
02727         Poles.SetValue(46,26,gp_Pnt(126.768,5.81772,-0.926189));
02728         Poles.SetValue(46,27,gp_Pnt(126.773,8.70129,-0.947427));
02729         Poles.SetValue(46,28,gp_Pnt(126.775,12.5459,-0.942477));
02730         Poles.SetValue(46,29,gp_Pnt(126.78,16.3917,-0.92351));
02731         Poles.SetValue(46,30,gp_Pnt(126.795,20.2388,-1.01431));
02732         Poles.SetValue(46,31,gp_Pnt(126.796,24.0826,-1.01183));
02733         Poles.SetValue(46,32,gp_Pnt(126.802,27.4469,-1.0509));
02734         Poles.SetValue(46,33,gp_Pnt(126.799,30.3276,-1.04049));
02735         Poles.SetValue(46,34,gp_Pnt(126.797,32.2478,-1.03441));
02736         Poles.SetValue(46,35,gp_Pnt(126.793,34.647,-1.02114));
02737         Poles.SetValue(46,36,gp_Pnt(126.79,37.5265,-1.01193));
02738         Poles.SetValue(46,37,gp_Pnt(126.787,40.4072,-0.994831));
02739         Poles.SetValue(46,38,gp_Pnt(126.786,43.2878,-0.961342));
02740         Poles.SetValue(46,39,gp_Pnt(126.783,47.1296,-0.902547));
02741         Poles.SetValue(46,40,gp_Pnt(126.782,51.9326,-0.817673));
02742         Poles.SetValue(46,41,gp_Pnt(126.787,57.6992,-0.788109));
02743         Poles.SetValue(46,42,gp_Pnt(126.789,63.4643,-0.707706));
02744         Poles.SetValue(46,43,gp_Pnt(126.797,71.1523,-0.758598));
02745         Poles.SetValue(46,44,gp_Pnt(126.808,84.6041,-0.552723));
02746         Poles.SetValue(46,45,gp_Pnt(126.827,103.836,-0.468498));
02747         Poles.SetValue(46,46,gp_Pnt(126.872,126.912,-0.205591));
02748         Poles.SetValue(46,47,gp_Pnt(126.901,142.306,-0.0896176));
02749         Poles.SetValue(46,48,gp_Pnt(126.919,150,-0.00186706));
02750         Poles.SetValue(47,1,gp_Pnt(142.331,-150.022,-0.0011824));
02751         Poles.SetValue(47,2,gp_Pnt(142.32,-142.319,-0.0845723));
02752         Poles.SetValue(47,3,gp_Pnt(142.296,-126.912,-0.0348247));
02753         Poles.SetValue(47,4,gp_Pnt(142.281,-103.817,-0.216625));
02754         Poles.SetValue(47,5,gp_Pnt(142.273,-84.5809,-0.194036));
02755         Poles.SetValue(47,6,gp_Pnt(142.264,-71.117,-0.0962207));
02756         Poles.SetValue(47,7,gp_Pnt(142.262,-63.4269,-0.109676));
02757         Poles.SetValue(47,8,gp_Pnt(142.261,-57.6591,-0.134362));
02758         Poles.SetValue(47,9,gp_Pnt(142.261,-51.8912,-0.17447));
02759         Poles.SetValue(47,10,gp_Pnt(142.261,-47.0855,-0.198201));
02760         Poles.SetValue(47,11,gp_Pnt(142.261,-43.2412,-0.213413));
02761         Poles.SetValue(47,12,gp_Pnt(142.261,-40.3577,-0.219481));
02762         Poles.SetValue(47,13,gp_Pnt(142.261,-37.474,-0.231785));
02763         Poles.SetValue(47,14,gp_Pnt(142.261,-34.5899,-0.238239));
02764         Poles.SetValue(47,15,gp_Pnt(142.261,-32.1863,-0.245761));
02765         Poles.SetValue(47,16,gp_Pnt(142.261,-30.264,-0.25701));
02766         Poles.SetValue(47,17,gp_Pnt(142.262,-27.3805,-0.273362));
02767         Poles.SetValue(47,18,gp_Pnt(142.265,-24.0175,-0.308423));
02768         Poles.SetValue(47,19,gp_Pnt(142.266,-20.1723,-0.320574));
02769         Poles.SetValue(47,20,gp_Pnt(142.269,-16.3277,-0.347549));
02770         Poles.SetValue(47,21,gp_Pnt(142.268,-12.4815,-0.333554));
02771         Poles.SetValue(47,22,gp_Pnt(142.267,-8.63539,-0.333702));
02772         Poles.SetValue(47,23,gp_Pnt(142.267,-5.75114,-0.350197));
02773         Poles.SetValue(47,24,gp_Pnt(142.267,-1.9053,-0.361855));
02774         Poles.SetValue(47,25,gp_Pnt(142.269,1.94054,-0.382183));
02775         Poles.SetValue(47,26,gp_Pnt(142.27,5.78645,-0.393577));
02776         Poles.SetValue(47,27,gp_Pnt(142.27,8.67102,-0.385519));
02777         Poles.SetValue(47,28,gp_Pnt(142.271,12.5173,-0.39336));
02778         Poles.SetValue(47,29,gp_Pnt(142.272,16.3631,-0.412844));
02779         Poles.SetValue(47,30,gp_Pnt(142.268,20.2079,-0.378051));
02780         Poles.SetValue(47,31,gp_Pnt(142.268,24.0533,-0.383864));
02781         Poles.SetValue(47,32,gp_Pnt(142.265,27.4171,-0.365288));
02782         Poles.SetValue(47,33,gp_Pnt(142.265,30.301,-0.36621));
02783         Poles.SetValue(47,34,gp_Pnt(142.265,32.2237,-0.366061));
02784         Poles.SetValue(47,35,gp_Pnt(142.266,34.6274,-0.366875));
02785         Poles.SetValue(47,36,gp_Pnt(142.265,37.5114,-0.360017));
02786         Poles.SetValue(47,37,gp_Pnt(142.265,40.395,-0.352827));
02787         Poles.SetValue(47,38,gp_Pnt(142.264,43.2786,-0.337981));
02788         Poles.SetValue(47,39,gp_Pnt(142.264,47.1233,-0.322015));
02789         Poles.SetValue(47,40,gp_Pnt(142.263,51.9292,-0.307379));
02790         Poles.SetValue(47,41,gp_Pnt(142.263,57.6957,-0.274754));
02791         Poles.SetValue(47,42,gp_Pnt(142.265,63.4634,-0.312079));
02792         Poles.SetValue(47,43,gp_Pnt(142.267,71.1535,-0.274627));
02793         Poles.SetValue(47,44,gp_Pnt(142.268,84.6121,-0.229297));
02794         Poles.SetValue(47,45,gp_Pnt(142.275,103.837,-0.124819));
02795         Poles.SetValue(47,46,gp_Pnt(142.29,126.918,-0.114093));
02796         Poles.SetValue(47,47,gp_Pnt(142.315,142.308,0.0555229));
02797         Poles.SetValue(47,48,gp_Pnt(142.328,150.004,0.00172523));
02798         Poles.SetValue(48,1,gp_Pnt(150.034,-150.032,0.000374255));
02799         Poles.SetValue(48,2,gp_Pnt(150.024,-142.329,-0.0018713));
02800         Poles.SetValue(48,3,gp_Pnt(150.004,-126.925,0.00327151));
02801         Poles.SetValue(48,4,gp_Pnt(149.999,-103.837,-0.00371772));
02802         Poles.SetValue(48,5,gp_Pnt(150,-84.6045,0.00227291));
02803         Poles.SetValue(48,6,gp_Pnt(150,-71.1444,-0.00370124));
02804         Poles.SetValue(48,7,gp_Pnt(150,-63.4533,0.00501253));
02805         Poles.SetValue(48,8,gp_Pnt(150,-57.6854,-0.0023337));
02806         Poles.SetValue(48,9,gp_Pnt(150,-51.9177,-0.00081928));
02807         Poles.SetValue(48,10,gp_Pnt(150.001,-47.1109,-0.000992593));
02808         Poles.SetValue(48,11,gp_Pnt(150.001,-43.2652,0.000772656));
02809         Poles.SetValue(48,12,gp_Pnt(150.001,-40.381,-3.16637e-006));
02810         Poles.SetValue(48,13,gp_Pnt(150.001,-37.4966,0.00148961));
02811         Poles.SetValue(48,14,gp_Pnt(150.001,-34.6123,0.00149543));
02812         Poles.SetValue(48,15,gp_Pnt(150.001,-32.2086,-0.000131478));
02813         Poles.SetValue(48,16,gp_Pnt(150.001,-30.2856,-0.000312929));
02814         Poles.SetValue(48,17,gp_Pnt(150.001,-27.4012,-0.00119273));
02815         Poles.SetValue(48,18,gp_Pnt(150.002,-24.036,0.000913256));
02816         Poles.SetValue(48,19,gp_Pnt(150.002,-20.19,-0.000202949));
02817         Poles.SetValue(48,20,gp_Pnt(150.003,-16.3441,0.0036406));
02818         Poles.SetValue(48,21,gp_Pnt(150.003,-12.4982,0.0019362));
02819         Poles.SetValue(48,22,gp_Pnt(150.004,-8.65203,0.000622563));
02820         Poles.SetValue(48,23,gp_Pnt(150.005,-5.7673,0.00229496));
02821         Poles.SetValue(48,24,gp_Pnt(150.005,-1.92098,-7.68902e-005));
02822         Poles.SetValue(48,25,gp_Pnt(150.005,1.92543,0.000370792));
02823         Poles.SetValue(48,26,gp_Pnt(150.005,5.77187,0.00239266));
02824         Poles.SetValue(48,27,gp_Pnt(150.004,8.65667,0.000574651));
02825         Poles.SetValue(48,28,gp_Pnt(150.004,12.503,0.00222324));
02826         Poles.SetValue(48,29,gp_Pnt(150.003,16.3492,0.00598073));
02827         Poles.SetValue(48,30,gp_Pnt(150.002,20.1954,0.000135085));
02828         Poles.SetValue(48,31,gp_Pnt(150.002,24.0417,0.00238843));
02829         Poles.SetValue(48,32,gp_Pnt(150.002,27.4072,-0.000189144));
02830         Poles.SetValue(48,33,gp_Pnt(150.001,30.2919,0.000229755));
02831         Poles.SetValue(48,34,gp_Pnt(150.001,32.2151,0.000156563));
02832         Poles.SetValue(48,35,gp_Pnt(150.001,34.6191,-0.00112558));
02833         Poles.SetValue(48,36,gp_Pnt(150.001,37.5038,-0.000249663));
02834         Poles.SetValue(48,37,gp_Pnt(150.001,40.3885,0.000316503));
02835         Poles.SetValue(48,38,gp_Pnt(150.001,43.273,-0.00132504));
02836         Poles.SetValue(48,39,gp_Pnt(150.001,47.119,-0.00179323));
02837         Poles.SetValue(48,40,gp_Pnt(150,51.9261,0.00186415));
02838         Poles.SetValue(48,41,gp_Pnt(150,57.6944,0.000887863));
02839         Poles.SetValue(48,42,gp_Pnt(150,63.4625,-0.00455467));
02840         Poles.SetValue(48,43,gp_Pnt(150,71.1535,0.00329757));
02841         Poles.SetValue(48,44,gp_Pnt(150,84.613,-0.00125356));
02842         Poles.SetValue(48,45,gp_Pnt(150,103.842,0.000250841));
02843         Poles.SetValue(48,46,gp_Pnt(150,126.921,-0.00110007));
02844         Poles.SetValue(48,47,gp_Pnt(150.022,142.311,0.00127182));
02845         Poles.SetValue(48,48,gp_Pnt(150.034,150.006,9.4637e-005));
02846 
02847 
02848 
02849 
02850         TColStd_Array1OfReal UKnots(1,46);
02851         UKnots.SetValue(1,0);
02852         UKnots.SetValue(2,0.0769231);
02853         UKnots.SetValue(3,0.153846);
02854         UKnots.SetValue(4,0.230769);
02855         UKnots.SetValue(5,0.269231);
02856         UKnots.SetValue(6,0.288462);
02857         UKnots.SetValue(7,0.307692);
02858         UKnots.SetValue(8,0.326923);
02859         UKnots.SetValue(9,0.346154);
02860         UKnots.SetValue(10,0.365385);
02861         UKnots.SetValue(11,0.375);
02862         UKnots.SetValue(12,0.384615);
02863         UKnots.SetValue(13,0.394231);
02864         UKnots.SetValue(14,0.403846);
02865         UKnots.SetValue(15,0.413462);
02866         UKnots.SetValue(16,0.423077);
02867         UKnots.SetValue(17,0.432692);
02868         UKnots.SetValue(18,0.442308);
02869         UKnots.SetValue(19,0.461538);
02870         UKnots.SetValue(20,0.480769);
02871         UKnots.SetValue(21,0.485577);
02872         UKnots.SetValue(22,0.490385);
02873         UKnots.SetValue(23,0.495192);
02874         UKnots.SetValue(24,0.504808);
02875         UKnots.SetValue(25,0.509615);
02876         UKnots.SetValue(26,0.514423);
02877         UKnots.SetValue(27,0.519231);
02878         UKnots.SetValue(28,0.538462);
02879         UKnots.SetValue(29,0.557692);
02880         UKnots.SetValue(30,0.567308);
02881         UKnots.SetValue(31,0.576923);
02882         UKnots.SetValue(32,0.586538);
02883         UKnots.SetValue(33,0.596154);
02884         UKnots.SetValue(34,0.605769);
02885         UKnots.SetValue(35,0.615385);
02886         UKnots.SetValue(36,0.625);
02887         UKnots.SetValue(37,0.634615);
02888         UKnots.SetValue(38,0.653846);
02889         UKnots.SetValue(39,0.673077);
02890         UKnots.SetValue(40,0.692308);
02891         UKnots.SetValue(41,0.711538);
02892         UKnots.SetValue(42,0.730769);
02893         UKnots.SetValue(43,0.769231);
02894         UKnots.SetValue(44,0.846154);
02895         UKnots.SetValue(45,0.923077);
02896         UKnots.SetValue(46,1);
02897 
02898         TColStd_Array1OfReal VKnots(1,46);
02899         VKnots.SetValue(1,0);
02900         VKnots.SetValue(2,0.0769231);
02901         VKnots.SetValue(3,0.153846);
02902         VKnots.SetValue(4,0.230769);
02903         VKnots.SetValue(5,0.269231);
02904         VKnots.SetValue(6,0.288462);
02905         VKnots.SetValue(7,0.307692);
02906         VKnots.SetValue(8,0.326923);
02907         VKnots.SetValue(9,0.346154);
02908         VKnots.SetValue(10,0.355769);
02909         VKnots.SetValue(11,0.365385);
02910         VKnots.SetValue(12,0.375);
02911         VKnots.SetValue(13,0.384615);
02912         VKnots.SetValue(14,0.394231);
02913         VKnots.SetValue(15,0.399038);
02914         VKnots.SetValue(16,0.403846);
02915         VKnots.SetValue(17,0.423077);
02916         VKnots.SetValue(18,0.432692);
02917         VKnots.SetValue(19,0.442308);
02918         VKnots.SetValue(20,0.461538);
02919         VKnots.SetValue(21,0.471154);
02920         VKnots.SetValue(22,0.480769);
02921         VKnots.SetValue(23,0.490385);
02922         VKnots.SetValue(24,0.509615);
02923         VKnots.SetValue(25,0.519231);
02924         VKnots.SetValue(26,0.528846);
02925         VKnots.SetValue(27,0.538462);
02926         VKnots.SetValue(28,0.557692);
02927         VKnots.SetValue(29,0.567308);
02928         VKnots.SetValue(30,0.576923);
02929         VKnots.SetValue(31,0.596154);
02930         VKnots.SetValue(32,0.600962);
02931         VKnots.SetValue(33,0.605769);
02932         VKnots.SetValue(34,0.615385);
02933         VKnots.SetValue(35,0.625);
02934         VKnots.SetValue(36,0.634615);
02935         VKnots.SetValue(37,0.644231);
02936         VKnots.SetValue(38,0.653846);
02937         VKnots.SetValue(39,0.673077);
02938         VKnots.SetValue(40,0.692308);
02939         VKnots.SetValue(41,0.711538);
02940         VKnots.SetValue(42,0.730769);
02941         VKnots.SetValue(43,0.769231);
02942         VKnots.SetValue(44,0.846154);
02943         VKnots.SetValue(45,0.923077);
02944         VKnots.SetValue(46,1);
02945 
02946         TColStd_Array1OfInteger UMults(1,46);
02947         UMults.SetValue(1,4);
02948         UMults.SetValue(2,1);
02949         UMults.SetValue(3,1);
02950         UMults.SetValue(4,1);
02951         UMults.SetValue(5,1);
02952         UMults.SetValue(6,1);
02953         UMults.SetValue(7,1);
02954         UMults.SetValue(8,1);
02955         UMults.SetValue(9,1);
02956         UMults.SetValue(10,1);
02957         UMults.SetValue(11,1);
02958         UMults.SetValue(12,1);
02959         UMults.SetValue(13,1);
02960         UMults.SetValue(14,1);
02961         UMults.SetValue(15,1);
02962         UMults.SetValue(16,1);
02963         UMults.SetValue(17,1);
02964         UMults.SetValue(18,1);
02965         UMults.SetValue(19,1);
02966         UMults.SetValue(20,1);
02967         UMults.SetValue(21,1);
02968         UMults.SetValue(22,1);
02969         UMults.SetValue(23,1);
02970         UMults.SetValue(24,1);
02971         UMults.SetValue(25,1);
02972         UMults.SetValue(26,1);
02973         UMults.SetValue(27,1);
02974         UMults.SetValue(28,1);
02975         UMults.SetValue(29,1);
02976         UMults.SetValue(30,1);
02977         UMults.SetValue(31,1);
02978         UMults.SetValue(32,1);
02979         UMults.SetValue(33,1);
02980         UMults.SetValue(34,1);
02981         UMults.SetValue(35,1);
02982         UMults.SetValue(36,1);
02983         UMults.SetValue(37,1);
02984         UMults.SetValue(38,1);
02985         UMults.SetValue(39,1);
02986         UMults.SetValue(40,1);
02987         UMults.SetValue(41,1);
02988         UMults.SetValue(42,1);
02989         UMults.SetValue(43,1);
02990         UMults.SetValue(44,1);
02991         UMults.SetValue(45,1);
02992         UMults.SetValue(46,4);
02993 
02994         TColStd_Array1OfInteger  VMults(1,46);
02995         VMults.SetValue(1,4);
02996         VMults.SetValue(2,1);
02997         VMults.SetValue(3,1);
02998         VMults.SetValue(4,1);
02999         VMults.SetValue(5,1);
03000         VMults.SetValue(6,1);
03001         VMults.SetValue(7,1);
03002         VMults.SetValue(8,1);
03003         VMults.SetValue(9,1);
03004         VMults.SetValue(10,1);
03005         VMults.SetValue(11,1);
03006         VMults.SetValue(12,1);
03007         VMults.SetValue(13,1);
03008         VMults.SetValue(14,1);
03009         VMults.SetValue(15,1);
03010         VMults.SetValue(16,1);
03011         VMults.SetValue(17,1);
03012         VMults.SetValue(18,1);
03013         VMults.SetValue(19,1);
03014         VMults.SetValue(20,1);
03015         VMults.SetValue(21,1);
03016         VMults.SetValue(22,1);
03017         VMults.SetValue(23,1);
03018         VMults.SetValue(24,1);
03019         VMults.SetValue(25,1);
03020         VMults.SetValue(26,1);
03021         VMults.SetValue(27,1);
03022         VMults.SetValue(28,1);
03023         VMults.SetValue(29,1);
03024         VMults.SetValue(30,1);
03025         VMults.SetValue(31,1);
03026         VMults.SetValue(32,1);
03027         VMults.SetValue(33,1);
03028         VMults.SetValue(34,1);
03029         VMults.SetValue(35,1);
03030         VMults.SetValue(36,1);
03031         VMults.SetValue(37,1);
03032         VMults.SetValue(38,1);
03033         VMults.SetValue(39,1);
03034         VMults.SetValue(40,1);
03035         VMults.SetValue(41,1);
03036         VMults.SetValue(42,1);
03037         VMults.SetValue(43,1);
03038         VMults.SetValue(44,1);
03039         VMults.SetValue(45,1);
03040         VMults.SetValue(46,4);
03041 
03042         // Creating the BSpline Surface
03043         Handle(Geom_BSplineSurface) Surface = new Geom_BSplineSurface(
03044             Poles,        // const TColgp_Array2OfPnt &    Poles,
03045             UKnots,       // const TColStd_Array1OfReal &   UKnots,
03046             VKnots,       // const TColStd_Array1OfReal &   VKnots,
03047             UMults,       // const TColStd_Array1OfInteger &   UMults,
03048             VMults,       // const TColStd_Array1OfInteger &   VMults,
03049             3,            // const Standard_Integer   UDegree,
03050             3             // const Standard_Integer   VDegree,
03051             // const Standard_Boolean   UPeriodic = Standard_False,
03052             // const Standard_Boolean   VPeriodic = Standard_False*/
03053         );
03054 
03055 
03056 
03057 
03058 
03059         BRepBuilderAPI_MakeFace  Face(Surface);
03060 
03061         return new TopoShapePy(new TopoShape(Face.Face()));
03062     } PY_CATCH;
03063 }
03064 
03065 
03066 static PyObject * createPlane(PyObject *self, PyObject *args)
03067 {
03068 
03069     double z_level;
03070 
03071     //const char* Name;
03072     if (! PyArg_ParseTuple(args, "d", &z_level))
03073         return NULL;
03074 
03075 
03076     PY_TRY
03077     {
03078 
03079         gp_Pnt aPlanePnt(0,0,z_level);
03080         gp_Dir aPlaneDir(0,0,1);
03081         Handle_Geom_Plane aPlane = new Geom_Plane(aPlanePnt, aPlaneDir);
03082         BRepBuilderAPI_MakeFace  Face(aPlane);
03083 
03084         return new TopoShapePy(new TopoShape(Face.Face()));
03085     } PY_CATCH;
03086 }
03087 
03088 static PyObject * createBox(PyObject *self, PyObject *args)
03089 {
03090     double X, Y, Z , L, H, W ;
03091 
03092     //const char* Name;
03093     if (! PyArg_ParseTuple(args, "dddddd", &X, &Y, &Z , &L, &H, &W ))
03094         return NULL;
03095 
03096 
03097     PY_TRY
03098     {
03099         // Build a box using the dimension and position attributes
03100         BRepPrimAPI_MakeBox mkBox( gp_Pnt( X, Y, Z ), L, H, W );
03101 
03102         TopoDS_Shape ResultShape = mkBox.Shape();
03103 
03104         return new TopoShapePy(new TopoShape(ResultShape));
03105     } PY_CATCH;
03106 }
03107 
03108 static PyObject * useMesh(PyObject *self, PyObject *args)
03109 {
03110     MeshPy   *pcObject;
03111     PyObject *pcObj;
03112     if (!PyArg_ParseTuple(args, "O!; Need exatly one Mesh object", &(MeshPy::Type), &pcObj))     // convert args: Python->C
03113         return NULL;                             // NULL triggers exception
03114 
03115     pcObject = (MeshPy*)pcObj;
03116 
03117     PY_TRY
03118     {
03119 
03120         const MeshObject *aMeshObject = pcObject->getMeshObjectPtr();
03121         const MeshKernel& m = aMeshObject->getKernel();
03122         //MeshAlgos::boolean(&_cMesh,&m,&_cMesh,0);
03123         MeshKernel copy = m;
03124         MeshCore::MeshAlgorithm algo(copy);
03125         std::list< std::vector <unsigned long> > BoundariesIndex;
03126         std::list< std::vector <unsigned long> > ::iterator bin_it;
03127         std::list< std::vector <Base::Vector3f> > BoundariesPoints;
03128         algo.GetMeshBorders(BoundariesIndex);
03129         algo.GetMeshBorders(BoundariesPoints);
03130         Base::BoundBox3f BoundBox = copy.GetBoundBox();
03131 
03132 
03133         // Count of edges
03134         m.CountEdges();
03135         // Count of vertices
03136         m.CountPoints();
03137         // Count of Triangles
03138         m.CountFacets();
03139 
03140         // Neigbour triangles
03141         unsigned long idx1,idx2,idx3,idx=0;
03142         m.GetFacetNeighbours(idx,idx1,idx2,idx3);
03143 
03144         // points of a triangle
03145         m.GetFacetPoints(idx,idx1,idx2,idx3);
03146         MeshCore::MeshPoint p = m.GetPoint(idx1);
03147         //float x = p[0];
03148         //float y = p[1];
03149         //float z = p[2];
03150 
03151         // topological stuff, works only on a non const copy....
03152         //MeshCore::MeshTopoAlgorithm  TopAlgs(m);
03153 
03154         // e.g. Iterators
03155         MeshCore::MeshFacetIterator It(m);
03156         while (It.More())
03157         {
03158             ++It;
03159         }
03160 
03161         // most of the algoristhms are under src/Mod/Mesh/App/Core!
03162 
03163     } PY_CATCH;
03164 
03165     Py_Return;
03166 }
03167 //static PyObject * MyApprox(PyObject *self, PyObject *args)
03168 //{
03169 //  MeshPy   *pcObject;
03170 //  PyObject *pcObj;
03171 //  double tolerance;
03172 //  if (!PyArg_ParseTuple(args, "O!d; Usage:- MyApprox(meshobject, tolerance)", &(MeshPy::Type), &pcObj, &tolerance))     // convert args: Python->C
03173 //    return NULL;                             // NULL triggers exception
03174 //
03175 //  pcObject = (MeshPy*)pcObj;
03176 //
03177 //  PY_TRY {
03178 //    const MeshObject *o = pcObject->getMesh();
03179 // const MeshKernel &m = o->getKernel();
03180 //    //MeshAlgos::boolean(&_cMesh,&m,&_cMesh,0);
03181 // //MeshKernel copy = m;
03182 //
03183 // std::vector<double> Control;
03184 // std::vector<double> KntU;
03185 // std::vector<double> KntV;
03186 // int OrdU;
03187 // int OrdV;
03188 // try {
03189 //  Approximate approx((MeshKernel &)m,Control,KntU,KntV,OrdU,OrdV,tolerance);
03190 // }
03191 // catch(const char *errstr) { std::cerr << errstr << std::endl; }
03192 // int maxCntrlU = KntU.size() - OrdU;
03193 // int maxCntrlV = KntU.size() - OrdV;
03194 // //Load Control Pnts
03195 // TColgp_Array2OfPnt Poles(1,maxCntrlU,1,maxCntrlV);
03196 // for(int u = 0; u < maxCntrlU; u++)
03197 // {
03198 //  for(int v = 0; v < maxCntrlV; v++)
03199 //   Poles.SetValue(u+1,v+1,gp_Pnt(Control[(u*3)+(3*maxCntrlU*v)],Control[(u*3)+(3*maxCntrlU*v)+1],
03200 //   Control[(u*3)+(3*maxCntrlU*v)+2]));
03201 // }
03202 // //Load U-Knot Vector
03203 // TColStd_Array1OfReal UKnots(1,KntU.size() - 6);
03204 // TColStd_Array1OfInteger UMults(1,KntU.size() - 6);
03205 // UKnots.SetValue(1,KntU[0]);
03206 // for(unsigned int i = 1, j = 1; i < KntU.size(); i++)
03207 // {
03208 //  if(KntU[i] == KntU[i-1])
03209 //   continue;
03210 //  else
03211 //  {
03212 //   UKnots.SetValue(j+1,KntU[i]);
03213 //   j++;
03214 //  }
03215 //
03216 // }
03217 // UMults.SetValue(1,4);
03218 // UMults.SetValue(KntU.size() - 6,4);
03219 // for(unsigned int i = 1; i < KntU.size() - 7; i++)
03220 //  UMults.SetValue(i+1,1);
03221 // //Load V-Knot Vector
03222 // TColStd_Array1OfReal VKnots(1,KntU.size() - 6);
03223 // TColStd_Array1OfInteger VMults(1,KntU.size() - 6);
03224 // VKnots.SetValue(1,KntV[0]);
03225 // for(unsigned int i = 1, j = 1; i < KntV.size(); i++)
03226 // {
03227 //  if(KntV[i] == KntV[i-1])
03228 //   continue;
03229 //  else
03230 //  {
03231 //   VKnots.SetValue(j+1,KntV[i]);
03232 //   j++;
03233 //  }
03234 //
03235 // }
03236 // VMults.SetValue(1,4);
03237 // VMults.SetValue(KntV.size() - 6,4);
03238 // for(unsigned int i = 1; i < KntV.size() - 7; i++)
03239 //  VMults.SetValue(i+1,1);
03240 //
03241 // Handle(Geom_BSplineSurface) Surface = new Geom_BSplineSurface(
03242 //                                      Poles,        // const TColgp_Array2OfPnt &    Poles,
03243 //                                     UKnots,       // const TColStd_Array1OfReal &   UKnots,
03244 //                                     VKnots,       // const TColStd_Array1OfReal &   VKnots,
03245 //                                     UMults,       // const TColStd_Array1OfInteger &   UMults,
03246 //                                     VMults,       // const TColStd_Array1OfInteger &   VMults,
03247 //                                     3,            // const Standard_Integer   UDegree,
03248 //                                     3             // const Standard_Integer   VDegree,
03249 //                                                   // const Standard_Boolean   UPeriodic = Standard_False,
03250 //                                                   // const Standard_Boolean   VPeriodic = Standard_False*/
03251 //                           );
03252 //
03253 //
03254 //
03255 //
03256 //
03257 //    BRepBuilderAPI_MakeFace  Face(Surface);
03258 //
03259 //    return new TopoShapePyOld(Face.Face());
03260 //  } PY_CATCH;
03261 //
03262 //  Py_Return;
03263 //}
03264 static PyObject * openDYNA(PyObject *self, PyObject *args)
03265 {
03266     const char* filename;
03267     if (! PyArg_ParseTuple(args, "s;Usage:- openDYNA(filename)", &filename))
03268         return NULL;
03269     PY_TRY
03270     {
03271         MeshCore::MeshKernel mesh;
03272         ReadDyna parse(mesh,filename);
03273         MeshObject aObject(mesh);
03274 
03275         return aObject.getPyObject();
03276     }
03277     PY_CATCH;
03278 
03279     Py_Return;
03280 
03281 }
03282 
03283 
03284 static PyObject * offset_mesh(PyObject *self, PyObject *args)
03285 {
03286     double offset;
03287 
03288     MeshPy   *pcObject;
03289     PyObject *pcObj;
03290     if (!PyArg_ParseTuple(args, "O!d; Need exatly one Mesh object", &(MeshPy::Type), &pcObj, &offset))     // convert args: Python->C
03291         return NULL;                             // NULL triggers exception
03292 
03293     pcObject = (MeshPy*)pcObj;
03294     Base::Builder3D log3d;
03295 
03296     PY_TRY
03297     {
03298 
03299         MeshObject *o = pcObject->getMeshObjectPtr();
03300         MeshKernel &mesh = o->getKernel();
03301 
03302         //Base::Vector3f Point[3];
03303         Base::Vector3f current_pnt;
03304 
03305 
03306         //const MeshCore::MeshFacetArray& Facets = mesh.GetFacets();
03307         //const MeshCore::MeshPointArray& Points = mesh.GetPoints();
03308 
03309         MeshCore::MeshPointIterator p_it(mesh);
03310         MeshCore::MeshFacetIterator f_it(mesh);
03311         MeshCore::MeshRefPointToFacets rf2pt(mesh);
03312         MeshCore::MeshGeomFacet t_face;
03313 
03314         //int NumOfPoints = mesh.CountPoints();
03315 
03316         Base::Vector3f normal,local_normal;
03317         //float fArea = 0.0f;
03318 
03319 
03320 
03321         for (unsigned long i=0; i<mesh.CountPoints(); i++)
03322         {
03323             // Satz von Dreiecken zu jedem Punkt
03324             const std::set<unsigned long>& faceSet = rf2pt[i];
03325             float fArea = 0.0;
03326             normal.Set(0.0,0.0,0.0);
03327 
03328 
03329             // Iteriere über die Dreiecke zu jedem Punkt
03330             for (std::set<unsigned long>::const_iterator it = faceSet.begin(); it != faceSet.end(); ++it)
03331             {
03332                 // Einmal derefernzieren, um an das MeshFacet zu kommen und dem Kernel uebergeben, dass er ein MeshGeomFacet liefert
03333                 t_face = mesh.GetFacet(*it);
03334                 // Flaecheninhalt aufsummieren
03335                 float local_Area = t_face.Area();
03336                 local_normal = t_face.GetNormal();
03337                 if (local_normal.z < 0)
03338                 {
03339                     local_normal = local_normal * (-1);
03340                 }
03341 
03342                 fArea = fArea + local_Area;
03343                 normal = normal + local_normal;
03344 
03345             }
03346 
03347             normal.Normalize();
03348             log3d.addSingleArrow(mesh.GetPoint(i),mesh.GetPoint(i) + (normal*float(offset)));
03349             mesh.MovePoint(i,(normal*float(offset)));
03350 
03351         }
03352 
03353         log3d.saveToFile("c:/test.iv");
03354         MeshObject aObject(mesh);
03355         return new MeshPy(&aObject);
03356     }
03357     PY_CATCH;
03358 
03359     Py_Return;
03360 
03361 
03362 
03363     /*for(p_it.Begin();!(p_it.EndReached()); ++p_it)
03364     {
03365      cout << "Erste Schleife" <<endl;
03366      for(f_it.Begin(); !(f_it.EndReached()); ++f_it)
03367      {
03368       cout << "Zweite Schleife" <<endl;
03369       int pos = f_it.Position();
03370       t_face = mesh.GetFacet(f_it.Position());
03371 
03372       for (int i = 0; i < 3; ++i)
03373       {
03374        cout << "dritte Schleife" <<endl;
03375        if(*p_it == t_face._aclPoints[i])
03376        {
03377         a += t_face.Area();
03378         normal = t_face.Area()*t_face.GetNormal();
03379        }
03380       }
03381       normal = normal/a;
03382       n_vect.push_back(normal);
03383       log3d.addPoint(normal);
03384      }
03385     }*/
03386 }
03387 
03388 
03389 //static PyObject * mesh_build(PyObject *self, PyObject *args)
03390 //{
03391 // PyObject *pcObj;
03392 //
03393 // if (!PyArg_ParseTuple(args, "O!; Need exatly one CAD object",&(TopoShapePyOld::Type), &pcObj))     // convert args: Python->C
03394 //  return NULL;                             // NULL triggers exception
03395 //
03396 //
03397 // TopoShapePyOld *pcShape = static_cast<TopoShapePyOld*>(pcObj); //Surface wird übergeben
03398 //
03399 // TopExp_Explorer Ex;
03400 // Ex.Init(pcShape->getShape(),TopAbs_FACE);  // initialisiere cad-geometrie (trimmed surface)
03401 //
03402 // Base::Builder3D m_log3d;
03403 //
03404 // // surface types
03405 // TopoDS_Face atopo_surface,atopo_surface2;
03406 // BRepAdaptor_Surface adaptor_surface;
03407 // GeomAdaptor_Surface geom_adapterSurface;
03408 // Handle_Geom_Surface geom_surf;
03409 // GeomAbs_SurfaceType type;
03410 // gp_Pln plane;
03411 //
03412 // TopoDS_Shape cad = pcShape->getShape();
03413 //
03414 // // point types
03415 // std::vector<Base::Vector3f> point_list;
03416 // gp_Pnt tmp_pnt;
03417 // Base::Vector3f pnt;
03418 // gp_Dir pl_vec;
03419 // gp_Lin lin;
03420 //
03421 //
03422 // // bounding box
03423 // Bnd_Box BBox;
03424 // Standard_Real XMin1, YMin1, ZMin1, XMax1, YMax1, ZMax1;
03425 //
03426 // IntCurvesFace_ShapeIntersector shp_int;
03427 // BRepClass3d_SolidClassifier    check;
03428 //
03429 //
03430 // double u_min,v_min,u_max,v_max;
03431 // double u_range, v_range;
03432 // double N;
03433 // int n1,n2;
03434 // bool b;
03435 //
03436 // if (!Ex.More()) return false;
03437 //
03438 //    for (;Ex.More();Ex.Next())
03439 //    {
03440 //  // übergebe die einzelnen patches
03441 //  atopo_surface = TopoDS::Face (Ex.Current());
03442 //  adaptor_surface.Initialize(atopo_surface);
03443 //
03444 //  type = adaptor_surface.GetType();
03445 //
03446 //  if(type == GeomAbs_Plane)
03447 //  {
03448 //   check.Load(atopo_surface);
03449 //
03450 //   plane = adaptor_surface.Plane();
03451 //   pl_vec = (plane.Axis()).Direction();
03452 //
03453 //   /*geom_adapterSurface = adaptor_surface.Surface();
03454 //   geom_surf = geom_adapterSurface.Surface();*/
03455 //
03456 //   u_min = adaptor_surface.FirstUParameter();
03457 //   u_max = adaptor_surface.LastUParameter();
03458 //
03459 //   v_min = adaptor_surface.FirstVParameter();
03460 //   v_max = adaptor_surface.LastVParameter();
03461 //
03462 //   u_range = u_max - u_min;
03463 //   v_range = v_max - v_min;
03464 //
03465 //   BRepBndLib::Add(atopo_surface, BBox);
03466 //   BBox.SetGap(0.0);
03467 //   BBox.Get(XMin1, YMin1, ZMin1, XMax1, YMax1, ZMax1);
03468 //
03469 //   N  = (XMax1 - XMin1)*(YMax1 - YMin1)/1e+4;
03470 //   n1 = sqrt(N);//(XMax1 - XMin1)*sqrt(N)/(YMax1 - YMin1);
03471 //   n2 = sqrt(N);//(YMax1 - YMin1)*sqrt(N)/(XMax1 - XMin1);
03472 //
03473 //   if(n1<2)
03474 //    n1=2;
03475 //   if(n2<2)
03476 //    n2=2;
03477 //
03478 //   BBox.SetVoid();
03479 //
03480 //   for(int i=0; i<n1; ++i)
03481 //   {
03482 //    for(int j=0; j<n2; ++j)
03483 //    {
03484 //     adaptor_surface.D0(u_min + i*u_range/(n1-1) ,v_min + j*v_range/(n2-1) ,tmp_pnt);
03485 //     check.Perform(tmp_pnt, 0.1);
03486 //     b = check.IsOnAFace();
03487 //
03488 //     if(b==true)
03489 //     {
03490 //      pnt.x = tmp_pnt.X();
03491 //      pnt.y = tmp_pnt.Y();
03492 //      pnt.z = tmp_pnt.Z();
03493 //
03494 //      point_list.push_back(pnt);
03495 //      m_log3d.addSinglePoint(pnt);
03496 //     }
03497 //     else
03498 //     {
03499 //      lin.SetLocation(tmp_pnt);
03500 //      lin.SetDirection(pl_vec);
03501 //
03502 //      shp_int.Load(cad, 0.1);
03503 //      shp_int.PerformNearest(lin, -RealLast(), +RealLast());
03504 //
03505 //      if(shp_int.IsDone())
03506 //      {
03507 //       tmp_pnt = shp_int.Pnt(1);
03508 //
03509 //       pnt.x = tmp_pnt.X();
03510 //       pnt.y = tmp_pnt.Y();
03511 //       pnt.z = tmp_pnt.Z();
03512 //
03513 //       point_list.push_back(pnt);
03514 //       m_log3d.addSinglePoint(pnt,2,0,0,0);
03515 //      }
03516 //     }
03517 //    }
03518 //   }
03519 //   break;
03520 //  }
03521 // }
03522 //
03523 //
03524 // m_log3d.saveToFile("c:/test_trim.iv");
03525 //
03526 //
03527 // PY_TRY
03528 // {
03529 //  MeshCore::MeshKernel mesh;
03530 //    MeshCore::MeshBuilder builder(mesh);
03531 //  builder.Initialize(point_list.size()-3);
03532 //  Base::Vector3f Points[3];
03533 //
03534 //  for(unsigned int i = 0; i < point_list.size()-2; ++i)
03535 //  {
03536 //   for(unsigned int j = 0; j < 3; j++)
03537 //    Points[j] = point_list[i+j];
03538 //
03539 //
03540 //   MeshCore::MeshGeomFacet Face(Points[0],Points[1],Points[2]);
03541 //   Face.CalcNormal();
03542 //   builder.AddFacet(Face);
03543 //
03544 //  }
03545 //  builder.Finish();
03546 //
03547 //  return new MeshPy(mesh);
03548 //
03549 //
03550 //
03551 // }PY_CATCH;
03552 //
03553 // Py_Return;
03554 //}
03555 
03556 //static PyObject * best_fit(PyObject *self, PyObject *args)
03557 //{
03558 // MeshPy   *pcObject;
03559 // MeshPy   *pcObject2;
03560 // PyObject *pcObj;
03561 // PyObject *pcObj2;
03562 //
03563 //
03564 // Base::Builder3D log3d;
03565 // Base::Vector3f pnt(0.0,0.0,0.0);
03566 //
03567 // if (!PyArg_ParseTuple(args, "O!O!; Need two Mesh objects and one toposhape", &(MeshPy::Type), &pcObj, &(MeshPy::Type), &pcObj2))     // convert args: Python->C
03568 //  return NULL;                             // NULL triggers exception
03569 //
03570 // pcObject  = (MeshPy*)pcObj;
03571 // pcObject2 = (MeshPy*)pcObj2;
03572 //
03573 //
03574 // PY_TRY
03575 // {
03576 //  MeshCore::MeshKernel mesh  = pcObject->getMesh();  // Input Mesh
03577 //  MeshCore::MeshKernel mesh2 = pcObject2->getMesh(); // Mesh from CAD
03578 //
03579 //  MeshCore::MeshEigensystem pca(mesh);
03580 //  pca.Evaluate();
03581 //
03582 //  MeshCore::MeshEigensystem pca2(mesh2);
03583 //  pca2.Evaluate();
03584 //
03585 //
03586 //
03587 //  Base::Matrix4D T1 =  pca.Transform();
03588 //  Base::Matrix4D T2 =  pca2.Transform();
03589 //
03590 //     T2[0][3] = 0.0;
03591 //  T2[1][3] = 0.0;
03592 //  T2[2][3] = 0.0;
03593 //
03594 //  Base::Matrix4D C;
03595 //  C.unity();
03596 //
03597 //  T2.inverse();
03598 //  mesh.Transform(T2*T1);
03599 //
03600 //  /*
03601 //  const MeshCore::MeshPointArray& rPoints = mesh.GetPoints();
03602 //  Base::Vector3f vec(0.0,0.0,0.0);
03603 //  unsigned long c=0;
03604 //
03605 //
03606 //  for(MeshCore::MeshPointArray::_TConstIterator it = rPoints.begin(); it != rPoints.end(); ++it)
03607 //  {
03608 //   vec = *it;
03609 //   //vec = T*vec;
03610 //   //T.transform(vec,T);
03611 //   mesh.SetPoint(c,vec);
03612 //   ++c;
03613 //  }
03614 //  */
03615 //
03616 //
03617 //  log3d.addSinglePoint(pnt);
03618 //  log3d.saveToFile("c:/origin.iv");
03619 //  return new MeshPy(mesh);
03620 //
03621 // }PY_CATCH;
03622 //
03623 // Py_Return;
03624 //}
03625 
03626 
03627 
03628 static PyObject * best_fit_complete(PyObject *self, PyObject *args)
03629 {
03630     MeshPy   *pcObject;
03631     PyObject *pcObj;
03632     PyObject *pcObj2;
03633 
03634     if (!PyArg_ParseTuple(args, "O!O!; Need one Mesh objects and one toposhape", &(MeshPy::Type), &pcObj, &(TopoShapePy::Type), &pcObj2))     // convert args: Python->C
03635         return NULL;                             // NULL triggers exception
03636 
03637     PY_TRY
03638     {
03639         GProp_GProps prop;
03640         GProp_PrincipalProps pprop;
03641         gp_Pnt orig;
03642 
03643         pcObject  = (MeshPy*)pcObj;
03644         TopoShapePy *pcShape = static_cast<TopoShapePy*>(pcObj2); //Shape wird übergeben
03645         TopoDS_Shape cad           = pcShape->getTopoShapePtr()->_Shape;  // Input CAD
03646         MeshCore::MeshKernel mesh  = pcObject->getMeshObjectPtr()->getKernel();  // Input Mesh
03647 
03648 //        best_fit befi(&mesh,&cad);
03649         //befi.Perform();
03650 
03651         //MeshObject anObject(*(befi.m_Mesh));
03652 
03653         //return new MeshPy(&anObject);
03654 
03655     }PY_CATCH;
03656 
03657     Py_Return;
03658 }
03659 
03660 #include "WireExplorer.h"
03661 #include <GeomAPI_Interpolate.hxx>
03662 #include <TColgp_HArray1OfPnt.hxx>
03663 #include "BRepAdaptor_CompCurve2.h"
03664 #include "SpringbackCorrection.h"
03665 static PyObject * best_fit_test(PyObject *self, PyObject *args)
03666 {
03667 
03668     PyObject *pcObj;
03669 
03670 
03671     if (!PyArg_ParseTuple(args, "O!", &(TopoShapePy::Type), &pcObj))     // convert args: Python->C
03672         return NULL;                             // NULL triggers exception
03673 
03674     PY_TRY
03675     {
03676 
03677         TopoShapePy *pcShape = static_cast<TopoShapePy*>(pcObj); //Shape wird übergeben
03678         TopoDS_Shape aShape = pcShape->getTopoShapePtr()->_Shape;
03679         TopExp_Explorer anExplorer;
03680         TopExp_Explorer aFaceExplorer;
03681 
03682         //SpringbackCorrection aShapeTriangulator(pcShape->getShape());
03683         //aShapeTriangulator.Init();
03684         std::vector<TopoDS_Edge> anEdgeList;
03685         TopoDS_Face first,second;
03686         anEdgeList.clear();
03687         bool firstrun=true;
03688         bool finished=false;
03689         for (anExplorer.Init(aShape,TopAbs_FACE);anExplorer.More();anExplorer.Next())
03690         {
03691             if (finished) break;
03692             for (aFaceExplorer.Init(anExplorer.Current(),TopAbs_EDGE);aFaceExplorer.More();aFaceExplorer.Next())
03693             {
03694                 if (!firstrun && finished==false)
03695                 {
03696                     for (unsigned int i=0;i<anEdgeList.size();++i)
03697                     {
03698                         if (anEdgeList[i].IsSame(TopoDS::Edge(aFaceExplorer.Current())))
03699                         {
03700                             second = TopoDS::Face(anExplorer.Current());
03701                             finished=true;
03702                             break;
03703                         }
03704                     }
03705                 }
03706                 if (firstrun)
03707                 {
03708                     anEdgeList.push_back(TopoDS::Edge(aFaceExplorer.Current()));
03709                     first = TopoDS::Face(anExplorer.Current());
03710                 }
03711             }
03712             firstrun=false;
03713         }
03714         //Uniformes Grid erzeugen und verschieben
03715         BRepAdaptor_Surface afirstFaceAdaptor(first);
03716 
03717         BRepAdaptor_Surface asecondFaceAdaptor(second);
03718         Standard_Real lUf,lVf,fUf,fVf,lUs,lVs,fUs,fVs,schrittweiteUf,schrittweiteVf,schrittweiteUs,schrittweiteVs;
03719         lUf = afirstFaceAdaptor.LastUParameter();
03720         fUf = afirstFaceAdaptor.FirstUParameter();
03721         lVf = afirstFaceAdaptor.LastVParameter();
03722         fVf = afirstFaceAdaptor.FirstVParameter();
03723         lUs = asecondFaceAdaptor.LastUParameter();
03724         fUs = asecondFaceAdaptor.FirstUParameter();
03725         lVs = asecondFaceAdaptor.LastVParameter();
03726         fVs = asecondFaceAdaptor.FirstVParameter();
03727         schrittweiteUf = fabs(lUf-fUf)/20.0;
03728         schrittweiteVf = fabs(lVf-fVf)/20.0;
03729         schrittweiteUs = fabs(lUs-fUs)/20.0;
03730         schrittweiteVs = fabs(lVs-fVs)/20.0;
03731         TColgp_Array2OfPnt Input(1,21,1,21);
03732         for (int j=0;j<=20;++j)
03733         {
03734             for (int k=0;k<=20;++k)
03735             {
03736                 gp_Pnt currentPoint;
03737                 gp_Vec UVec,VVec,Normal;
03738                 afirstFaceAdaptor.D1((fUf+j*schrittweiteUf),(fVf+k*schrittweiteVf),currentPoint,UVec,VVec);
03739                 UVec.Cross(VVec);
03740                 Normal = UVec;
03741                 Normal.Normalize();
03742                 Normal.Multiply(20.0);
03743                 gp_Pnt OffsetPoint;
03744                 OffsetPoint.SetXYZ(currentPoint.XYZ()+Normal.XYZ());
03745                 Input.SetValue(j+1,k+1,OffsetPoint);
03746             }
03747         }
03748         GeomAPI_PointsToBSplineSurface *Approx_Surface = new GeomAPI_PointsToBSplineSurface(Input, 3, 8, GeomAbs_C1,0.1);
03749         Handle(Geom_BSplineSurface) Final_Approx = Approx_Surface->Surface () ;
03750         //Jetzt die Wires vom ursprünglichen Face offsettieren.
03751         TopExp_Explorer asecondFaceExplorer;
03752         TopoDS_Wire aFaceWire;
03753         for (asecondFaceExplorer.Init(first,TopAbs_WIRE);asecondFaceExplorer.More();asecondFaceExplorer.Next())
03754         {
03755             aFaceWire = TopoDS::Wire(asecondFaceExplorer.Current());
03756         }
03757         WireExplorer awireexplorer(aFaceWire);
03758         //Punkte auf der Wire erzeugen und dann diese Punkte als Input in den Delaynay reinschieben
03759         BRepAdaptor_CompCurve2 aWireAdapter(aFaceWire);
03760         Standard_Real first_p,last_p,delta_u;
03761         last_p = aWireAdapter.LastParameter();
03762         first_p = aWireAdapter.FirstParameter();
03763         delta_u = fabs(last_p-first_p)/50;
03764         std::vector<Base::Vector3f> mesh_input;
03765         mesh_input.clear();
03766         for (int k=0;k<=50;++k)
03767         {
03768             gp_Pnt currentPoint = aWireAdapter.Value(first_p+(k*delta_u));
03769             Base::Vector3f aVector;
03770             aVector.x = float(currentPoint.X());
03771             aVector.y = float(currentPoint.Y());
03772             aVector.z = float(currentPoint.Z());
03773             mesh_input.push_back(aVector);
03774         }
03775         MeshCore::MeshKernel ameshkernel;
03776         MeshCore::MeshBuilder aBuilder(ameshkernel);
03777         std::vector<Base::Vector3f> mesh_output;
03778         //MeshCore::MeshPolygonTriangulation aTriangulator;
03779         //aTriangulator.SetPolygon(mesh_input);
03780         Base::Matrix4D matrix;
03781         //Base::Vector3f cPlaneNormal = aTriangulator.TransformToFitPlane(matrix);
03782         //aTriangulator.ComputeQualityDelaunay(20,mesh_output);
03783         std::vector<MeshCore::MeshGeomFacet> geomfacets;// = aTriangulator.GetTriangles();
03784         aBuilder.Initialize(100);
03785 
03786 
03787         for ( std::vector<MeshCore::MeshGeomFacet>::iterator kt = geomfacets.begin(); kt != geomfacets.end(); ++kt )
03788         {
03789             MeshCore::MeshGeomFacet atempfacet(matrix*(kt->_aclPoints[0]),matrix*(kt->_aclPoints[1]),matrix*(kt->_aclPoints[2]));
03790             atempfacet.CalcNormal();
03791             aBuilder.AddFacet(atempfacet);
03792         }
03793         aBuilder.Finish();
03794         MeshObject anObject(ameshkernel);
03795         return new MeshPy(&anObject);
03796 
03797 
03798         TopoDS_Wire newWire;
03799         for (awireexplorer.Init();awireexplorer.More();awireexplorer.Next())
03800         {
03801             TopoDS_Edge currentEdge = TopoDS::Edge(awireexplorer.Current());
03802             Standard_Real uf,ul,schrittweite_edge;
03803             Handle_Geom2d_Curve aPCurve = BRep_Tool::CurveOnSurface(currentEdge,first,uf,ul);
03804             schrittweite_edge = fabs(uf-ul)/10;
03805             std::vector<gp_Pnt> offsetPoints;
03806             offsetPoints.clear();
03807             for (int i=0;i<=10;++i)
03808             {
03809                 gp_Pnt2d a2dPoint;
03810                 aPCurve->D0(uf+i*schrittweite_edge,a2dPoint);
03811                 //Koordinaten von der Surface holen
03812                 gp_Pnt point;
03813                 gp_Vec vecu,vecv,normal;
03814                 afirstFaceAdaptor.D1(a2dPoint.X(),a2dPoint.Y(),point,vecu,vecv);
03815                 vecu.Cross(vecv);
03816                 normal = vecu;
03817                 normal.Normalize();
03818                 normal.Multiply(20.0);
03819                 gp_Pnt OffsetPoint;
03820                 OffsetPoint.SetXYZ(point.XYZ()+normal.XYZ());
03821                 offsetPoints.push_back(OffsetPoint);
03822             }
03823             Handle(TColgp_HArray1OfPnt) MasterOffsetPoints = new TColgp_HArray1OfPnt(1, offsetPoints.size());
03824             for (unsigned int t=0;t<offsetPoints.size();++t)
03825             {
03826                 MasterOffsetPoints->SetValue(t+1,offsetPoints[t]);
03827             }
03828             GeomAPI_Interpolate aBSplineInterp(MasterOffsetPoints, Standard_False, Precision::Confusion());
03829             aBSplineInterp.Perform();
03830             Handle_Geom_BSplineCurve currentOffsetCurve(aBSplineInterp.Curve());
03831         }
03832         BRepBuilderAPI_MakeFace Face(Final_Approx);
03833 
03834         //return new TopoShapePyOld(Face.Face());
03835 
03836 
03837     }PY_CATCH;
03838 
03839     Py_Return;
03840 }
03841 
03842 static PyObject * shape2orig(PyObject *self, PyObject *args)
03843 {
03844     PyObject *pcObj;
03845 
03846     if (!PyArg_ParseTuple(args, "O!; Need one toposhape", &(TopoShapePy::Type), &pcObj))  // convert args: Python->C
03847         return NULL;                             // NULL triggers exception
03848 
03849     PY_TRY
03850     {
03851         GProp_GProps prop;
03852         GProp_PrincipalProps pprop;
03853         gp_Pnt orig;
03854 
03855         TopoShapePy *pcShape = static_cast<TopoShapePy*>(pcObj); //shape wird übergeben
03856         TopoDS_Shape cad           = pcShape->getTopoShapePtr()->_Shape;  // Input CAD
03857 
03858 //        best_fit befi(cad);
03859         // befi.ShapeFit_Coarse();
03860 
03861         //     return new TopoShapePyOld(*(befi.m_Cad));
03862 
03863     }PY_CATCH;
03864 
03865     Py_Return;
03866 }
03867 
03868 
03869 
03870 
03871 static PyObject * spring_back(PyObject *self, PyObject *args)
03872 {
03873     MeshPy   *pcObject;
03874     PyObject *pcObj;
03875     PyObject *pcObj2;
03876 
03877     if (!PyArg_ParseTuple(args, "O!O!; Need one Mesh objects and one toposhape", &(MeshPy::Type), &pcObj, &(TopoShapePy::Type), &pcObj2))     // convert args: Python->C
03878         return NULL;                             // NULL triggers exception
03879 
03880     PY_TRY
03881     {
03882         GProp_GProps prop;
03883         GProp_PrincipalProps pprop;
03884         gp_Pnt orig;
03885 
03886         pcObject  = (MeshPy*)pcObj;
03887         TopoShapePy *pcShape = static_cast<TopoShapePy*>(pcObj2); //Shape wird übergeben
03888         TopoDS_Shape cad              = pcShape->getTopoShapePtr()->_Shape;            // Input CAD
03889         MeshObject* anObject          = pcObject->getMeshObjectPtr();            // Input Mesh
03890         MeshCore::MeshKernel mesh     = anObject->getKernel();
03891 
03892         time_t seconds1, seconds2;
03893         seconds1 = time(NULL);
03894 
03895         /*-----------------------------------------------*/
03896         SpringbackCorrection aShapeTri(cad, mesh);
03897         aShapeTri.Perform(60,1);
03898         /*-----------------------------------------------*/
03899 
03900         seconds2 = time(NULL);
03901         cout << "laufzeit: " << seconds2-seconds1 << " sec" << endl;
03902 
03903         //anObject->setKernel(aShapeTri.m_Mesh);
03904 
03905         return new MeshPy(anObject);
03906 
03907     }PY_CATCH;
03908 
03909     Py_Return;
03910 }
03911 
03912 
03913 
03914 
03915 
03916 
03917 
03918 static PyObject * tess_shape(PyObject *self, PyObject *args)
03919 {
03920     PyObject *pcObj;
03921     float aDeflection;
03922     //PyObject *pcObj2;
03923     if (!PyArg_ParseTuple(args, "O!f", &(TopoShapePy::Type), &pcObj, &aDeflection))    // convert args: Python->C
03924         return NULL;                             // NULL triggers exception
03925 
03926     PY_TRY
03927     {
03928 
03929         TopoShapePy *pcShape = static_cast<TopoShapePy*>(pcObj); //shape wird übergeben
03930         TopoDS_Shape cad        = pcShape->getTopoShapePtr()->_Shape;  // Input CAD
03931 
03932         //best_fit befi(cad);
03933         //befi.ShapeFit_Coarse();
03934 
03935         MeshCore::MeshKernel mesh;
03936         best_fit::Tesselate_Shape(cad, mesh, float(0.1));
03937         MeshObject* anObject = new MeshObject(mesh);
03938         return new MeshPy(anObject);
03939 
03940     }PY_CATCH;
03941 
03942     Py_Return;
03943 }
03944 
03945 
03946 
03947 
03948 
03949 
03950 
03951 
03952 
03953 
03954 
03955 
03956 
03957 
03958 
03959 
03960 
03961 
03962 
03963 
03964 //static PyObject * trafo_mesh(PyObject *self, PyObject *args)
03965 //{
03966 // MeshPy   *pcObject;
03967 //
03968 //
03969 // Base::Vector3f pnt;
03970 //
03971 // if (!PyArg_ParseTuple(args, "O!; Need one Mesh objects", &(MeshPy::Type), &pcObj))     // convert args: Python->C
03972 //  return NULL;                             // NULL triggers exception
03973 //
03974 // pcObject  = (MeshPy*)pcObj;
03975 //
03976 // PY_TRY
03977 // {
03978 //        gp_Trsf trf;
03979 //        trf.SetTranslation(trafo);
03980 //
03981 //  BRepBuilderAPI_Transform trsf(tsf);
03982 //        trsf.Perform(cad);
03983 //        TopoDS_Shape ResultShape = trsf.Shape();
03984 //
03985 //   return new MeshPy(mesh);
03986 //
03987 // }PY_CATCH;
03988 //
03989 // Py_Return;
03990 //}
03991 //
03992 //static PyObject * trafo_cad(PyObject *self, PyObject *args)
03993 //{
03994 // MeshPy   *pcObject;
03995 //
03996 // Base::Vector3f pnt;
03997 //
03998 // if (!PyArg_ParseTuple(args, "O!; Need one TopoShape objects", &(MeshPy::Type), &pcObj))     // convert args: Python->C
03999 //  return NULL;                             // NULL triggers exception
04000 //
04001 // pcObject  = (MeshPy*)pcObj;
04002 //
04003 // PY_TRY
04004 // {
04005 //        gp_Trsf trf;
04006 //        trf.SetTranslation(trafo);
04007 //
04008 //  BRepBuilderAPI_Transform trsf(tsf);
04009 //        trsf.Perform(cad);
04010 //        TopoDS_Shape ResultShape = trsf.Shape();
04011 //
04012 //   return new MeshPy(mesh);
04013 //
04014 // }PY_CATCH;
04015 //
04016 // Py_Return;
04017 //}
04018 
04019 static PyObject * fit_iter(PyObject *self, PyObject *args)
04020 {
04021     MeshPy   *pcObject;
04022     PyObject *pcObj;
04023     PyObject *pcObj2;
04024 
04025     if (!PyArg_ParseTuple(args, "O!O!; Need exatly one Mesh object", &(MeshPy::Type), &pcObj, &(TopoShapePy::Type), &pcObj2))     // convert args: Python->C
04026         return NULL;                             // NULL triggers exception
04027 
04028     TopoShapePy *pcShape = static_cast<TopoShapePy*>(pcObj2); //Surface wird übergeben
04029     TopoDS_Shape cad = pcShape->getTopoShapePtr()->_Shape;
04030 
04031     TopExp_Explorer Ex;
04032     Ex.Init(cad,TopAbs_FACE);  // initialisiere cad-geometrie (trimmed surface)
04033 
04034     pcObject = (MeshPy*)pcObj;
04035 
04036     Base::Builder3D log3d;
04037     gp_Dir pl_vec;
04038     gp_Lin lin;
04039     gp_Pnt pnt;
04040     Base::Vector3f tmp_pnt;
04041     IntCurvesFace_ShapeIntersector shp_int;
04042 
04043     std::vector< std::vector<double> > R(3, std::vector<double>(3,0.0)); // Rotationsmatrix
04044     double err = 1001;
04045 
04046     TopoDS_Face atopo_surface;
04047 
04048     MeshCore::MeshKernel mesh = pcObject->getMeshObjectPtr()->getKernel();
04049 
04050     PY_TRY
04051     {
04052         //Base::Vector3f Point[3];
04053         Base::Vector3f current_pnt;
04054 
04055 
04056 
04057 
04058         //const MeshCore::MeshFacetArray& Facets = mesh.GetFacets();
04059         //const MeshCore::MeshPointArray& Points = mesh.GetPoints();
04060 
04061         MeshCore::MeshPointIterator p_it(mesh);
04062         MeshCore::MeshFacetIterator f_it(mesh);
04063         MeshCore::MeshRefPointToFacets rf2pt(mesh);
04064         MeshCore::MeshGeomFacet t_face;
04065 
04066         int NumOfPoints = mesh.CountPoints();
04067 
04068         //int NumOfPoints = mesh.CountPoints();
04069 
04070         Base::Vector3f normal,local_normal;
04071         //float fArea = 0.0f;
04072 
04073         while (err > 1000)
04074         {
04075 
04076             err = 0.0;
04077             for (unsigned long i=0; i<mesh.CountPoints(); i++)
04078             {
04079                 // Satz von Dreiecken zu jedem Punkt
04080                 const std::set<unsigned long>& faceSet = rf2pt[i];
04081                 float fArea = 0.0;
04082                 normal.Set(0.0,0.0,0.0);
04083 
04084 
04085                 // Iteriere über die Dreiecke zu jedem Punkt
04086                 for (std::set<unsigned long>::const_iterator it = faceSet.begin(); it != faceSet.end(); ++it)
04087                 {
04088                     // Einmal derefernzieren, um an das MeshFacet zu kommen und dem Kernel uebergeben, dass er ein MeshGeomFacet liefert
04089                     t_face = mesh.GetFacet(*it);
04090                     // Flaecheninhalt aufsummieren
04091                     float local_Area = t_face.Area();
04092                     local_normal = t_face.GetNormal();
04093                     if (local_normal.z < 0)
04094                     {
04095                         local_normal = local_normal * (-1);
04096                     }
04097 
04098                     fArea = fArea + local_Area;
04099                     normal = normal + local_normal;
04100 
04101                 }
04102 
04103                 pnt.SetX((mesh.GetPoint(i)).x);
04104                 pnt.SetY((mesh.GetPoint(i)).y);
04105                 pnt.SetZ((mesh.GetPoint(i)).z);
04106 
04107                 lin.SetLocation(pnt);
04108 
04109                 pl_vec.SetX(normal.x);
04110                 pl_vec.SetY(normal.y);
04111                 pl_vec.SetZ(normal.z);
04112 
04113                 lin.SetDirection(pl_vec);
04114 
04115                 shp_int.Load(cad, 0.1);
04116                 shp_int.PerformNearest(lin,-RealLast(),+RealLast());
04117 
04118                 if (shp_int.IsDone())
04119                 {
04120                     err += sqrt((pnt.X() - shp_int.Pnt(1).X())*(pnt.X() - shp_int.Pnt(1).X())*
04121                                 (pnt.Y() - shp_int.Pnt(1).Y())*(pnt.Y() - shp_int.Pnt(1).Y())*
04122                                 (pnt.Z() - shp_int.Pnt(1).Z())*(pnt.Z() - shp_int.Pnt(1).Z()));
04123 
04124 
04125                     pnt = shp_int.Pnt(1);
04126 
04127                     tmp_pnt.x = float(pnt.X());
04128                     tmp_pnt.y = float(pnt.Y());
04129                     tmp_pnt.z = float(pnt.Z());
04130 
04131                     //point_list.push_back(pnt);
04132                     log3d.addSinglePoint(tmp_pnt,2,0,0,0);
04133                 }
04134             }
04135 
04136 
04137             R[0][0] =  cos(PI);
04138             R[0][1] = -sin(PI);
04139             R[1][0] =  sin(PI);
04140             R[1][1] =  cos(PI);
04141             R[2][2] =  1;
04142 
04143             MeshCore::MeshPoint mpnt;
04144 
04145             for (int i=0; i<NumOfPoints; ++i)
04146             {
04147                 mpnt = mesh.GetPoint(i);
04148 
04149                 tmp_pnt.x = float(R[0][0]*mpnt.x + R[0][1]*mpnt.y + R[0][2]*mpnt.z);
04150                 tmp_pnt.y = float(R[1][0]*mpnt.x + R[1][1]*mpnt.y + R[1][2]*mpnt.z);
04151                 tmp_pnt.z = float(R[2][0]*mpnt.x + R[2][1]*mpnt.y + R[2][2]*mpnt.z);
04152 
04153                 mesh.SetPoint(i,tmp_pnt);
04154             }
04155 
04156             break;
04157 
04158         } /*end while*/
04159 
04162         //while(traf_step > TOL)
04163         //{
04164         // traf += fl*traf_step;
04165 
04166         // err = 0;
04167         // for(int i=0; i<NumOfPoints; ++i)
04168         // {
04169         //  pnt_tmp[i][0] = pnt[i][0];
04170         //  pnt_tmp[i][1] = pnt[i][1];
04171         //  pnt_tmp[i][2] = pnt[i][2] + traf;
04172 
04173         //  err += weights[i]*sqrt( (pnt_tmp[i][0] - pnt_ref[i][0])*(pnt_tmp[i][0] - pnt_ref[i][0]) +
04174         //                             (pnt_tmp[i][1] - pnt_ref[i][1])*(pnt_tmp[i][1] - pnt_ref[i][1]) +
04175         //        (pnt_tmp[i][2] - pnt_ref[i][2])*(pnt_tmp[i][2] - pnt_ref[i][2]) );
04176         // }
04177 
04178         // traf -= fl*traf_step;
04179         //
04180         // if(err < err_tmp)
04181         // {
04182         //  err_tmp = err;
04183         //  traf += fl*traf_step;
04184         // }
04185         // else
04186         // {
04187         //  if(fl == -1)
04188         //  {
04189         //   traf_step /= 2;
04190         //   fl = 1;
04191         //  }
04192         //  else
04193         //      fl = -1;
04194         // }
04195         //}
04196 
04197         //for(int i=0; i<NumOfPoints; ++i)
04198         // pnt[i][2] += traf;
04199         //
04200         //
04201         //traf = 0;
04202         //traf_step = 1;
04204     }PY_CATCH;
04205 
04206     log3d.saveToFile("c:/test_trim2.iv");
04207     MeshObject aObject(mesh);
04208     return new MeshPy(&aObject);
04209     Py_Return;
04210 }
04211 
04212 
04213 //PyDoc_STRVAR(open_doc,
04214 //"open(string) -- Not implemnted for this Module so far.");
04215 //
04216 //PyDoc_STRVAR(inst_doc,
04217 //"insert(string, string) -- Not implemnted for this Module so far.");
04218 //
04219 //PyDoc_STRVAR(loft_doc,
04220 //"Creates a TopoShape with a test BSPLINE");
04221 //
04222 //PyDoc_STRVAR(useMesh,"useMesh(MeshObject) -- Shows the usage of Mesh objects from the Mesh Module.");
04223 
04224 
04225 /* registration table  */
04226 struct PyMethodDef Cam_methods[] =
04227 {
04228     {"open"   , open,   Py_NEWARGS, "open(string) -- Not implemented for this Module so far."
04229     },
04230     {"insert" , insert, Py_NEWARGS, "insert(string, string) -- Not implemented for this Module so far."},
04231     {"read"   , read,  1},
04232     {"createTestBSPLINE"   , createTestBSPLINE,  Py_NEWARGS, "Creates a TopoShape with a test BSPLINE"},
04233     {"createTestApproximate" , createTestApproximate, 1},
04234     //  {"makeToolPath", makeToolPath, 1},
04235     {"offset", offset, 1},
04236 // {"offset_mesh", offset_mesh, 1},
04237     {"tesselateShape",tesselateShape,1},
04238     {"tess_shape",tess_shape,1},
04239 // {"cut", cut, 1},
04240     {"createPlane" , createPlane, 1},
04241     {"best_fit_test", best_fit_test,1},
04242     {"best_fit_complete", best_fit_complete,1},
04243     {"best_fit_coarse", best_fit_coarse ,1},
04244     {"createBox" , createBox, 1},
04245     {"spring_back", spring_back, 1},
04246     {"useMesh" , useMesh, Py_NEWARGS, "useMesh(MeshObject) -- Shows the usage of Mesh objects from the Mesh Module." },
04247     //{"MyApprox" , MyApprox, Py_NEWARGS, "MyApprox(MeshObject) -- My test approximate." },
04248     {"openDYNA" , openDYNA, Py_NEWARGS, "Open up a DYNA file, triangulate it, and returns a mesh"},
04249     {NULL     , NULL      }        /* end of table marker */
04250 };
04251 

Generated on Wed Nov 23 18:59:55 2011 for FreeCAD by  doxygen 1.6.1