Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Check if region contains point

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Check if region contains point


Chronological Thread 
  • From: Claus Volko <>
  • To:
  • Subject: Re: [cgal-discuss] Check if region contains point
  • Date: Thu, 14 Sep 2023 07:28:23 +0200
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23: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
  • Ironport-hdrordr: A9a23:8ZTduK9CjhQ0ilK3pmluk+DhI+orL9Y04lQ7vn2ZKCYlC/Bw8v rFoB11726QtN98YgBDpTnEAtjifZq+z/9ICOsqTNOftWDd0QPCEGgh1+vfKlbbakrDH4BmpM FdmmtFZOEYz2IWsS832maF+h8bruW6zA==
  • Ironport-phdr: A9a23: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 3bebyNxZO0s8HHn5FJlfjL3
  • Ironport-sdr: 65029a04_0C2kARb5hMiuNZ1BifJyOgOdDZn/BESMnMOi8OIT3DcxzMF o4zXJNMBPqNtRl0U0LG6F5ECtIkaN+cqk4F+JKQ==

I tried coloring the regions with intersections red. The result looked strange. That's why I don't think the code I posted does its job.

Am Mi., 13. Sept. 2023 um 12:41 Uhr schrieb Claus Volko <>:
I'm now trying this:

  for (std::size_t i = 0; i < regions.size(); i++)
  {
      Region_growing::Primitive_and_region region = regions[i];
      Line_3* l = new Line_3(Point_3(0, -1, 0), Point_3(0, +1, 0));
      auto intersection = boost::get<Point_3>(&*CGAL::intersection(region.first, *l));

      if (intersection && region.first.has_on(*intersection)) std::cout << "Region has point on it: " << region.first << " at" << *intersection << std::endl;
  }

It returns fewer incidences of intersection, but I'm still not sure if it does what it should.

Am Mi., 13. Sept. 2023 um 11:39 Uhr schrieb Claus Volko <>:
I've realized the way I did it was not correct because it searched for the intersection of the plane with the line, which always returns a point. But I actually want to check for intersection with the finite region.

However, I've not understood how region_map() would help me in my endeavour. Could you perhaps point me to an example?

Thank you!

Am Mi., 13. Sept. 2023 um 11:03 Uhr schrieb Sebastien Loriot <>:
region_map()

https://doc.cgal.org/latest/Shape_detection/classCGAL_1_1Shape__detection_1_1Region__growing.html#a60adecff409f4025585c64cd3bd70110

Provides a property map associating indicating the region index for each
input element. The key of the map depends on your instantiation. But
everything should be documented in the documentation of your model.

Best,

Sebastien.

On 9/13/23 09:56, Claus Volko ( via cgal-discuss
Mailing List) wrote:
> OK, it seems I've found it out myself by now:
>
>    for (Region_growing::Primitive_and_region region : regions)
>    {
>        Line_3* l = new Line_3(Point_3(0, -10, 0), Point_3(0, +10, 0));
>
>        if (CGAL::intersection(region.first, *l))
>        {
>            std::cout << "Region has point on it" << std::endl;
>            break;
>        }
>    }
>
> Am Mi., 13. Sept. 2023 um 09:39 Uhr schrieb Claus Volko
> < <mailto:>>:
>
>     OK, I've realized by now that the code I posted was not wrong but
>     that what I really need is to check if a line intersects with a
>     region, as I don't know the y coordinate of the point I'm looking
>     for. How can that be done?
>
>     Am Mi., 13. Sept. 2023 um 07:04 Uhr schrieb Claus Volko
>     < <mailto:>>:
>
>         I would like to find the region that contains a given point
>         after using the region growing algorithm for shape detection. I
>         tried this code but it does not seem to work:
>
>            for (Region_growing::Primitive_and_region region : regions)
>            {
>                Point_3 *point = new Point_3(0, 0, 0);
>                if (region.first.has_on(*point))
>                    std::cout << "Region has zero point on it" << std::endl;
>            }
>
>         Also, if I found a region, how can I access the information
>         about the boundaries of the region?
>
>         --
>         Dipl.-Ing. Dr. Claus D. Volko, BSc
>         http://www.cdvolko.net/ <http://www.cdvolko.net/>
>
>
>
>
>
>     --
>     Dipl.-Ing. Dr. Claus D. Volko, BSc
>     http://www.cdvolko.net/ <http://www.cdvolko.net/>
>
>
>
>
>
> --
> Dipl.-Ing. Dr. Claus D. Volko, BSc
> http://www.cdvolko.net/ <http://www.cdvolko.net/>
>
>
>
>
> --
> 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




--
Dipl.-Ing. Dr. Claus D. Volko, BSc
http://www.cdvolko.net/





--
Dipl.-Ing. Dr. Claus D. Volko, BSc
http://www.cdvolko.net/





--
Dipl.-Ing. Dr. Claus D. Volko, BSc
http://www.cdvolko.net/






Archive powered by MHonArc 2.6.19+.

Top of Page