Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Can't call CGAL::intersection() function

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Can't call CGAL::intersection() function


Chronological Thread 
  • From: Bob Bill <>
  • To: Sebastien Loriot <>
  • Subject: Re: [cgal-discuss] Can't call CGAL::intersection() function
  • Date: Mon, 21 Feb 2022 08:57:33 +0000 (UTC)
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23: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
  • Ironport-hdrordr: A9a23:49TDvKDVUO36MrvlHell55DYdb4zR+YMi2QD/UZ3VBBTb4i8m8 ehgfVz726NtN9xYgBHpTnkAsK9qBznm6KdjbNxAV7mZniFhILKFvAE0WKB+UyCJ8SWzIc0up uIMZIObeEYZmIK6foSjjPZLz9Z+qj/zImYwd356FdGCSxJS4Ul1SdWLW+geHFedU19A504Ht 65yaN8ywZJLRwsA/iGOg==
  • Ironport-phdr: A9a23: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 50LGOczvLkdB/oaDUMjF9sHcs8fYw==
  • Ironport-sdr: Cv9elyetc9t4rRB2WvzexuGbgxB7rdGohjmWCbTzId5KwJmIXkIjmrqFedrIhqPSzzMlch9EWk FDprd8AS7oE9925kL6nKPiwCQBmoV3QNSjjm8HolKtFdq3TN/7cVciE3LrzingUFwu08vJatZ7 G5J6oRZAbJn8u+6lVGOV/EzQDtOJiPa/JZj6SB/pSFLTQIwm54eOjqq23VcAUlRrzqJI56byHE magWMULAwJwdDxEqU3LP+1jk5IVaI8tWueuPvcPKkSgws8NKj19MCpAYjUuw2HWxfrAA3vCHYa /Ei8uFKdSp8vgGbIUcDIJss4

Thanks for the advice Sebastien. Unfortunately I have to deal with the input, not with the output of CGAL::intersection().

I'm trying to follow your advice: I think you mean to change the struct this way:

template <typename T>
struct Intersection_visitor {
T operator()(const T& p){return p;}
};

Then in the main() I should do:

auto result1 = boost::apply_visitor(Intersection_visitor<Segment>(),first);

which is a problem to me since I don't want to explicitly specify the template argument <Segment>. How can I avoid to specify it?

Thanks,
Bob
Il lunedì 21 febbraio 2022, 09:09:04 CET, Sebastien Loriot <> ha scritto:


On this page, there are 3 examples of how to deal with output of
intersection function:
https://doc.cgal.org/latest/Kernel_23/group__intersection__linear__grp.html

Maybe the second one (apply_visitor) will better fit your need
(using a template operator()).

Best,

Sebastien.

On 2/21/22 00:58, Bob Bill ( via cgal-discuss Mailing
List) wrote:
> Thanks for your prompt reply, Marc!
>
> Okay, I got what the problem is. However, I don't see how to dispatch
> "automatically". I mean, how can I get the actual type of ´first´ in
> order to pass it as an argument of the proper type to CGAL::intersection() ?
>
> I cannot do something like:
>
> if (const Segment *s = boost::get<Segment>(&first)) {
> Segment first_s = *s;
> } else if (const Rectangle *p = boost::get<Rectangle>(&first)) {
> Rectangle first_r = *p;
> } else if (const Triangle *t = boost::get<Triangle>(&first)) {
> Triangle first_t = *t;
> }
>
> because in this way I will not be able to pass the original `first`.
> This is the first time I'm using boost libraries, so I'm really sorry if
> that's a trivial question.
>
> Best,
> Bob
> Il domenica 20 febbraio 2022, 21:14:43 CET, Marc Glisse
> <> ha scritto:
>
>
> On Sun, 20 Feb 2022, Bob Bill  wrote:
>
>
>  > I am facing the following problem: I have two 2D objects. Each one
> could be a triangle, a rectangle or a segment, and I need to compute
> their intersection using CGAL::intersection().
>  > So I created a function `create_suitable_object` that takes the
> vector with the vertices and create the corresponding CGAL object. As
> the return type is not unique, I used `boost::variant`.
>  > Then in my main I created the two objects calling the above mentioned
> function for each vector of vertices, and then I wanted to pass those
> objects to CGAL::intersection().
>
>
> Where in the documentation did you see that it was ok to pass a variant to
> CGAL::intersection? As far as I can see, it only lists overloads like
> intersection(segment, triangle), etc, so you need to handle the
> dispatching yourself.
>
> --
> Marc Glisse
>
> --
> You are currently subscribed to cgal-discuss.
> To unsubscribe or access the archives, go to
> https://sympa.inria.fr/sympa/info/cgal-discuss
> <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





Archive powered by MHonArc 2.6.19+.

Top of Page