A new point containment test algorithm based on preprocessing and determining triangles

In this paper, we revisit the point-in-polyhedron problem. After reviewing previous work, we develop further insight into the problem. We then claim that, for a given testing point and a three-dimensional polyhedron, a single determining triangle can be found which suffices to determine whether the point is inside or outside the polyhedron. This work can be considered to be an extension and implementation of Horn's work, which inspired us to propose a theorem for obtaining determining triangles. Building upon this theorem, algorithms are then presented, implemented, and tested. The results show that although our code has the same asymptotic time efficiency as commonly used octree-based ray crossing methods, in practice it is usually several times and sometimes more than ten times faster, while other costs such as preprocessing time and memory requirements remain the same. The ideas proposed in this paper are simple and general. They thus extend naturally to multi-material models, i.e., polyhedrons subdivided into smaller regions by internal boundaries.

[1]  J. O´Rourke,et al.  Computational Geometry in C: Arrangements , 1998 .

[2]  Dean L. Taylor,et al.  A theorem to determine the spatial containment of a point in a planar polyhedron , 1989, Comput. Vis. Graph. Image Process..

[3]  Yehuda E. Kalay,et al.  Determining the spatial containment of a point in general polyhedra , 1982, Comput. Graph. Image Process..

[4]  Ketan Mulmuley A Fast Planar Partition Algorithm, I , 1990, J. Symb. Comput..

[5]  Rafael Jesús Segura,et al.  Point in solid strategies , 2005, Comput. Graph..

[6]  Francisco R. Feito-Higueruela,et al.  Inclusion test for general polyhedra , 1997, Comput. Graph..

[7]  Pere Brunet,et al.  Classification of a point with respect to a polyhedron vertex , 1996, Int. J. Comput. Geom. Appl..

[8]  Pc Pinto-carvalho Point in polyhedron testing using spherical polygons , 1994 .

[9]  Stig Nordbeck,et al.  Computer cartography point-in-polygon programs , 1967 .

[10]  Francisco R. Feito-Higueruela,et al.  Orientation, simplicity, and inclusion test for planar polygons , 1995, Comput. Graph..

[11]  Mark de Berg,et al.  Computational geometry: algorithms and applications , 1997 .

[12]  Jakob Andreas Bærentzen,et al.  Signed Distance Computation Using the Angle Weighted Pseudonormal , 2005, IEEE Trans. Vis. Comput. Graph..

[13]  Paulo Cezar Pinto Carvalho,et al.  Point in Polyhedron Testing Using Spherical Polygons , 1995 .

[14]  Wencheng Wang,et al.  Layer-Based Representation of Polyhedrons for Point Containment Tests , 2008, IEEE Transactions on Visualization and Computer Graphics.

[15]  Hassan Masum,et al.  Review of Computational Geometry: Algorithms and Applications (2nd ed.) by Mark de Berg, Marc van Kreveld, Mark Overmars, and Otfried Schwarzkopf , 2000, SIGA.

[16]  Johann Linhart A quick point-in-polyhedron test , 1990, Comput. Graph..

[17]  Hanan Samet,et al.  Applications of spatial data structures , 1989 .

[18]  Hanan Samet,et al.  Applications of spatial data structures - computer graphics, image processing, and GIS , 1990 .

[19]  Andrew S. Glassner,et al.  Graphics Gems , 1990 .

[20]  Wencheng Wang,et al.  2D point-in-polygon test by classifying edges into layers , 2005, Comput. Graph..

[21]  Joseph O'Rourke,et al.  Computational Geometry in C. , 1995 .

[22]  Kai Hormann,et al.  The point in polygon problem for arbitrary polygons , 2001, Comput. Geom..

[23]  Jonathan Richard Shewchuk,et al.  Adaptive Precision Floating-Point Arithmetic and Fast Robust Geometric Predicates , 1997, Discret. Comput. Geom..