Subject: CGAL users discussion list
List archive
- From: yintingchang <>
- To:
- Subject: [cgal-discuss] Issue: Expr: ! CGAL_NTS is_zero(den)
- Date: Fri, 28 May 2021 01:05:11 -0500 (CDT)
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=SoftFail ; spf=Pass
- Ironport-hdrordr: A9a23:h/v8U6/YZuffSS5wfc9uk+D7I+orL9Y04lQ7vn2ZLCY/TiX2ra6TdZggtCMc6gxhOk3I6OrhBEDoexq1n/NICOIqTNKftWfdyQiVBbAnwYz+wyDxXw3Sn9Qts5uIqpIObOEY22IK6vrS6g++Dtom3Z2b66iun+jT1DNgSgttZqFm4W5CZjp3encYeDV7
- Ironport-phdr: A9a23:cI9qARNmrqLcGV8i0wMl6nbhDRdPi9zP1u491JMrhvp0f7i5+Ny6ZQqDvKQr1g+XFtiEo9t/yMPu+5j6XmIB5ZvT+FsjS7drEyE/tMMNggY7C9SEA0CoZNTjbig9AdgQHAQ9pyLzPkdaAtvxaEPPqXOu8zESBg//NQ1oLejpB4Lelcu62/229pHJfQlFhzuwbbxyIRi0sA7cqtQYjYx+J6gr1xDHuGFIe+NYxWNpIVKcgRPx7dqu8ZBg7ipdpesv+9ZPXqvmcas4S6dYDCk9PGAu+MLrrxjDQhCR6XYaT24bjwBHAwnB7BH9Q5fxri73vfdz1SWGIcH7S60/VDK/5KlpVRDokj8KOTA5/m/JicJ+ka1Urw6uqRFk347ZYp2ZOOZicq/BY98XQ3dKUMZLVyxGB4Oxd4sOD+sHPeZEron9oVQOoge+BQa2AuPvxSJDi3j23K071eQhDQDG3AovH90SsHTbttP1NKgJXOC7y6nJwjDDYOlX2Tf58oTHbhchofSVUL92bMHexlUhGRnfgVWMtYzqISmV1uIVvmWF8uZuWuKhhmA5pgx/vzSix8chh5fHiI4JyV3J9jh1zok7K9C8VkJ2YMOpHZhOuyyHKYd6XN8uTn91tSs+xLALv4OwciYNyJQi3RHfavqHfpCO4h35T+meOjN4i2x/dL2jgBay9E6twfD/WMmsyFtGsy5In93Wun0D1BHf8MuKR/pn8kqg2DuC0R3Y5PteLkAuj6XbLoYswr4umZoXtkTOBin2lUrsgK+QbEor4fOn6+D5bbn8upCcMIp0hhn/MqQohMO/Hfw1PhUKUmWf4+ix2r7u8Vf6TbhLlPE7k6jUvIjfJcsBp665BwFV0pwk6xa6Fzqn0NUYnX8bLFJEfhKHgJTmO1HUL/D+AveymFqskDBkxvDDJLLhA5HNImLfn7fmeLZx81RcxxYrzdBD+5JUDakML+78WkDrsNzUFwI2Mw2vw+n7FdV9zZgeVHmUAq6ZNaPSqUWH6vguI+mKfo8VuSzyJ+Ir5/703jcFngoWcqCtmJcWc3ulBe9OIkODYHOqjM1SP30Nu18vTer2iVuNWj5aYXn6C7M94C06Do2tDY7FSaijh6yE1Sa/WJZRYzYVWRi3DX70etDcCL83YyWIL5o5+tThfbamW4oo1BXovwj/meIPxgv8/HFes5vp3tx4oebUkENrndSbJ8qaw2SETmUylWQNFWRe4Q==
I encountered Expr: ! CGAL_NTS is_zero(den), when I tried to mesh a special
domain that is a square but all the four edges are divided into small
segments. I also disallowed the splitting of small segments.
The square is shown as follows:
<http://cgal-discuss.949826.n4.nabble.com/file/t376283/untitled1.png>
.
Code is:
//-----------------------------------------------------------
#define CGAL_MESH_2_OPTIMIZER_VERBOSE
//#define CGAL_MESH_2_OPTIMIZERS_DEBUG
//#define CGAL_MESH_2_SIZING_FIELD_USE_BARYCENTRIC_COORDINATES
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
#include <CGAL/Delaunay_mesh_face_base_2.h>
#include <CGAL/Delaunay_mesh_size_criteria_2.h>
#include <CGAL/Delaunay_mesh_vertex_base_2.h>
#include <CGAL/Delaunay_mesher_2.h>
#include <CGAL/Delaunay_mesher_no_edge_refinement_2.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/lloyd_optimize_mesh_2.h>
#include <iostream>
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Delaunay_mesh_vertex_base_2<K> Vb;
typedef CGAL::Delaunay_mesh_face_base_2<K> Fb;
typedef CGAL::Triangulation_data_structure_2<Vb, Fb> Tds;
typedef CGAL::Constrained_Delaunay_triangulation_2<K, Tds> CDT;
typedef CGAL::Delaunay_mesh_size_criteria_2<CDT> Criteria;
//typedef CGAL::Delaunay_mesher_2<CDT, Criteria> Mesher;
typedef CGAL::Delaunay_mesher_no_edge_refinement_2<CDT, Criteria> Mesher;
typedef CDT::Vertex_handle Vertex_handle;
typedef CDT::Point Point;
int main()
{
std::vector<Point> vInputPoints(72);
vInputPoints[0] = Point(-17.0656, -18.8846);
vInputPoints[1] = Point(-18.1869, 17.1154);
vInputPoints[2] = Point(17.8153, 18.2008);
vInputPoints[3] = Point(18.9366, -17.7992);
vInputPoints[4] = Point(-17.1279, -16.8846);
vInputPoints[5] = Point(-17.1902, -14.8846);
vInputPoints[6] = Point(-17.2525, -12.8846);
vInputPoints[7] = Point(-17.3148, -10.8846);
vInputPoints[8] = Point(-17.3771, -8.88457);
vInputPoints[9] = Point(-17.4394, -6.88457);
vInputPoints[10] = Point(-17.5017, -4.88457);
vInputPoints[11] = Point(-17.564, -2.88457);
vInputPoints[12] = Point(-17.6263, -0.884574);
vInputPoints[13] = Point(-17.6886, 1.11543);
vInputPoints[14] = Point(-17.7509, 3.11543);
vInputPoints[15] = Point(-17.8132, 5.11543);
vInputPoints[16] = Point(-17.8754, 7.11543);
vInputPoints[17] = Point(-17.9377, 9.11543);
vInputPoints[18] = Point(-18, 11.1154);
vInputPoints[19] = Point(-18.0623, 13.1154);
vInputPoints[20] = Point(-18.1246, 15.1154);
vInputPoints[21] = Point(-16.1868, 17.1757);
vInputPoints[22] = Point(-14.1867, 17.236);
vInputPoints[23] = Point(-12.1865, 17.2963);
vInputPoints[24] = Point(-10.1864, 17.3566);
vInputPoints[25] = Point(-8.1863, 17.4169);
vInputPoints[26] = Point(-6.18617, 17.4772);
vInputPoints[27] = Point(-4.18605, 17.5375);
vInputPoints[28] = Point(-2.18593, 17.5978);
vInputPoints[29] = Point(-0.185808, 17.6581);
vInputPoints[30] = Point(1.81431, 17.7184);
vInputPoints[31] = Point(3.81444, 17.7787);
vInputPoints[32] = Point(5.81456, 17.839);
vInputPoints[33] = Point(7.81468, 17.8993);
vInputPoints[34] = Point(9.8148, 17.9596);
vInputPoints[35] = Point(11.8149, 18.0199);
vInputPoints[36] = Point(13.815, 18.0802);
vInputPoints[37] = Point(15.8152, 18.1405);
vInputPoints[38] = Point(17.8776, 16.2008);
vInputPoints[39] = Point(17.9399, 14.2008);
vInputPoints[40] = Point(18.0022, 12.2008);
vInputPoints[41] = Point(18.0645, 10.2008);
vInputPoints[42] = Point(18.1268, 8.20075);
vInputPoints[43] = Point(18.189, 6.20075);
vInputPoints[44] = Point(18.2513, 4.20075);
vInputPoints[45] = Point(18.3136, 2.20075);
vInputPoints[46] = Point(18.3759, 0.200753);
vInputPoints[47] = Point(18.4382, -1.79925);
vInputPoints[48] = Point(18.5005, -3.79925);
vInputPoints[49] = Point(18.5628, -5.79925);
vInputPoints[50] = Point(18.6251, -7.79925);
vInputPoints[51] = Point(18.6874, -9.79925);
vInputPoints[52] = Point(18.7497, -11.7992);
vInputPoints[53] = Point(18.812, -13.7992);
vInputPoints[54] = Point(18.8743, -15.7992);
vInputPoints[55] = Point(16.9364, -17.8595);
vInputPoints[56] = Point(14.9363, -17.9198);
vInputPoints[57] = Point(12.9362, -17.9801);
vInputPoints[58] = Point(10.9361, -18.0404);
vInputPoints[59] = Point(8.93595, -18.1007);
vInputPoints[60] = Point(6.93582, -18.161);
vInputPoints[61] = Point(4.9357, -18.2213);
vInputPoints[62] = Point(2.93558, -18.2816);
vInputPoints[63] = Point(0.935456, -18.3419);
vInputPoints[64] = Point(-1.06467, -18.4022);
vInputPoints[65] = Point(-3.06479, -18.4625);
vInputPoints[66] = Point(-5.06491, -18.5228);
vInputPoints[67] = Point(-7.06503, -18.5831);
vInputPoints[68] = Point(-9.06516, -18.6434);
vInputPoints[69] = Point(-11.0653, -18.7037);
vInputPoints[70] = Point(-13.0654, -18.764);
vInputPoints[71] = Point(-15.0655, -18.8243);
CDT cdt;
std::vector<Vertex_handle> va(128);
for (size_t i = 0; i < va.size(); ++i)
va[i] = cdt.insert(vInputPoints[i]);
cdt.insert_constraint(va[0], va[4]);
cdt.insert_constraint(va[4], va[5]);
cdt.insert_constraint(va[5], va[6]);
cdt.insert_constraint(va[6], va[7]);
cdt.insert_constraint(va[7], va[8]);
cdt.insert_constraint(va[8], va[9]);
cdt.insert_constraint(va[9], va[10]);
cdt.insert_constraint(va[10], va[11]);
cdt.insert_constraint(va[11], va[12]);
cdt.insert_constraint(va[12], va[13]);
cdt.insert_constraint(va[13], va[14]);
cdt.insert_constraint(va[14], va[15]);
cdt.insert_constraint(va[15], va[16]);
cdt.insert_constraint(va[16], va[17]);
cdt.insert_constraint(va[17], va[18]);
cdt.insert_constraint(va[18], va[19]);
cdt.insert_constraint(va[19], va[20]);
cdt.insert_constraint(va[20], va[1]);
cdt.insert_constraint(va[1], va[21]);
cdt.insert_constraint(va[21], va[22]);
cdt.insert_constraint(va[22], va[23]);
cdt.insert_constraint(va[23], va[24]);
cdt.insert_constraint(va[24], va[25]);
cdt.insert_constraint(va[25], va[26]);
cdt.insert_constraint(va[26], va[27]);
cdt.insert_constraint(va[27], va[28]);
cdt.insert_constraint(va[28], va[29]);
cdt.insert_constraint(va[29], va[30]);
cdt.insert_constraint(va[30], va[31]);
cdt.insert_constraint(va[31], va[32]);
cdt.insert_constraint(va[32], va[33]);
cdt.insert_constraint(va[33], va[34]);
cdt.insert_constraint(va[34], va[35]);
cdt.insert_constraint(va[35], va[36]);
cdt.insert_constraint(va[36], va[37]);
cdt.insert_constraint(va[37], va[2]);
cdt.insert_constraint(va[2], va[38]);
cdt.insert_constraint(va[38], va[39]);
cdt.insert_constraint(va[39], va[40]);
cdt.insert_constraint(va[40], va[41]);
cdt.insert_constraint(va[41], va[42]);
cdt.insert_constraint(va[42], va[43]);
cdt.insert_constraint(va[43], va[44]);
cdt.insert_constraint(va[44], va[45]);
cdt.insert_constraint(va[45], va[46]);
cdt.insert_constraint(va[46], va[47]);
cdt.insert_constraint(va[47], va[48]);
cdt.insert_constraint(va[48], va[49]);
cdt.insert_constraint(va[49], va[50]);
cdt.insert_constraint(va[50], va[51]);
cdt.insert_constraint(va[51], va[52]);
cdt.insert_constraint(va[52], va[53]);
cdt.insert_constraint(va[53], va[54]);
cdt.insert_constraint(va[54], va[3]);
cdt.insert_constraint(va[3], va[55]);
cdt.insert_constraint(va[55], va[56]);
cdt.insert_constraint(va[56], va[57]);
cdt.insert_constraint(va[57], va[58]);
cdt.insert_constraint(va[58], va[59]);
cdt.insert_constraint(va[59], va[60]);
cdt.insert_constraint(va[60], va[61]);
cdt.insert_constraint(va[61], va[62]);
cdt.insert_constraint(va[62], va[63]);
cdt.insert_constraint(va[63], va[64]);
cdt.insert_constraint(va[64], va[65]);
cdt.insert_constraint(va[65], va[66]);
cdt.insert_constraint(va[66], va[67]);
cdt.insert_constraint(va[67], va[68]);
cdt.insert_constraint(va[68], va[69]);
cdt.insert_constraint(va[69], va[70]);
cdt.insert_constraint(va[70], va[71]);
cdt.insert_constraint(va[71], va[0]);
std::cout << "Number of vertices: " << cdt.number_of_vertices() <<
std::endl;
std::cout << "Meshing..." << std::endl;
Mesher mesher(cdt);
std::cout << "1st meshing finished\n";
mesher.set_criteria(Criteria(0.225, 10));
mesher.refine_mesh();
std::cout << "Number of vertices: " << cdt.number_of_vertices() <<
std::endl;
}
//------------------------------
Error:
Number of vertices: 120
Meshing...
1st meshing finished
terminate called after throwing an instance of 'CGAL::Assertion_exception'
what(): CGAL ERROR: assertion violation!
Expr: ! CGAL_NTS is_zero(den)
File:
/home/tingchangyin/Desktop/CGAL_test/CGAL-5.2/include/CGAL/constructions/kernel_ftC2.h
Line: 55
Aborted (core dumped)
Anyone can help me to fix it?
--
Sent from: http://cgal-discuss.949826.n4.nabble.com/
- [cgal-discuss] Issue: Expr: ! CGAL_NTS is_zero(den), yintingchang, 05/28/2021
Archive powered by MHonArc 2.6.19+.