parry icon indicating copy to clipboard operation
parry copied to clipboard

Docs: Make clear that TriMeshes are not treated as solid for point queries, even when `solid` flag given

Open clbarnes opened this issue 4 years ago • 4 comments

The same was true in ncollide.

clbarnes avatar Feb 01 '21 16:02 clbarnes

Related: a method to check whether points are inside meshes, see https://github.com/dimforge/ncollide/issues/317

clbarnes avatar Feb 01 '21 16:02 clbarnes

Hi! The solid flags indicates that the projection will be the point itself if it lies on the interior of the shape. But in 3D, our TriMesh has no interior by definition, therefore the solid flag is meaningless. It does have a meaning in 2D though (because in 2D triangles have an interior).

The ray-cast based alternative you suggested in dimforge/ncollide#317 remains the best way of doing this. Maybe we could provide it as an inherent method of TriMesh?

sebcrozet avatar Feb 01 '21 17:02 sebcrozet

That would certainly be useful to me, although my use case may be atypical (generic mesh queries rather than game engine specific). It's made a bit harder by this bug https://github.com/dimforge/ncollide/issues/335 ; it's safest to fire a number of rays in different directions and find the consensus. I also haven't found any references to backfaces in the codebase, although I haven't been able to search too deeply yet.

clbarnes avatar Feb 01 '21 17:02 clbarnes

This issue is potentially resolved by oriented trimeshes now doing an actual containment check for contains{_local}_point, which is great news! Will do a bit more testing on my end before closing.

clbarnes avatar Dec 21 '23 15:12 clbarnes