IP Library Granted Patent US 7,755,621
Granted Patent B2
US 7,755,621 · App. 11/468,151 · Granted Jul 13, 2010

Fast interactive object manipulation

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 7,755,621
App. No.
11/468,151
Granted
Jul 13, 2010
Kind
B2
Abstract

Methods, systems, and program products for detecting user manipulation of one or more elements of a presentation of a complex solid represented by a solid history tree. A reduced history representation of the complex solid is created. The reduced history tree is repeatedly evaluated to recreate the presentation of the complex solid in response to the user manipulation of the one or more elements.

Claims (49)

1. A computer-implemented method, comprising:

detecting initiation of user movement of an element of a complex solid that is represented by a solid history tree of multiple elements;

in response to the detecting initiation of user movement of the element, creating a reduced history tree representation of the complex solid by factoring out from the solid history tree of multiple elements a constant subtree of elements that remain un-moved during user movement of the element and replacing the factored-out constant subtree with a constant leaf node that represents the factored-out constant subtree, the constant subtree factored out before the user movement of the one or more elements;

receiving user input moving the element of the complex solid; and

presenting the complex solid for display as the element of the complex solid is moved by the user by repeatedly evaluating the reduced history tree including the constant leaf node during the movement of the element.

2. The computer-implemented method of claim 1 , where:

the element is associated with a leaf node or a subtree in the history tree representation of the complex solid, the history tree representation including a plurality of leaf nodes and a plurality of operator nodes, each leaf node representing a primitive solid and each operator node representing an operation to be performed on one or more child nodes.

3. The computer-implemented method of claim 2 , where:

an operation is a solid Boolean operation union, intersection or difference of solids or a non-Boolean operation edge or a vertex fillet or chamfer.

4. The computer-implemented method of claim 2 , where:

a primitive solid is one of: a box, a tetrahedron, a cylinder, a cone, a sphere, a torus, an extrusion, a revolution, a sweep or a loft.

5. The computer-implemented method of claim 1 , where the constant subtrees do not represent the moved elements.

6. The computer-implemented method of claim 1 , where creating the reduced history tree includes:

reducing subtrees containing variable nodes.

7. The computer-implemented method of claim 1 , where creating the reduced history tree includes:

simplifying union and intersection clusters.

8. A computer program product, encoded on a computer-readable storage device, the computer program product including instructions operable to cause one or more data processing apparatus to perform operations comprising:

detecting initiation of user movement of an element of a complex solid that is represented by a solid history tree of multiple elements;

in response to the detecting initiation of user movement of the element, creating a reduced history tree representation of the complex solid by factoring out from the solid history tree of multiple elements a constant subtree of elements that remain un-moved during user movement of the element and replacing the factored-out constant subtree with a constant leaf node that represents the factored-out constant subtree, the constant subtree factored out before the user movement of the one or more elements;

receiving user input moving the element of the complex solid; and

presenting the complex solid for display as the element of the complex solid is moved by the user by repeatedly evaluating the reduced history tree including the constant leaf node during the movement of the element.

9. The program product of claim 8 , where:

the element is associated with a leaf node or a subtree in the history tree representation of the complex solid, the history tree representation including a plurality of leaf nodes and a plurality of operator nodes, each leaf node representing a primitive solid and each operator node representing an operation to be performed on one or more child nodes.

10. The program product of claim 9 , where:

an operation is a solid Boolean operation union, intersection or difference of solids or a non-Boolean operation edge or a vertex fillet or chamfer.

11. The program product of claim 9 , where:

a primitive solid is one of: a box, a tetrahedron, a cylinder, a cone, a sphere, a torus, an extrusion, a revolution, a sweep or a loft.

12. The program product of claim 8 , where the constant subtrees do not represent the moved elements.

13. The program product of claim 8 , where creating the reduced history tree includes:

reducing subtrees containing variable nodes.

14. The program product of claim 8 , where creating the reduced history tree includes:

simplifying union and intersection clusters.

15. A system comprising:

a computer-readable storage device including instructions; and

one or processors operable to execute the instructions and perform operations, the operations comprising;

detecting initiation of user movement of an element of a complex solid that is represented by a solid history tree of multiple elements;

in response to the detecting initiation of user movement of the element, creating a reduced history tree representation of the complex solid by factoring out from the solid history tree of multiple elements a constant subtree of elements that remain un-moved during user movement of the element and replacing the factored-out constant subtree with a constant leaf node that represents the factored-out constant subtree, the constant subtree factored out before the user movement of the one or more elements;

receiving user input moving the element of the complex solid; and

presenting the complex solid for display as the element of the complex solid is moved by the user by repeatedly evaluating the reduced history tree including the constant leaf node during the movement of the element.

16. The system of claim 15 , where the constant subtrees do not represent the moved elements.

17. The system of claim 15 , where creating the reduced history tree includes:

reducing subtrees containing variable nodes.

18. The system of claim 15 , where creating the reduced history tree includes:

simplifying union and intersection clusters.

19. The method of claim 1 , wherein the repeated evaluations are performed in real time during the user manipulation.

20. The system of claim 15 , where:

the element is associated with a leaf node or a subtree in the history tree representation of the complex solid, the history tree representation including a plurality of leaf nodes and a plurality of operator nodes, each leaf node representing a primitive solid and each operator node representing an operation to be performed on one or more child nodes.

21. The system of claim 20 , where:

a primitive solid is one of: a box, a tetrahedron, a cylinder, a cone, a sphere, a torus, an extrusion, a revolution, a sweep or a loft.

Assignments (2)
CHANGE OF ADDRESS FOR ASSIGNEE Recorded Aug 19, 2022
From: AUTODESK, INC.
To: AUTODESK, INC.
Reel/Frame 061572/0061 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2006
From: KRIPAC, JIRI
To: AUTODESK, INC.
Reel/Frame 018192/0713 →