From e1d182688d507a0cfe444e70dc69e56d9170a61b Mon Sep 17 00:00:00 2001 From: Fritz Mueller Date: Wed, 21 Aug 2019 15:52:42 -0700 Subject: [PATCH 1/5] Add demo jupyter notebook --- cgal-demo.ipynb | 305 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 305 insertions(+) create mode 100644 cgal-demo.ipynb diff --git a/cgal-demo.ipynb b/cgal-demo.ipynb new file mode 100644 index 0000000..bea9b61 --- /dev/null +++ b/cgal-demo.ipynb @@ -0,0 +1,305 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "true" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "CGAL = require('.')\n", + "true" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Polygon2 {}" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "poly = new CGAL.Polygon2([\n", + " [0, 0.3],\n", + " [1, 0.6],\n", + " [2, 0.9]\n", + "])" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.7755575615628914e-17\n", + "false\n" + ] + } + ], + "source": [ + "console.log(poly.area())\n", + "console.log(CGAL.collinear.apply(null, poly.coords()))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[\n", + " [ '0', '5404319552844595/18014398509481984' ],\n", + " [ '1', '5404319552844595/9007199254740992' ],\n", + " [ '2', '8106479329266893/9007199254740992' ]\n", + "]\n", + "[ [ 0, 0.3 ], [ 1, 0.6 ], [ 2, 0.9 ] ]\n" + ] + } + ], + "source": [ + "console.log(poly.toPOD())\n", + "console.log(poly.toPOD(false))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "false\n", + "false\n" + ] + } + ], + "source": [ + "console.log(CGAL.collinear.apply(null, poly.toPOD()))\n", + "console.log(CGAL.collinear.apply(null, poly.toPOD(false)))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Polygon2 {}" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "poly = new CGAL.Polygon2([\n", + " ['0', '0.3'],\n", + " ['1', '0.6'],\n", + " ['2', '0.9']\n", + "])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "true\n" + ] + } + ], + "source": [ + "console.log(poly.area())\n", + "console.log(CGAL.collinear.apply(null, poly.coords()))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ [ '0', '3/10' ], [ '1', '3/5' ], [ '2', '9/10' ] ]\n", + "[\n", + " [ 0, 0.30000000000000004 ],\n", + " [ 1, 0.6000000000000001 ],\n", + " [ 2, 0.8999999999999999 ]\n", + "]\n" + ] + } + ], + "source": [ + "console.log(poly.toPOD())\n", + "console.log(poly.toPOD(false))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "true\n", + "false\n" + ] + } + ], + "source": [ + "console.log(CGAL.collinear.apply(null, poly.toPOD()))\n", + "console.log(CGAL.collinear.apply(null, poly.toPOD(false)))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Polygon2 {}" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p = new CGAL.Polygon2([[0,0],[1,0],[0,1]])" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "PolygonSet2 {}" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ps = new CGAL.PolygonSet2([[0,0],[1,0],[0,1]])" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Arrangement2 {}" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a = ps.arrangement()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{\n", + " numFaces: 2,\n", + " numUnboundedFaces: 1,\n", + " numBoundedFaces: 1,\n", + " numVertices: 3,\n", + " boundedFaces: [ [ [Array], [Array], [Array] ] ]\n", + "}" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a.toPOD()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "a." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Javascript (Node.js)", + "language": "javascript", + "name": "javascript" + }, + "language_info": { + "file_extension": ".js", + "mimetype": "application/javascript", + "name": "javascript", + "version": "12.8.1" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From fc1f576d9521a46bea95765c045ef64c6caf4474 Mon Sep 17 00:00:00 2001 From: Fritz Mueller Date: Wed, 21 Aug 2019 15:57:37 -0700 Subject: [PATCH 2/5] Remove vacuous NefPolyHedron2 wrapper --- binding.gyp | 1 - spec/NefPolyhedron2.spec.js | 10 --------- src/NefPolyhedron2.cc | 36 -------------------------------- src/NefPolyhedron2.h | 41 ------------------------------------- src/cgal.cc | 2 -- 5 files changed, 90 deletions(-) delete mode 100644 spec/NefPolyhedron2.spec.js delete mode 100644 src/NefPolyhedron2.cc delete mode 100644 src/NefPolyhedron2.h diff --git a/binding.gyp b/binding.gyp index 8a85b33..5f59481 100644 --- a/binding.gyp +++ b/binding.gyp @@ -15,7 +15,6 @@ 'src/D2.cc', 'src/Direction2.cc', 'src/Line2.cc', - 'src/NefPolyhedron2.cc', 'src/Point2.cc', 'src/Polygon2.cc', 'src/PolygonSet2.cc', diff --git a/spec/NefPolyhedron2.spec.js b/spec/NefPolyhedron2.spec.js deleted file mode 100644 index 9ac4cd9..0000000 --- a/spec/NefPolyhedron2.spec.js +++ /dev/null @@ -1,10 +0,0 @@ -describe("CGAL.NefPolyhedron2", function() { - 'use strict'; - - var CGAL = require('..'); - - it ("should pass vacuous unit test", function() { - expect(true).toBeTruthy(); - }); - -}); diff --git a/src/NefPolyhedron2.cc b/src/NefPolyhedron2.cc deleted file mode 100644 index b3ab7c7..0000000 --- a/src/NefPolyhedron2.cc +++ /dev/null @@ -1,36 +0,0 @@ -#include "NefPolyhedron2.h" -#include "cgal_args.h" - -using namespace std; - - -NefPolyhedron2::NefPolyhedron2(Napi::CallbackInfo const& info) -: CGALWrapper(info) -{ -} - - -const char *NefPolyhedron2::Name = "NefPolyhedron2"; - - -void NefPolyhedron2::AddProperties(Napi::Env env, vector& properties) -{ - properties.insert(properties.end(), { - StaticValue("EXCLUDED", Napi::Number::New(env, Nef_polyhedron_2::EXCLUDED), napi_enumerable), - StaticValue("INCLUDED", Napi::Number::New(env, Nef_polyhedron_2::INCLUDED), napi_enumerable), - StaticValue("EMPTY", Napi::Number::New(env, Nef_polyhedron_2::EMPTY), napi_enumerable), - StaticValue("COMPLETE", Napi::Number::New(env, Nef_polyhedron_2::COMPLETE), napi_enumerable) - }); -} - - -bool NefPolyhedron2::ParseArg(Napi::Env env, Napi::Value arg, Nef_polyhedron_2& receiver) -{ - return false; -} - - -Napi::Value NefPolyhedron2::ToPOD(Napi::Env env, Nef_polyhedron_2 const& npoly, bool precise) -{ - return Napi::Object::New(env); -} diff --git a/src/NefPolyhedron2.h b/src/NefPolyhedron2.h deleted file mode 100644 index e379737..0000000 --- a/src/NefPolyhedron2.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef NEFPOLYHEDRON2_H -#define NEFPOLYHEDRON2_H - -#include "CGALWrapper.h" -#include "cgal_types.h" -#include "napi.h" - -#include - -class NefPolyhedron2 : public CGALWrapper -{ -public: - - NefPolyhedron2(Napi::CallbackInfo const& info); - - // The name to be used for our JS class. - static const char *Name; - - // Add our property descriptors (instance and static methods and values) to the list that will - // be used to define our JS class. Called indirectly at module load time via the module - // init function. - static void AddProperties(Napi::Env env, std::vector& properties); - - // Attempt to parse a JS argument into the CGAL object referred to by receiver. Returns true - // if parse was successful, false otherwise. - static bool ParseArg(Napi::Env env, Napi::Value arg, Nef_polyhedron_2& receiver); - - // Convert a CGAL object of the wrapped class to a POD JS object. If precise is set to false, - // will attempt to render in terms of doubles for coordinates, and may lose precision. - static Napi::Value ToPOD(Napi::Env env, Nef_polyhedron_2 const& npoly, bool precise=true); - -private: - - // - //----- The following methods will be callable from JS. These will mostly match - // the semantics and names of the wrapped CGAL class. - // - -}; - -#endif // !defined(NEFPOLYHEDRON2_H) diff --git a/src/cgal.cc b/src/cgal.cc index 51589ec..cd08aa5 100644 --- a/src/cgal.cc +++ b/src/cgal.cc @@ -8,7 +8,6 @@ #include "D2.h" #include "Direction2.h" #include "Line2.h" -#include "NefPolyhedron2.h" #include "Point2.h" #include "Polygon2.h" #include "PolygonSet2.h" @@ -109,7 +108,6 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) D2::Init(env, exports); Direction2::Init(env, exports); Line2::Init(env, exports); - NefPolyhedron2::Init(env, exports); Point2::Init(env, exports); Polygon2::Init(env, exports); PolygonSet2::Init(env, exports); From 32d73f223c65dfe58eaccc76e006d0f0f8b22b7e Mon Sep 17 00:00:00 2001 From: Fritz Mueller Date: Thu, 22 Aug 2019 21:26:04 -0700 Subject: [PATCH 3/5] Add explicit wrappers for K::FT and K::RT --- spec/Point2.spec.js | 4 +-- spec/Polygon2.spec.js | 8 ++--- spec/PolygonSet2.spec.js | 8 ++--- src/AffTransformation2.cc | 33 +++++++------------- src/CGALWrapper-inl.h | 17 ----------- src/CGALWrapper.h | 3 -- src/D2.cc | 6 ++-- src/Direction2.cc | 32 ++++---------------- src/Line2.cc | 43 +++++--------------------- src/NumberTypes-inl.h | 63 +++++++++++++++++++++++++++++++++++++++ src/NumberTypes.h | 47 +++++++++++++++++++++++++++++ src/Point2.cc | 54 ++++++++++----------------------- src/Polygon2.cc | 32 +++++++------------- src/Polygon2.h | 4 +-- src/Vector2.cc | 31 ++++--------------- src/cgal.cc | 3 ++ src/cgal_types.h | 14 ++++----- 17 files changed, 186 insertions(+), 216 deletions(-) create mode 100644 src/NumberTypes-inl.h create mode 100644 src/NumberTypes.h diff --git a/spec/Point2.spec.js b/spec/Point2.spec.js index bbea87d..e915982 100644 --- a/spec/Point2.spec.js +++ b/spec/Point2.spec.js @@ -36,7 +36,7 @@ describe("CGAL.Point2", function() { var p = new CGAL.Point2([1,2]); var q = p.transform([1, 0, 3, 0, 1, 3]); expect(q instanceof CGAL.Point2).toBeTruthy(); - expect(q.x()).toEqual(4); - expect(q.y()).toEqual(5); + expect(q.x().toPOD(false)).toEqual(4); + expect(q.y().toPOD(false)).toEqual(5); }); }); diff --git a/spec/Polygon2.spec.js b/spec/Polygon2.spec.js index eb10829..530d96e 100644 --- a/spec/Polygon2.spec.js +++ b/spec/Polygon2.spec.js @@ -87,11 +87,11 @@ describe("CGAL.Polygon2", function() { it ("area calculation should function as expected", function() { var p1 = new CGAL.Polygon2([[0,0],[1,0],[1,1],[0,1]]); - expect(p1.area()).toBeCloseTo(1.0, 4); + expect(p1.area().toPOD(false)).toBeCloseTo(1.0, 4); var p2 = new CGAL.Polygon2([[0,0],[1,0],[1,1]]); - expect(p2.area()).toBeCloseTo(0.5, 4); + expect(p2.area().toPOD(false)).toBeCloseTo(0.5, 4); var p3 = new CGAL.Polygon2([[0,0],[0,1],[1,1],[1,0]]); - expect(p3.area()).toBeCloseTo(-1.0, 4); + expect(p3.area().toPOD(false)).toBeCloseTo(-1.0, 4); }); it ("coords method should function as expected", function() { @@ -103,7 +103,7 @@ describe("CGAL.Polygon2", function() { it ("should support transformation", function() { var p1 = new CGAL.Polygon2([[0, 0], [1, 0], [1, 1], [0, 1]]); var p2; - expect(function() {p2 = CGAL.Polygon2.transform([1, 0, 3, 0, 1, 3], p1);}).not.toThrow(); + expect(function() {p2 = p1.transform([1, 0, 3, 0, 1, 3]);}).not.toThrow(); expect(p2.toPOD(false)[0]).toEqual([3,3]); }); }); diff --git a/spec/PolygonSet2.spec.js b/spec/PolygonSet2.spec.js index 7cadf61..6f2f522 100644 --- a/spec/PolygonSet2.spec.js +++ b/spec/PolygonSet2.spec.js @@ -52,12 +52,10 @@ describe("CGAL.PolygontSet2", function() { }); it("shouldn't crash with an arbitrary polygon", function() { - var p = new CGAL.PolygonWithHoles2([[6100923.311666324,1980224.243333262,0],[6100912.611666321,1980224.243333262,0],[6100915.794999664,1980407.8266666064,0],[6100919.9116663225,1980518.743333271,0],[6100925.153332998,1980558.601666599,0],[6100931.694999656,1980608.4349999423,0],[6100939.994999653,1980882.4766665967,0],[6100942.536666323,1980948.9266666067,0],[6100944.428332984,1980998.4516666057,0],[6100945.569999651,1981028.4766666016,0],[6100950.8866663305,1981167.4599999276,0],[6100951.019999659,1981173.7933332773,0],[6100951.053332984,1981180.1349999434,0],[6100950.969999661,1981186.476666597,0],[6100950.786666321,1981192.809999941,0],[6100950.478332985,1981199.1433332756,0],[6100950.061666327,1981205.4683332697,0],[6100949.544999661,1981211.7933332764,0],[6100948.911666321,1981218.101666599,0],[6100948.16999966,1981224.3933332744,0],[6100947.311666326,1981230.6766666004,0],[6100946.353332984,1981236.9433332668,0],[6100945.278332992,1981243.1933332738,0],[6100944.103332986,1981249.418333278,0],[6100942.811666326,1981255.6266666076,0],[6100941.411666324,1981261.8099999405,0],[6100939.91166632,1981267.9683332671,0],[6100938.294999659,1981274.0933332692,0],[6100936.578332991,1981280.2016666117,0],[6100934.753332993,1981286.276666611,0],[6100932.828332997,1981292.3099999449,0],[6100930.786666322,1981298.3183332698,0],[6100928.644999658,1981304.2849999324,0],[6100926.403332997,1981310.2183332762,0],[6100921.82833299,1981321.4349999384,0],[6100911.919999662,1981317.0266666072,0],[6100890.811666324,1981363.4183332718,0],[6100885.428332986,1981377.959999936,0],[6100882.644999654,1981386.0849999378,0],[6100880.011666333,1981394.2433332645,0],[6100877.511666332,1981402.4433332689,0],[6100875.1616663225,1981410.6933332637,0],[6100872.953332993,1981418.9849999452,0],[6100870.894999654,1981427.3099999425,0],[6100868.969999658,1981435.6683332769,0],[6100867.2033329895,1981444.0599999453,0],[6100865.578332993,1981452.4766666016,0],[6100862.0366663225,1981461.1099999368,0],[6100862.669999664,1981468.2266665967,0],[6100862.778332996,1981469.4016666124,0],[6100864.361666322,1981547.0849999376,0],[6101061.178332985,1983574.5349999317,0],[6101082.0033329865,1983789.0849999273,0],[6101133.053332987,1983787.7766666121,0],[6101121.7366663255,1983760.9599999322,0],[6101119.136666328,1983754.143333273,0],[6101116.661666319,1983747.2683332677,0],[6101114.286666321,1983740.3599999375,0],[6101112.036666318,1983733.4099999387,0],[6101110.928332988,1983729.7183332709,0],[6101109.928332989,1983726.426666606,0],[6101107.92833299,1983719.401666608,0],[6101106.686666331,1983714.7433332696,0],[6101106.053332988,1983712.3433332758,0],[6101104.303332989,1983705.2516666094,0],[6101103.553332987,1983702.00166661,0],[6101102.67833299,1983698.1349999495,0],[6101101.16999966,1983690.984999937,0],[6101099.794999658,1983683.8183332654,0],[6101098.53666632,1983676.6183332654,0],[6101097.586666315,1983670.5349999443,0],[6101097.419999661,1983669.4099999345,0],[6101096.411666322,1983662.1766666037,0],[6101094.786666319,1983647.6599999394,0],[6101094.169999662,1983640.3849999493,0],[6101093.969999662,1983637.393333276,0],[6101093.6783329835,1983633.0933332753,0],[6101093.46999966,1983628.993333258,0],[6101093.3116663275,1983625.8016666016,0],[6101093.144999654,1983620.8766666057,0],[6101093.069999651,1983618.5016666085,0],[6101093.019999655,1983614.8183332689,0],[6101092.953332992,1983609.3266666147,0],[6101091.861666321,1983575.2433332668,0],[6101091.786666318,1983572.7016666145,0],[6101086.469999662,1983406.5266666175,0],[6101075.161666324,1983052.3599999421,0],[6101064.9866663255,1982501.7099999357,0],[6101041.819999653,1982407.9266666023,0],[6101009.336666315,1982321.159999939,0],[6100984.194999651,1982129.4349999456,0],[6100970.028332992,1982131.2849999405,0],[6100969.319999651,1982131.3849999518,0],[6100956.30333299,1982032.1266666118,0],[6100940.569999655,1981912.1766666058,0],[6100940.494999646,1981911.6266666038,0],[6100940.453332992,1981911.293333278,0],[6100940.428332985,1981911.076666605,0],[6100940.403332997,1981910.9016666124,0],[6100940.361666326,1981910.5349999373,0],[6100940.328332994,1981910.309999945,0],[6100940.286666322,1981909.976666598,0],[6100940.253332987,1981909.7183332779,0],[6100940.211666317,1981909.4266665992,0],[6100940.144999658,1981908.868333263,0],[6100940.086666322,1981908.3183332642,0],[6100940.053332984,1981908.093333272,0],[6100940.011666332,1981907.7683332716,0],[6100939.944999655,1981907.2183332758,0],[6100939.911666323,1981906.9599999343,0],[6100939.878332991,1981906.6683332769,0],[6100939.811666329,1981906.0516665976,0],[6100939.753332987,1981905.5599999449,0],[6100939.686666323,1981905.00999994,0],[6100939.628332991,1981904.4683332816,0],[6100939.561666325,1981903.9099999424,0],[6100939.536666319,1981903.6849999502,0],[6100939.469999655,1981903.0266666117,0],[6100939.43666633,1981902.8016666041,0],[6100939.411666321,1981902.5266666124,0],[6100939.369999647,1981902.2516666024,0],[6100939.319999654,1981901.7016666066,0],[6100939.261666327,1981901.1016665958,0],[6100939.203332996,1981900.5933332685,0],[6100939.086666319,1981899.4933332617,0],[6100939.03666632,1981898.9349999437,0],[6100939.019999655,1981898.668333274,0],[6100938.978332984,1981898.384999951,0],[6100938.928332986,1981897.868333262,0],[6100938.91166632,1981897.7099999348,0],[6100938.869999649,1981897.27666661,0],[6100938.819999655,1981896.726666605,0],[6100938.761666329,1981896.168333275,0],[6100938.736666327,1981895.9016666175,0],[6100938.661666321,1981895.059999949,0],[6100938.6366663305,1981894.7599999483,0],[6100938.611666324,1981894.5183332693,0],[6100938.561666325,1981893.95999993,0],[6100938.536666323,1981893.643333276,0],[6100938.5116663305,1981893.401666606,0],[6100938.461666317,1981892.851666598,0],[6100938.419999662,1981892.293333274,0],[6100938.369999653,1981891.743333263,0],[6100938.361666322,1981891.5849999299,0],[6100938.328332994,1981891.184999939,0],[6100938.278332998,1981890.6349999495,0],[6100938.194999656,1981889.5266666112,0],[6100938.153332992,1981889.0433332836,0],[6100938.103332981,1981888.4183332762,0],[6100938.069999649,1981887.859999937,0],[6100938.019999659,1981887.3099999444,0],[6100937.986666322,1981886.7599999486,0],[6100937.944999651,1981886.2016666094,0],[6100937.928332984,1981885.9599999364,0],[6100937.903332996,1981885.6599999326,0],[6100937.853332985,1981885.0266666121,0],[6100937.803332987,1981884.0516666104,0],[6100937.753332989,1981883.4349999435,0],[6100937.719999655,1981882.9349999472,0],[6100937.686666326,1981882.3266666054,0],[6100937.619999646,1981881.2099999299,0],[6100937.603332984,1981881.0016666064,0],[6100937.57833299,1981880.6599999403,0],[6100937.561666324,1981880.2683332716,0],[6100937.561666325,1981880.1099999384,0],[6100937.519999655,1981879.5516665992,0],[6100937.486666322,1981878.9933332661,0],[6100937.461666316,1981878.4433332642,0],[6100937.428332985,1981877.8933332774,0],[6100937.403332996,1981877.3349999383,0],[6100937.369999652,1981876.7766666082,0],[6100937.344999661,1981876.2016666096,0],[6100937.319999652,1981875.6683332794,0],[6100937.303332984,1981875.3849999472,0],[6100937.29499966,1981875.10999994,0],[6100937.286666322,1981874.9099999417,0],[6100937.244999653,1981874.0099999395,0],[6100937.228332986,1981873.7016666043,0],[6100937.219999658,1981873.4516666094,0],[6100937.186666324,1981872.89333327,0],[6100937.186666328,1981872.6266666034,0],[6100937.178332986,1981872.3349999308,0],[6100937.153332995,1981871.7433332666,0],[6100937.136666331,1981871.2266665928,0],[6100937.111666327,1981870.668333284,0],[6100937.103332986,1981870.4349999453,0],[6100937.078332994,1981869.5266666058,0],[6100937.05333299,1981869.00166661,0],[6100937.01999966,1981867.9266665967,0],[6100936.994999647,1981867.0266666065,0],[6100936.994999649,1981866.7849999368,0],[6100936.961666321,1981865.6766666048,0],[6100936.9533329895,1981865.1183332654,0],[6100936.936666331,1981864.5599999537,0],[6100936.928332988,1981864.0099999458,0],[6100936.911666324,1981863.5016666001,0],[6100936.8866663305,1981861.7849999354,0],[6100936.878332991,1981861.5766666057,0],[6100936.869999648,1981861.2266666023,0],[6100936.86999965,1981860.6766666034,0],[6100936.853332987,1981859.5599999402,0],[6100936.8533329815,1981859.0099999444,0],[6100936.844999658,1981858.4516666052,0],[6100936.844999662,1981857.9016666124,0],[6100936.836666316,1981857.3433332732,0],[6100936.836666315,1981856.226666607,0],[6100936.819999651,1981855.676666599,0],[6100936.819999656,1981854.376666606,0],[6100936.8366663195,1981854.009999943,0],[6100936.83666632,1981852.159999939,0],[6100936.844999657,1981851.7849999387,0],[6100936.844999661,1981851.2849999333,0],[6100936.861666323,1981850.1183332675,0],[6100936.861666322,1981849.5599999465,0],[6100936.878332987,1981848.4516666054,0],[6100936.886666332,1981848.1766666013,0],[6100936.886666331,1981847.9016666126,0],[6100936.894999652,1981847.4099999417,0],[6100936.903332998,1981847.209999937,0],[6100936.903332997,1981846.7849999373,0],[6100936.911666323,1981846.4516666117,0],[6100936.919999658,1981846.2266666011,0],[6100936.919999664,1981846.0099999462,0],[6100936.92833299,1981845.6766666023,0],[6100936.953332994,1981845.118333263,0],[6100936.953332996,1981844.5266666112,0],[6100936.969999658,1981844.0099999495,0],[6100936.9783329815,1981843.451666604,0],[6100936.986666325,1981843.2849999366,0],[6100936.994999653,1981842.9016666145,0],[6100937.028332995,1981841.7849999268,0],[6100937.044999662,1981841.2516666027,0],[6100937.078332995,1981840.0683332682,0],[6100937.103332987,1981839.5683332658,0],[6100937.111666327,1981839.2016666092,0],[6100937.144999653,1981838.4266665997,0],[6100937.186666324,1981837.076666613,0],[6100937.75333299,1981823.4266665988,0],[6100945.053332989,1981643.8516665976,0],[6100940.053332989,1981643.6516666114,0],[6100945.186666331,1981517.501666604,0],[6100949.05333299,1981422.4099999343,0],[6100949.06999965,1981421.8516666011,0],[6100949.078332992,1981421.3599999454,0],[6100949.103332986,1981421.1766666032,0],[6100949.119999646,1981420.7433332661,0],[6100949.153332993,1981420.184999942,0],[6100949.178332986,1981419.6349999462,0],[6100949.194999655,1981419.293333277,0],[6100949.211666318,1981419.0849999322,0],[6100949.228332981,1981418.7433332661,0],[6100949.236666325,1981418.5266666142,0],[6100949.303332987,1981417.4183332792,0],[6100949.319999649,1981417.1266666066,0],[6100949.336666315,1981416.85999994,0],[6100949.3616663255,1981416.5683332644,0],[6100949.378332991,1981416.3183332663,0],[6100949.403332995,1981415.8099999481,0],[6100949.4533329895,1981415.2016666,0],[6100949.486666324,1981414.618333261,0],[6100949.578332995,1981413.468333273,0],[6100949.619999653,1981412.9849999393,0],[6100949.644999653,1981412.6433332763,0],[6100949.661666318,1981412.4349999435,0],[6100949.7033329895,1981411.8766666043,0],[6100949.719999658,1981411.6766666027,0],[6100949.78666632,1981410.9766666018,0],[6100949.803332987,1981410.7683332723,0],[6100949.853332983,1981410.2266666016,0],[6100949.903332995,1981409.6599999343,0],[6100949.936666324,1981409.4266666109,0],[6100949.953332993,1981409.1099999475,0],[6100950.003332992,1981408.5599999456,0],[6100950.03666632,1981408.293333276,0],[6100950.0616663275,1981408.0016665973,0],[6100950.119999647,1981407.4599999296,0],[6100950.153332998,1981407.1433332756,0],[6100950.16999966,1981406.9016666056,0],[6100950.211666316,1981406.5349999305,0],[6100950.236666323,1981406.3433332695,0],[6100950.303332987,1981405.801666605,0],[6100950.353332985,1981405.2433332626,0],[6100950.411666324,1981404.693333273,0],[6100950.478332984,1981404.13499994,0],[6100950.811666327,1981401.3766666022,0],[6100950.83666632,1981401.2016666066,0],[6100950.88666633,1981400.8266666094,0],[6100950.9616663195,1981400.2183332767,0],[6100951.019999658,1981399.7266665965,0],[6100951.103332986,1981399.17666661,0],[6100951.1783329835,1981398.6349999453,0],[6100951.261666331,1981398.076666603,0],[6100951.336666319,1981397.5266666133,0],[6100951.394999659,1981397.2016666098,0],[6100951.419999662,1981396.9766665993,0],[6100951.494999648,1981396.4266666065,0],[6100951.569999649,1981395.9183332762,0],[6100951.661666323,1981395.326666606,0],[6100951.694999654,1981395.1266666043,0],[6100951.744999652,1981394.776666613,0],[6100951.803332984,1981394.434999938,0],[6100951.836666321,1981394.193333268,0],[6100952.0116663305,1981393.1266666013,0],[6100952.094999662,1981392.5849999369,0],[6100952.278332995,1981391.4849999421,0],[6100952.369999648,1981390.9433332654,0],[6100952.469999658,1981390.3933332725,0],[6100952.5533329835,1981389.9099999329,0],[6100952.594999661,1981389.6433332693,0],[6100952.661666322,1981389.3016666092,0],[6100952.74499965,1981388.8266666068,0],[6100952.861666322,1981388.2099999366,0],[6100952.928332987,1981387.8266666052,0],[6100952.969999657,1981387.6599999378,0],[6100953.06166633,1981387.109999939,0],[6100953.161666321,1981386.5683332684,0],[6100953.228332985,1981386.2433332647,0],[6100953.369999646,1981385.4766666018,0],[6100953.478332984,1981384.9349999435,0],[6100953.519999652,1981384.7183332765,0],[6100953.586666318,1981384.3849999506,0],[6100953.68666633,1981383.8433332709,0],[6100953.819999648,1981383.2933332752,0],[6100953.919999663,1981382.7516666045,0],[6100953.986666326,1981382.4349999535,0],[6100954.036666323,1981382.218333271,0],[6100954.14499966,1981381.6683332785,0],[6100954.378332987,1981380.576666609,0],[6100954.494999648,1981380.0599999442,0],[6100954.61999965,1981379.4933332675,0],[6100954.7033329895,1981379.1266666108,0],[6100954.736666325,1981378.9516666061,0],[6100954.778332998,1981378.7766666135,0],[6100954.861666326,1981378.4099999324,0],[6100954.953332991,1981378.0183332667,0],[6100954.986666326,1981377.8683332647,0],[6100955.103332987,1981377.3266666124,0],[6100955.228332982,1981376.7849999357,0],[6100955.361666327,1981376.2433332712,0],[6100955.403332998,1981376.0433332727,0],[6100955.4866663255,1981375.7016666126,0],[6100955.561666329,1981375.401666615,0],[6100955.619999652,1981375.159999939,0],[6100955.653332993,1981375.001666612,0],[6100955.744999647,1981374.6266665997,0],[6100955.869999653,1981374.0683332665,0],[6100956.011666328,1981373.5433332797,0],[6100956.061666325,1981373.3516665972,0],[6100956.161666319,1981372.9349999437,0],[6100956.278332995,1981372.4683332695,0],[6100956.411666318,1981371.926666602,0],[6100956.46166632,1981371.7266666065,0],[6100956.694999652,1981370.8516665979,0],[6100956.828332993,1981370.3099999395,0],[6100956.978332981,1981369.7766666093,0],[6100957.119999649,1981369.2349999386,0],[6100957.403332998,1981368.168333275,0],[6100957.486666326,1981367.859999943,0],[6100957.553332987,1981367.6266666104,0],[6100957.70333299,1981367.093333271,0],[6100957.78666632,1981366.7766666077,0],[6100957.994999646,1981366.0266666135,0],[6100958.153332994,1981365.451666615,0],[6100958.311666326,1981364.9516666096,0],[6100958.469999657,1981364.3599999393,0],[6100958.603332986,1981363.884999946,0],[6100958.744999646,1981363.4183332748,0],[6100958.803332987,1981363.2016666078,0],[6100958.919999658,1981362.8183332703,0],[6100959.078332991,1981362.2849999368,0],[6100959.286666323,1981361.5933332704,0],[6100959.403332999,1981361.2266666046,0],[6100959.494999652,1981360.8933332728,0],[6100959.561666324,1981360.693333262,0],[6100959.719999663,1981360.1599999287,0],[6100959.886666332,1981359.6516666135,0],[6100960.0533329835,1981359.1016665965,0],[6100960.219999662,1981358.568333263,0],[6100960.386666332,1981358.0433332792,0],[6100960.553332987,1981357.509999949,0],[6100960.736666326,1981356.984999941,0],[6100960.894999652,1981356.4516666045,0],[6100961.069999656,1981355.9266665962,0],[6100961.244999652,1981355.393333269,0],[6100961.594999658,1981354.3433332741,0],[6100961.761666333,1981353.8516666,0],[6100961.828332995,1981353.659999942,0],[6100961.95333299,1981353.293333279,0],[6100962.128332992,1981352.768333271,0],[6100962.303332987,1981352.2349999405,0],[6100962.494999646,1981351.7183332758,0],[6100962.594999657,1981351.4266666032,0],[6100962.678332984,1981351.1933332677,0],[6100962.811666324,1981350.801666599,0],[6100963.044999661,1981350.1433332665,0],[6100963.236666321,1981349.6183332645,0],[6100963.586666321,1981348.6349999406,0],[6100963.6616663225,1981348.4266666078,0],[6100963.803332988,1981348.0516666016,0],[6100963.878332987,1981347.8349999315,0],[6100963.994999649,1981347.534999943,0],[6100964.186666326,1981347.0099999532,0],[6100964.378332993,1981346.493333264,0],[6100964.578332994,1981345.968333271,0],[6100964.769999658,1981345.443333269,0],[6100964.878332991,1981345.1766666023,0],[6100964.969999659,1981344.926666595,0],[6100965.18666633,1981344.3599999398,0],[6100965.369999654,1981343.8933332656,0],[6100965.769999657,1981342.859999939,0],[6100965.978332985,1981342.3433332713,0],[6100966.178332989,1981341.8266666066,0],[6100966.386666333,1981341.309999948,0],[6100966.486666325,1981341.0599999407,0],[6100966.786666321,1981340.3183332717,0],[6100967.011666334,1981339.7599999446,0],[6100967.353332981,1981338.9266666044,0],[6100967.428332989,1981338.7349999342,0],[6100967.653332998,1981338.2183332785,0],[6100967.8533329815,1981337.7099999296,0],[6100968.069999656,1981337.2016666054,0],[6100968.286666319,1981336.6849999437,0],[6100968.503332987,1981336.1766666071,0],[6100968.728332984,1981335.6683332766,0],[6100968.8283329895,1981335.4183332755,0],[6100968.944999651,1981335.151666615,0],[6100969.186666324,1981334.5849999385,0],[6100969.386666331,1981334.134999945,0],[6100969.636666329,1981333.5683332714,0],[6100969.83666632,1981333.1183332626,0],[6100969.919999658,1981332.9349999388,0],[6100970.28666632,1981332.0933332737,0],[6100970.419999661,1981331.8099999414,0],[6100970.51166633,1981331.5933332713,0],[6100970.578332994,1981331.459999935,0],[6100971.103332982,1981330.3016666034,0],[6100971.203332996,1981330.0766666082,0],[6100971.294999659,1981329.893333275,0],[6100971.436666326,1981329.576666615,0],[6100971.669999658,1981329.0599999472,0],[6100971.736666326,1981328.9266666016,0],[6100971.903333,1981328.568333264,0],[6100972.144999652,1981328.0599999365,0],[6100972.219999658,1981327.8849999472,0],[6100972.386666332,1981327.5599999465,0],[6100972.586666321,1981327.1099999377,0],[6100972.678332986,1981326.9183332797,0],[6100972.853332985,1981326.5599999481,0],[6100973.003332988,1981326.2433332633,0],[6100973.094999655,1981326.0599999458,0],[6100973.1866663275,1981325.8683332633,0],[6100973.336666319,1981325.5599999405,0],[6100973.578332994,1981325.0683332693,0],[6100973.68666633,1981324.8266666117,0],[6100974.069999652,1981324.0599999458,0],[6100974.194999652,1981323.7933332762,0],[6100974.419999663,1981323.3433332734,0],[6100974.569999651,1981323.0599999444,0],[6100974.711666317,1981322.7683332718,0],[6100974.8116663275,1981322.5683332733,0],[6100976.319999653,1981319.5933332685,0],[6100976.853332984,1981318.5766666138,0],[6100977.09499966,1981318.1183332677,0],[6100977.361666323,1981317.6266666027,0],[6100977.486666322,1981317.3766666078,0],[6100977.611666323,1981317.134999944,0],[6100977.678332986,1981317.0099999448,0],[6100977.87833299,1981316.6433332637,0],[6100978.053332988,1981316.3099999381,0],[6100978.136666328,1981316.1599999361,0],[6100978.21999966,1981315.9933332657,0],[6100978.403332993,1981315.6683332804,0],[6100978.7033329895,1981315.1183332694,0],[6100977.503332987,1981314.4683332774,0],[6100974.303332989,1981312.7266666037,0],[6100974.811666326,1981311.8099999512,0],[6100974.911666323,1981311.6183332657,0],[6100975.06999965,1981311.318333268,0],[6100975.328332992,1981310.8349999404,0],[6100975.594999655,1981310.3433332723,0],[6100976.111666326,1981309.3599999454,0],[6100976.378332989,1981308.8683332652,0],[6100976.636666327,1981308.3766666034,0],[6100976.778332994,1981308.1016665993,0],[6100976.894999658,1981307.8849999416,0],[6100977.028332998,1981307.6266666031,0],[6100977.153332992,1981307.3933332704,0],[6100977.403332993,1981306.9016666117,0],[6100977.561666324,1981306.6016665986,0],[6100977.661666324,1981306.4099999375,0],[6100977.803332985,1981306.1516666175,0],[6100978.061666329,1981305.6349999465,0],[6100978.428332985,1981304.9266665992,0],[6100978.678332988,1981304.4266666002,0],[6100978.928332986,1981303.9433332693,0],[6100979.111666325,1981303.593333272,0],[6100979.436666324,1981302.943333271,0],[6100979.6866663275,1981302.4516666092,0],[6100979.953332993,1981301.9099999415,0],[6100980.428332989,1981300.9599999336,0],[6100980.669999663,1981300.4599999343,0],[6100982.861666325,1981295.9599999322,0],[6100983.111666321,1981295.4349999393,0],[6100983.336666318,1981294.95999994,0],[6100983.511666329,1981294.5849999336,0],[6100983.594999661,1981294.4183332783,0],[6100983.803332986,1981293.951666613,0],[6100984.044999662,1981293.451666617,0],[6100984.278332999,1981292.9516666057,0],[6100984.519999656,1981292.4433332658,0],[6100984.744999649,1981291.9433332758,0],[6100985.211666315,1981290.9266666027,0],[6100985.444999652,1981290.4266666034,0],[6100985.586666318,1981290.1099999403,0],[6100985.669999659,1981289.9183332731,0],[6100985.8283329895,1981289.5683332665,0],[6100985.91999966,1981289.3516666025,0],[6100986.1283329865,1981288.9099999403,0],[6100986.353332982,1981288.4016666068,0],[6100986.436666327,1981288.218333274,0],[6100986.569999654,1981287.8933332702,0],[6100986.803332986,1981287.384999946,0],[6100987.028332993,1981286.8766666094,0],[6100987.094999658,1981286.734999945,0],[6100987.253332987,1981286.3683332605,0],[6100987.478332982,1981285.8599999393,0],[6100987.553332984,1981285.701666603,0],[6100987.919999664,1981284.8433332723,0],[6100988.003332987,1981284.6516666082,0],[6100988.144999655,1981284.3349999327,0],[6100988.361666326,1981283.8266666115,0],[6100988.586666317,1981283.3099999435,0],[6100988.803332991,1981282.8016666009,0],[6100988.878332987,1981282.6016666056,0],[6100989.019999659,1981282.2933332734,0],[6100989.161666318,1981281.968333279,0],[6100989.236666324,1981281.776666615,0],[6100989.386666332,1981281.4266665992,0],[6100989.453332992,1981281.268333272,0],[6100989.569999653,1981280.984999937,0],[6100989.68666633,1981280.7183332734,0],[6100989.886666331,1981280.2433332677,0],[6100989.9866663255,1981280.001666604,0],[6100990.103332985,1981279.726666603,0],[6100990.244999648,1981279.3683332654,0],[6100990.31166633,1981279.2183332788,0],[6100990.519999656,1981278.7016666017,0],[6100990.736666321,1981278.1849999463,0],[6100990.95333299,1981277.6766666097,0],[6100991.153332996,1981277.1599999387,0],[6100991.278332997,1981276.8516666067,0],[6100991.569999649,1981276.1266666125,0],[6100991.778332999,1981275.6183332696,0],[6100991.903332996,1981275.3016666004,0],[6100991.986666324,1981275.1016665958,0],[6100992.061666325,1981274.9099999378,0],[6100992.194999653,1981274.576666606,0],[6100992.394999651,1981274.0683332663,0],[6100992.594999655,1981273.5516666106,0],[6100992.794999658,1981273.0516666023,0],[6100993.003332992,1981272.5099999409,0],[6100993.386666331,1981271.5183332737,0],[6100993.478332984,1981271.2766666128,0],[6100993.603332986,1981270.9599999373,0],[6100993.803332985,1981270.4433332696,0],[6100994.011666332,1981269.8849999395,0],[6100994.394999655,1981268.87666661,0],[6100994.594999656,1981268.3599999452,0],[6100994.786666324,1981267.8433332774,0],[6100994.978332983,1981267.3183332752,0],[6100995.16999966,1981266.8016666074,0],[6100995.361666326,1981266.301666602,0],[6100995.561666329,1981265.759999953,0],[6100995.744999649,1981265.2349999477,0],[6100995.936666327,1981264.7183332709,0],[6100996.128332987,1981264.1933332686,0],[6100996.311666327,1981263.6599999415,0],[6100996.369999649,1981263.5266666142,0],[6100996.51166633,1981263.1016665993,0],[6100996.686666327,1981262.626666606,0],[6100996.878332987,1981262.1016666037,0],[6100996.986666322,1981261.7766666124,0],[6100997.061666329,1981261.5766666078,0],[6100997.261666328,1981261.0183332686,0],[6100997.428332984,1981260.5266666098,0],[6100997.511666333,1981260.2849999368,0],[6100997.6116663255,1981260.0016666045,0],[6100997.786666325,1981259.4766666056,0],[6100997.84499966,1981259.3183332724,0],[6100997.969999659,1981258.9516666096,0],[6100998.153332993,1981258.4266665983,0],[6100998.328332991,1981257.9016666084,0],[6100998.486666326,1981257.4349999435,0],[6100998.703332996,1981256.8016666078,0],[6100998.861666327,1981256.318333274,0],[6100998.9616663195,1981256.0349999357,0],[6100999.036666318,1981255.793333275,0],[6100999.136666329,1981255.509999949,0],[6100999.219999658,1981255.268333273,0],[6100999.294999661,1981255.026666606,0],[6100999.386666333,1981254.7433332647,0],[6100999.494999648,1981254.4266666016,0],[6100999.5533329835,1981254.2099999285,0],[6100999.686666325,1981253.8433332716,0],[6100999.903332998,1981253.1599999333,0],[6100999.986666326,1981252.9016666103,0],[6101000.078332992,1981252.6266666062,0],[6101000.24499965,1981252.093333276,0],[6101000.403332998,1981251.5683332677,0],[6101000.578332992,1981251.0516666,0],[6101000.753332992,1981250.5099999476,0],[6101000.844999659,1981250.2099999345,0],[6101000.919999661,1981249.976666602,0],[6101001.078332992,1981249.4516666122,0],[6101001.244999653,1981248.918333279,0],[6101001.319999655,1981248.6683332748,0],[6101001.411666321,1981248.3849999455,0],[6101001.578332995,1981247.8599999372,0],[6101001.719999661,1981247.376666613,0],[6101001.894999657,1981246.7933332738,0],[6101002.061666328,1981246.243333272,0],[6101002.219999661,1981245.726666601,0],[6101002.32833299,1981245.3599999351,0],[6101002.378332993,1981245.201666605,0],[6101002.536666323,1981244.6683332778,0],[6101002.844999656,1981243.601666599,0],[6101003.003332992,1981243.0683332656,0],[6101003.069999649,1981242.8516665956,0],[6101003.161666319,1981242.5349999415,0],[6101003.253332991,1981242.2016666036,0],[6101003.46999966,1981241.4516666064,0],[6101003.769999655,1981240.393333268,0],[6101003.844999655,1981240.1183332608,0],[6101003.919999658,1981239.8599999438,0],[6101004.011666329,1981239.5099999465,0],[6101004.069999652,1981239.3266666073,0],[6101004.178332985,1981238.9266666074,0],[6101004.219999661,1981238.7849999429,0],[6101004.369999646,1981238.2516666034,0],[6101004.503332992,1981237.7683332758,0],[6101004.544999661,1981237.5933332709,0],[6101004.661666322,1981237.1849999428,0],[6101004.8033329835,1981236.6516666096,0],[6101004.953332993,1981236.109999942,0],[6101005.011666329,1981235.8849999497,0],[6101005.094999659,1981235.5766666085,0],[6101005.19499965,1981235.184999949,0],[6101005.236666325,1981235.034999938,0],[6101005.3783329865,1981234.5016666015,0],[6101005.478332983,1981234.134999954,0],[6101005.519999657,1981233.9599999308,0],[6101005.569999651,1981233.7849999382,0],[6101005.661666324,1981233.4266666037,0],[6101005.8033329835,1981232.8849999483,0],[6101005.936666326,1981232.3516666028,0],[6101006.036666325,1981231.9766665995,0],[6101006.0783329895,1981231.8099999444,0],[6101006.128332987,1981231.6183332617,0],[6101006.269999652,1981231.034999938,0],[6101006.34499966,1981230.7349999312,0],[6101006.486666326,1981230.1933332605,0],[6101006.619999646,1981229.6599999303,0],[6101006.703332992,1981229.3183332672,0],[6101006.753332987,1981229.1183332657,0],[6101006.878332992,1981228.6016665979,0],[6101007.019999657,1981228.0349999457,0],[6101007.103332981,1981227.676666602,0],[6101007.144999652,1981227.5099999497,0],[6101007.186666329,1981227.3183332642,0],[6101007.278332995,1981226.9599999296,0],[6101007.361666324,1981226.6099999414,0],[6101007.403332997,1981226.418333274,0],[6101007.536666321,1981225.8766666097,0],[6101007.911666322,1981224.25166661,0],[6101008.036666318,1981223.7183332674,0],[6101008.086666319,1981223.493333263,0],[6101008.161666324,1981223.1683332745,0],[6101008.236666321,1981222.8599999426,0],[6101008.403332994,1981222.0849999364,0],[6101008.653332996,1981221.0016666104,0],[6101008.8866663305,1981219.918333275,0],[6101009.00333299,1981219.36833327,0],[6101009.044999662,1981219.1849999495,0],[6101009.128332989,1981218.8349999338,0],[6101009.236666328,1981218.2766666128,0],[6101009.353332982,1981217.7433332736,0],[6101009.453332996,1981217.2599999427,0],[6101009.586666318,1981216.6599999382,0],[6101009.694999651,1981216.1099999456,0],[6101009.8116663275,1981215.568333272,0],[6101009.836666319,1981215.4183332822,0],[6101009.91999966,1981215.0266666133,0],[6101010.028332997,1981214.4849999396,0],[6101010.136666328,1981213.9349999377,0],[6101010.186666327,1981213.693333265,0],[6101010.244999648,1981213.384999942,0],[6101010.278332997,1981213.2433332712,0],[6101010.353332984,1981212.8433332744,0],[6101010.461666318,1981212.3016666067,0],[6101010.486666321,1981212.1599999391,0],[6101010.569999652,1981211.7516666048,0],[6101010.669999661,1981211.2099999373,0],[6101010.778332996,1981210.6599999384,0],[6101010.878332992,1981210.1349999546,0],[6101010.986666326,1981209.5766666033,0],[6101011.05333299,1981209.2016666061,0],[6101011.094999661,1981209.0266666105,0],[6101011.236666327,1981208.1766666048,0],[6101011.286666319,1981207.9349999472,0],[6101011.36999965,1981207.4266666013,0],[6101011.478332986,1981206.8433332776,0],[6101011.678332989,1981205.7433332708,0],[6101011.744999648,1981205.3599999393,0],[6101011.769999656,1981205.201666603,0],[6101011.869999646,1981204.6516666075,0],[6101011.894999652,1981204.4683332744,0],[6101011.961666321,1981204.1099999368,0],[6101012.04499966,1981203.5766666064,0],[6101012.144999655,1981203.009999945,0],[6101012.19499965,1981202.7183332755,0],[6101012.236666324,1981202.459999934,0],[6101012.328332989,1981201.9099999322,0],[6101012.411666322,1981201.3599999333,0],[6101012.503332991,1981200.818333272,0],[6101012.594999661,1981200.268333267,0],[6101012.678332985,1981199.7099999308,0],[6101012.761666329,1981199.1683332752,0],[6101012.811666328,1981198.8349999406,0],[6101012.8533329815,1981198.6183332582,0],[6101012.9366663275,1981198.0683332654,0],[6101013.011666331,1981197.5183332697,0],[6101013.09499966,1981196.9933332615,0],[6101013.178332985,1981196.418333278,0],[6101013.261666329,1981195.8766666106,0],[6101013.294999659,1981195.6099999407,0],[6101013.336666317,1981195.3266666087,0],[6101013.419999664,1981194.7766666159,0],[6101013.494999649,1981194.2183332737,0],[6101013.578332995,1981193.6683332778,0],[6101013.6116663255,1981193.3849999518,0],[6101013.653332993,1981193.126666607,0],[6101013.7283329815,1981192.568333271,0],[6101013.761666332,1981192.3849999441,0],[6101013.803332991,1981192.018333272,0],[6101013.886666333,1981191.459999939,0],[6101013.944999655,1981190.9183332776,0],[6101014.09499966,1981189.8183332738,0],[6101014.1616663225,1981189.2683332658,0],[6101014.219999659,1981188.77666661,0],[6101014.278332994,1981188.3349999231,0],[6101014.3033329835,1981188.1099999463,0],[6101014.369999651,1981187.609999935,0],[6101014.436666326,1981187.0599999484,0],[6101014.469999662,1981186.718333273,0],[6101014.561666326,1981185.9599999385,0],[6101014.58666632,1981185.7183332716,0],[6101014.628332988,1981185.393333268,0],[6101014.694999655,1981184.7849999352,0],[6101014.753332987,1981184.3016666016,0],[6101014.7866663225,1981184.0183332723,0],[6101014.8116663275,1981183.7516666057,0],[6101014.878332987,1981183.2016666068,0],[6101014.894999652,1981183.0266666051,0],[6101014.936666331,1981182.6433332646,0],[6101015.111666326,1981180.9849999368,0],[6101015.161666319,1981180.4349999442,0],[6101015.186666326,1981180.2183332678,0],[6101015.219999657,1981179.8849999513,0],[6101015.278332994,1981179.2766666156,0],[6101015.328332993,1981178.7766666163,0],[6101015.353332985,1981178.5433332806,0],[6101015.378332987,1981178.2266666023,0],[6101015.428332988,1981177.6683332722,0],[6101015.44499965,1981177.5266666138,0],[6101015.4866663255,1981177.1183332733,0],[6101015.636666333,1981175.4599999364,0],[6101015.678332985,1981174.9016666124,0],[6101015.7283329815,1981174.3516665983,0],[6101015.8116663275,1981173.2433332663,0],[6101015.861666321,1981172.7099999299,0],[6101015.903332993,1981172.1349999437,0],[6101015.936666328,1981171.5849999264,0],[6101015.953332996,1981171.4349999488,0],[6101015.986666321,1981171.0266666117,0],[6101016.011666331,1981170.676666605,0],[6101016.044999665,1981170.2599999458,0],[6101016.094999662,1981169.56833327,0],[6101016.103332983,1981169.3683332654,0],[6101016.144999651,1981168.8099999507,0],[6101016.1783329835,1981168.2599999458,0],[6101016.203332993,1981167.9683332792,0],[6101016.31999965,1981166.0266666103,0],[6101016.353332985,1981165.4849999426,0],[6101016.36999965,1981165.1849999388,0],[6101016.386666332,1981164.9266665974,0],[6101016.394999656,1981164.6599999368,0],[6101016.411666319,1981164.3766666045,0],[6101016.419999662,1981164.0933332723,0],[6101016.444999655,1981163.8183332684,0],[6101016.453332991,1981163.5933332792,0],[6101016.478332984,1981163.2599999474,0],[6101016.553332989,1981161.6016665953,0],[6101016.569999649,1981161.2933332785,0],[6101016.57833299,1981161.0433332773,0],[6101016.653332994,1981159.3766666062,0],[6101016.66166632,1981159.151666611,0],[6101016.661666321,1981158.818333273,0],[6101016.678332986,1981158.5766666094,0],[6101016.694999652,1981158.2683332681,0],[6101016.711666316,1981157.709999935,0],[6101016.736666321,1981157.1599999361,0],[6101016.75333299,1981156.7683332735,0],[6101016.753332987,1981156.601666591,0],[6101016.769999656,1981156.043333276,0],[6101016.794999664,1981155.493333262,0],[6101016.80333299,1981154.9349999472,0],[6101016.828332996,1981154.1099999472,0],[6101016.8283329895,1981153.826666606,0],[6101016.836666316,1981153.5849999299,0],[6101016.844999655,1981153.2683332728,0],[6101016.853332985,1981152.7183332709,0],[6101016.861666326,1981152.534999941,0],[6101016.869999646,1981152.1599999378,0],[6101016.86999965,1981151.984999933,0],[6101016.878332991,1981151.6016666016,0],[6101016.903332997,1981149.9433332647,0],[6101016.919999664,1981149.5266666175,0],[6101016.91999966,1981148.2099999315,0],[6101016.928332987,1981147.7183332727,0],[6101016.9283329835,1981147.1599999396,0],[6101016.936666328,1981146.6099999377,0],[6101016.936666328,1981144.3933332677,0],[6101016.928332984,1981143.8266666064,0],[6101016.92833299,1981142.7183332834,0],[6101016.919999662,1981142.1599999382,0],[6101016.919999664,1981141.0516666062,0],[6101016.903332997,1981140.7849999396,0],[6101016.903332992,1981140.4516666047,0],[6101016.894999654,1981139.9433332742,0],[6101016.8866663305,1981139.5433332834,0],[6101016.886666327,1981139.3849999502,0],[6101016.878332991,1981138.826666608,0],[6101016.861666322,1981138.2683332718,0],[6101016.861666326,1981137.9766666053,0],[6101016.8533329815,1981137.718333273,0],[6101008.544999666,1980751.3266666124,0],[6101005.103332987,1980591.1683332778,0],[6101004.661666321,1980570.7183332695,0],[6101004.003332987,1980540.0433332818,0],[6101002.494999649,1980469.5183332695,0],[6100996.011666334,1980168.1266666048,0],[6100993.5116663305,1980168.1766665983,0],[6100993.486666321,1980166.9516666138,0],[6100993.461666316,1980165.8433332667,0],[6100993.328332995,1980161.4016666105,0],[6100993.203332993,1980158.0683332682,0],[6100993.153332994,1980156.9599999331,0],[6100993.111666321,1980155.8516666011,0],[6100993.061666326,1980154.743333263,0],[6100993.0033329865,1980153.6349999404,0],[6100992.953332995,1980152.5183332772,0],[6100992.778332992,1980149.193333263,0],[6100992.711666316,1980148.084999937,0],[6100992.636666329,1980146.976666605,0],[6100992.578332995,1980145.868333267,0],[6100992.5116663305,1980144.751666613,0],[6100992.2866663225,1980141.4266665988,0],[6100992.119999648,1980139.218333266,0],[6100992.044999662,1980138.1016665997,0],[6100991.861666322,1980135.8933332672,0],[6100991.778332993,1980134.7849999322,0],[6100991.678332987,1980133.6766666002,0],[6100991.586666322,1980132.5683332682,0],[6100954.70333299,1979722.4183332752,0],[6100870.961666318,1979725.09333327,0]]); - // This actually causes CGAL to core dump... - //expect(function() {new CGAL.PolygonSet2(p);}).not.toThrow(); + var p = new CGAL.PolygonWithHoles2([[6100923.311666324,1980224.243333262],[6100912.611666321,1980224.243333262],[6100915.794999664,1980407.8266666064],[6100919.9116663225,1980518.743333271],[6100925.153332998,1980558.601666599],[6100931.694999656,1980608.4349999423],[6100939.994999653,1980882.4766665967],[6100942.536666323,1980948.9266666067],[6100944.428332984,1980998.4516666057],[6100945.569999651,1981028.4766666016],[6100950.8866663305,1981167.4599999276],[6100951.019999659,1981173.7933332773],[6100951.053332984,1981180.1349999434],[6100950.969999661,1981186.476666597],[6100950.786666321,1981192.809999941],[6100950.478332985,1981199.1433332756],[6100950.061666327,1981205.4683332697],[6100949.544999661,1981211.7933332764],[6100948.911666321,1981218.101666599],[6100948.16999966,1981224.3933332744],[6100947.311666326,1981230.6766666004],[6100946.353332984,1981236.9433332668],[6100945.278332992,1981243.1933332738],[6100944.103332986,1981249.418333278],[6100942.811666326,1981255.6266666076],[6100941.411666324,1981261.8099999405],[6100939.91166632,1981267.9683332671],[6100938.294999659,1981274.0933332692],[6100936.578332991,1981280.2016666117],[6100934.753332993,1981286.276666611],[6100932.828332997,1981292.3099999449],[6100930.786666322,1981298.3183332698],[6100928.644999658,1981304.2849999324],[6100926.403332997,1981310.2183332762],[6100921.82833299,1981321.4349999384],[6100911.919999662,1981317.0266666072],[6100890.811666324,1981363.4183332718],[6100885.428332986,1981377.959999936],[6100882.644999654,1981386.0849999378],[6100880.011666333,1981394.2433332645],[6100877.511666332,1981402.4433332689],[6100875.1616663225,1981410.6933332637],[6100872.953332993,1981418.9849999452],[6100870.894999654,1981427.3099999425],[6100868.969999658,1981435.6683332769],[6100867.2033329895,1981444.0599999453],[6100865.578332993,1981452.4766666016],[6100862.0366663225,1981461.1099999368],[6100862.669999664,1981468.2266665967],[6100862.778332996,1981469.4016666124],[6100864.361666322,1981547.0849999376],[6101061.178332985,1983574.5349999317],[6101082.0033329865,1983789.0849999273],[6101133.053332987,1983787.7766666121],[6101121.7366663255,1983760.9599999322],[6101119.136666328,1983754.143333273],[6101116.661666319,1983747.2683332677],[6101114.286666321,1983740.3599999375],[6101112.036666318,1983733.4099999387],[6101110.928332988,1983729.7183332709],[6101109.928332989,1983726.426666606],[6101107.92833299,1983719.401666608],[6101106.686666331,1983714.7433332696],[6101106.053332988,1983712.3433332758],[6101104.303332989,1983705.2516666094],[6101103.553332987,1983702.00166661],[6101102.67833299,1983698.1349999495],[6101101.16999966,1983690.984999937],[6101099.794999658,1983683.8183332654],[6101098.53666632,1983676.6183332654],[6101097.586666315,1983670.5349999443],[6101097.419999661,1983669.4099999345],[6101096.411666322,1983662.1766666037],[6101094.786666319,1983647.6599999394],[6101094.169999662,1983640.3849999493],[6101093.969999662,1983637.393333276],[6101093.6783329835,1983633.0933332753],[6101093.46999966,1983628.993333258],[6101093.3116663275,1983625.8016666016],[6101093.144999654,1983620.8766666057],[6101093.069999651,1983618.5016666085],[6101093.019999655,1983614.8183332689],[6101092.953332992,1983609.3266666147],[6101091.861666321,1983575.2433332668],[6101091.786666318,1983572.7016666145],[6101086.469999662,1983406.5266666175],[6101075.161666324,1983052.3599999421],[6101064.9866663255,1982501.7099999357],[6101041.819999653,1982407.9266666023],[6101009.336666315,1982321.159999939],[6100984.194999651,1982129.4349999456],[6100970.028332992,1982131.2849999405],[6100969.319999651,1982131.3849999518],[6100956.30333299,1982032.1266666118],[6100940.569999655,1981912.1766666058],[6100940.494999646,1981911.6266666038],[6100940.453332992,1981911.293333278],[6100940.428332985,1981911.076666605],[6100940.403332997,1981910.9016666124],[6100940.361666326,1981910.5349999373],[6100940.328332994,1981910.309999945],[6100940.286666322,1981909.976666598],[6100940.253332987,1981909.7183332779],[6100940.211666317,1981909.4266665992],[6100940.144999658,1981908.868333263],[6100940.086666322,1981908.3183332642],[6100940.053332984,1981908.093333272],[6100940.011666332,1981907.7683332716],[6100939.944999655,1981907.2183332758],[6100939.911666323,1981906.9599999343],[6100939.878332991,1981906.6683332769],[6100939.811666329,1981906.0516665976],[6100939.753332987,1981905.5599999449],[6100939.686666323,1981905.00999994],[6100939.628332991,1981904.4683332816],[6100939.561666325,1981903.9099999424],[6100939.536666319,1981903.6849999502],[6100939.469999655,1981903.0266666117],[6100939.43666633,1981902.8016666041],[6100939.411666321,1981902.5266666124],[6100939.369999647,1981902.2516666024],[6100939.319999654,1981901.7016666066],[6100939.261666327,1981901.1016665958],[6100939.203332996,1981900.5933332685],[6100939.086666319,1981899.4933332617],[6100939.03666632,1981898.9349999437],[6100939.019999655,1981898.668333274],[6100938.978332984,1981898.384999951],[6100938.928332986,1981897.868333262],[6100938.91166632,1981897.7099999348],[6100938.869999649,1981897.27666661],[6100938.819999655,1981896.726666605],[6100938.761666329,1981896.168333275],[6100938.736666327,1981895.9016666175],[6100938.661666321,1981895.059999949],[6100938.6366663305,1981894.7599999483],[6100938.611666324,1981894.5183332693],[6100938.561666325,1981893.95999993],[6100938.536666323,1981893.643333276],[6100938.5116663305,1981893.401666606],[6100938.461666317,1981892.851666598],[6100938.419999662,1981892.293333274],[6100938.369999653,1981891.743333263],[6100938.361666322,1981891.5849999299],[6100938.328332994,1981891.184999939],[6100938.278332998,1981890.6349999495],[6100938.194999656,1981889.5266666112],[6100938.153332992,1981889.0433332836],[6100938.103332981,1981888.4183332762],[6100938.069999649,1981887.859999937],[6100938.019999659,1981887.3099999444],[6100937.986666322,1981886.7599999486],[6100937.944999651,1981886.2016666094],[6100937.928332984,1981885.9599999364],[6100937.903332996,1981885.6599999326],[6100937.853332985,1981885.0266666121],[6100937.803332987,1981884.0516666104],[6100937.753332989,1981883.4349999435],[6100937.719999655,1981882.9349999472],[6100937.686666326,1981882.3266666054],[6100937.619999646,1981881.2099999299],[6100937.603332984,1981881.0016666064],[6100937.57833299,1981880.6599999403],[6100937.561666324,1981880.2683332716],[6100937.561666325,1981880.1099999384],[6100937.519999655,1981879.5516665992],[6100937.486666322,1981878.9933332661],[6100937.461666316,1981878.4433332642],[6100937.428332985,1981877.8933332774],[6100937.403332996,1981877.3349999383],[6100937.369999652,1981876.7766666082],[6100937.344999661,1981876.2016666096],[6100937.319999652,1981875.6683332794],[6100937.303332984,1981875.3849999472],[6100937.29499966,1981875.10999994],[6100937.286666322,1981874.9099999417],[6100937.244999653,1981874.0099999395],[6100937.228332986,1981873.7016666043],[6100937.219999658,1981873.4516666094],[6100937.186666324,1981872.89333327],[6100937.186666328,1981872.6266666034],[6100937.178332986,1981872.3349999308],[6100937.153332995,1981871.7433332666],[6100937.136666331,1981871.2266665928],[6100937.111666327,1981870.668333284],[6100937.103332986,1981870.4349999453],[6100937.078332994,1981869.5266666058],[6100937.05333299,1981869.00166661],[6100937.01999966,1981867.9266665967],[6100936.994999647,1981867.0266666065],[6100936.994999649,1981866.7849999368],[6100936.961666321,1981865.6766666048],[6100936.9533329895,1981865.1183332654],[6100936.936666331,1981864.5599999537],[6100936.928332988,1981864.0099999458],[6100936.911666324,1981863.5016666001],[6100936.8866663305,1981861.7849999354],[6100936.878332991,1981861.5766666057],[6100936.869999648,1981861.2266666023],[6100936.86999965,1981860.6766666034],[6100936.853332987,1981859.5599999402],[6100936.8533329815,1981859.0099999444],[6100936.844999658,1981858.4516666052],[6100936.844999662,1981857.9016666124],[6100936.836666316,1981857.3433332732],[6100936.836666315,1981856.226666607],[6100936.819999651,1981855.676666599],[6100936.819999656,1981854.376666606],[6100936.8366663195,1981854.009999943],[6100936.83666632,1981852.159999939],[6100936.844999657,1981851.7849999387],[6100936.844999661,1981851.2849999333],[6100936.861666323,1981850.1183332675],[6100936.861666322,1981849.5599999465],[6100936.878332987,1981848.4516666054],[6100936.886666332,1981848.1766666013],[6100936.886666331,1981847.9016666126],[6100936.894999652,1981847.4099999417],[6100936.903332998,1981847.209999937],[6100936.903332997,1981846.7849999373],[6100936.911666323,1981846.4516666117],[6100936.919999658,1981846.2266666011],[6100936.919999664,1981846.0099999462],[6100936.92833299,1981845.6766666023],[6100936.953332994,1981845.118333263],[6100936.953332996,1981844.5266666112],[6100936.969999658,1981844.0099999495],[6100936.9783329815,1981843.451666604],[6100936.986666325,1981843.2849999366],[6100936.994999653,1981842.9016666145],[6100937.028332995,1981841.7849999268],[6100937.044999662,1981841.2516666027],[6100937.078332995,1981840.0683332682],[6100937.103332987,1981839.5683332658],[6100937.111666327,1981839.2016666092],[6100937.144999653,1981838.4266665997],[6100937.186666324,1981837.076666613],[6100937.75333299,1981823.4266665988],[6100945.053332989,1981643.8516665976],[6100940.053332989,1981643.6516666114],[6100945.186666331,1981517.501666604],[6100949.05333299,1981422.4099999343],[6100949.06999965,1981421.8516666011],[6100949.078332992,1981421.3599999454],[6100949.103332986,1981421.1766666032],[6100949.119999646,1981420.7433332661],[6100949.153332993,1981420.184999942],[6100949.178332986,1981419.6349999462],[6100949.194999655,1981419.293333277],[6100949.211666318,1981419.0849999322],[6100949.228332981,1981418.7433332661],[6100949.236666325,1981418.5266666142],[6100949.303332987,1981417.4183332792],[6100949.319999649,1981417.1266666066],[6100949.336666315,1981416.85999994],[6100949.3616663255,1981416.5683332644],[6100949.378332991,1981416.3183332663],[6100949.403332995,1981415.8099999481],[6100949.4533329895,1981415.2016666],[6100949.486666324,1981414.618333261],[6100949.578332995,1981413.468333273],[6100949.619999653,1981412.9849999393],[6100949.644999653,1981412.6433332763],[6100949.661666318,1981412.4349999435],[6100949.7033329895,1981411.8766666043],[6100949.719999658,1981411.6766666027],[6100949.78666632,1981410.9766666018],[6100949.803332987,1981410.7683332723],[6100949.853332983,1981410.2266666016],[6100949.903332995,1981409.6599999343],[6100949.936666324,1981409.4266666109],[6100949.953332993,1981409.1099999475],[6100950.003332992,1981408.5599999456],[6100950.03666632,1981408.293333276],[6100950.0616663275,1981408.0016665973],[6100950.119999647,1981407.4599999296],[6100950.153332998,1981407.1433332756],[6100950.16999966,1981406.9016666056],[6100950.211666316,1981406.5349999305],[6100950.236666323,1981406.3433332695],[6100950.303332987,1981405.801666605],[6100950.353332985,1981405.2433332626],[6100950.411666324,1981404.693333273],[6100950.478332984,1981404.13499994],[6100950.811666327,1981401.3766666022],[6100950.83666632,1981401.2016666066],[6100950.88666633,1981400.8266666094],[6100950.9616663195,1981400.2183332767],[6100951.019999658,1981399.7266665965],[6100951.103332986,1981399.17666661],[6100951.1783329835,1981398.6349999453],[6100951.261666331,1981398.076666603],[6100951.336666319,1981397.5266666133],[6100951.394999659,1981397.2016666098],[6100951.419999662,1981396.9766665993],[6100951.494999648,1981396.4266666065],[6100951.569999649,1981395.9183332762],[6100951.661666323,1981395.326666606],[6100951.694999654,1981395.1266666043],[6100951.744999652,1981394.776666613],[6100951.803332984,1981394.434999938],[6100951.836666321,1981394.193333268],[6100952.0116663305,1981393.1266666013],[6100952.094999662,1981392.5849999369],[6100952.278332995,1981391.4849999421],[6100952.369999648,1981390.9433332654],[6100952.469999658,1981390.3933332725],[6100952.5533329835,1981389.9099999329],[6100952.594999661,1981389.6433332693],[6100952.661666322,1981389.3016666092],[6100952.74499965,1981388.8266666068],[6100952.861666322,1981388.2099999366],[6100952.928332987,1981387.8266666052],[6100952.969999657,1981387.6599999378],[6100953.06166633,1981387.109999939],[6100953.161666321,1981386.5683332684],[6100953.228332985,1981386.2433332647],[6100953.369999646,1981385.4766666018],[6100953.478332984,1981384.9349999435],[6100953.519999652,1981384.7183332765],[6100953.586666318,1981384.3849999506],[6100953.68666633,1981383.8433332709],[6100953.819999648,1981383.2933332752],[6100953.919999663,1981382.7516666045],[6100953.986666326,1981382.4349999535],[6100954.036666323,1981382.218333271],[6100954.14499966,1981381.6683332785],[6100954.378332987,1981380.576666609],[6100954.494999648,1981380.0599999442],[6100954.61999965,1981379.4933332675],[6100954.7033329895,1981379.1266666108],[6100954.736666325,1981378.9516666061],[6100954.778332998,1981378.7766666135],[6100954.861666326,1981378.4099999324],[6100954.953332991,1981378.0183332667],[6100954.986666326,1981377.8683332647],[6100955.103332987,1981377.3266666124],[6100955.228332982,1981376.7849999357],[6100955.361666327,1981376.2433332712],[6100955.403332998,1981376.0433332727],[6100955.4866663255,1981375.7016666126],[6100955.561666329,1981375.401666615],[6100955.619999652,1981375.159999939],[6100955.653332993,1981375.001666612],[6100955.744999647,1981374.6266665997],[6100955.869999653,1981374.0683332665],[6100956.011666328,1981373.5433332797],[6100956.061666325,1981373.3516665972],[6100956.161666319,1981372.9349999437],[6100956.278332995,1981372.4683332695],[6100956.411666318,1981371.926666602],[6100956.46166632,1981371.7266666065],[6100956.694999652,1981370.8516665979],[6100956.828332993,1981370.3099999395],[6100956.978332981,1981369.7766666093],[6100957.119999649,1981369.2349999386],[6100957.403332998,1981368.168333275],[6100957.486666326,1981367.859999943],[6100957.553332987,1981367.6266666104],[6100957.70333299,1981367.093333271],[6100957.78666632,1981366.7766666077],[6100957.994999646,1981366.0266666135],[6100958.153332994,1981365.451666615],[6100958.311666326,1981364.9516666096],[6100958.469999657,1981364.3599999393],[6100958.603332986,1981363.884999946],[6100958.744999646,1981363.4183332748],[6100958.803332987,1981363.2016666078],[6100958.919999658,1981362.8183332703],[6100959.078332991,1981362.2849999368],[6100959.286666323,1981361.5933332704],[6100959.403332999,1981361.2266666046],[6100959.494999652,1981360.8933332728],[6100959.561666324,1981360.693333262],[6100959.719999663,1981360.1599999287],[6100959.886666332,1981359.6516666135],[6100960.0533329835,1981359.1016665965],[6100960.219999662,1981358.568333263],[6100960.386666332,1981358.0433332792],[6100960.553332987,1981357.509999949],[6100960.736666326,1981356.984999941],[6100960.894999652,1981356.4516666045],[6100961.069999656,1981355.9266665962],[6100961.244999652,1981355.393333269],[6100961.594999658,1981354.3433332741],[6100961.761666333,1981353.8516666],[6100961.828332995,1981353.659999942],[6100961.95333299,1981353.293333279],[6100962.128332992,1981352.768333271],[6100962.303332987,1981352.2349999405],[6100962.494999646,1981351.7183332758],[6100962.594999657,1981351.4266666032],[6100962.678332984,1981351.1933332677],[6100962.811666324,1981350.801666599],[6100963.044999661,1981350.1433332665],[6100963.236666321,1981349.6183332645],[6100963.586666321,1981348.6349999406],[6100963.6616663225,1981348.4266666078],[6100963.803332988,1981348.0516666016],[6100963.878332987,1981347.8349999315],[6100963.994999649,1981347.534999943],[6100964.186666326,1981347.0099999532],[6100964.378332993,1981346.493333264],[6100964.578332994,1981345.968333271],[6100964.769999658,1981345.443333269],[6100964.878332991,1981345.1766666023],[6100964.969999659,1981344.926666595],[6100965.18666633,1981344.3599999398],[6100965.369999654,1981343.8933332656],[6100965.769999657,1981342.859999939],[6100965.978332985,1981342.3433332713],[6100966.178332989,1981341.8266666066],[6100966.386666333,1981341.309999948],[6100966.486666325,1981341.0599999407],[6100966.786666321,1981340.3183332717],[6100967.011666334,1981339.7599999446],[6100967.353332981,1981338.9266666044],[6100967.428332989,1981338.7349999342],[6100967.653332998,1981338.2183332785],[6100967.8533329815,1981337.7099999296],[6100968.069999656,1981337.2016666054],[6100968.286666319,1981336.6849999437],[6100968.503332987,1981336.1766666071],[6100968.728332984,1981335.6683332766],[6100968.8283329895,1981335.4183332755],[6100968.944999651,1981335.151666615],[6100969.186666324,1981334.5849999385],[6100969.386666331,1981334.134999945],[6100969.636666329,1981333.5683332714],[6100969.83666632,1981333.1183332626],[6100969.919999658,1981332.9349999388],[6100970.28666632,1981332.0933332737],[6100970.419999661,1981331.8099999414],[6100970.51166633,1981331.5933332713],[6100970.578332994,1981331.459999935],[6100971.103332982,1981330.3016666034],[6100971.203332996,1981330.0766666082],[6100971.294999659,1981329.893333275],[6100971.436666326,1981329.576666615],[6100971.669999658,1981329.0599999472],[6100971.736666326,1981328.9266666016],[6100971.903333,1981328.568333264],[6100972.144999652,1981328.0599999365],[6100972.219999658,1981327.8849999472],[6100972.386666332,1981327.5599999465],[6100972.586666321,1981327.1099999377],[6100972.678332986,1981326.9183332797],[6100972.853332985,1981326.5599999481],[6100973.003332988,1981326.2433332633],[6100973.094999655,1981326.0599999458],[6100973.1866663275,1981325.8683332633],[6100973.336666319,1981325.5599999405],[6100973.578332994,1981325.0683332693],[6100973.68666633,1981324.8266666117],[6100974.069999652,1981324.0599999458],[6100974.194999652,1981323.7933332762],[6100974.419999663,1981323.3433332734],[6100974.569999651,1981323.0599999444],[6100974.711666317,1981322.7683332718],[6100974.8116663275,1981322.5683332733],[6100976.319999653,1981319.5933332685],[6100976.853332984,1981318.5766666138],[6100977.09499966,1981318.1183332677],[6100977.361666323,1981317.6266666027],[6100977.486666322,1981317.3766666078],[6100977.611666323,1981317.134999944],[6100977.678332986,1981317.0099999448],[6100977.87833299,1981316.6433332637],[6100978.053332988,1981316.3099999381],[6100978.136666328,1981316.1599999361],[6100978.21999966,1981315.9933332657],[6100978.403332993,1981315.6683332804],[6100978.7033329895,1981315.1183332694],[6100977.503332987,1981314.4683332774],[6100974.303332989,1981312.7266666037],[6100974.811666326,1981311.8099999512],[6100974.911666323,1981311.6183332657],[6100975.06999965,1981311.318333268],[6100975.328332992,1981310.8349999404],[6100975.594999655,1981310.3433332723],[6100976.111666326,1981309.3599999454],[6100976.378332989,1981308.8683332652],[6100976.636666327,1981308.3766666034],[6100976.778332994,1981308.1016665993],[6100976.894999658,1981307.8849999416],[6100977.028332998,1981307.6266666031],[6100977.153332992,1981307.3933332704],[6100977.403332993,1981306.9016666117],[6100977.561666324,1981306.6016665986],[6100977.661666324,1981306.4099999375],[6100977.803332985,1981306.1516666175],[6100978.061666329,1981305.6349999465],[6100978.428332985,1981304.9266665992],[6100978.678332988,1981304.4266666002],[6100978.928332986,1981303.9433332693],[6100979.111666325,1981303.593333272],[6100979.436666324,1981302.943333271],[6100979.6866663275,1981302.4516666092],[6100979.953332993,1981301.9099999415],[6100980.428332989,1981300.9599999336],[6100980.669999663,1981300.4599999343],[6100982.861666325,1981295.9599999322],[6100983.111666321,1981295.4349999393],[6100983.336666318,1981294.95999994],[6100983.511666329,1981294.5849999336],[6100983.594999661,1981294.4183332783],[6100983.803332986,1981293.951666613],[6100984.044999662,1981293.451666617],[6100984.278332999,1981292.9516666057],[6100984.519999656,1981292.4433332658],[6100984.744999649,1981291.9433332758],[6100985.211666315,1981290.9266666027],[6100985.444999652,1981290.4266666034],[6100985.586666318,1981290.1099999403],[6100985.669999659,1981289.9183332731],[6100985.8283329895,1981289.5683332665],[6100985.91999966,1981289.3516666025],[6100986.1283329865,1981288.9099999403],[6100986.353332982,1981288.4016666068],[6100986.436666327,1981288.218333274],[6100986.569999654,1981287.8933332702],[6100986.803332986,1981287.384999946],[6100987.028332993,1981286.8766666094],[6100987.094999658,1981286.734999945],[6100987.253332987,1981286.3683332605],[6100987.478332982,1981285.8599999393],[6100987.553332984,1981285.701666603],[6100987.919999664,1981284.8433332723],[6100988.003332987,1981284.6516666082],[6100988.144999655,1981284.3349999327],[6100988.361666326,1981283.8266666115],[6100988.586666317,1981283.3099999435],[6100988.803332991,1981282.8016666009],[6100988.878332987,1981282.6016666056],[6100989.019999659,1981282.2933332734],[6100989.161666318,1981281.968333279],[6100989.236666324,1981281.776666615],[6100989.386666332,1981281.4266665992],[6100989.453332992,1981281.268333272],[6100989.569999653,1981280.984999937],[6100989.68666633,1981280.7183332734],[6100989.886666331,1981280.2433332677],[6100989.9866663255,1981280.001666604],[6100990.103332985,1981279.726666603],[6100990.244999648,1981279.3683332654],[6100990.31166633,1981279.2183332788],[6100990.519999656,1981278.7016666017],[6100990.736666321,1981278.1849999463],[6100990.95333299,1981277.6766666097],[6100991.153332996,1981277.1599999387],[6100991.278332997,1981276.8516666067],[6100991.569999649,1981276.1266666125],[6100991.778332999,1981275.6183332696],[6100991.903332996,1981275.3016666004],[6100991.986666324,1981275.1016665958],[6100992.061666325,1981274.9099999378],[6100992.194999653,1981274.576666606],[6100992.394999651,1981274.0683332663],[6100992.594999655,1981273.5516666106],[6100992.794999658,1981273.0516666023],[6100993.003332992,1981272.5099999409],[6100993.386666331,1981271.5183332737],[6100993.478332984,1981271.2766666128],[6100993.603332986,1981270.9599999373],[6100993.803332985,1981270.4433332696],[6100994.011666332,1981269.8849999395],[6100994.394999655,1981268.87666661],[6100994.594999656,1981268.3599999452],[6100994.786666324,1981267.8433332774],[6100994.978332983,1981267.3183332752],[6100995.16999966,1981266.8016666074],[6100995.361666326,1981266.301666602],[6100995.561666329,1981265.759999953],[6100995.744999649,1981265.2349999477],[6100995.936666327,1981264.7183332709],[6100996.128332987,1981264.1933332686],[6100996.311666327,1981263.6599999415],[6100996.369999649,1981263.5266666142],[6100996.51166633,1981263.1016665993],[6100996.686666327,1981262.626666606],[6100996.878332987,1981262.1016666037],[6100996.986666322,1981261.7766666124],[6100997.061666329,1981261.5766666078],[6100997.261666328,1981261.0183332686],[6100997.428332984,1981260.5266666098],[6100997.511666333,1981260.2849999368],[6100997.6116663255,1981260.0016666045],[6100997.786666325,1981259.4766666056],[6100997.84499966,1981259.3183332724],[6100997.969999659,1981258.9516666096],[6100998.153332993,1981258.4266665983],[6100998.328332991,1981257.9016666084],[6100998.486666326,1981257.4349999435],[6100998.703332996,1981256.8016666078],[6100998.861666327,1981256.318333274],[6100998.9616663195,1981256.0349999357],[6100999.036666318,1981255.793333275],[6100999.136666329,1981255.509999949],[6100999.219999658,1981255.268333273],[6100999.294999661,1981255.026666606],[6100999.386666333,1981254.7433332647],[6100999.494999648,1981254.4266666016],[6100999.5533329835,1981254.2099999285],[6100999.686666325,1981253.8433332716],[6100999.903332998,1981253.1599999333],[6100999.986666326,1981252.9016666103],[6101000.078332992,1981252.6266666062],[6101000.24499965,1981252.093333276],[6101000.403332998,1981251.5683332677],[6101000.578332992,1981251.0516666],[6101000.753332992,1981250.5099999476],[6101000.844999659,1981250.2099999345],[6101000.919999661,1981249.976666602],[6101001.078332992,1981249.4516666122],[6101001.244999653,1981248.918333279],[6101001.319999655,1981248.6683332748],[6101001.411666321,1981248.3849999455],[6101001.578332995,1981247.8599999372],[6101001.719999661,1981247.376666613],[6101001.894999657,1981246.7933332738],[6101002.061666328,1981246.243333272],[6101002.219999661,1981245.726666601],[6101002.32833299,1981245.3599999351],[6101002.378332993,1981245.201666605],[6101002.536666323,1981244.6683332778],[6101002.844999656,1981243.601666599],[6101003.003332992,1981243.0683332656],[6101003.069999649,1981242.8516665956],[6101003.161666319,1981242.5349999415],[6101003.253332991,1981242.2016666036],[6101003.46999966,1981241.4516666064],[6101003.769999655,1981240.393333268],[6101003.844999655,1981240.1183332608],[6101003.919999658,1981239.8599999438],[6101004.011666329,1981239.5099999465],[6101004.069999652,1981239.3266666073],[6101004.178332985,1981238.9266666074],[6101004.219999661,1981238.7849999429],[6101004.369999646,1981238.2516666034],[6101004.503332992,1981237.7683332758],[6101004.544999661,1981237.5933332709],[6101004.661666322,1981237.1849999428],[6101004.8033329835,1981236.6516666096],[6101004.953332993,1981236.109999942],[6101005.011666329,1981235.8849999497],[6101005.094999659,1981235.5766666085],[6101005.19499965,1981235.184999949],[6101005.236666325,1981235.034999938],[6101005.3783329865,1981234.5016666015],[6101005.478332983,1981234.134999954],[6101005.519999657,1981233.9599999308],[6101005.569999651,1981233.7849999382],[6101005.661666324,1981233.4266666037],[6101005.8033329835,1981232.8849999483],[6101005.936666326,1981232.3516666028],[6101006.036666325,1981231.9766665995],[6101006.0783329895,1981231.8099999444],[6101006.128332987,1981231.6183332617],[6101006.269999652,1981231.034999938],[6101006.34499966,1981230.7349999312],[6101006.486666326,1981230.1933332605],[6101006.619999646,1981229.6599999303],[6101006.703332992,1981229.3183332672],[6101006.753332987,1981229.1183332657],[6101006.878332992,1981228.6016665979],[6101007.019999657,1981228.0349999457],[6101007.103332981,1981227.676666602],[6101007.144999652,1981227.5099999497],[6101007.186666329,1981227.3183332642],[6101007.278332995,1981226.9599999296],[6101007.361666324,1981226.6099999414],[6101007.403332997,1981226.418333274],[6101007.536666321,1981225.8766666097],[6101007.911666322,1981224.25166661],[6101008.036666318,1981223.7183332674],[6101008.086666319,1981223.493333263],[6101008.161666324,1981223.1683332745],[6101008.236666321,1981222.8599999426],[6101008.403332994,1981222.0849999364],[6101008.653332996,1981221.0016666104],[6101008.8866663305,1981219.918333275],[6101009.00333299,1981219.36833327],[6101009.044999662,1981219.1849999495],[6101009.128332989,1981218.8349999338],[6101009.236666328,1981218.2766666128],[6101009.353332982,1981217.7433332736],[6101009.453332996,1981217.2599999427],[6101009.586666318,1981216.6599999382],[6101009.694999651,1981216.1099999456],[6101009.8116663275,1981215.568333272],[6101009.836666319,1981215.4183332822],[6101009.91999966,1981215.0266666133],[6101010.028332997,1981214.4849999396],[6101010.136666328,1981213.9349999377],[6101010.186666327,1981213.693333265],[6101010.244999648,1981213.384999942],[6101010.278332997,1981213.2433332712],[6101010.353332984,1981212.8433332744],[6101010.461666318,1981212.3016666067],[6101010.486666321,1981212.1599999391],[6101010.569999652,1981211.7516666048],[6101010.669999661,1981211.2099999373],[6101010.778332996,1981210.6599999384],[6101010.878332992,1981210.1349999546],[6101010.986666326,1981209.5766666033],[6101011.05333299,1981209.2016666061],[6101011.094999661,1981209.0266666105],[6101011.236666327,1981208.1766666048],[6101011.286666319,1981207.9349999472],[6101011.36999965,1981207.4266666013],[6101011.478332986,1981206.8433332776],[6101011.678332989,1981205.7433332708],[6101011.744999648,1981205.3599999393],[6101011.769999656,1981205.201666603],[6101011.869999646,1981204.6516666075],[6101011.894999652,1981204.4683332744],[6101011.961666321,1981204.1099999368],[6101012.04499966,1981203.5766666064],[6101012.144999655,1981203.009999945],[6101012.19499965,1981202.7183332755],[6101012.236666324,1981202.459999934],[6101012.328332989,1981201.9099999322],[6101012.411666322,1981201.3599999333],[6101012.503332991,1981200.818333272],[6101012.594999661,1981200.268333267],[6101012.678332985,1981199.7099999308],[6101012.761666329,1981199.1683332752],[6101012.811666328,1981198.8349999406],[6101012.8533329815,1981198.6183332582],[6101012.9366663275,1981198.0683332654],[6101013.011666331,1981197.5183332697],[6101013.09499966,1981196.9933332615],[6101013.178332985,1981196.418333278],[6101013.261666329,1981195.8766666106],[6101013.294999659,1981195.6099999407],[6101013.336666317,1981195.3266666087],[6101013.419999664,1981194.7766666159],[6101013.494999649,1981194.2183332737],[6101013.578332995,1981193.6683332778],[6101013.6116663255,1981193.3849999518],[6101013.653332993,1981193.126666607],[6101013.7283329815,1981192.568333271],[6101013.761666332,1981192.3849999441],[6101013.803332991,1981192.018333272],[6101013.886666333,1981191.459999939],[6101013.944999655,1981190.9183332776],[6101014.09499966,1981189.8183332738],[6101014.1616663225,1981189.2683332658],[6101014.219999659,1981188.77666661],[6101014.278332994,1981188.3349999231],[6101014.3033329835,1981188.1099999463],[6101014.369999651,1981187.609999935],[6101014.436666326,1981187.0599999484],[6101014.469999662,1981186.718333273],[6101014.561666326,1981185.9599999385],[6101014.58666632,1981185.7183332716],[6101014.628332988,1981185.393333268],[6101014.694999655,1981184.7849999352],[6101014.753332987,1981184.3016666016],[6101014.7866663225,1981184.0183332723],[6101014.8116663275,1981183.7516666057],[6101014.878332987,1981183.2016666068],[6101014.894999652,1981183.0266666051],[6101014.936666331,1981182.6433332646],[6101015.111666326,1981180.9849999368],[6101015.161666319,1981180.4349999442],[6101015.186666326,1981180.2183332678],[6101015.219999657,1981179.8849999513],[6101015.278332994,1981179.2766666156],[6101015.328332993,1981178.7766666163],[6101015.353332985,1981178.5433332806],[6101015.378332987,1981178.2266666023],[6101015.428332988,1981177.6683332722],[6101015.44499965,1981177.5266666138],[6101015.4866663255,1981177.1183332733],[6101015.636666333,1981175.4599999364],[6101015.678332985,1981174.9016666124],[6101015.7283329815,1981174.3516665983],[6101015.8116663275,1981173.2433332663],[6101015.861666321,1981172.7099999299],[6101015.903332993,1981172.1349999437],[6101015.936666328,1981171.5849999264],[6101015.953332996,1981171.4349999488],[6101015.986666321,1981171.0266666117],[6101016.011666331,1981170.676666605],[6101016.044999665,1981170.2599999458],[6101016.094999662,1981169.56833327],[6101016.103332983,1981169.3683332654],[6101016.144999651,1981168.8099999507],[6101016.1783329835,1981168.2599999458],[6101016.203332993,1981167.9683332792],[6101016.31999965,1981166.0266666103],[6101016.353332985,1981165.4849999426],[6101016.36999965,1981165.1849999388],[6101016.386666332,1981164.9266665974],[6101016.394999656,1981164.6599999368],[6101016.411666319,1981164.3766666045],[6101016.419999662,1981164.0933332723],[6101016.444999655,1981163.8183332684],[6101016.453332991,1981163.5933332792],[6101016.478332984,1981163.2599999474],[6101016.553332989,1981161.6016665953],[6101016.569999649,1981161.2933332785],[6101016.57833299,1981161.0433332773],[6101016.653332994,1981159.3766666062],[6101016.66166632,1981159.151666611],[6101016.661666321,1981158.818333273],[6101016.678332986,1981158.5766666094],[6101016.694999652,1981158.2683332681],[6101016.711666316,1981157.709999935],[6101016.736666321,1981157.1599999361],[6101016.75333299,1981156.7683332735],[6101016.753332987,1981156.601666591],[6101016.769999656,1981156.043333276],[6101016.794999664,1981155.493333262],[6101016.80333299,1981154.9349999472],[6101016.828332996,1981154.1099999472],[6101016.8283329895,1981153.826666606],[6101016.836666316,1981153.5849999299],[6101016.844999655,1981153.2683332728],[6101016.853332985,1981152.7183332709],[6101016.861666326,1981152.534999941],[6101016.869999646,1981152.1599999378],[6101016.86999965,1981151.984999933],[6101016.878332991,1981151.6016666016],[6101016.903332997,1981149.9433332647],[6101016.919999664,1981149.5266666175],[6101016.91999966,1981148.2099999315],[6101016.928332987,1981147.7183332727],[6101016.9283329835,1981147.1599999396],[6101016.936666328,1981146.6099999377],[6101016.936666328,1981144.3933332677],[6101016.928332984,1981143.8266666064],[6101016.92833299,1981142.7183332834],[6101016.919999662,1981142.1599999382],[6101016.919999664,1981141.0516666062],[6101016.903332997,1981140.7849999396],[6101016.903332992,1981140.4516666047],[6101016.894999654,1981139.9433332742],[6101016.8866663305,1981139.5433332834],[6101016.886666327,1981139.3849999502],[6101016.878332991,1981138.826666608],[6101016.861666322,1981138.2683332718],[6101016.861666326,1981137.9766666053],[6101016.8533329815,1981137.718333273],[6101008.544999666,1980751.3266666124],[6101005.103332987,1980591.1683332778],[6101004.661666321,1980570.7183332695],[6101004.003332987,1980540.0433332818],[6101002.494999649,1980469.5183332695],[6100996.011666334,1980168.1266666048],[6100993.5116663305,1980168.1766665983],[6100993.486666321,1980166.9516666138],[6100993.461666316,1980165.8433332667],[6100993.328332995,1980161.4016666105],[6100993.203332993,1980158.0683332682],[6100993.153332994,1980156.9599999331],[6100993.111666321,1980155.8516666011],[6100993.061666326,1980154.743333263],[6100993.0033329865,1980153.6349999404],[6100992.953332995,1980152.5183332772],[6100992.778332992,1980149.193333263],[6100992.711666316,1980148.084999937],[6100992.636666329,1980146.976666605],[6100992.578332995,1980145.868333267],[6100992.5116663305,1980144.751666613],[6100992.2866663225,1980141.4266665988],[6100992.119999648,1980139.218333266],[6100992.044999662,1980138.1016665997],[6100991.861666322,1980135.8933332672],[6100991.778332993,1980134.7849999322],[6100991.678332987,1980133.6766666002],[6100991.586666322,1980132.5683332682],[6100954.70333299,1979722.4183332752],[6100870.961666318,1979725.09333327]]); + expect(function() {new CGAL.PolygonSet2(p);}).toThrow(); var pset = new CGAL.PolygonSet2(); - // And this causes it to to throw an error. - //expect(function() {pset.join(p);}).not.toThrow(); + expect(function() {pset.join(p);}).toThrow(); }); it("should be clearable", function() { diff --git a/src/AffTransformation2.cc b/src/AffTransformation2.cc index f38114d..3014354 100644 --- a/src/AffTransformation2.cc +++ b/src/AffTransformation2.cc @@ -1,5 +1,6 @@ #include "AffTransformation2.h" #include "Direction2.h" +#include "NumberTypes.h" #include "cgal_args.h" using namespace std; @@ -31,14 +32,14 @@ bool AffTransformation2::ParseArg(Napi::Env env, Napi::Value arg, Aff_transforma if (inits.Length() >= 6 && inits.Length() <= 7) { K::RT m00, m01, m02, m10, m11, m12, hw(1); - if (::ParseNumberArg(env, inits[0u], m00) && - ::ParseNumberArg(env, inits[1], m01) && - ::ParseNumberArg(env, inits[2], m02) && - ::ParseNumberArg(env, inits[3], m10) && - ::ParseNumberArg(env, inits[4], m11) && - ::ParseNumberArg(env, inits[5], m12)) + if (RingNumberType::ParseArg(env, inits[0u], m00) && + RingNumberType::ParseArg(env, inits[1], m01) && + RingNumberType::ParseArg(env, inits[2], m02) && + RingNumberType::ParseArg(env, inits[3], m10) && + RingNumberType::ParseArg(env, inits[4], m11) && + RingNumberType::ParseArg(env, inits[5], m12)) { - if ((inits.Length() == 7) && !::ParseNumberArg(env, inits[6], hw)) + if ((inits.Length() == 7) && !RingNumberType::ParseArg(env, inits[6], hw)) return false; receiver = Aff_transformation_2(m00, m01, m02, m10, m11, m12, hw); return true; @@ -49,9 +50,9 @@ bool AffTransformation2::ParseArg(Napi::Env env, Napi::Value arg, Aff_transforma Direction_2 dir; K::RT num, den(1); if (Direction2::ParseArg(env, inits[0u], dir) && - ::ParseNumberArg(env, inits[1], num)) + RingNumberType::ParseArg(env, inits[1], num)) { - if ((inits.Length() == 3) && !::ParseNumberArg(env, inits[2], den)) + if ((inits.Length() == 3) && !RingNumberType::ParseArg(env, inits[2], den)) return false; receiver = Aff_transformation_2(Rotation(), dir, num, den); return true; @@ -67,24 +68,12 @@ bool AffTransformation2::ParseArg(Napi::Env env, Napi::Value arg, Aff_transforma Napi::Value AffTransformation2::ToPOD(Napi::Env env, Aff_transformation_2 const& aff, bool precise) { Napi::Array array = Napi::Array::New(env, 7); - for(int i=0; i<7; ++i) { int r = (i == 6) ? 2 : i/3; int c = (i == 6) ? 2 : i%3; K::RT a = aff.hm(r, c); - if (precise) { - ostringstream str; -#if CGAL_USE_EPECK - str << a.exact(); -#else - str << a; -#endif - array.Set(i, str.str()); - } else { - array.Set(i, CGAL::to_double(a)); - } + array.Set(i, RingNumberType::ToPOD(env, a, precise)); } - return array; } diff --git a/src/CGALWrapper-inl.h b/src/CGALWrapper-inl.h index 8a29702..74e610e 100644 --- a/src/CGALWrapper-inl.h +++ b/src/CGALWrapper-inl.h @@ -64,23 +64,6 @@ Napi::Object CGALWrapper::New(Napi::Env env, const CGAL } -template -bool ParseNumberArg(Napi::Env env, Napi::Value arg, NumberType& parsed) -{ - if (arg.IsNumber()) { - parsed = arg.As().DoubleValue(); - return true; - } else if (arg.IsString()) { - std::istringstream str(arg.As()); - str >> parsed; - return !str.fail(); - } else { - return false; - } - return false; -} - - template template Napi::Value CGALWrapper::SeqToPOD( diff --git a/src/CGALWrapper.h b/src/CGALWrapper.h index 6d16928..f0a74cb 100644 --- a/src/CGALWrapper.h +++ b/src/CGALWrapper.h @@ -17,9 +17,6 @@ class CGALWrapper : public Napi::ObjectWrap static Napi::Object New(Napi::Env env, const CGALClass &CGALInstance); - template - static bool ParseNumberArg(Napi::Env env, Napi::Value arg, NumberType& parsed); - template static bool ParseSeqArg(Napi::Env env, Napi::Value arg, OutputIterator iterator); diff --git a/src/D2.cc b/src/D2.cc index ab64280..f482f7b 100644 --- a/src/D2.cc +++ b/src/D2.cc @@ -60,8 +60,8 @@ Napi::Value ConvexPartition2(Napi::CallbackInfo const& info) Napi::Env env = info.Env(); ARGS_ASSERT(env, info.Length() == 1); ARGS_PARSE_LOCAL(env, Polygon2::ParseArg, Polygon_2, inputPoly, info[0]); - Partition_Traits partition_traits; - list partition; + Partition_Traits_2 partition_traits; + list partition; CGAL::approx_convex_partition_2( inputPoly.vertices_begin(), inputPoly.vertices_end(), back_inserter(partition), @@ -69,7 +69,7 @@ Napi::Value ConvexPartition2(Napi::CallbackInfo const& info) ); Napi::Array array = Napi::Array::New(env); uint32_t i; - list::iterator it; + list::iterator it; for(it=partition.begin(),i=0; it!=partition.end(); ++it,++i) { array.Set(i, Polygon2::New(env, Polygon_2(it->vertices_begin(), it->vertices_end()))); } diff --git a/src/Direction2.cc b/src/Direction2.cc index 5081ba7..8fe504d 100644 --- a/src/Direction2.cc +++ b/src/Direction2.cc @@ -1,6 +1,7 @@ #include "Direction2.h" #include "Point2.h" #include "Line2.h" +#include "NumberTypes.h" #include "Vector2.h" #include "Segment2.h" #include "Ray2.h" @@ -67,8 +68,8 @@ bool Direction2::ParseArg(Napi::Env env, Napi::Value arg, Direction_2& receiver) if (arg.IsObject()) { Napi::Object inits = arg.As(); K::FT dx, dy; - if (::ParseNumberArg(env, inits["dx"], dx) && - ::ParseNumberArg(env, inits["dy"], dy)) + if (FieldNumberType::ParseArg(env, inits["dx"], dx) && + FieldNumberType::ParseArg(env, inits["dy"], dy)) { receiver = Direction_2(dx, dy); return true; @@ -82,31 +83,8 @@ bool Direction2::ParseArg(Napi::Env env, Napi::Value arg, Direction_2& receiver) Napi::Value Direction2::ToPOD(Napi::Env env, Direction_2 const& direction, bool precise) { Napi::Object obj = Napi::Object::New(env); - - if (precise) { - - ostringstream dxstr; -#if CGAL_USE_EPECK - dxstr << direction.dx().exact(); -#else - dxstr << setprecision(20) << direction.dx(); -#endif - obj.Set("dx", dxstr.str()); - ostringstream dystr; -#if CGAL_USE_EPECK - dystr << direction.dy().exact(); -#else - dystr << setprecision(20) << direction.dy(); -#endif - obj.Set("dy", dystr.str()); - - } else { - - obj.Set("dx", CGAL::to_double(direction.dx())); - obj.Set("dy", CGAL::to_double(direction.dy())); - - } - + obj.Set("dx", FieldNumberType::ToPOD(env, direction.dx(), precise)); + obj.Set("dy", FieldNumberType::ToPOD(env, direction.dy(), precise)); return obj; } diff --git a/src/Line2.cc b/src/Line2.cc index f1c886b..c74ded8 100644 --- a/src/Line2.cc +++ b/src/Line2.cc @@ -1,4 +1,5 @@ #include "Line2.h" +#include "NumberTypes.h" #include "Point2.h" using namespace std; @@ -36,9 +37,9 @@ bool Line2::ParseArg(Napi::Env env, Napi::Value arg, Line_2& receiver) } K::FT a, b, c; - if (::ParseNumberArg(env, obj["a"], a) && - ::ParseNumberArg(env, obj["b"], b) && - ::ParseNumberArg(env, obj["c"], c)) + if (FieldNumberType::ParseArg(env, obj["a"], a) && + FieldNumberType::ParseArg(env, obj["b"], b) && + FieldNumberType::ParseArg(env, obj["c"], c)) { receiver = Line_2(a, b, c); return true; @@ -60,39 +61,9 @@ bool Line2::ParseArg(Napi::Env env, Napi::Value arg, Line_2& receiver) Napi::Value Line2::ToPOD(Napi::Env env, Line_2 const& line, bool precise) { Napi::Object obj = Napi::Object::New(env); - - if (precise) { - - ostringstream astr; -#if CGAL_USE_EPECK - astr << line.a().exact(); -#else - astr << setprecision(20) << line.a(); -#endif - obj.Set("a", astr.str()); - ostringstream bstr; -#if CGAL_USE_EPECK - bstr << line.b().exact(); -#else - bstr << setprecision(20) << line.b(); -#endif - obj.Set("b", bstr.str()); - ostringstream cstr; -#if CGAL_USE_EPECK - cstr << line.c().exact(); -#else - cstr << setprecision(20) << line.c(); -#endif - obj.Set("c", cstr.str()); - - } else { - - obj.Set("a", CGAL::to_double(line.a())); - obj.Set("b", CGAL::to_double(line.b())); - obj.Set("c", CGAL::to_double(line.c())); - - } - + obj.Set("a", FieldNumberType::ToPOD(env, line.a(), precise)); + obj.Set("b", FieldNumberType::ToPOD(env, line.b(), precise)); + obj.Set("c", FieldNumberType::ToPOD(env, line.c(), precise)); return obj; } diff --git a/src/NumberTypes-inl.h b/src/NumberTypes-inl.h new file mode 100644 index 0000000..3bf967f --- /dev/null +++ b/src/NumberTypes-inl.h @@ -0,0 +1,63 @@ +#include "NumberTypes.h" +#include "cgal_args.h" + +#include +#include + +using namespace std; + +template +NumberType::NumberType(Napi::CallbackInfo const& info) +: CGALWrapper(info) +{ +} + + +template +char const* NumberType::Name = "NumberType"; + + +template +void NumberType::AddProperties(Napi::Env env, vector& properties) +{ +} + + +template +bool NumberType::ParseArg(Napi::Env env, Napi::Value arg, CGALNumberType& receiver) +{ + if (arg.IsObject() && arg.As().InstanceOf(NumberType::sConstructor.Value())) { + receiver = NumberType::Unwrap(arg.As())->mWrapped; + return true; + } + + if (arg.IsNumber()) { + receiver = arg.As().DoubleValue(); + return true; + } + + if (arg.IsString()) { + std::istringstream str(arg.As()); + str >> receiver; + return !str.fail(); + } + + return false; +} + + +template +Napi::Value NumberType::ToPOD(Napi::Env env, CGALNumberType const& num, bool precise) +{ + if (precise) { + ostringstream str; +#if CGAL_USE_EPECK + str << num.exact(); +#else + str << setprecision(20) << num; +#endif + return Napi::String::New(env, str.str()); + } else { + return Napi::Number::New(env, CGAL::to_double(num)); + } +} diff --git a/src/NumberTypes.h b/src/NumberTypes.h new file mode 100644 index 0000000..9c58448 --- /dev/null +++ b/src/NumberTypes.h @@ -0,0 +1,47 @@ +#ifndef NUMBERTYPES_H +#define NUMBERTYPES_H + +#include "CGALWrapper.h" +#include "cgal_types.h" +#include "napi.h" + +#include + +template +class NumberType : public CGALWrapper, CGALNumberType> +{ +public: + + NumberType(Napi::CallbackInfo const& info); + + // The name to be used for our JS class. + static const char *Name; + + // Add our property descriptors (instance and static methods and values) to the list that will + // be used to define our JS class. Called indirectly at module load time via the module + // init function. + static void AddProperties(Napi::Env env, std::vector& properties); + + // Attempt to parse a JS argument into the CGAL object referred to by receiver. Returns true + // if parse was successful, false otherwise. + static bool ParseArg(Napi::Env env, Napi::Value arg, CGALNumberType& receiver); + + // Convert a CGAL object of the wrapped class to a POD JS object. If precise is set to false, + // will attempt to render in terms of doubles for coordinates, and may lose precision. + static Napi::Value ToPOD(Napi::Env env, CGALNumberType const& num, bool precise=true); + +private: + + // + //----- The following methods will be callable from JS. These will mostly match + // the semantics and names of the wrapped CGAL class. + // + +}; + +typedef NumberType FieldNumberType; +typedef NumberType RingNumberType; + +#include "NumberTypes-inl.h" + +#endif // !defined(NUMBERTYPES_H) diff --git a/src/Point2.cc b/src/Point2.cc index 05073fb..073f5e4 100644 --- a/src/Point2.cc +++ b/src/Point2.cc @@ -1,7 +1,7 @@ #include "Point2.h" #include "AffTransformation2.h" +#include "NumberTypes.h" #include "cgal_args.h" -#include "iomanip" using namespace std; @@ -34,13 +34,15 @@ bool Point2::ParseArg(Napi::Env env, Napi::Value arg, Point_2& receiver) } if (arg.IsArray()) { - Napi::Array coords = arg.As(); - K::FT x, y; - if (::ParseNumberArg(env, coords[0u], x) && - ::ParseNumberArg(env, coords[1], y)) - { - receiver = Point_2(x, y); - return true; + Napi::Array array = arg.As(); + if (array.Length() == 2) { + K::FT x, y; + if (FieldNumberType::ParseArg(env, array[0u], x) + && FieldNumberType::ParseArg(env, array[1], y)) + { + receiver = Point_2(x, y); + return true; + } } } @@ -50,28 +52,7 @@ bool Point2::ParseArg(Napi::Env env, Napi::Value arg, Point_2& receiver) Napi::Value Point2::ToPOD(Napi::Env env, Point_2 const& point, bool precise) { - Napi::Array array = Napi::Array::New(env, 2); - if (precise) { - ostringstream x_str; -#if CGAL_USE_EPECK - x_str << point.x().exact(); -#else - x_str << setprecision(20) << point.x(); -#endif - array.Set(0u, x_str.str()); - ostringstream y_str; -#if CGAL_USE_EPECK - y_str << point.y().exact(); -#else - y_str << setprecision(20) << point.y(); -#endif - array.Set(1, y_str.str()); - } else { - array.Set(0u, CGAL::to_double(point.x())); - array.Set(1, CGAL::to_double(point.y())); - } - - return array; + return FieldNumberType::SeqToPOD(env, point.cartesian_begin(), point.cartesian_end(), precise); } @@ -86,15 +67,13 @@ Napi::Value Point2::IsEqual(Napi::CallbackInfo const& info) Napi::Value Point2::X(Napi::CallbackInfo const& info) { - Napi::Env env = info.Env(); - return Napi::Value::From(env, CGAL::to_double(mWrapped.x())); + return FieldNumberType::New(info.Env(), mWrapped.x()); } Napi::Value Point2::Y(Napi::CallbackInfo const& info) { - Napi::Env env = info.Env(); - return Napi::Value::From(env, CGAL::to_double(mWrapped.y())); + return FieldNumberType::New(info.Env(), mWrapped.y()); } @@ -102,9 +81,6 @@ Napi::Value Point2::Transform(Napi::CallbackInfo const& info) { Napi::Env env = info.Env(); ARGS_ASSERT(isolate, info.Length() == 1); - Aff_transformation_2 aff; - if (AffTransformation2::ParseArg(env, info[0], aff)) { - return Point2::New(env, mWrapped.transform(aff)); - } - ARGS_ASSERT(env, false); + ARGS_PARSE_LOCAL(env, AffTransformation2::ParseArg, Aff_transformation_2, aff, info[0]); + return Point2::New(env, mWrapped.transform(aff)); } diff --git a/src/Polygon2.cc b/src/Polygon2.cc index d8234db..5ad123d 100644 --- a/src/Polygon2.cc +++ b/src/Polygon2.cc @@ -1,6 +1,7 @@ #include "Polygon2.h" -#include "Point2.h" #include "AffTransformation2.h" +#include "NumberTypes.h" +#include "Point2.h" #include "cgal_args.h" using namespace std; @@ -25,8 +26,8 @@ void Polygon2::AddProperties(Napi::Env env, vector& properti InstanceMethod("orientedSide", &Polygon2::OrientedSide), InstanceMethod("boundedSide", &Polygon2::BoundedSide), InstanceMethod("area", &Polygon2::Area), - InstanceMethod("coords", &Polygon2::Coords), - StaticMethod("transform", &Polygon2::Transform) + InstanceMethod("transform", &Polygon2::Transform), + InstanceMethod("coords", &Polygon2::Coords) }); } @@ -46,9 +47,9 @@ bool Polygon2::ParseArg(Napi::Env env, Napi::Value arg, Polygon_2& receiver) } -Napi::Value Polygon2::ToPOD(Napi::Env env, Polygon_2 const& box, bool precise) +Napi::Value Polygon2::ToPOD(Napi::Env env, Polygon_2 const& poly, bool precise) { - return Point2::SeqToPOD(env, box.vertices_begin(), box.vertices_end(), precise); + return Point2::SeqToPOD(env, poly.vertices_begin(), poly.vertices_end(), precise); } @@ -99,27 +100,16 @@ Napi::Value Polygon2::BoundedSide(Napi::CallbackInfo const& info) Napi::Value Polygon2::Area(Napi::CallbackInfo const& info) { - return Napi::Number::New(info.Env(), CGAL::to_double(mWrapped.area())); + return FieldNumberType::New(info.Env(), mWrapped.area()); } Napi::Value Polygon2::Transform(Napi::CallbackInfo const& info) { Napi::Env env = info.Env(); - - ARGS_ASSERT(env, info.Length() == 2); - - Aff_transformation_2 afft; - if (!AffTransformation2::ParseArg(env, info[0u], afft)) { - ARGS_ASSERT(env, false); - } - - Polygon_2 poly; - if (!ParseArg(env, info[1], poly)) { - ARGS_ASSERT(env, false); - } - - return Polygon2::New(env, CGAL::transform(afft, poly)); + ARGS_ASSERT(env, info.Length() == 1); + ARGS_PARSE_LOCAL(env, AffTransformation2::ParseArg, Aff_transformation_2, afft, info[0]); + return Polygon2::New(env, CGAL::transform(afft, mWrapped)); } @@ -127,7 +117,7 @@ Napi::Value Polygon2::Coords(Napi::CallbackInfo const& info) { Napi::Env env = info.Env(); Napi::Array array = Napi::Array::New(env, mWrapped.size()); - Vertex_iterator it; + Polygon_2::Vertex_iterator it; uint32_t i; for(it=mWrapped.vertices_begin(),i=0; it!=mWrapped.vertices_end(); ++it,++i) { array[i] = Point2::New(env, *it); diff --git a/src/Polygon2.h b/src/Polygon2.h index 08eb26e..65279cd 100644 --- a/src/Polygon2.h +++ b/src/Polygon2.h @@ -27,7 +27,7 @@ class Polygon2 : public CGALWrapper // Convert a CGAL object of the wrapped class to a POD JS object. If precise is set to false, // will attempt to render in terms of doubles for coordinates, and may lose precision. - static Napi::Value ToPOD(Napi::Env env, Polygon_2 const& box, bool precise); + static Napi::Value ToPOD(Napi::Env env, Polygon_2 const& poly, bool precise); private: @@ -43,7 +43,7 @@ class Polygon2 : public CGALWrapper Napi::Value OrientedSide(Napi::CallbackInfo const& info); Napi::Value BoundedSide(Napi::CallbackInfo const& info); Napi::Value Area(Napi::CallbackInfo const& info); - static Napi::Value Transform(Napi::CallbackInfo const& info); + Napi::Value Transform(Napi::CallbackInfo const& info); Napi::Value Coords(Napi::CallbackInfo const& info); }; diff --git a/src/Vector2.cc b/src/Vector2.cc index 05a50a0..7359481 100644 --- a/src/Vector2.cc +++ b/src/Vector2.cc @@ -1,6 +1,7 @@ #include "Vector2.h" #include "Point2.h" #include "Line2.h" +#include "NumberTypes.h" #include "Segment2.h" #include "Ray2.h" #include "cgal_args.h" @@ -50,8 +51,8 @@ bool Vector2::ParseArg(Napi::Env env, Napi::Value arg, Vector_2& receiver) if (arg.IsObject()) { Napi::Object inits = arg.As(); K::FT x, y; - if (::ParseNumberArg(env, inits["x"], x) && - ::ParseNumberArg(env, inits["y"], y)) + if (FieldNumberType::ParseArg(env, inits["x"], x) && + FieldNumberType::ParseArg(env, inits["y"], y)) { receiver = Vector_2(x, y); return true; @@ -66,29 +67,7 @@ bool Vector2::ParseArg(Napi::Env env, Napi::Value arg, Vector_2& receiver) Napi::Value Vector2::ToPOD(Napi::Env env, Vector_2 const& vector, bool precise) { Napi::Object obj = Napi::Object::New(env); - if (precise) { - - ostringstream xstr; -#if CGAL_USE_EPECK - xstr << vector.x().exact(); -#else - xstr << setprecision(20) << vector.x(); -#endif - obj.Set("x", xstr.str()); - ostringstream ystr; -#if CGAL_USE_EPECK - ystr << vector.y().exact(); -#else - ystr << setprecision(20) << vector.y(); -#endif - obj.Set("y", ystr.str()); - - } else { - - obj.Set("x", CGAL::to_double(vector.x())); - obj.Set("y", CGAL::to_double(vector.y())); - - } - + obj.Set("x", FieldNumberType::ToPOD(env, vector.x(), precise)); + obj.Set("y", FieldNumberType::ToPOD(env, vector.y(), precise)); return obj; } diff --git a/src/cgal.cc b/src/cgal.cc index cd08aa5..313ef8a 100644 --- a/src/cgal.cc +++ b/src/cgal.cc @@ -8,6 +8,7 @@ #include "D2.h" #include "Direction2.h" #include "Line2.h" +#include "NumberTypes.h" #include "Point2.h" #include "Polygon2.h" #include "PolygonSet2.h" @@ -107,12 +108,14 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) Curve2::Init(env, exports); D2::Init(env, exports); Direction2::Init(env, exports); + FieldNumberType::Init(env, exports); Line2::Init(env, exports); Point2::Init(env, exports); Polygon2::Init(env, exports); PolygonSet2::Init(env, exports); PolygonWithHoles2::Init(env, exports); Ray2::Init(env, exports); + RingNumberType::Init(env, exports); Segment2::Init(env, exports); Vector2::Init(env, exports); diff --git a/src/cgal_types.h b/src/cgal_types.h index d328509..37c7245 100644 --- a/src/cgal_types.h +++ b/src/cgal_types.h @@ -13,7 +13,6 @@ #include "CGAL/Bbox_2.h" #include "CGAL/Partition_traits_2.h" #include "CGAL/partition_2.h" -#include "CGAL/Nef_polyhedron_2.h" #include "CGAL/Segment_2.h" #include "CGAL/Line_2.h" #include "CGAL/Ray_2.h" @@ -27,7 +26,9 @@ typedef CGAL::Exact_predicates_exact_constructions_kernel K; typedef CGAL::Exact_predicates_inexact_constructions_kernel K; #endif -typedef CGAL::Arr_linear_traits_2 Arr_linear_traits_2; +typedef CGAL::Arrangement_2> Arrangement_2; +typedef Arrangement_2::Geometry_traits_2::Curve_2 Curve_2; + typedef CGAL::Bbox_2 Bbox_2; typedef CGAL::Polygon_2 Polygon_2; typedef CGAL::Polygon_with_holes_2 Polygon_with_holes_2; @@ -41,12 +42,7 @@ typedef CGAL::Vector_2 Vector_2; typedef CGAL::Aff_transformation_2 Aff_transformation_2; typedef CGAL::Rotation Rotation; typedef K::Point_2 Point_2; -typedef Polygon_2::Vertex_iterator Vertex_iterator; -typedef CGAL::Extended_cartesian EK; -typedef CGAL::Nef_polyhedron_2 Nef_polyhedron_2; -typedef CGAL::Arrangement_2 Arrangement_2; -typedef Arr_linear_traits_2::X_monotone_curve_2 X_monotone_curve_2; -typedef Arr_linear_traits_2::Curve_2 Curve_2; -typedef CGAL::Partition_traits_2 Partition_Traits; +typedef K::FT FT; +typedef CGAL::Partition_traits_2 Partition_Traits_2; #endif // !defined(CGAL_TYPES_H) From 4bb775cff43a0c03cf895f79649b54302e05dd3d Mon Sep 17 00:00:00 2001 From: Fritz Mueller Date: Sat, 24 Aug 2019 13:49:08 -0700 Subject: [PATCH 4/5] Fixup npm scripts to minimize build churn --- package.json | 6 ++++-- scripts/clean | 3 +++ scripts/{preinstall => install} | 2 +- scripts/test | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) create mode 100755 scripts/clean rename scripts/{preinstall => install} (83%) diff --git a/package.json b/package.json index ba6a311..1bc6a86 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,9 @@ "private": true, "repository": {}, "scripts": { - "test": "jasmine --reporter=jasmine-console-reporter" + "install": "scripts/install", + "test": "scripts/test", + "clean": "scripts/clean" }, "engines": { "node": ">=12.0.0" @@ -23,7 +25,7 @@ "x64" ], "dependencies": { - "node-addon-api": "*" + "node-addon-api": "^1.7.1" }, "devDependencies": { "jasmine": "^3.4.0", diff --git a/scripts/clean b/scripts/clean new file mode 100755 index 0000000..b3c181b --- /dev/null +++ b/scripts/clean @@ -0,0 +1,3 @@ +#!/bin/bash +node-gyp clean +rm -rf build diff --git a/scripts/preinstall b/scripts/install similarity index 83% rename from scripts/preinstall rename to scripts/install index 1e4d1c7..00307d6 100755 --- a/scripts/preinstall +++ b/scripts/install @@ -2,4 +2,4 @@ if [[ !(-e build/Makefile) || (binding.gyp -nt build/Makefile) ]]; then node-gyp configure fi -node-gyp build -j 4 +node-gyp build -j max diff --git a/scripts/test b/scripts/test index 26386c8..0079cda 100755 --- a/scripts/test +++ b/scripts/test @@ -1,2 +1,2 @@ #!/bin/bash -jasmine-node --verbose --captureExceptions $JASMINE_NODE_OPTS test +jasmine --reporter=jasmine-console-reporter From 76e0d68ab11772b9f9468dfc02c55165f66a0c96 Mon Sep 17 00:00:00 2001 From: Fritz Mueller Date: Sun, 25 Aug 2019 12:06:49 -0700 Subject: [PATCH 5/5] Minor cleanup in cgal_types.h --- src/cgal_types.h | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/cgal_types.h b/src/cgal_types.h index 37c7245..85c858f 100644 --- a/src/cgal_types.h +++ b/src/cgal_types.h @@ -26,23 +26,20 @@ typedef CGAL::Exact_predicates_exact_constructions_kernel K; typedef CGAL::Exact_predicates_inexact_constructions_kernel K; #endif -typedef CGAL::Arrangement_2> Arrangement_2; -typedef Arrangement_2::Geometry_traits_2::Curve_2 Curve_2; - typedef CGAL::Bbox_2 Bbox_2; -typedef CGAL::Polygon_2 Polygon_2; -typedef CGAL::Polygon_with_holes_2 Polygon_with_holes_2; -typedef Polygon_with_holes_2::Hole_const_iterator Hole_const_iterator; +typedef CGAL::Point_2 Point_2; typedef CGAL::Polygon_set_2 Polygon_set_2; typedef CGAL::Direction_2 Direction_2; typedef CGAL::Segment_2 Segment_2; typedef CGAL::Line_2 Line_2; typedef CGAL::Ray_2 Ray_2; typedef CGAL::Vector_2 Vector_2; -typedef CGAL::Aff_transformation_2 Aff_transformation_2; typedef CGAL::Rotation Rotation; -typedef K::Point_2 Point_2; -typedef K::FT FT; +typedef CGAL::Aff_transformation_2 Aff_transformation_2; +typedef CGAL::Polygon_2 Polygon_2; +typedef CGAL::Polygon_with_holes_2 Polygon_with_holes_2; typedef CGAL::Partition_traits_2 Partition_Traits_2; +typedef CGAL::Arrangement_2> Arrangement_2; +typedef Arrangement_2::Geometry_traits_2::Curve_2 Curve_2; #endif // !defined(CGAL_TYPES_H)