hcebke / libQEx

The Robust Quad Mesh Extraction Library
GNU General Public License v3.0
106 stars 36 forks source link

some error during libqex running #8

Open DragonDLW opened 6 years ago

DragonDLW commented 6 years ago

I use a Global parameterization to generate texture coordinates to generate a .obj file and use this .obj file as input to libqex.During the program running,program running error occurs.I guess the error is from global parameterization.Thanks for your reply! The error follows: `Exact predicates initialized. Not using externally supplied vertex valences. MeshDecimator::decimate() collapsed 10 edges. constructed 11193 valid transition functions -> 30 invalid ones test exactness of transition functions before preprocessing... ... done! found 224 inexact transitions in input with max deviation 1.60583e-12 QuadMeshExtraction Preprocess maxmial uv deviaton: 9.53674e-07 test exactness of transition functions... ... done! MeshDecimator::decimate() collapsed 0 edges. GV 538 (OnVertex) on face 4200: expected_lei_count != _gv.local_edges.size(): 2 != 3, pos_angleSum: 3.14159 GV 542 (OnVertex) on face 6856: expected_lei_count != _gv.local_edges.size(): 7 != 2, pos_angleSum: 10.9956 GV 543 (OnVertex) on face 4354: expected_lei_count != _gv.local_edges.size(): 5 != 2, pos_angleSum: 7.85398 GV 544 (OnVertex) on face 2463: expected_lei_count != _gv.local_edges.size(): 5 != 3, pos_angleSum: 7.85398 GV 545 (OnVertex) on face 3424: expected_lei_count != _gv.local_edges.size(): 3 != 1, pos_angleSum: 4.71239 GV 546 (OnVertex) on face 966: expected_lei_count != _gv.local_edges.size(): 3 != 1, pos_angleSum: 4.71239 GV 549 (OnVertex) on face 2111: expected_lei_count != _gv.local_edges.size(): 5 != 3, pos_angleSum: 7.85398 GV 553 (OnVertex) on face 1783: expected_lei_count != _gv.local_edges.size(): 5 != 3, pos_angleSum: 7.85398 GV 554 (OnVertex) on face 1873: expected_lei_count != _gv.local_edges.size(): 5 != 1, pos_angleSum: 7.85398 GV 555 (OnVertex) on face 2512: expected_lei_count != _gv.local_edges.size(): 5 != 3, pos_angleSum: 7.85398 GV 559 (OnVertex) on face 5833: expected_lei_count != _gv.local_edges.size(): 3 != 1, pos_angleSum: 4.71239 GV 560 (OnVertex) on face 2605: expected_lei_count != _gv.local_edges.size(): 5 != 1, pos_angleSum: 7.85398 GV 561 (OnVertex) on face 2625: expected_lei_count != _gv.local_edges.size(): 5 != 3, pos_angleSum: 7.85398 GV 562 (OnVertex) on face 5988: expected_lei_count != _gv.local_edges.size(): 4 != 3, pos_angleSum: 6.28319 GV 563 (OnVertex) on face 4864: expected_lei_count != _gv.local_edges.size(): 5 != 1, pos_angleSum: 7.85398 GV 565 (OnVertex) on face 5447: expected_lei_count != _gv.local_edges.size(): 5 != 2, pos_angleSum: 7.85398 GV 566 (OnVertex) on face 5479: expected_lei_count != _gv.local_edges.size(): 3 != 1, pos_angleSum: 4.71239 GV 567 (OnVertex) on face 2671: expected_lei_count != _gv.local_edges.size(): 3 != 2, pos_angleSum: 4.71239 GV 568 (OnVertex) on face 2892: expected_lei_count != _gv.local_edges.size(): 19 != 5, pos_angleSum: 29.8451 ########### MeshExtractor #############

Face -GridVertices: 536

Edge -GridVertices: 2

Vertex-GridVertices: 31

ERROR: found invalid connection which does not have a reverse... vertex 316, 0 found vertex 536, 1 vertex 536, 1 found vertex 165, 1 types are OnFace, OnEdge, OnFace Warning: When tracing from GV 316, LEI 0 I hit GV 536, LEI 1. However, this GV is already connected to GV 165, LEI 1

Additional debug info

Grid Vertex 316 GridVertex {OnFace, non-boundary, heh: 18710, uv pos: (Point_2(2, 1)), 3d pos: (15.8813 4.00972 3.04271), local_edges: [ LocalEdgeInfo { fh_from.idx(): 4676, uv_from: (Point_2(2, 1)), uv_intended_to: (Point_2(3, 1)), uv_to: (Point_2(2, 1)), connected_to_idx: 536, orientation_idx: 1, face_constructed: 0, accumulated_tf: Rotation: 3, Translation: 2/2, primary: 1, id: 1264 }, LocalEdgeInfo { fh_from.idx(): 4676, uv_from: (Point_2(2, 1)), uv_intended_to: (Point_2(2, 2)), uv_to: (Point_2(2, 2)), connected_to_idx: 69, orientation_idx: 3, face_constructed: 0, accumulated_tf: Rotation: 0, Translation: 0/0, primary: 0, id: 1265 }, LocalEdgeInfo { fh_from.idx(): 4676, uv_from: (Point_2(2, 1)), uv_intended_to: (Point_2(1, 1)), uv_to: (Point_2(1, 1)), connected_to_idx: 252, orientation_idx: 0, face_constructed: 0, accumulated_tf: Rotation: 0, Translation: 0/0, primary: 0, id: 1266 }, LocalEdgeInfo { fh_from.idx(): 4676, uv_from: (Point_2(2, 1)), uv_intended_to: (Point_2(2, 0)), uv_to: (Point_2(2, 0)), connected_to_idx: 199, orientation_idx: 1, face_constructed: 0, accumulated_tf: Rotation: 0, Translation: 0/0, primary: 0, id: 1267 } ] }

Grid Vertex 536 GridVertex {OnEdge, non-boundary, heh: 5214, uv pos: (Point_2(3, 0)), 3d pos: (15.6063 3.65361 2.66772), local_edges: [ LocalEdgeInfo { fh_from.idx(): 950, uv_from: (Point_2(3, 0)), uv_intended_to: (Point_2(2, 0)), uv_to: (Point_2(nan, nan)), connected_to_idx: -1, orientation_idx: -1, face_constructed: 0, accumulated_tf: Rotation: 0, Translation: 0/0, primary: 0, id: 2144 }, LocalEdgeInfo { fh_from.idx(): 950, uv_from: (Point_2(3, 0)), uv_intended_to: (Point_2(3, -1)), uv_to: (Point_2(3, -1)), connected_to_idx: 165, orientation_idx: 1, face_constructed: 0, accumulated_tf: Rotation: 0, Translation: 0/0, primary: 0, id: 2145 }, LocalEdgeInfo { fh_from.idx(): 1366, uv_from: (Point_2(2, 1)), uv_intended_to: (Point_2(2, 2)), uv_to: (Point_2(nan, nan)), connected_to_idx: -1, orientation_idx: -1, face_constructed: 0, accumulated_tf: Rotation: 0, Translation: 0/0, primary: 0, id: 2146 }, LocalEdgeInfo { fh_from.idx(): 1366, uv_from: (Point_2(2, 1)), uv_intended_to: (Point_2(3, 1)), uv_to: (Point_2(nan, nan)), connected_to_idx: -1, orientation_idx: -1, face_constructed: 0, accumulated_tf: Rotation: 0, Translation: 0/0, primary: 0, id: 2147 } ] }

Grid Vertex 165 GridVertex {OnFace, non-boundary, heh: 11198, uv pos: (Point_2(3, -1)), 3d pos: (13.9937 3.65106 2.97779), local_edges: [ LocalEdgeInfo { fh_from.idx(): 2263, uv_from: (Point_2(3, -1)), uv_intended_to: (Point_2(4, -1)), uv_to: (Point_2(4, -1)), connected_to_idx: 509, orientation_idx: 2, face_constructed: 0, accumulated_tf: Rotation: 0, Translation: 0/0, primary: 1, id: 660 }, LocalEdgeInfo { fh_from.idx(): 2263, uv_from: (Point_2(3, -1)), uv_intended_to: (Point_2(3, 0)), uv_to: (Point_2(3, 0)), connected_to_idx: 536, orientation_idx: 1, face_constructed: 0, accumulated_tf: Rotation: 0, Translation: 0/0, primary: 1, id: 661 }, LocalEdgeInfo { fh_from.idx(): 2263, uv_from: (Point_2(3, -1)), uv_intended_to: (Point_2(2, -1)), uv_to: (Point_2(2, -1)), connected_to_idx: 243, orientation_idx: 0, face_constructed: 0, accumulated_tf: Rotation: 0, Translation: 0/0, primary: 1, id: 662 }, LocalEdgeInfo { fh_from.idx(): 2263, uv_from: (Point_2(3, -1)), uv_intended_to: (Point_2(3, -2)), uv_to: (Point_2(3, -2)), connected_to_idx: 202, orientation_idx: 1, face_constructed: 0, accumulated_tf: Rotation: 0, Translation: 0/0, primary: 1, id: 663 } ] }

ERROR: found invalid connection which does not have a reverse... vertex 536, 3 found vertex 316, 0 vertex 316, 0 found vertex 536, 1 types are OnEdge, OnFace, OnEdge Assertion failed: gvertices_[target.connected_to_idx].local_edges[target.orientation_idx].accumulated_tf == TF::IDENTITY, file f:\libqex\src\MeshExtractorT.cc, line 1534`

gaoalexander commented 1 year ago

+1, I am having a similar issue. I am using a parametrized .obj which was the result of doing an MIQ solve using the IGL library. Do you have any pointers on what might be the cause of these errors? They generally are of the form:

ERROR: found invalid connection which does not have a reverse...
vertex 973, 2 found vertex 1000, 1
vertex 1000, 1 found vertex -3, 0
types are OnVertex, OnVertex

Thank you!

hcebke commented 1 year ago

I'm sorry you're having this issue. I haven't touched this library, or even this entire field of research, in over 7 years, so I'm afraid at this point I can't be of any help.