-
Notifications
You must be signed in to change notification settings - Fork 319
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
meaning about the "sides" in the mesh structure #36
Comments
Hi, Can you help me clarify the "sides" doubts? It's really not very clear to me. Thanks a lot. |
Hi @chengzg , Thanks for letting me know it's not clear :). I added some comments within the build_gemm method:
let me know if it's still not clear. Thanks, |
Yes, the mesh connectivity is exactly the same. The vertex positions are arbitrary, since there is no effect of vertex position in the loss function (they are only used to extract the input features), so they are just for visualization purposes. In the visualizations, we use the same vertex position as the original mesh. To export the reconstructed mesh, please follow the segmentation examples from this github repo. I also explained that in this issue. |
@ranahanocka , Thanks so much for your time and answer. I am sorry but it is still not clear to me. Let's say i have a simple mesh contains 3 faces only as shown below. faces are: F1(0, 2, 1) F2(0, 3, 2) F3(0, 4, 3) 4 /\ 3 /__ \ 0 \ / \ \/___\ 2 1 According to the program, the information will be: edge list, | edge_nb(gemm_edges) | sides (0, 2) --> 0 [1, 2, 3, 4] [1, 0, 1, 0] (1, 2) --> 1 [2, 0, -1, -1] [1, 0, -1, -1] (0, 1) --> 2 [0, 1, -1, -1] [1, 0, -1, -1] (0, 3) --> 3 [4, 0, 5, 6] [1, 2, 1, 0] (2, 3) --> 4 [0, 3, -1, -1] [3, 0, -1, -1] (0, 4) --> 5 [6, 3, -1, -1] [1, 2, -1, -1] (3, 4) --> 6 [3, 5, -1, -1] [3, 0, -1, -1] So for example, edge index 6 whose vertex index pair is (3, 4): Appreciate your time and answer. Thanks. Thanks & Regards |
Hi @chengzg , so think about everything in terms of edge indices. For edge index 6, which is a boundary edge, it has two neighboring edges 3 , 5: The first edge neighbor is 3. If we look at the neighboring edges of 3 we have: what
In other words sides[E][N] tells us the index of edge E for the the N neighbor. This data structure is used for the edge collapse in mesh_pool.py. When we delete an edge, each neighboring triangles should merge into a single edge, and so we must update the mesh with the new edges : You can sort of think of it like a tensor version of the half-edge data structure . |
@ranahanocka, |
Hi ranahanocka,
Cheers for the creativity. I am sorry if here is not the right place to ask the questions. I am looking at the code:
Thanks & Regards,
zg
The text was updated successfully, but these errors were encountered: