jiangzhongshi / bijective-projection-shell

A projection-based bijective map definition and a robust algorithm to construct the prismatic shell domain. https://cs.nyu.edu/~zhongshi/files/BijectivePrism.pdf
25 stars 5 forks source link

Several questions about projection #9

Open XuRongYan opened 3 years ago

XuRongYan commented 3 years ago

Hi, I'm sorry to bother you again. I have some questions about the projection operation.

I found that you provide the projection operation in the code, then I found the function

void prism::correspond_bc(const PrismCage &pc, const RowMatd &pxV, const RowMati &pxF, const RowMatd &queryP, Eigen::VectorXi &queryF, RowMatd &queryUV)

I guess that the proxy mesh means the mesh I want to project to and queryP means a set of points located inside the shell space. queryF is a set of face id which the query points located in, and queryUV is correspond barycentric coordinates.

But when I call this function, I met a confusing error in Mpzf.h: image image image The error seems to be raised when the project_to_proxy_mesh function in the corresponding_bc function is called. But I don;t know what happened.

I also don't know what warning messages mean. My test model is 36075.stl in Thingi10k

jiangzhongshi commented 3 years ago

Hi,

Thanks for letting me know.

This seems to happen during the line-triangle intersection function in CGAL, where it most commonly indicates a degenerate case.

I will try to reproduce and fix in a few days.

jiangzhongshi commented 3 years ago

Hi,

Apologies for the delay. I finally got time to work on this, but haven't been able to reproduce it. Could you provide the exact command/code that results in this error?

Judging from the backtrace, it is likely the problem is that the segment or triangle being queried is degenerate. This might happen for the singular points, in which case it should be fallback to some nearest point routine.

But I think I would be able to track it down if I know what is the proxy mesh and reference mesh that cause this?

Thanks!