Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Problems with Delaunay_triangulation_2 when compiling as DLL

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Problems with Delaunay_triangulation_2 when compiling as DLL


Chronological Thread 
  • From: Claus Volko <>
  • To:
  • Subject: Re: [cgal-discuss] Problems with Delaunay_triangulation_2 when compiling as DLL
  • Date: Fri, 13 Oct 2023 06:40:54 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23: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 YmwjQ==
  • Ironport-hdrordr: A9a23:frVN6KmjtcOe3foAo4VduS53MzjpDfIV3DAbv31ZSRFFG/Fw9v re5cjzsCWftN9/YgBEpTntAtjjfZqYz+8X3WBzB9aftWvdyQ+VxehZhOOI/9SjIU3DH4VmpM BdmsZFebvN5JtB4foSIjPULz/t+ra6GWmT69vj8w==
  • Ironport-phdr: A9a23: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 pUJTbBfWRo+EfZIUiyN+fQNJZ52WnUvlrvJ1KY1
  • Ironport-sdr: 6528ca6a_loaL12gmNMWgDQGsr0/gx/2qqQZ883rFCbKrCluw8u6asMp SYVr2Ow286MoEW4nngg7G0a42T+bixxjd4iNw1A==

I'm now trying this variant:

CGAL::Surface_mesh<Point_3> create_tree()
{
    using Mesh = CGAL::Surface_mesh<Point_3>;
    Mesh mesh;
    CGAL::copy_face_graph(polygon_mesh, mesh);
    Tree tree(faces(mesh).first, faces(mesh).second, mesh);
        std::vector<Point_3> points;
        for (auto x = -1000; x < +1000; x++)
            for (auto z = -1000; z < +1000; z++)
            {
                Point_3 point(x, +20, z);
                points.push_back(point);
                Point_3 point1(x, -10, z);
                Line_3 line(point, point1);
                Ray ray(point, line);
                auto intersection = tree.first_intersection(ray);
                if (intersection)
                {
                    const Point_3* p = boost::get<Point_3>(&(intersection->first));
                    if (p) points.push_back(*p);
                }
            }

        CGAL::Surface_mesh<Point_3> output_mesh;

        std::string fname = "c:\\temp\\newmesh.xyz";
        CGAL::IO::write_XYZ(fname, points);

        Point_set points1;
        std::ifstream stream(fname, std::ios_base::binary);
        stream >> points1;

        std::cout << "Reconstructing surface" << std::endl;

        typedef std::array<std::size_t, 3> Facet; // Triple of indices
        std::vector<Facet> facets;
        // The function is called using directly the points raw iterators
        CGAL::advancing_front_surface_reconstruction(points1.points().begin(),
            points1.points().end(),
            std::back_inserter(facets));
        std::cout << facets.size()
            << " facet(s) generated by reconstruction." << std::endl;
        // copy points for random access
        std::vector<Point_3> vertices;
        vertices.reserve(points1.size());
        std::copy(points1.points().begin(), points1.points().end(), std::back_inserter(vertices));
        CGAL::Polygon_mesh_processing::polygon_soup_to_polygon_mesh(vertices, facets, output_mesh);

        std::cout << "Returning output mesh" << std::endl;
    return output_mesh;
}

It seems that these two lines are not working if I compile as DLL:

auto intersection = tree.first_intersection(ray);

CGAL::advancing_front_surface_reconstruction(points1.points().begin(), points1.points().end(), std::back_inserter(facets));

Am Do., 12. Okt. 2023 um 09:14 Uhr schrieb Claus Volko <>:
I also tried this instead of Delaunay_triangulation_2, but it seems to hang (no progress for more than 20 minutes).

Polyhedron create_tree()
{
    using Mesh = CGAL::Surface_mesh<Point_3>;
    Mesh mesh;
    CGAL::copy_face_graph(polygon_mesh, mesh);
    Tree tree(faces(mesh).first, faces(mesh).second, mesh);

    std::vector<Point_3> points;
    for (double x = -1000; x < +1000; x++)
        for (double z = -1000; z < +1000; z++)
        {
            Point_3 point(x, +20, z);
            Point_3 point1(x, -10, z);
            Line_3 line(point, point1);
            Ray ray(point, line);
            auto intersection = tree.first_intersection(ray);
            if (intersection)
            {
                const Point_3* p = boost::get<Point_3>(&(intersection->first));
                if (p) points.push_back(*p);
            }
        }

    CGAL::IO::write_XYZ("c:\\temp\\newmesh.xyz", points);

    std::vector<Pwn> points1;
    CGAL::IO::read_points("c:\\temp\\newmesh.xyz", std::back_inserter(points1),
        CGAL::parameters::point_map(CGAL::First_of_pair_property_map<Pwn>())
        .normal_map(CGAL::Second_of_pair_property_map<Pwn>()));
    double average_spacing = CGAL::compute_average_spacing<CGAL::Sequential_tag>
        (points1, 6, CGAL::parameters::point_map(CGAL::First_of_pair_property_map<Pwn>()));

    std::cout << "Reconstructing poisson surface" << std::endl;

    Polyhedron output_mesh;
    CGAL::poisson_surface_reconstruction_delaunay
    (points1.begin(), points1.end(),
        CGAL::First_of_pair_property_map<Pwn>(),
        CGAL::Second_of_pair_property_map<Pwn>(),
        output_mesh, average_spacing);

    std::cout << "Returning output mesh" << std::endl;

    return output_mesh;
}

Am Do., 12. Okt. 2023 um 06:42 Uhr schrieb Claus Volko <>:
I attached the code I am trying to compile. When compiling it as EXE it works but not as DLL. The problem seems to be related to the code line where I define a TIN (using Delaunay_triangulation_2). When I include the DLL in a C# project and call region_growing_algorithm from there, I get the error message "Module not found". This does not happen when I outcomment USE_TREE. What's wrong with TIN?

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