Gesture-based manipulator for rotation

By introducing a rotation manipulator following the cursor in the computer-aided design system, users can select the rotation plane from any position in the 3D scene and perform rotation manipulation, solving the problems of large cursor displacement and object occlusion, achieving more convenient and comfortable rotation operation.

CN110032305BActive Publication Date: 2025-05-30DASSAULT SYSTEMES SA
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN201811561075.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2017-12-22
Filing Date
2018-12-20
Publication Date
2025-05-30
Estimated Expiration
2038-12-20

AI Technical Summary

Technical Problem

Prior art When manipulating 3D objects in computer-aided design systems, the cursor displacement is too large and it is easy to obscure the object, resulting in inconvenient rotation operation and visual discomfort.

Method used

By displaying a 3D object with a rotation center in a 3D scene and displaying a rotation manipulator following the cursor on the screen, the user can select a rotation plane at any position and perform a rotation manipulation, reducing cursor displacement and avoiding object occlusion.

Benefits of technology

This method reduces cursor displacement, avoids object occlusion, provides a more comfortable visual experience, and improves the accuracy and convenience of rotation operation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN110032305B_ABST
    Figure CN110032305B_ABST
Patent Text Reader

Abstract

A computer-implemented method for manipulating 3D objects in a 3D scene of a computer-aided design system, the method comprising the steps of: - displaying a 3D object having a center of rotation in a 3D scene on a screen; - displaying a rotation manipulator (RM) having three regions (RA1, RA2, RA3) perpendicular to each other in the 3D scene, the rotation manipulator (RM) following a cursor (C) on the screen, each region (RA1, RA2, RA3) corresponding to a rotation plane; - activating the rotation manipulator by locking the position of the rotation manipulator on the screen at an initial press point (PP); - selecting a rotation plane by displacing the cursor (C) to a region (RA1, RA2, RA3) corresponding to the plane; and - performing a rotation manipulation according to the displacement of the cursor (C) on the screen.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a computer-implemented method for manipulating an object in a three-dimensional scene displayed on a computer monitor. It relates to the fields of computer graphics, authoring, computer-aided design (CAD), computer-aided engineering (CAE), and computer-aided manufacturing (CAM), and is applicable to all situations where digital modeled objects must be manipulated within a three-dimensional scene. Background Art

[0002] CAD applications (such as those provided by Dassault Systèmes under the trademark Catia) allow users to build and manipulate complex three-dimensional or 3D models of objects or object components. When using a CAD application, it is often desirable to transform (e.g., rotate, translate) an object or a sub-element of an object. In CAD applications, it is known to use a graphical manipulator having three axes and representing different 3D transformations available for manipulation. The graphical manipulator can be represented in the scene of an object display window in the form of a polyhedral tool, where each face of the tool can represent a different function (e.g., rotation, translation). This tool embodies a compact representation of multiple functions that can be associated with the object on which the functions will be performed. Each function of this tool is designed to effect a change to one or more objects in the scene in which the tool is immersed. The present invention more particularly relates to the rotation function of the tool, which is referred to as a rotation manipulator.

[0003] Figures 1 to 3 Shows a rotation manipulation according to a first solution of the background art. The immersion of the rotation manipulator RM in the scene allows the rotation manipulator RM to behave in many respects like other objects in the scene. For example, when the view of the scene is changed by a rotational movement of the view, the view of the rotation manipulator RM immersed in the scene will change accordingly. More details about the rotation manipulator RM, and more generally about the aforementioned polyhedral tool, can be found in the document US 7823085 B2. Figure 1 Shows a rotation manipulator RM, which includes a center CE, three axes X, Y, and Z, and three rotation planes defined by three arcs XY, YZ, and ZX for rotating about the Z-axis, about the X-axis, and about the Y-axis, respectively. The rotation manipulator RM is typically positioned and fixed at the center of gravity of the object OB for rotation. For clarity, in Figure 2 the rotation manipulator RM has been shown on the edge ED. In Figure 3In it, the user moves the cursor C above the rotation manipulator RM to select the desired rotation (arc XY is for rotation about the Z axis, arc YZ is for rotation about the X axis, and arc ZX is for rotation about the Y axis), and finally presses and holds the mouse while moving the cursor (i.e., without releasing it). The movement of the cursor causes the object to rotate in the direction specified by the arc, and the rotation is by an angle determined according to the displacement of the cursor. The solution of this background art contains several limitations, all of which are related to the rotation manipulator being fixed at a 3D point within the scene. The cursor really has to be just near or on the object OB to rotate. Thus, if the cursor was in another part of the scene just before the rotation manipulator for another interaction, the user has to move the cursor back to the rotation manipulator RM to rotate the object OB. This may result in a large amount of cursor displacement. Since the cursor is close to the object OB, the rotation manipulation may also force the user to position the cursor on the object OB, partially or even completely obscuring it. It is even more troublesome in touch mode because the user's hand blocks the correct view of the object OB, making the rotation difficult to control.

[0004] Figure 4 and 5 Fig. shows a rotation manipulation in a scene according to a second solution of the background art. In this solution, the user can perform the rotation from anywhere in the scene, not necessarily close to the object OB, thus avoiding the object OB being obscured by the cursor or by the user's finger in touch mode. Figure 4 Fig. shows the scene of this second solution. The scene is divided into three rotation regions (RA1, RA2, RA3), and the intersection of the three parts is the center 1 of the rotation manipulator RM. The choice of the rotation axis is determined by the position of the cursor in the scene (the first rotation region RA1 is for rotation about the Z axis, the second rotation region RA2 is for rotation about the X axis, and the third rotation region RA3 is for rotation about the Y axis). Then, the user performs a rotation manipulation about the selected rotation axis, as Figure 5 shown. The cursor moves from the initial point IP to the final point FP. The second solution of the background art contains several limitations. First, if the user wants to perform multiple rotation manipulations, he has to explore the scene from one part to another to find the desired rotation region, which means a large amount of mouse displacement to reach the desired rotation region. Second, the user has to constantly observe the object OB on one side of the scene while moving the cursor C on the other side of the scene, which may be uncomfortable for him. Another limitation stems from the impossibility of performing a rotation manipulation if the rotation manipulator RM is not visible, for example, if the user zooms in or pans the viewpoint. Finally, a large amount of cursor displacement is made to rotate the object OB from the initial point IP to the final point FP. Summary of the Invention

[0005] The object of the present invention is to provide a computer-implemented method for manipulating 3D objects in a 3D scene of a computer-aided design system, which reduces the cursor displacement throughout the different steps of the manipulation, which avoids any obstruction of the object to be manipulated and provides a visual comfort for the user.

[0006] According to one aspect of the present invention, there is provided a computer-implemented method for manipulating 3D objects in a 3D scene of a computer-aided design system, the method comprising the following steps:

[0007] a) Displaying a 3D object with a center of rotation in a 3D scene on the screen;

[0008] b) Displaying a rotation manipulator having three regions perpendicular to each other in the 3D scene, the rotation manipulator following the cursor on the screen, each region corresponding to a rotation plane;

[0009] c) Activating the rotation manipulator by locking the position of the rotation manipulator on the screen to the initial pressing point;

[0010] d) Selecting a rotation plane by displacing the cursor to the region corresponding to the plane; and

[0011] e) Performing a rotation manipulation according to the displacement of the cursor on the screen.

[0012] According to a specific embodiment of the present invention:

[0013] - Steps d) and e) may be performed in response to a user input that controls the holding of the cursor during the cursor displacement;

[0014] - Step d) may include the following sub-steps:

[0015] d1) Guiding the cursor to the region; and

[0016] d2) Determining whether the cursor has reached a verification threshold specific to the region.

[0017] - The verification threshold may be defined by a curve portion, each point of the curve portion having a predefined pixel distance relative to the pressing point.

[0018] - The curve portion may be the outer contour of the corresponding region.

[0019] - The sub-step d1) of guiding the cursor may include providing visual feedback of the region where the cursor is located.

[0020] - The sub-step d1) of guiding the cursor may include providing visual feedback of the regions where the cursor is not located.

[0021] - Step d) of selecting a rotation plane may include sub-step d3) which provides visual feedback exceeding a verification threshold for the corresponding region.

[0022] - The visual feedback may be a change in the size and / or color and / or transparency of the region.

[0023] - Step e) may include the following sub-steps:

[0024] e1) Determine a reference vector, the direction of which is defined by an initial pressing point and a verification point, the verification point corresponding to the position of the cursor when the cursor reaches the verification threshold;

[0025] e2) Determine a current vector, the direction of which is defined by an initial pressing point and a current point, the current point corresponding to the position of the cursor once the cursor reaches the verification threshold;

[0026] e3) Perform a rotation maneuver based on the angle between the reference vector and the current vector.

[0027] Another object of the present invention is a computer program product stored on a non-transitory computer-readable data storage medium, including computer-executable instructions for causing a computer system to execute the method defined above.

[0028] Another object of the present invention is a non-transitory computer-readable data storage medium containing computer-executable instructions for causing a computer system to execute the method defined above.

[0029] Another object of the present invention is a computer system, including a processor coupled to a memory and a graphical user interface, the memory storing computer-executable instructions for causing the computer system to execute the method defined above. BRIEF DESCRIPTION OF THE DRAWINGS

[0030] The present invention will be better understood with the aid of some embodiments described by way of non-limiting examples and illustrated in the accompanying drawings, in which:

[0031] - Figures 1 to 5 An example of a rotation maneuver scenario according to the prior art is shown;

[0032] - Figures 6 to 11 An example of a rotator with an associated state of an indicating device according to the present invention is shown;

[0033] - Figure 12 and 13 Different steps of the method according to the present invention are shown;

[0034] - Figure 14 and 15A block diagram of a corresponding computer system suitable for performing the methods according to different embodiments of the present invention is shown. DETAILED DESCRIPTION

[0035] Hereinafter, a "three-dimensional" (or "3D") object will be a digital representation of a physical object in a computer system that allows a three-dimensional (3D) graphical representation. The 3D representation allows the component to be viewed from all angles. For example, when represented in 3D, the 3D object can be processed and rotated about any of its axes, or about any axis in the screen on which the representation is displayed.

[0036] A "three-dimensional" (or "3D") scene is a virtual environment composed of a plurality of 3D objects arranged in a three-dimensional space.

[0037] Hereinafter, "selection context" refers to the processing of a pre-selected 3D object (or a plurality of 3D objects). This means that the 3D object can be displayed on the screen and the button of the mouse is released before the rotation manipulation starts.

[0038] Hereinafter, "touch mode" refers to the control of a cursor on a touch-sensitive surface, which can be a touchpad separate from the screen, or a touch screen including a touchpad and a display function. User input can be provided by holding his finger or a stylus on the touch-sensitive surface.

[0039] Figure 6 The rotation manipulator RM in an initial state is shown. It consists of three regions (RA1, RA2, RA3), which can have different colors to distinguish each region from one another. Each region includes an outer contour (EXT1, EXT2, EXT3) and two inner contours (INT12, INT13, INT23). Each inner contour is a segment and represents the axis of rotation of the object to be manipulated. Each outer contour can be an arc, a curved portion, a segment, or can have any other shape. The three inner contours intersect at the intersection point IN. The cursor corresponding to the movement of the user's pointing device can be represented as an arrow. The end of the arrow is located at the intersection point IN. The present invention must be considered in the selection context. Thus, whenever the cursor is located in the 3D scene, the rotation manipulator RM can be attached to the cursor and thus follow it. Figure 5 The state of the pointing device before triggering the rotation manipulation is also shown. When dragging the rotation manipulator in the 3D scene due to the pointing device, no user input is required. If the pointing device is a mouse, the user can move it without pressing the mouse, so the pointing device is in the "released state" RE. In the touch mode, since there is no difference between the contact of the finger (or stylus) for dragging and the contact of the finger for selection, the displacement of the finger results in the dragging of the rotation manipulator RM along with the cursor without any triggering of the rotation manipulation.

[0040] Figure 7 Shows a rotation manipulator RM when a user input such as a mouse press PR is received. When a mouse press is detected, the rotation manipulator RM is activated and its position is locked until the rotation manipulation ends. Then the intersection IN pointed to by the cursor C is regarded as the initial press point PP. In touch mode, the user can drag the rotation manipulator RM in the 3D scene, then release the contact on the screen and touch a button on the screen to lock the position of the rotation manipulator.

[0041] Figure 8 Shows the rotation manipulator RM after activation. Once the position of the rotation manipulator RM is locked, the displacement of the mouse generates a cursor drag relative to the fixed rotation manipulator RM. The user can guide the cursor to one of the regions (RA1, RA2, RA3) while still holding the mouse. In touch mode, the user can guide the cursor to one of the regions (RA1, RA2, RA3) while touching the sensitive screen and / or touchpad with his finger. The region where the cursor is currently located can be highlighted by visual feedback so that if the user verifies the highlighted rotation plane, the user can clearly see which rotation plane will be selected. The visual feedback can be, for example, an increase in the transparency of the regions ( Figure 8 regions RA1 and RA3 in) and / or a color change of the region where the cursor is located ( Figure 8 region RA2 in). The route of the cursor in the region can be masked. Alternatively, a segment SE defined by the initial press point PP and the cursor position can be displayed. Then, depending on the position of the cursor in the region, the direction and length of the segment can vary.

[0042] Figure 9 Shows an alternative position of the cursor in the rotation manipulator RM. In fact, the user can drag the cursor while pressing the mouse or touching the touch screen and switch to another region, such as region RA1. Thus, if the user switches from one region to another, the visual feedback of the region can change as long as no rotation plane is selected.

[0043] Figure 10The selection of the rotation plane is shown. According to the first embodiment, if the cursor reaches the verification threshold defined by the curved portion, a verification point VP is generated on the rotation manipulator RM. Each point of the curved portion has a predefined pixel distance relative to the press point PP. The pixel distance can be expressed in pixels or length units, such as millimeters. The verification point VP corresponds to the position when the cursor reaches the curved portion corresponding to the region. Thus, reaching the curved portion of the region activates the rotation manipulation. Rotation is performed about an axis that is three-dimensionally orthogonal to the rotation plane corresponding to the curved portion. According to the embodiment, each curved portion is the outer contour of its corresponding region (EXT1, EXT2, and EXT3 for regions RA1, RA2, and RA3, respectively). Alternatively, each curved portion can be defined by the contour of a circle with a predefined radius, and its center is the initial press point PP. The predefined radius can be expressed in pixels or length units, such as millimeters. Once the rotation manipulator RM is activated, the circle can be displayed. It can be masked after the verification threshold is reached. The circle can be divided into three arcs, each arc corresponding to a rotation plane. Whenever the cursor reaches an arc of the circle, the rotation plane corresponding to that arc is selected.

[0044] Figure 11 The rotation manipulator RM during rotation manipulation once the rotation plane is activated is shown. A reference vector RV is generated and can be displayed. The origin of the reference vector RV is the initial press point PP. The reference vector RV is constructed to pass through the verification point PV. The norm of the reference vector RV is arbitrary. For example, it can be the distance between the initial press point PP and the verification point PV, or a predefined distance. Once the rotation plane is activated, the current point CP, which corresponds to the position of the cursor, is displayed. Then the current point CP is dragged in the 3D scene while the user still maintains the input (mouse press or finger contact in touch mode). A current vector CV is generated, whose origin is the initial press point PP. Its norm is the distance between the initial press point PP and the current point CP. The rotation angle is derived from the angle between the reference vector RV and the current vector CV. Once the rotation manipulation is activated, the numerical value of the rotation angle can be provided. If the 3D object rotates clockwise, the numerical value of the rotation angle can be preceded by a negative sign. The rotation angle can be defined in degrees or radians. For example, the rotation angle can be located near the current point CP. According to the embodiment, even if the user continues to drag the cursor, the rotation of the 3D object can be stopped after a 360° rotation. Thus, the user is prevented from performing several full rotations. This avoids the cumbersome operation of returning to the previous position of the 3D object after several full rotations.

[0045] Rotation manipulation of a 3D object about its center of gravity can be performed according to the rotation angle. According to the first embodiment, during the dragging of the cursor, the rotation of the 3D object can be performed on the fly. Alternatively, at the end of the rotation manipulation, once the user releases the button (or releases the contact in the touch mode), the rotation can be performed according to an angle. The user can drag the cursor to modify the norm of the current vector CV, thus creating a lever effect. Therefore, the farther the cursor is from the initial pressing point, the more accurately the user controls the rotation angle.

[0046] Once the user releases the button of the mouse, or once there is no longer contact between the finger and the touch screen, the rotation manipulator RM returns to its initial state, as Figure 6 shown.

[0047] Figure 12 is a flowchart of a method according to an embodiment of the present invention, the steps of which correspond to the operations already combined Figures 6 - 11 discussed. In Figure 12 the flowchart of:

[0048] Step a) includes displaying a 3D object with a center of rotation in a 3D scene on the screen.

[0049] Step b) includes displaying a rotation manipulator RM with three regions RA1, RA2, RA3 perpendicular to each other in the 3D scene, the rotation manipulator RM following the cursor C on the screen, and each region RA1, RA2, RA3 corresponding to a rotation plane.

[0050] Step c) is to activate the rotation manipulator by locking the position of the rotation manipulator at the initial pressing point PP on the screen.

[0051] Step d) is to select a rotation plane by displacing the cursor C to the regions RA1, RA2, RA3 corresponding to the plane.

[0052] Step e) includes performing a rotation manipulation according to the displacement of the cursor C on the screen.

[0053] Figure 13 is a flowchart of the step of selecting a rotation plane. In Figure 13 the flowchart of:

[0054] Step d1) includes guiding the cursor C to the regions RA1, RA2, RA3;

[0055] Step d2) includes determining whether the cursor C reaches a verification threshold specific to the regions A1, A2, A3.

[0056] Step d3) is to provide visual feedback exceeding the verification threshold of the corresponding region.

[0057] The method of the present invention optimizes the displacement of a mouse or finger by performing a rotation from anywhere in the 3D scene. It also prevents the user from obscuring the object he is rotating. It ultimately reduces the mouse or (finger) displacement necessary to control the rotation angle and allows for accurate playback.

[0058] The method of the present invention can be executed by a suitably programmed general-purpose computer or computer system, which may include a computer network, store a suitable program in non-volatile form on a computer-readable medium (such as a hard disk, solid-state disk, or CD-ROM), and execute the program using its microprocessor and memory.

[0059] Reference Figure 14 illustrates a computer suitable for executing the method according to an exemplary embodiment of the present invention. In Figure 14 it, the computer includes a central processing unit (CPU) P that, when running an executable program, executes the above method steps, i.e., a set of computer-readable instructions, stored in a storage device such as RAM M1, or ROM M2, or hard disk drive (HDD) M3, DVD / CD drive M4, or remotely stored. Additionally, one or more computer files defining a three-dimensional object may also be stored on one or more of the storage devices M1 to M4, or remotely stored.

[0060] The claimed invention is not limited by the form of the computer-readable medium storing the computer-readable instructions of the process of the present invention. For example, the instructions and files may be stored on a CD, DVD, FLASH memory, RAM, ROM, PROM, EPROM, EEPROM, hard disk, or any other information processing device (such as a server or computer) with which the computer communicates. The program may be stored on the same storage device or on different storage devices.

[0061] Furthermore, a computer program suitable for executing the method of the present invention may be provided as a utility application, a background daemon, or a component of an operating system or a combination thereof, and executed together with the CPU P and an operating system such as Microsoft VISTA, Microsoft Windows 8, UNIX, Solaris, LINUX, Apple MAC-OS, and other systems known to those skilled in the art.

[0062] The CPU P can be a Xenon processor from Intel of America or an Opteron processor from AMD of America, or it can be other processor types, such as Freescale ColdFire, IMX, or ARM processors from Freescale Corporation of America. Alternatively, the CPU can be a processor such as Core2 Duo from Intel Corporation of America, or it can be implemented on an FPGA, ASIC, PLD, or using discrete logic circuits, as would be recognized by a person of ordinary skill in the art. Additionally, the CPU can be implemented as multiple processors that work together to execute the computer-readable instructions for the processes of the present invention described above.

[0063] Figure 14 The computer in also includes a network interface NI, such as an Intel Ethernet PRO network interface card from Intel Corporation of America, for connecting to a network such as a local area network (LAN), wide area network (WAN), the Internet, etc. The computer also includes a display controller DC, such as an NVIDIA GeForce GTX graphics adapter from NVIDIA Corporation of America, for interfacing with a display DY (such as a Hewlett Packard HPL2445w LCD monitor). The general I / O interface IF interfaces with a keyboard KB and an indicating device PD (such as a trackball, mouse, touchpad, etc.). The display, keyboard, sensitive surface for touch mode, and indicating device together with the display controller and I / O interface form a graphical user interface, which is used by the user to provide input commands (such as moving a pointer) and by the computer to display three-dimensional scenes and graphical tools.

[0064] The disk controller DKC connects the HDD M3 and the DVD / CD M4 to the communication bus CBS, which can be ISA, EISA, VESA, PCI, or the like, for interconnecting all components of the computer.

[0065] For the sake of brevity, the description of the general features and functions of the display, keyboard, indicating device, and display controller, disk controller, network interface, and I / O interface is omitted herein, as these features are known.

[0066] Figure 15 is a block diagram of a computer system suitable for performing the methods according to different exemplary embodiments of the present invention.

[0067] In Figure 15In it, the executable program EXP and the computer file defining the three-dimensional object are stored on a storage device connected to the server SC. Except that the server lacks a display controller, a sensitive surface, a display, a keyboard, and / or a pointing device, the overall architecture of the storage device and the server can be the same as that discussed above with reference to Figure 14 the same.

[0068] Then, the server SC is connected to the administrator system ADS and the end-user computer EUC via the network NW.

[0069] The overall architecture of the administrator system and the end-user computer can be the same as that discussed above with reference to Figure 14 the same, except that the storage devices of the administrator system and the end-user computer do not store the executable program EXP and / or the computer file defining the three-dimensional object. However, the end-user computer does store a client program designed to cooperate with the executable program of the server, as will be discussed below.

[0070] It can be understood that the network NW can be a public network (such as the Internet), or a private network (such as a LAN or WAN network), or any combination thereof, and can also include a PSTN or ISDN sub-network. The network NW can also be wired (such as Ethernet), or can be wireless, such as a cellular network including EDGE, 3G, and 4G wireless cellular systems. The wireless network can also be Wi-Fi, Bluetooth, or any other known form of wireless communication. Therefore, the network NW is merely exemplary and in no way limits the scope of the present invention.

[0071] The client program stored in the storage device of the end-user computer and executed by the latter's CPU accesses, via the network NW, the database DB stored by the server SC and containing the file defining the three-dimensional object. The server performs the processing as described above and again uses the network NW to send an image file corresponding to the desired representation of the scene including the 3D object to the end-user computer.

[0072] Although only one administrator system ADS and one end-user system EUX are shown, the system can support any number of administrator systems and / or end-user systems without limitation. Similarly, multiple servers can also be implemented in the system without departing from the scope of the present invention.

[0073] Any method steps described herein should be understood to represent a module, segment, or portion of code including one or more executable instructions for implementing a specific logical function or step in a process, and alternative embodiments are included within the scope of the exemplary embodiments of the present invention.

Claims

1. A computer-implemented method for manipulating a 3D object in a 3D scene of a computer-aided design system, the method comprising the steps of: a) displaying a 3D object with a center of rotation in the 3D scene on the screen; b) displaying a rotation manipulator (RM) in the 3D scene having three regions (RA1, RA2, RA3) perpendicular to each other, the rotation manipulator (RM) being attached to the cursor (C) so as to follow the cursor on the screen without user input until the position of the rotation manipulator is locked, each region (RA1, RA2, RA3) corresponding to a plane of rotation; c) activating the rotation manipulator by locking the position of the rotation manipulator on the screen at an initial press point (PP); d) selecting a plane of rotation by displacing the cursor (C) to a region (RA1, RA2, RA3) corresponding to the plane; and e) performing a rotation manipulation according to the displacement of the cursor (C) on the screen.

2. The method according to claim 1, wherein steps d) and e) are performed in response to a user input that controls the holding of the cursor (C) during the displacement of the cursor (C).

3. The method according to any one of the preceding claims, wherein step d) comprises the following sub-steps: d1) guiding the cursor (C) to the region (RA1, RA2, RA3); and d2) determining whether the cursor (C) has reached a verification threshold specific to the region (RA1, RA2, RA3).

4. The method according to claim 3, wherein the verification threshold is defined by a curve portion, each point of the curve portion having a predefined pixel distance relative to the press point (PP).

5. The method according to claim 4, wherein the curve portion is the outer contour (EXT1, EXT2, EXT3) of the corresponding region (RA1, RA2, RA3).

6. The method according to claim 3, wherein sub-step d1) of guiding the cursor includes providing visual feedback of the region where the cursor is located.

7. The method according to claim 3, wherein sub-step d1) of guiding the cursor includes providing visual feedback of the region where the cursor is not located.

8. The method according to claim 3, wherein step d) of selecting a plane of rotation includes sub-step d3), which provides visual feedback of exceeding the verification threshold of the corresponding region.

9. The method according to claim 6, wherein the visual feedback is a change in the size and / or color and / or transparency of the region.

10. The method according to claim 3, wherein step e) comprises the following sub-steps: e1) determining a reference vector (RV), the direction of the reference vector being defined by the initial press point (PP) and a verification point (VP), the verification point (VP) corresponding to the position of the cursor (C) when the cursor (C) reaches the verification threshold; e2) Determine a current vector (CV), the direction of which is defined by the initial press point (PP) and the current point (CP), where the current point (CP) corresponds to the position of the cursor (C) once the cursor (C) reaches the verification threshold; e3) Perform the rotation manipulation based on the angle between the reference vector (RV) and the current vector (CV).

11. A computer program product stored on a non-transitory computer-readable data storage medium (M1-M4), comprising computer-executable instructions to cause a computer system to perform the method according to any one of the preceding claims.

12. A non-transitory computer-readable data storage medium (M1-M4) containing computer-executable instructions (EXP), the computer-executable instructions causing a computer system to perform the method according to any one of claims 1-10.

13. A computer system, comprising a processor (P) coupled to a memory (M1-M4) and a graphical user interface (KB, PD, DC, DY), the memory storing computer-executable instructions (EXP) to cause the computer system to perform the method according to any one of claims 1-10.

Citation Information

Patent Citations

  • Knowledge-based polymorph undockable toolbar

    US7823085B2

  • 3D transformation of objects using 2d controls projected in 3D space and contextual face selections of a three dimensional bounding box

    US20140104266A1

  • Manipulating graphic objects in 3D scenes

    US6426745B1