Three-dimensional operations based on planar projections in graphic user interfaces
The subject matter of this specification can be implemented in, among other things, a method to display a graphical user interface (GUI) of an application, display, on the GUI, a projection of a three-dimensional object onto a projection plane, receive a selection of a first region of the object, obtain a geometric information related to the first region, wherein the geometric information comprises at least one of a geometric relationship of the first region to a second region of the object or an identification of a shape belonging to the first region, determine, based on the geometric information, a spatial orientation of the first region of the object relative to the projection plane, and display, on the GUI, an indication of the spatial orientation of the first region.
1. A system comprising:
a memory storing computer executable instructions for execution by a processor;
a display; and
the processor for executing the computer executable instructions;
wherein the computer executable instructions configure the processor to:
execute a graphical software application;
render a graphical user interface (GUI) upon the display relating to the software application;
render within the GUI a projection of a three-dimensional object onto a projection plane;
render within the GUI a projection of a three-dimensional reference object onto the projection plane;
receive a user input relating to a selection of a region of the object;
establish with the processor geometric information related to the user input; and
render within the GUI an indication of the established geometric information;
wherein establishing geometric information related to the user input comprises:
automatically establishing with the processor geometric information related to the region of the object;
automatically determining based upon the established geometric information a spatial orientation of the selected region of the object relative to the projection plane; and
automatically rotating the reference object such that a predetermined plane of the reference object is aligned parallel to the selected region of the object; and
wherein rendering the indication of the established geometric information comprises re-rendering within the GUI a projection of the reference object in its rotated position onto the projection plane.
2. The system according to claim 1 ,
wherein the computer executable instructions further configure the processor to:
define a canvas surface in dependence upon receiving a further user input relating to selection of a plane of the reference object;
receive additional user input relating to a drawing to be added to the canvas surface generated by the graphical software application;
add the drawing added to the canvas surface to the region of the object; and
render the modified object within the GUI.
3. The system according to claim 1 ,
wherein the computer executable instructions further configure the processor to:
define a canvas surface in dependence upon receiving a further user input relating to selection of a plane of the reference object;
render the canvas surface to the user within the GUI;
receive additional user input relating to a drawing to be added to the canvas surface generated by the graphical software application;
render the added drawing within the canvas surface;
add the drawing added to the canvas surface to the region of the object; and
render the modified object within the GUI; and
wherein the canvas surface presents a view of the object with the user's viewpoint perpendicular to a region of the object parallel to the selected plane of the reference object.
4. A system comprising:
a memory storing computer executable instructions for execution by a processor;
a display; and
the processor for executing the computer executable instructions;
wherein the computer executable instructions configure the processor to:
execute a graphical software application;
render a graphical user interface (GUI) upon the display relating to the software application;
render within the GUI a projection of a three-dimensional object onto a projection plane;
render within the GUI a projection of a three-dimensional reference object onto the projection plane;
receive a user input relating to a selection of a region of the object;
establish with the processor geometric information related to the user input; and
render within the GUI an indication of the established geometric information; and
wherein the computer executable instructions further configure the processor to:
establish the geometric information related to the user input by a sub-process comprising:
automatically establishing with the processor geometric information related to the region of the object,
automatically determining based upon the established geometric information a spatial orientation of the selected region of the object relative to the projection plane,
automatically rotating the reference object such that a predetermined plane of the reference object is aligned parallel to the selected region of the object, and
re-rendering within the GUI a projection of the reference object in its rotated position onto the projection plane;
receive a request to render a drawing window to the user within the GUI;
receive additional user input relating to a drawing to be added to the drawing window where the drawing is generated by the graphical software application;
render the added drawing within the drawing window together with a pointer;
add the drawing added to the canvas surface to either the primary canvas or a secondary canvas; and
render the modified object within the GUI;
wherein the pointer indicates to the user how the added drawing is to be positioned within the primary canvas or the second canvas;
wherein the primary canvas is selected for the drawing to be added to where received further user input relates to selection of a first plane of the reference object; and
wherein the secondary canvas is selected for the drawing to be added to where the received further user input relates to selection of a second plane of the reference object.
5. A system comprising:
a memory storing computer executable instructions for execution by a processor;
a display; and
the processor for executing the computer executable instructions;
wherein the computer executable instructions configure the processor to:
execute a graphical software application;
render a graphical user interface (GUI) upon the display relating to the software application;
render within the GUI a projection of a three-dimensional object onto a projection plane;
render within the GUI a projection of a three-dimensional reference object onto the projection plane;
receive a user input relating to a selection of a region of the object;
establish with the processor geometric information related to the user input; and
render within the GUI an indication of the established geometric information; and
wherein the computer executable instructions further configure the processor to establish the geometric information related to the user input based upon a sub-process comprising:
determining whether a one-parameter geometric shape is present within the selected region of the object;
upon determining the one-parameter geometric shape is presented within the selected region of the object:
determine a pair of first vectors of the one-parameter geometric shape relative to the projection plane;
determine a pair of second vectors in dependence upon the pair of first vectors, and
determine an orientation of the selected region of the object in dependence upon a cross-product of the pair of second vectors.
6. A system comprising:
a memory storing computer executable instructions for execution by a processor;
a display; and
the processor for executing the computer executable instructions;
wherein the computer executable instructions configure the processor to:
execute a graphical software application;
render a graphical user interface (GUI) upon the display relating to the software application;
render within the GUI a projection of a three-dimensional object onto a projection plane;
render within the GUI a projection of a three-dimensional reference object onto the projection plane;
receive a user input relating to a selection of a region of the object;
establish with the processor geometric information related to the user input; and
render within the GUI an indication of the established geometric information; and
wherein the computer executable instructions further configure the processor to establish the geometric information related to the user input based upon a sub-process comprising:
determining whether a two-parameter geometric shape is present within the selected region of the object;
upon determining the two-parameter geometric shape is presented within the selected region of the object:
determine a pair of first vectors of the two-parameter geometric shape relative to the projection plane;
determine a pair of second vectors in dependence upon the pair of first vectors; and
determine an orientation of the selected region of the object in dependence upon a cross-product of the pair of second vectors.
7. A system comprising:
a memory storing computer executable instructions for execution by a processor;
a display; and
the processor for executing the computer executable instructions;
wherein the computer executable instructions configure the processor to:
execute a graphical software application;
render a graphical user interface (GUI) upon the display relating to the software application;
render within the GUI a projection of a three-dimensional object onto a projection plane;
render within the GUI a projection of a three-dimensional reference object onto the projection plane;
receive a user input relating to a selection of a region of the object;
establish with the processor geometric information related to the user input; and
render within the GUI an indication of the established geometric information; and
wherein the computer executable instructions further configure the processor to establish the geometric information related to the user input based upon a sub-process comprising:
determining a plane defined by a plurality of points associated with the selected region of the object;
determining a pair of first vectors of the plane in dependence upon the plurality of points relative to the projection plane;
determining a pair of second vectors in dependence upon the pair of first vectors; and
determining an orientation of the selected region of the object in dependence upon a cross-product of the pair of second vectors.
8. A system comprising:
a memory storing computer executable instructions for execution by a processor;
a display; and
the processor for executing the computer executable instructions;
wherein the computer executable instructions configure the processor to:
execute a graphical software application;
render a graphical user interface (GUI) upon the display relating to the software application;
render within the GUI a projection of a three-dimensional object onto a projection plane;
render within the GUI a projection of a three-dimensional reference object onto the projection plane;
receive a user input relating to a selection of a region of the object;
establish with the processor geometric information related to the user input; and
render within the GUI an indication of the established geometric information; and
wherein the geometric information related to the region of the object is established in dependence upon:
receiving from the user another user input relating to a selection of a boundary between the selected region of the object and a second region of the object also rendered within the projection of the object onto the projection plane; and
receiving from the user a further user input relating to a geometric relationship between the selected region of the object to the second region of the object also rendered within the projection of the object onto the projection plane.