Subject: CGAL users discussion list
List archive
Re: [cgal-discuss] Get sub-elements induced by the cut of an element with a curve
Chronological Thread
- From: Efi Fogel <>
- To:
- Subject: Re: [cgal-discuss] Get sub-elements induced by the cut of an element with a curve
- Date: Wed, 26 Jan 2022 09:29:27 +0200
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
- Ironport-data: A9a23:SjO2P60dKKQS9FTUkPbD5cB3kn2cJEfYwER7XKvMYLTBsI5bpzFRm zNKWj/TOavcM2fxLYglYYWy/UpXuZDUmIBkG1Nk3Hw8FHgiRejtVY3IdB+oV8+xBpSeFxw/t 512hv3odp1coqr0/0/1WlTZhSAgk/nOH9IQMcacUsxLbVYMpBwJ1FQzy4bVvqYy2YLjW1rX5 4uryyHiEAbNNwBcYjp8B52r80sHUMTa4Fv0aXRjDRzjlAa2e0g9VPrzF4npR5fLatU88tqBe gr25OrRElU1UPsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0o2HKJ0VKtZt9mGt9Yq4 e1zkqyRclwkPYecyMAhbD1ELhgraMWq+JefSZS+mcmazkmDbGG1hvsyXAc5OooX/usxCmZLn RAaAGpVP1bT2qTsmuv9FrkEascLdKEHOKsStHBuyj7UCd4pRJnCR+PB4towMDIY2pgfQq6FP aL1bxJDMlfqeiZNBm5UJ7Iu39uDtEPzUxtX/Qf9Sa0fujCPlmSdyoPFO9XcfpmGRN5eg12Dj nnX+nzwRBAcLt2WjzSfmk9AncfKlCL/HZ0ITfi2qq4sj1qUyWgeThYRUDNXvMVVlGa4APtnF Wsk2xF1oKsYpByPcubZQyCB9SvsUgEnZ/JcFOgz6Qeow6XS4hqECmVsctKnQIx33CPRbWx6v mJlj+8FFhQ07+LIESP1GqO86GLtaXJMfAfucAddFVNdi+QPtr3fmf4mczqOOKu8j9mwBiuph j7W/G4xgLIcicNN3KK+lbwmv95OjsiXJuLWzl+PNo5A0u+fTND5D2BPwQaAhcus1K7DEjG8U IEswqByFtwmA5CXjzCqS+4QBryv7PvtGGSC3QU2RMR9r2zwoCLLkWVsDNdWdBYB3iEsKW+BX aMvkV45CGJ7YCHzNvcuO+pd9exwlPK4TbwJqcw4nvIXOsQrHON21C5pYkGU0gjQfLsEwMkC1 WOgWZvyUB4yVPs/pBLrFr91+eJ6nUgWmDKDLa0XOjz9jtJyklbOGelbWLZPB8hlhJ65TPL9q oYGaJDSmkwBCYUToED/qOYuELzDFlBjbbieliCdXrfrztNOFD5zBvnP76kmfoA5za1Zmv2Zr H64U05cjlH4gCSfewmNb3libpLpXIp+/SprZ3xyYQ7w1ihxe5ur4Ycea4AzIusq+ell+vh+E KsIdsCGNfJQR2mV4D8ad5T88NdveU3z1wKDNiaoehYleJtkS1Cb89PoZFq9+ywHDy7xvsw7+ uXy2gTeSJsFZgJjEMeGMKL1nw3t5SAQwbsgUVHJL99ffFTX3LJrcyGh3OUqJ8wsKAnYwmTI2 guTByAer7afroIw9u7PmvnY/YqkFu1JHn1aEXPe2rC4OHSI5WGk24JBDL+FcD2BBmP5/KKuO bdcw/3maqZVmV9Lt89jCe8uw/5uodTooLBew0JvG3CSNwanDbZpI3+n28hTt/0SmuUI51PuA k/fqMNHPbipOd/+FAJDLgQSaOneh+ofnSPf7KhoLUimtjV7+qGLDRdbMxWW0ncPKbJ0NMY62 75ktpJGrQO4jRUuP5CNiSUNrzaAKXkJUqMGsJAGAd+01lB6lAkaOZGMWDXr5JyvaslXNhV4K DGjgqef1a9XwVDPciZuGHXAtQaHaU/iZPyXIJ4+y1W1dh7tg/Y22FhO621yQFgFiBpA1O13N y5gMEgdyWBiOdt3rJArYoxuM1gp6N6lFojZxF4AlWmfRE6tPoAIBHNoIv6DpSj17EoFFgW2P 9ikJKLNXjPjfcW31Sw3MaKgRzoPUvQpnjD/dAub8whp0nX0jfcJQkNjWIbQlybaPA==
- Ironport-hdrordr: A9a23:c54XeaO+KbFgpMBcTvijsMiBIKoaSvp037BL7TEJdfUxSKalfq +V7ZEmPHPP+VQssTQb6LO90cq7IE80l6QFhbX5VI3KNGLbUSmTTL2KhrGSpAEIdReOkNK1Fp 0NT0G9MrDN5JRB4voSKTPXL+od
- Ironport-phdr: A9a23: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
- Ironport-sdr: C43dSy3TlyvRA2jhdM73OXsLZr9EgAQLqp7zS+OfTJ8Nlbm/9+lzmkuj0YhRL9ycB3jjmQ+1n9 xaQ6Ez2RELgDZtGXUxIQJ+tLc7AT94z9k0esJ2Xw7R2V/L03jUNM9nIYaq8zL6PlPlOb/Qw9P/ j8XNtidaGo/aGBI9XiZCJxuKLIoZA7CMtRWBuasVF0SiS30SthzEX57MIaN5n83OjYMK4d9kLM mrgeCzlF9RvmxFj6uQ0dX+/5We4mE5/VoWxiNGn6KOn5vSwqee58/dlNrciL7zAG2JJW7QSyHx hjbBFh9dU4mHXVbt11S8ug9s
typedef boost::variant<Vertex_handle, Halfedge_handle, Face_handle> Zone_result;
std::list<Zone_result> zone_elems;
zone(arr, seg, std::back_inserter(zone_elems));
____ _ ____ _
/_____/_) o /__________ __ //
(____ ( ( ( (_/ (_/-(-'_(/
_/
/_____/_) o /__________ __ //
(____ ( ( ( (_/ (_/-(-'_(/
_/
On Wed, 26 Jan 2022 at 01:14, Marco Feder <> wrote:
I’m sorry to post again, but I’ve not been able to find the proper way to give that OutputIterator argument.
I was thinking to use std::back_inserter() like this:
std::vector<?> arr_vec;auto my_zone = CGAL::zone(arr,my_curve,std::back_inserter(arr_vec),pl);
The issue, again, is that I don’t know what is the correct template for arr_vec. Which one should I use?Best,
Marco
On 22 Jan 2022, at 14:04, Marco Feder <> wrote:
Thanks Efi Fogel,
I’m trying to cook a MWE to handle the situation I have in the attachment, but I have a hard time understanding how to give the OutputIterator argument to the CGAL::zone() function.
So far I have the following snippet, which does not compile as output_it cannot be constructed. How can I define that output iterator correctly?
#include <iostream>#include <iterator>
#include <CGAL/Arr_segment_traits_2.h>#include <CGAL/Arr_walk_along_line_point_location.h>#include <CGAL/Arrangement_2.h>#include <CGAL/Cartesian.h>#include <CGAL/MP_Float.h>#include <CGAL/Quotient.h>#include <CGAL/intersections.h>
typedef CGAL::Quotient<CGAL::MP_Float> Number_type;typedef CGAL::Cartesian<Number_type> Kernel;typedef CGAL::Arr_segment_traits_2<Kernel> Traits_2;typedef Traits_2::Point_2 Point_2;typedef Traits_2::X_monotone_curve_2 Segment_2;typedef CGAL::Arrangement_2<Traits_2> Arrangement_2;typedef CGAL::Arr_walk_along_line_point_location<Arrangement_2> walk_pl;
int main() {Arrangement_2 arr;Segment_2 cv[3];walk_pl pl(arr);Point_2 p1(0, 0), p2(0, 4), p3(4, 0);cv[0] = Segment_2(p1, p2);cv[1] = Segment_2(p2, p3);cv[2] = Segment_2(p3, p1);CGAL::insert(arr, &cv[0], &cv[3]);
Segment_2 my_curve(Point_2(0,1), Point_2(2,2)); // curve is a segment now, it cuts the triangleinsert(arr, my_curve, pl);
// Compute the zone of the curvestd::ostream_iterator<Arrangement_2> output_it(std::cout,'\n’); // Error!auto my_zone = CGAL::zone(arr,my_curve, output_it,pl);
return 0;}
Best,Marco
On 20 Jan 2022, at 15:01, Efi Fogel <> wrote:
If you can reduce the problem to the plane (perhaps it is already in the plane), you can use the Arrangement_2 class template from the "2D Arrangement" package; see https://doc.cgal.org/latest/Arrangement_on_surface_2/index.html.Construct an arrangement of the type of curves you are interested in, then use the CGAL::zone(c) free function to compute the zone of a given curve c; see
https://doc.cgal.org/latest/Arrangement_on_surface_2/group__PkgArrangementOnSurface2Funcs.html#ga49aa156968945f5533a2b5d9897ca659
____ _ ____ _
/_____/_) o /__________ __ //
(____ ( ( ( (_/ (_/-(-'_(/
_/
On Thu, 20 Jan 2022 at 14:27, Marco Feder <> wrote:
Dear all,
I’m completely new to CGAL, and I’d like to understand if it’s possible to perform the following task:
Consider an element T of a 2D mesh, which is cut by a curve \Gamma. Is it possible to define/get the two new elements, say T_1 and T_2, induced by the cut, as showed in the attachment?
If so, could you please point me to the right examples/pages in the manual?
Best regards,Marco
<cut.jpeg>
--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss
--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss
--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss
--
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] Get sub-elements induced by the cut of an element with a curve, Marco Feder, 01/20/2022
- Re: [cgal-discuss] Get sub-elements induced by the cut of an element with a curve, Efi Fogel, 01/20/2022
- Re: [cgal-discuss] Get sub-elements induced by the cut of an element with a curve, Marco Feder, 01/22/2022
- Re: [cgal-discuss] Get sub-elements induced by the cut of an element with a curve, Marco Feder, 01/26/2022
- Re: [cgal-discuss] Get sub-elements induced by the cut of an element with a curve, Efi Fogel, 01/26/2022
- Re: [cgal-discuss] Get sub-elements induced by the cut of an element with a curve, Marco Feder, 01/26/2022
- Re: [cgal-discuss] Get sub-elements induced by the cut of an element with a curve, Andreas Fabri, 01/26/2022
- Re: [cgal-discuss] Get sub-elements induced by the cut of an element with a curve, Efi Fogel, 01/26/2022
- Re: [cgal-discuss] Get sub-elements induced by the cut of an element with a curve, Marco Feder, 01/26/2022
- Re: [cgal-discuss] Get sub-elements induced by the cut of an element with a curve, Marco Feder, 01/22/2022
- Re: [cgal-discuss] Get sub-elements induced by the cut of an element with a curve, Efi Fogel, 01/20/2022
Archive powered by MHonArc 2.6.19+.