contains method

bool contains(
  1. Vector3 point, [
  2. double epsilon = 1e-3
])

Returns true if the polygon contains the given point.

Implementation

bool contains(Vector3 point, [double epsilon = 1e-3 ]) {
	final plane = this.plane;
	HalfEdge? edge = this.edge;

	// convex test
	do{
		final v1 = edge!.tail()!;
		final v2 = edge.head();

		if ( leftOn( v1, v2, point ) == false ) {
			return false;
		}

		edge = edge.next;
	} while ( edge != this.edge );

	// ensure the given point lies within a defined tolerance range
	final distance = plane.distanceToPoint( point );

	if ( distance.abs() > epsilon ) {
		return false;
	}

	return true;
}