BACKGROUND

In three-dimensional (3D) computer graphics, a 3D model is a collection of objects that are each represented mathematically in a 3D space (e.g., points, lines, triangles, surfaces, etc.). 3D software applications can provide a number of different tools for creating 3D models, editing 3D models, viewing 3D models, rendering images of 3D models, etc. When viewing 3D models that have objects that are partially or fully enclosed within one another, it is difficult to know which objects have other objects inside or behind them. One way to determine whether an object has another object inside or behind it is to hide the object from view. Once hidden, objects that are inside or behind the hidden object are now shown. For 3D models with a large number of objects and/or a large number of objects nested inside other objects, it can be cumbersome to iterate through the various different objects to see whether they have objects inside or behind them.

SUMMARY

In some embodiments, a non-transitory machine-readable medium stores a program executable by at least one processing unit of a device. The program provides a display area for viewing a 3D model that includes a plurality of three-dimensional (3D) objects. The program further provides a tool for viewing 3D objects in the 3D model. The program also determines a 3D object in the plurality of 3D objects in the 3D model to hide. The program further hides the determined 3D object in the 3D model.

In some embodiments, the 3D object may be a first 3D object. The program may further receive input requesting to view a 3D object in the 3D model that is behind a 3D object displayed in the display area of the tool, where the determined 3D object in the 3D model is hidden in response to receiving the input, and determine a second 3D object in the plurality of 3D objects in the 3D model to hide. In some embodiments, the program may further receive input requesting to view a 3D object behind a 3D object displayed in the display area of the tool and, in response to the request, hide the determined second 3D object in the 3D model. The input may be a first input. The program may further receive a second input requesting to view a 3D object in the 3D model that is in front of a 3D object displayed in the display area of the tool and, in response to receiving the second input, unhide the determined 3D object.

In some embodiments, the display area may be a first display area. The tool may include a second display area for focusing on 3D objects in the 3D model. Determining the 3D object in the plurality of 3D objects in the 3D model to hide may include determining a subset of the 3D objects in the 3D model that are visible within the second display area of the tool and determining a closest 3D object in the subset of the 3D objects in the 3D model as the determined 3D object in the plurality of 3D objects in the 3D model to hide.

In some embodiments, the 3D object may be a first 3D object. The program may further receive input that moves the tool from a first position in the display area to a second position in the display area and, in response to moving the tool from the first position to the second position, determine a second 3D object in the plurality of 3D objects in the 3D model to hide. The input may be a first input. The program may further receive a second input requesting to view a 3D object behind a 3D object displayed in the display area of the tool and, in response to the second input, hide the determined second 3D object in the 3D model.

In some embodiments, a method provides a display area for viewing a 3D model that includes a plurality of three-dimensional (3D) objects. The method further provides a tool for viewing 3D objects in the 3D model. The method also determines a 3D object in the plurality of 3D objects in the 3D model to hide. The method further hides the determined 3D object in the 3D model.

In some embodiments, the 3D object may be a first 3D object. The method may further receive input requesting to view a 3D object in the 3D model that is behind a 3D object displayed in the display area of the tool, where the determined 3D object in the 3D model is hidden in response to receiving the input and determine a second 3D object in the plurality of 3D objects in the 3D model to hide. The method may further receive input requesting to view a 3D object behind a 3D object displayed in the display area of the tool and, in response to the request, hide the determined second 3D object in the 3D model. The input may be a first input. The method may further receive a second input requesting to view a 3D object in the 3D model that is in front of a 3D object displayed in the display area of the tool and, in response to receiving the second input, unhide the determined 3D object.

In some embodiments, the display area may be a first display area. The tool may include a second display area for focusing on 3D objects in the 3D model. Determining the 3D object in the plurality of 3D objects in the 3D model to hide may include determining a subset of the 3D objects in the 3D model that are visible within the second display area of the tool and determining a closest 3D object in the subset of the 3D objects in the 3D model as the determined 3D object in the plurality of 3D objects in the 3D model to hide.

In some embodiments, the 3D object may be a first 3D object. The method may further receive input that moves the tool from a first position in the display area to a second position in the display area and, in response to moving the tool from the first position to the second position, determine a second 3D object in the plurality of 3D objects in the 3D model to hide. The input may be a first input. The method may further receive a second input requesting to view a 3D object behind a 3D object displayed in the display area of the tool and, in response to the second input, hide the determined second 3D object in the 3D model.

In some embodiments, a system includes a set of processing units and a non-transitory machine-readable medium that stores instructions. The instructions cause at least one processing unit to provide a display area for viewing a 3D model that includes a plurality of three-dimensional (3D) objects. The instructions further cause the at least one processing unit to provide a tool for viewing 3D objects in the 3D model. The instructions also cause the at least one processing unit to determine a 3D object in the plurality of 3D objects in the 3D model to hide. The instructions further cause the at least one processing unit to hide the determined 3D object in the 3D model.

In some embodiments, the 3D object may be a first 3D object. The instructions may further cause the at least one processing unit to receive input requesting to view a 3D object in the 3D model that is behind a 3D object displayed in the display area of the tool, where the determined 3D object in the 3D model is hidden in response to receiving the input and determine a second 3D object in the plurality of 3D objects in the 3D model to hide. The instructions may further cause the at least one processing unit to receive input requesting to view a 3D object behind a 3D object displayed in the display area of the tool and, in response to the request, hide the determined second 3D object in the 3D model. The input may be a first input. The instructions may further cause the at least one processing unit to receive a second input requesting to view a 3D object in the 3D model that is in front of a 3D object displayed in the display area of the tool and, in response to receiving the second input, unhide the determined 3D object.

In some embodiments, the display area may be a first display area. The tool may include a second display area for focusing on 3D objects in the 3D model. Determining the 3D object in the plurality of 3D objects in the 3D model to hide may include determining a subset of the 3D objects in the 3D model that are visible within the second display area of the tool and determining a closest 3D object in the subset of the 3D objects in the 3D model as the determined 3D object in the plurality of 3D objects in the 3D model to hide.

In some embodiments, the 3D object may be a first 3D object. The instructions may further cause the at least one processing unit to receive a first input that moves the tool from a first position in the display area to a second position in the display are; in response to moving the tool from the first position to the second position, determine a second 3D object in the plurality of 3D objects in the 3D model to hide; receive a second input requesting to view a 3D object behind a 3D object displayed in the display area of the tool; and, in response to the second input, hide the determined second 3D object in the 3D model.

The following detailed description and accompanying drawings provide a better understanding of the nature and advantages of the present invention.

