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