IP Library Granted Patent US 10,688,394
Granted Patent B2
US 10,688,394 · App. 16/262,733 · Granted Jun 23, 2020

Three-dimensional point-in-polygon operation to facilitate visualizing a 3D structure surrounding a data point

Inventor: Geoffrey R. Hendrey (San Francisco, CA)
Assignee: SPLUNK Inc.
A63F13/577A63F13/537B64D43/00G01C21/00G06T11/20G06T15/06G06T17/20G06T19/00G06T2210/21
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,688,394
App. No.
16/262,733
Granted
Jun 23, 2020
Kind
B2
Abstract

A system, a method and instructions embodied on a non-transitory computer-readable storage medium that solve a 3D point-in-polygon (PIP) problem is presented. This system projects polygons that comprise a set of polyhedra onto projected polygons in a reference plane. Next, the system projects a data point onto the reference plane, and performs a 2D PIP operation in the reference plane to determine which projected polygons the projected data point falls into. For each projected polygon the projected data point falls into, the system performs a 3D crossing number operation by counting intersections between a ray projected from the corresponding data point in a direction orthogonal to the reference plane and polyhedral faces corresponding to projected polygons, to identify polyhedra the data point falls into. The system then generates a visual representation of the set of polyhedra, wherein each polyhedron is affected by data points that fall into it.

Claims (109)

1. A computer-implemented method for visualizing a 3D structure, comprising:

projecting each face of the 3D structure onto a reference plane to generate corresponding 2D structures;

performing, for a first of the 2D structures, a 2D point-in-polygon (PIP) operation using a ray intersection list to determine that the first 2D structure surrounds a projection of a data point onto the reference plane;

determining that the data point is surrounded by the 3D structure; and

causing a presentation of a visual indication that the data point is surrounded by the 3D structure.

2. The computer-implemented method of claim 1 , wherein the 2D point-in-polygon (PIP) operation comprises, for the first 2D structure:

projecting parallel rays from segment endpoints of the first 2D structure onto a reference line to generate intersection points between the projected rays and the reference line; and

storing in the ray intersection list at least a subset of the projected rays and associated open line segments of the first 2D structure;

obtaining from the ray intersection list one of the projected rays and an associated set of open line segments, the obtained projected ray corresponding to a ray projected from the projected data point onto the reference line; and

counting the open line segments in the set.

3. The computer-implemented method of claim 1 , wherein the 2D point-in-polygon (PIP) operation comprises, for the first 2D structure:

projecting parallel rays from segment endpoints of the first 2D structure onto a reference line to generate intersection points between the projected rays and the reference line; and

storing in the ray intersection list at least a subset of the projected rays and associated open line segments of the first 2D structure;

obtaining from the ray intersection list one of the projected rays and an associated set of open line segments, the obtained projected ray corresponding to a ray projected from the projected data point onto the reference line; and

counting the open line segments in the set;

wherein storing the subset of projected rays in the ray intersection list includes maintaining a list of open line segments for every nth interval on the reference line; and

wherein obtaining a projected ray and an associated set of open line segments includes obtaining a list of open line segments for a nearest nth interval on the reference line, and adjusting the list to account for intervening line segment openings and closings associated with intersection points located between the nearest nth interval and a relevant interval on the reference line corresponding to the ray projected from the data point onto the reference line, to produce a list of open line segments for the relevant interval.

4. The computer-implemented method of claim 1 , wherein the 2D point-in-polygon (PIP) operation comprises, for the first 2D structure:

projecting parallel rays from segment endpoints of the first 2D structure onto a reference line to generate intersection points between the projected rays and the reference line; and

storing in the ray intersection list at least a subset of the projected rays and associated open line segments of the first 2D structure;

obtaining from the ray intersection list one of the projected rays and an associated set of open line segments, the obtained projected ray corresponding to a ray projected from the projected data point onto the reference line; and

counting the open line segments in the set;

wherein the reference line is an X-coordinate axis or a Y-coordinate axis.

5. The computer-implemented method of claim 1 , wherein determining that the data point is surrounded by the 3D structure comprises, for each 2D structure determined to surround the projected data point, counting intersections between a ray projected from the data point in a direction orthogonal to the reference plane and a corresponding face of the 3D structure.

6. The computer-implemented method of claim 1 , wherein the reference plane includes an X- and a Y-coordinate axis.

7. The computer-implemented method of claim 1 , wherein the projection of the data point onto the reference plane comprises setting a Z-coordinate for the data point to zero.

8. The computer-implemented method of claim 1 , wherein projecting each face of the 3D structure onto a reference plane comprises setting Z-coordinates for line segments of each face of the 3D structure.

9. The computer-implemented method of claim 1 , wherein the 3D structure comprises a weather model, a cell phone coverage map, or a sound model.

10. The computer-implemented method of claim 1 , additionally comprising obtaining the data point by:

receiving a query to be processed, wherein the query is associated with the 3D structure; and

using a late-binding schema generated from the query to retrieve the data point from a set of events containing previously gathered data.

11. The computer-implemented method of claim 1 ,

wherein the method operates in an aircraft navigation system;

wherein the data point represents a location of an aircraft;

wherein the 3D structure represents an air corridor or a portion thereof; and

wherein the method additionally comprises determining when the aircraft enters or leaves the air corridor or portion thereof.

12. The computer-implemented method of claim 1 ,

wherein the method operates in a video game;

wherein the data point represents a location of a vehicle;

wherein the 3D structure represents a physical object in the video game; and

wherein the method additionally comprises determining when the vehicle collides with or is in danger of colliding with the physical object.

13. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for visualizing a 3D structure, the method comprising:

projecting each face of the 3D structure onto a reference plane to generate corresponding 2D structures;

performing, for a first of the 2D structures, a 2D point-in-polygon (PIP) operation using a ray intersection list to determine that the first 2D structure surrounds a projection of a data point onto the reference plane;

determining that the data point is surrounded by the 3D structure; and

causing a presentation of a visual indication that the data point is surrounded by the 3D structure.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the 2D point-in-polygon (PIP) operation comprises, for the first 2D structure:

projecting parallel rays from segment endpoints of the first 2D structure onto a reference line to generate intersection points between the projected rays and the reference line; and

storing in the ray intersection list at least a subset of the projected rays and associated open line segments of the first 2D structure;

obtaining from the ray intersection list a projected ray and an associated set of open line segments, the obtained projected ray corresponding to a ray projected from the projected data point onto the reference line; and

counting the open line segments in the set.

15. The non-transitory computer-readable storage medium of claim 13 , wherein the 2D point-in-polygon (PIP) operation comprises, for the first 2D structure:

projecting parallel rays from segment endpoints of the first 2D structure onto a reference line to generate intersection points between the projected rays and the reference line; and

storing in the ray intersection list at least a subset of the projected rays and associated open line segments of the first 2D structure;

obtaining from the ray intersection list a projected ray and an associated set of open line segments, the obtained projected ray corresponding to a ray projected from the projected data point onto the reference line; and

counting the open line segments in the set;

wherein storing the subset of projected rays in the ray intersection list includes maintaining a list of open line segments for every nth interval on the reference line; and

wherein obtaining a projected ray and an associated set of open line segments includes obtaining a list of open line segments for a nearest nth interval on the reference line, and adjusting the list to account for intervening line segment openings and closings associated with intersection points located between the nearest nth interval and a relevant interval on the reference line corresponding to the ray projected from the data point onto the reference line, to produce a list of open line segments for the relevant interval.

16. The non-transitory computer-readable storage medium of claim 13 , wherein the 2D point-in-polygon (PIP) operation comprises, for the first 2D structure:

projecting parallel rays from segment endpoints of the first 2D structure onto a reference line to generate intersection points between the projected rays and the reference line; and

storing in the ray intersection list at least a subset of the projected rays and associated open line segments of the first 2D structure;

obtaining from the ray intersection list a projected ray and an associated set of open line segments, the obtained projected ray corresponding to a ray projected from the projected data point onto the reference line; and

counting the open line segments in the set;

wherein the reference line is an X-coordinate axis or a Y-coordinate axis.

17. The non-transitory computer-readable storage medium of claim 13 , wherein determining that the data point is surrounded by the 3D structure comprises, for each 2D structure determined to surround the projected data point, counting intersections between a ray projected from the data point in a direction orthogonal to the reference plane and a corresponding face of the 3D structure.

18. The non-transitory computer-readable storage medium of claim 13 , wherein the reference plane includes an X- and a Y-coordinate axis.

19. The non-transitory computer-readable storage medium of claim 13 , wherein the projection of the data point onto the reference plane comprises setting a Z-coordinate for the data point to zero.

20. The non-transitory computer-readable storage medium of claim 13 , wherein projecting each face of the 3D structure onto a reference plane comprises setting Z-coordinates for line segments of each face of the 3D structure.

21. The non-transitory computer-readable storage medium of claim 13 , wherein the 3D structure comprises a weather model, a cell phone coverage map, or a sound model.

22. The non-transitory computer-readable storage medium of claim 13 , the method additionally comprising obtaining the data point by:

receiving a query to be processed, wherein the query is associated with the 3D structure; and

using a late-binding schema generated from the query to retrieve the data point from a set of events containing previously gathered data.

23. The non-transitory computer-readable storage medium of claim 13 ,

wherein the method operates in an aircraft navigation system;

wherein the data point represents a location of an aircraft;

wherein the 3D structure represents an air corridor or a portion thereof; and

wherein the method additionally comprises determining when the aircraft enters or leaves the air corridor or portion thereof.

24. The non-transitory computer-readable storage medium of claim 13 ,

wherein the method operates in a video game;

wherein the data point represents a location of a vehicle;

wherein the 3D structure represents a physical object in the video game; and

wherein the method additionally comprises determining when the vehicle collides with or is in danger of colliding with the physical object.

25. A system for visualizing a 3D structure, comprising:

at least one processor and at least one associated memory; and

a display mechanism configured to execute on the at least one processor to:

translate each face of the 3D structure onto a reference plane to generate corresponding 2D structures;

perform, for a first of the 2D structure, a 2D point-in-polygon (PIP) operation using a ray intersection list to determine that the first 2D structure surrounds a projection of a data point onto the reference plane;

determine that the data point is surrounded by the 3D structure; and

cause a presentation of a visual indication that the data point is surrounded by the 3D structure.

26. The system of claim 25 , wherein the display mechanism is configured to perform the 2D point-in-polygon (PIP) operation by, for the first 2D structure:

projecting parallel rays from segment endpoints of the first 2D structure onto a reference line to generate intersection points between the projected rays and the reference line; and

storing in the ray intersection list at least a subset of the projected rays and associated open line segments of the first 2D structure;

obtaining from the ray intersection list a projected ray and an associated set of open line segments, the obtained projected ray corresponding to a ray projected from the projected data point onto the reference line; and

counting the open line segments in the set.

27. The system of claim 25 , wherein the display mechanism is configured to perform the 2D point-in-polygon (PIP) operation by, for the first 2D structure:

projecting parallel rays from segment endpoints of the first 2D structure onto a reference line to generate intersection points between the projected rays and the reference line; and

storing in the ray intersection list at least a subset of the projected rays and associated open line segments of the first 2D structure;

obtaining from the ray intersection list a projected ray and an associated set of open line segments, the obtained projected ray corresponding to a ray projected from the projected data point onto the reference line; and

counting the open line segments in the set;

wherein storing the subset of projected rays in the ray intersection list includes maintaining a list of open line segments for every nth interval on the reference line; and

wherein obtaining a projected ray and an associated set of open line segments includes obtaining a list of open line segments for a nearest nth interval on the reference line, and adjusting the list to account for intervening line segment openings and closings associated with intersection points located between the nearest nth interval and a relevant interval on the reference line corresponding to the ray projected from the data point onto the reference line, to produce a list of open line segments for the relevant interval.

28. The system of claim 25 , wherein the display mechanism is configured to perform the 2D point-in-polygon (PIP) operation by, for the first 2D structure:

projecting parallel rays from segment endpoints of the first 2D structure onto a reference line to generate intersection points between the projected rays and the reference line; and

storing in the ray intersection list at least a subset of the projected rays and associated open line segments of the first 2D structure;

obtaining from the ray intersection list a projected ray and an associated set of open line segments, the obtained projected ray corresponding to a ray projected from the projected data point onto the reference line; and

counting the open line segments in the set;

wherein the reference line is an X-coordinate axis or a Y-coordinate axis.

29. The system of claim 25 , wherein determining that the data point is surrounded by the 3D structure comprises, for each 2D structure determined to surround the projected data point, counting intersections between a ray projected from the data point in a direction orthogonal to the reference plane and a corresponding face of the 3D structure.

30. The system of claim 25 , wherein the reference plane includes an X- and a Y-coordinate axis.

Assignments (4)
CHANGE OF NAME Recorded Jul 22, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 072170/0599 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2025
From: SPLUNK LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 072173/0058 →
CHANGE OF NAME Recorded Jan 6, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 069825/0782 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2019
From: HENDREY, GEOFFREY R.
To: SPLUNK INC.
Reel/Frame 048705/0288 →
Continuity (6)
Continuation 16037434 · Jul 17, 2018
Continuation 15714841 · Sep 25, 2017
Continuation 15421290 · Jan 31, 2017
Continuation 14700685 · Apr 30, 2015
Continuation In Part 14606387 · Jan 27, 2015
Related Publication 20190184287A1 · Jun 20, 2019