Skip to content

Verify whether a 3D point lies within an planar non-complex polygon in three-dimensional space.

License

Notifications You must be signed in to change notification settings

StefanJohnsen/PointIn3DPolygon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Point in 3D polygon

A header-only file providing a template-based solution for determining if a point resides within a three-dimensional non-complex polygon. This solution is self-contained and does not rely on external libraries, with the only dependency being the inclusion of <vector> and <algorithm>.

Compatibility and Dependencies

  • C++ 11 Standard and above
  • Standard Template Library (STL)

PointInPolygon The stress test results for the PointInPolygon function applied to a 3D planar polygon with 180.000 test points. More test results can be found here

Supported polygons

The solution works for all kinds of 3D non-complex polygons, concave or convex, open or closed.

OS Support

  • Windows
  • Linux
  • macOS

Usage

Copy PointInPolygon.h to your project and include the file.

#include <iostream>
#include "PointInPolygon.h"

using namespace pip;

int main()
{
	std::vector<Point> polygon;

	polygon.emplace_back(0.0f, 0.0f, 0.0f);
	polygon.emplace_back(2.0f, 0.0f, 0.0f);
	polygon.emplace_back(2.0f, 2.0f, 0.0f);
	polygon.emplace_back(0.0f, 2.0f, 0.0f);

	const Point p = {1.0f , 1.0f , 0.0f};

	if( pip::pointInPolygon(polygon, p) )
		std::cout << "Point inside polygon!\n";
	else
		std::cout << "Point outside polygon!\n";

	return 0;
}

About

Verify whether a 3D point lies within an planar non-complex polygon in three-dimensional space.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages