Subject: CGAL users discussion list
List archive
- From: Marco Feder <>
- To: "" <>
- Subject: Re: [cgal-discuss] Find intersections of a curve inside a mesh in 2D
- Date: Thu, 27 Jan 2022 16:52:20 +0000
- Accept-language: it-IT, en-US
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2d5pkZKyEdW6TZcggvPqCXyoWhBiycriZ4or8ml3RAM=; b=e29fVPZtbx0th+bn4/BFvp1bOhGvvh7qiWKGf6PLPpZS3OmpiwtPHLKJUh1q1flZoTkC1LQe+vLL9eJAyrgMJ7k7wySpivisI+EcBcTISVxhxS0jD6uRuXhwVBRMyy0D8stk1nt74JlR4BwXB8+nv1mVXR1YM9RIVNm7UQHjv2igEhkqfpy8zP+/x90inkuFkFbHbt/VYHdmlncNJpZ52yxGxab9CQ/Od+o6eW4i659uqzcZTK5z6LmPRGE6k0tHDNDZZODIL4qt9cT3LB3w8moyAb1mISdHlFEbwPk9nq4ZYHdQ0aoSR3ie/ne/Agg1iJvWrETiPvGLepP2TQzxtQ==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HyM/EmSbdpLVggVErZJlhWyr4Yjt/ze4PpfAgv8qrerwdB4cF0AztU/geoRBq4MqoXUuEYb4rprTZ8cU14Pz5sB3X+o4+TM33Su+Mg8lYUtF2ycnegxTMdAEyMppOlR2IRo266iOf3Q6VaFtHUTGLCR8sjNph6Ak31B3atmJh1uyM3kkRPJ5hiX/NUQ/Lme7b3IN4k7Iv75hTz9BjV7fUA3TkYli7j6cycT+NntZOVnUeBx4Md/9IOZ04zvZ9dgawcNR40uQ/IVafylssxD/N8ggtzrTRiXStfOBcyc18TPa0m5bmXUdURqCfiSe7NZi23uRZq+/9uvkRauH8NyeIw==
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=Pass
- Ironport-data: A9a23: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 T4vrJM6AwCvJUqAUmcs/mh+692IFO7O
- Ironport-hdrordr: A9a23:HpATWahXAtM6iAy0k3tzrNp/u3BQX1V13DAbv31ZSRFFG/FwyP rCoB1L73XJYWgqM03IwerwQJVoMkmsjqKdgLNhdotKOTOLhILGFvAH0WKP+Vzd8mjFh5dgPM RbAuJD4b/LfD9HZK/BiWHWferIguP3lpxA7t2urEuFODsaDp2ImD0JaDpzfHcXeCB2Qb4CUL aM7MtOoDStPV4NaN6gO3UDV+/f4/XWiZPPe3c9dlIawTjLqQntxK/xEhCe0BtbeShI260e/W /MlBG8zrm/ssu81gTX2wbonttrcZrau5V+7f63+4gowwbX+0WVjUNaKv+/VQUO0aCSAZAR4Z zxSlkbToBOAjjqDxuISFPWqnTdOXAVmjLfIBaj8AfeiN28SzQgB8Vbg4VFNhPf9ko7pdl5lL lGxmSDqvNsfGX9dQnGlqz1vitR5z2JSLsZ4J4upm0aVZFbZK5arIQZ8k8QGJAcHDji4IRiFO V1FsnT6PtfbFvfNhnizyFS6c3pWm52EgaNQ0AEtMDQ2z9KnGphx09dwMAEhH8P+J80VpEB7e XZNaZjkq1IU6YtHOtALfZERdHyBn3GQBrKPm7XKVP7FLsfM3aIsJLz6KVd3pDeRHXJ9upBpH 3saiIniYcCQTOcNSTV5uw1zvnkehTNYQjQ
- Ironport-phdr: A9a23:f6bTLxSRvqRgiLeELsfB8EhgDdpsosKXAWYlg6HPa5pwe6iut67vI FbYra00ygOTB8OAsrkd0rae8/i5HzBauNDZ6DFKWacPfidNsd8RkQ0kDZzNImzAB9muURYHG t9fXkRu5XCxPBsdMs//Y1rPvi/6tmZKSV3wOgVvO+v6BJPZgdip2OCu4Z3TZBhDiCagbb9oI xi6sxvdutMYjId/Jao91wbFr3RVcOhS2W9kOEifkhni6sut5pJv7zhct/c8/MNcTKv2eLg1Q 6ZFBzo8KWA148PrtRjHTQSR43YXT3sbnBlVDQXb9R/2Rpj+vDf0uep7wymaINb5TasoVjS47 qdkUwHnhSEaPDMk6m7Xi8hwjKVGoBK9ohF03oDZbJ2JOPd4Y6jQe84RS2hcUcZLTyFPAp2yY ZYTD+QPPuhYoYvyqEcBohalHwagGObvxyVUinPq36A31fkqHwHc3AwnGtIDqHPao8/vNKgOV uC+0anGwiveYPxIwzf29Y/FchUvof6SQL1/b9DRxFI0FwPElVWQspbqMymU1uQRqmWW6fdrW u2zhWA9sQ5xviSvydk2ionPno8bxF7K+Cp4zYg6J9C1S0B2bNy6HZZTtyyXNoV7T8EgTm11t ys0yqEKtJ2mcSUU1ZgqyB/SZ+KEfoWW/B/uV+ecLDFlj3xrf7K/ggy98UmmyuDkSsa030xFr i5fntnLrHAN2ATf6smBSvtn/0euwyyD1w7J6uxCPEs6lrLbJoYuz7IsjJYfrFjPEy3slEj3l qObdkcp9vC25+nmfrnrqJqRO5Johg7kM6kjn9KzDfg4PwULQmeW/OGx2KPn8ED/Xb5ElOc5k rPDv5DfPckbprC2AwtS0os75BiwASuo3MgXkHUeIlxIZRyKg5HuO17VPv/0F/C/g0mwkDhww PDGI7vhDYjXInjbirfheqp95FBAxwovzNBf4JRUBqsGIPLuRk/xsNvYDhg6MwCu3+nnD9B92 psfWWKJHKCZLLvfvFCU6u41PuWAeI0YtCz8JvQ/5/Pjj2c1mVoHcqmo2ZsXZmq4HvNjI0iBZ HrsjMkOHnoUsQokV+Hqk1yCUSVIZ3moRa485y07BJq8DYjfXoCtnKCB3CCjE5JKaWBJEFSMH W71eIWFQPcDdD+SItR6kjEfTrigS4oh1Qm0uwPgyrpnKPDU+iwCup752th1/b6bqBcp6DYhD 9iBy3rfCCZvj2YQTnk32rp+qApz0BCYwK1girtZE9JUoPhGWwN/OZ/HxPFhEIPPXBncdPeVT VLzQsm6GSpjCZUq0toWagB8Hc+jh1bNxW2xEroNnvuKApIztanT1ny0K8dmwGvdz/ociUI7S PdCJXHzhrJj7xOBQMnSgkCBnuCrc74d1WjD7iCY3G+WtQZZVgB3Fq7KVHRaakrNpsni/RD+S OrkArsuNk5NyNWJN7BRQtzvl1RPAvn5cpyKaG24nyK8BA2D26iXRIvsYWQUmivHXhsqiQcWq FOPLwM5Tgmsr2/ERGhrG1/jblnE6uhls3r9T1NinFLCVFFoy7fgok1dvvebUf5Ghtrs2Q8ko jRwRhOm2s7OTsCHrExndbldZtU05BFG03jYvkpzJM/oNLhs03gZdQk/pEbyz1NvEIwVlMYno H4w5BFzMrmRllJdJHuDxZ6lArTMMSHp+Qy3Lavf21XQytGTr6IB5fg1sX34vRqyHwwj7yYvy MFbhkOV/Y6CFw8OSdTxX0IwogB9vK3fazIh6pn8+EBWafXxnhWZntUjCa0i1wqqeMpZPOWcD gjuHsYGBs+obus3h1yuaRFCN+dXnEItF+WhcfbOmKuiPeI62SmjkXwC+od2lESF6yt7TOfMm ZcD2fCRmAWdBX/6ix+6v8b7lJohB3laF3ejySXiGI9aZ7FjNYcNB2C0JsSrx9J4z5fzUn9c/ VSnChsIwsisMRaValX820VX2yF16TSilya0wiZciDAytaPZ3TCPi+XueRwbO3JaEXF4hASkK oy1gtYGGUmwOlRx0kL9ugCkgfUE98EdZyHJTExFfjb7NTRnW6q07P+ZZtJXrYkvumNRWfi9Z laTTvj8pQEb2mXtBTg7pnhzeje0t5H+hxE/hniaKSM5qXTUdcxq7Qze/8fVA/9NlGlOVGxjh D/bC0Lpddyn8NmZjb/Ys/ulXiSgStcAFEujhZPFvyy962pwBBS5lP3mgdzrHz8x1irj3sVrX yHFxPrlSrHizL/yceduf00yQUT599I/AIZ11I05mJAX33EewJST53sO12npY51X3qf3bXxFQ jBuoZad5Qbo1EB5BmmI3JnwEHSBisdsfNi1ZGoK1zl1s5gMUf/LquICwHQ9q0HwtQ/LZPlhg joRgeAj7nIXmaBs2kJlzymQBKwTAVgNOCXtkxqS6NXt5K5TZWupbf2xzB8ixZb4VO7E/EcBB yWcGN9qByJ748RhPUiZ1XTy7tuhY9zMdZcJsRbSlR7cju9TIZZ3l/wQhCMhN3iu2B9tg+M9k xFq2om3+YadLGA4tqe3DxJVLBXuZtgI83fskewN1tbTxI2pEph7T38OUpbkQOiACzMJrv2hN hrEQ1he4j+LXLHYGwGY8kJvqXnCRouqO3+gL34c1dx+RROZKR8XkEUOUT49hJJ8ChGyyZmrb hJi/j5IrA2dyFME2qdyOhL4SGuauAq4dmJ+Vs2ENBQPpgBauxWJaYrPtKQrWXkfp8DprRTRe DDDIV0QUidRHBTDXg6GXPHm5MGcobXCQLPmd72WJ+3J8LAWVu/Ul8v3js06oHDUcJ3IZyYqD uVliBBKBSkrQp2AyTtTE3RFxWWRP6v57F+94nMl9MnnqaayAVu969fXUOkAdok/sxGwiqOeO +PCnz53JXBAzJQQyHTUyb8ZmlkPlyVpcDrrGrMF0EyFBOfZnqsdZ/ICQxt6L9AAr6c13w0Xf NXelsuwzLlzyPg8F1ZCU1Xl3MCvf80DZW+nZhvLA0OCNbLOIjOuoYm/eaSnVbhZl/lZrTWdh AzDTwrPFG/GkDPkEReyLetLkSeXegREv52weQpsDm6lS8/6bhq8M5l8ijhTo/V8in7RNGEaO CRxaAsR9vvJtXwe3LMiRCRI9TJ9IPOBmjqF4uWQMZsQvfZxQ2x1m+9c/HUm2u5V4SVDF5kX0 GPZqt9jpU3jk/HalmIhCUIR7GgN2d3Y2Ccqcb/U/ZRBR3veqRcE7GHKTg8Pu8MgENrk/aZZ1 tnIkqv3bjZE6dPdu8UGVK22YIqKNmQsNR3xFXvaFgwAGHSuO2zTilZ1i/CJ7XTTr4Rw+f2O0 NIeD6RWUlA4DKZQEkN+ANkLO4t6RBsJrITD0IskzyH7qxPcAsJHoprAS/SeR+31LyqUhqVFY B1Oxq7kKYMUNcvw3EkoOTwY1MzaXkHXW95KuChoaAQ59V5M/HZJRWo2w0v5awmp7SxbBbuuk xUxkAc7ffU1+WKm/QIsPlST7nhV8gF5iZD/jDuWajK0MKqgQdQcFX/vr0ZoepLjH1QpNUvjx wo8cm+DHu8ZjqM8JzwzzlaE5t0XX6YbFPMhAldYxOnLNahylw0E8mP/gxcAvLeNCIM+xlJyL djw8DQYnVokNYF9JLSOdvBAlgEC3/vX7CH0jrhjkkhCdyNvuCuTYHBa4kVQb+t/fnP68LA0s l7Q3GcTMGkKXP43rv847VszN6KY1SX83rVfK0e3ceuCM6eevGuGnsmNJzF4ngYBk00PlVCZ+ dwiaFGdEUEznuL5//EhLsvZMggTbtYArBA7nA6jjN+VnddZFd74EerlC+iTqKwTn0SoWh4zG JgB5dgAGZ/q11zEKcDgL/gOzhB/vWzW
- Ironport-sdr: p6cS2OaZG35nFY2OYbIyStIcvc5CPvazbmKxyb222yyIRVCx5X29InH0rgHEqNrXnDLQ+EMCKI dU5ByKhMDFgP0R6g5fc+QyFqNPPCqQb7Humb/pZndza5EGo003Z0JIvGRP0+BEi+4px7jczGDK 13BDUvPRd7nmdTW59Kt4zw766sN/60r7RPJz0+it+mP418g9huR2HzrlD6OkUI55q8vGfk4XWc C1j+aQlZTPyZm9g0vQ7rbFyYeN4WAVabaK9UhlPowGw/TSN1Ucb+VowTPXmiuCmFsLYuUlKFqD h7Nx1EWGfWQ267V7wwc/4wa5
Thanks Andreas for your prompt reply,
Unfortunately, I don’t see how this can be applied to my problem, since I need to find the coordinates of the intersections only, not to loop over faces. I’m trying to set up a minimal working example where I have the unit square [0,1]^2 cut
by a straight line and the goal is to get the coords of the two intersection points.
The following snippet is adapted from example Example 9.3 (https://doc.cgal.org/latest/Triangulation_2/index.html#Triangulation_2ExampleBuildingaTriangulated).
So far I’ve only created the square and added the segment. How can I compute the two intersection points? Also, I don’t really see how to use Line_face_circulator.
#include
<CGAL/Constrained_Delaunay_triangulation_2.h>
#include
<CGAL/Constrained_triangulation_plus_2.h>
#include
<CGAL/Exact_predicates_exact_constructions_kernel.h>
#include
<CGAL/Polygon_2.h>
#include
<vector>
typedef
CGAL::Exact_predicates_exact_constructions_kernel
K;
typedef
CGAL::Polygon_2<K>
Polygon_2;
typedef
CGAL::Exact_intersections_tag
Itag;
typedef
CGAL::Constrained_Delaunay_triangulation_2<K,
CGAL::Default,
Itag>
CDT;
typedef
CGAL::Constrained_triangulation_plus_2<CDT>
CDTP;
typedef
CDTP::Point
Point;
typedef
CDTP::Constraint_id
Cid;
typedef
CDTP::Vertex_handle
Vertex_handle;
void
print(const
CDTP &cdtp,
Cid
cid) {
std::cout
<<
"Polyline constraint:" <<
std::endl;
for (Vertex_handle
vh :
cdtp.vertices_in_constraint(cid)) {
std::cout
<<
vh->point()
<<
std::endl;
}
}
int
main() {
CDTP
cdtp;
std::vector<Point>
points;
points.push_back(Point(1,
1));
points.push_back(Point(0,
1));
points.push_back(Point(0,
0));
points.push_back(Point(1,
0));
Cid
id1 = cdtp.insert_constraint(points.begin(),
points.end()); //create square
Cid
id2 = cdtp.insert_constraint(Point(0.2,-0.2),Point(0.5,1.1));
//insert segment
print(cdtp,
id1);
return
0;
}
Best,
Marco
--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss
On 27 Jan 2022, at 10:40, Andreas Fabri <> wrote:
Hello,
You could use the Line_face_circulator
Best,
Andreas
On 1/27/2022 9:29 AM, Marco Feder ( via cgal-discuss Mailing List) wrote:
"> Hi everyone,
I’m trying to see if it’s possible to use CGAL to perform the intersection between a mesh and a (closed) curve inside it. This curve has co-dimension 1, and I’m assuming it’s just the union of segments given by straight lines connecting its support points, which I know of course.
Basically my goal is to compute the coordinates of the blue points as in the attachment. As I am new to CGAL, I’d like to understand how you would attack the problem. Arrangement_2D cannot be used now because I do need the coordinates, so I was thinking to directly work with the 2D mesh package, even if I don’t see a straightforward way to get the result.
Best,Marco<cut_mesh_2.jpeg>
--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss
-- Andreas Fabri, PhD Chief Officer, GeometryFactory Editor, The CGAL Project
--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss
- [cgal-discuss] Find intersections of a curve inside a mesh in 2D, Marco Feder, 01/27/2022
- Re: [cgal-discuss] Find intersections of a curve inside a mesh in 2D, Andreas Fabri, 01/27/2022
- Re: [cgal-discuss] Find intersections of a curve inside a mesh in 2D, Marco Feder, 01/27/2022
- Re: [cgal-discuss] Find intersections of a curve inside a mesh in 2D, Andreas Fabri, 01/28/2022
- Re: [cgal-discuss] Find intersections of a curve inside a mesh in 2D, Marco Feder, 01/27/2022
- Re: [cgal-discuss] Find intersections of a curve inside a mesh in 2D, Andreas Fabri, 01/27/2022
Archive powered by MHonArc 2.6.19+.