Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Infinite loop in orient_polygon_soup in a degenerate case #8693

Open
sloriot opened this issue Jan 16, 2025 · 3 comments
Open

Infinite loop in orient_polygon_soup in a degenerate case #8693

sloriot opened this issue Jan 16, 2025 · 3 comments

Comments

@sloriot
Copy link
Member

sloriot commented Jan 16, 2025

I'm filling an issue as I observe an Infinite loop in orient_polygon_soup() in the function void duplicate_singular_vertices() that is extracting links of vertices to detect if a vertex is non-manifold (singular). I cannot reproduce the error in an isolated program, only in a complex one.

The problem happens here:

        if (next==v_id){
          /// turn the otherway round
          next = neighbors[0];
          do{
            P_ID other_p_id;
            std::tie(next, other_p_id) = next_ccw_vertex_around_target(next, v_id, polygons, edges, marked_edges);
            if (next==v_id) break;
            visited_polygons.insert(other_p_id);
            if(nb_link_ccs != 1)
              vertices_to_duplicate.back().second.push_back(other_p_id);
          }
          while(true);
        }

the pb happens because of a face having a degenerate edge, with the duplicated vertex being a T junction:

B----------------A
|                |
|                |
C-------DD-------E
|        |       |
|        |       |
|        |       |
F------- G-------H

f0: A-B-C-D-D-E
f1: E-D-G-H
f2: D-C-F-G

I'm not even sure we want to support such cases.

@VivekPrakashNitH
Copy link

VivekPrakashNitH commented Jan 21, 2025

Hello Sloriot,
I want to know more about the problem what is the issue and how can I help you. I want to contribute in the GSOC 2025 programme form CGAL . What is the issue and what is the problem and what are you trying to achieve in this particular issue can you explain me in detail I am new here . What are the things I need to refer to understand this project and how can I contribute to this Project

Regards
Vivek Prakash Yadav

@VivekPrakashNitH

This comment has been minimized.

@sloriot

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants