Closed Cindy-xdZhang closed 1 year ago
I've fixed this(not sure fully correct just add a filter to possible edges), but I am not sure whether this tricky fix might give you some hints on what's the problem.
void possibleEdgeSafetyfilter(SurfacePoint& point, std::vector<Edge>& storage) {
std::vector<Edge> temp;
temp.reserve(storage.size());
for (const auto& e : storage) {
SurfacePoint eDummyPt(e, 0.5);
Face fShared = sharedFace(point, eDummyPt);
if (fShared != Face()) {
temp.emplace_back(e);
}
}
storage.swap(temp);
}
then in
std::vector<SurfacePoint> GeodesicAlgorithmExact::traceBack(const SurfacePoint& point) {
...........
while (visible_from_source(path.back()) < 0) {
SurfacePoint& q = path.back();
possible_traceback_edges(q, possible_edges);
possibleEdgeSafetyfilter(q, possible_edges);
...........
}
Uh oh, that sounds like it might be a bug. Could you please do two things two help us debug?
g_mesh_bump->validateConnectivity()
after constructing your mesh, just to make sure there is nothing funky about the mesh connectivity.Also paging @MarkGillespie in case he immediately knows what is up here.
Sorry I didin't check github recently, I will give you what you want shortly.
You can reproduce this exception in this repo branch "reproduce_exception": https://github.com/Cindy-xdZhang/geometry-central/tree/reproduce_exception
I am currently busy on some other projects until next year January 30 , I can work on this bug if it hasn't been fix at that time. again, thanks for the library.
I also encountered this bug. I don't have a stack trace but it seems to have to do with interacting with a mesh boundary. In this image all the white vertices are where it fails
Thanks for pointing this out! I made some changes which I think fix the issue, but feel free to reach out again if you find more weird behavior
Hello there, thank you for providing this framework, I have encountered a crash without knowing what's the cause:
Code for building a gaussian-looklike mesh:
code for the geodesic curve:
The trackBack here will throw:
GC_SAFETY_ASSERT FAILURE from \usr\sources\gc-polyscope-project-template\deps\geometry-central\src\surface\exact_geodesic_helpers.cpp:332 - compute_local_coordinates() err: Point [SurfacePoint: type=Vertex, vertex= v_0] not adjacent to e_512
Even when I change the source points or the query point, neither works for the traceBack. Do you have any clue on what might cause this?