Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Determine whether or not a Point is inside a 2D triangulation

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Determine whether or not a Point is inside a 2D triangulation


Chronological Thread 
  • From: Andreas Fabri <>
  • To:
  • Subject: Re: [cgal-discuss] Determine whether or not a Point is inside a 2D triangulation
  • Date: Fri, 17 Feb 2023 11:06:57 +0100
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23: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 A==
  • Ironport-hdrordr: A9a23:/tVoP6pWjbVRDk2Z4cIlmYAaV5rNeYIsimQD101hICG9Evb1qy ncpoV+6faUslgssR4b+exoVJPwOE80sKQFmbX5Xo3SPzUO2lHIEGgK1+KLqFeMJ8S9zJ866U 4KSdkaNDSfNykcsS+32njbL/8QhP+58eSDgOfTyGpMVGhRBJ1I3kNeFQfeL1Z/TgVcQbo1fa DsnfZvln6eQjAsV+yeLFE4ZcSrnay2qLvWJSE8QyQfwC21pxWSxNfBYmWl9yZbbAgK+44L1V L5uzHUj5/Tyc2G9g==
  • Ironport-phdr: A9a23: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
  • Ironport-sdr: 63ef51c4_I+gktGjxCBZ+9dXy8P9nPgtNxj2mzxvoRmRfE+XcZ9Z+1/z 3LurX1oLKyHwLEqBWVwKdOr511Lv7TY1d+wPEGA==

You only insert points.

For a domain you have to insert polygons or segments that spit up the plane.

On 2/17/2023 10:59 AM, Bob Bill ( via cgal-discuss Mailing List) wrote:
Hi,

I need to determine if a Point is inside or outside a 2D mesh (in particular a constrained Delaunay triangulation). I’ve found the answer to this question (https://stackoverflow.com/questions/22448060/how-to-determine-a-point-is-inside-2d-mesh-or-not-cgal) on SO, but I can’t understand why this query is always negative in my particular application. Please see the following MWE, where the origin is not recognised as an internal point.

I don't see what is the problem, any hint is highly appreciated.

Best,
Bob

#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_mesher_2.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Triangulation_conformer_2.h>
#include <iostream>
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Triangulation_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 CDT::Point Point_2;
typedef CDT::Vertex_handle Vertex_handle;
int main() {
CDT cdt;
// construct a constrained triangulation
Vertex_handle va = cdt.insert(Point_2(5., 5.));
Vertex_handle vb = cdt.insert(Point_2(-5., 5.));
Vertex_handle vc = cdt.insert(Point_2(4., 3.));
Vertex_handle vd = cdt.insert(Point_2(5., -5.));
Vertex_handle ve = cdt.insert(Point_2(6., 6.));
Vertex_handle vf = cdt.insert(Point_2(-6., 6.));
Vertex_handle vg = cdt.insert(Point_2(-6., -6.));
Vertex_handle vh = cdt.insert(Point_2(6., -6.));
std::cout << "Number of vertices before: " << cdt.number_of_vertices()
<< std::endl;
typename CDT::Face_handle fh = cdt.locate(Point_2{0., 0.});
std::cout << fh->is_in_domain() << std::endl;
}


--
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



Archive powered by MHonArc 2.6.19+.

Top of Page