A method and apparatus for implementing stack extensions in a modifier stack that is associated with a plurality of components that are sequentially applied to a geometry object when the modifier stack is evaluated. According to one aspect of the invention, an extension channel object is attached to the geometry object. The extension channel object is associated with a notification mechanism that notifies the extension channel object if a particular event occurs while the modifier stack is being evaluating. In response to receiving a notification that one of the plurality of components has caused a particular event to occur while the modifier stack is being evaluated, the extension channel object influences how the geometry object is modified by the component within the modifier stack.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for generating a modified geometry object, the method comprising the computer-implemented steps of: producing a first result by sequentially applying to a geometry object one or more components in an ordered sequence of components; producing a second result by applying to the first result at least one component that follows the one or more components in the ordered sequence; associating an extension object with a position in the ordered sequence that precedes said at least one component; and based on the extension object, modifying the second result.
2. The method of claim 1 , wherein the ordered sequence of components is a stack.
3. The method of claim 2 , wherein the stack is a modifier stack.
4. The method of claim 2 , wherein the modifier stack includes a base object and a plurality of modifiers.
5. The method of claim 1 , wherein the extension object is an extension channel object, and wherein the step of associating includes the computer-implemented step of: associating the extension channel object with the geometry object at the position in the ordered sequence.
6. The method of claim 1 , further comprising the computer-implemented steps of: associating an extension channel with the extension object; and based on the extension object, storing in the extension channel one or more parameters for the geometry object.
7. The method of claim 1 , further comprising the computer-implemented steps of: notifying the extension object that a particular event has occurred; and in response to said notifying, the extension object causing the second result to be modified.
8. The method of claim 7 , wherein the step of notifying comprises the computer-implemented step of: sending a notification to the extension object prior to applying a particular component to the geometry object.
9. The method of claim 7 , wherein the step of notifying comprises the computer-implemented step of: sending a notification to the extension object after applying a particular component to the geometry object.
10. The method of claim 1 , wherein the extension object is a plug-in module and wherein the method further comprises the computer-implemented step of: notifying the extension object that a particular event has occurred using a callback function that is associated with the plug-in module.
11. The method of claim 1 , wherein the geometry object is associated with a geometry type, and wherein the method further comprises the computer-implemented steps of: prior to associating the extension object with the position, associating a first geometry type with the geometry object; and prior to modifying the second result, changing the geometry type from the first geometry type to a second geometry type.
12. The method of claim 1 , wherein the ordered sequence of components is a stack, and wherein the method further comprises the computer-implemented steps of: generating an editable geometry object based on the stack; prior to generating the editable geometry object, disabling the extension object; and after generating the editable geometry object, enabling the extension object.
13. The method of claim 1 , further comprising the computer-implemented step of: evaluating the extension object after applying each component of a plurality of components in the ordered sequence.
14. The method of claim 13 , further comprising the computer-implemented steps of: storing first data that describes at least one criterion that is associated with the extension object; storing second data that describes at least one action that is associated with the at least one criterion; and as each component of the plurality of components is applied, determining whether the at least one criterion is satisfied; and when the at least one criterion is satisfied, modifying the second result based on the at least one action.
15. The method of claim 14 , wherein the at least one criterion includes that a particular component of the plurality of components is going to be applied.
16. The method of claim 14 , wherein the at least one criterion includes that a particular component of the plurality of components has been applied.
17. The method of claim 14 , wherein the at least one criterion includes a constraint on a property of the geometry object.
18. The method of claim 1 , wherein the step of modifying the second result includes the computer-implemented step of: producing a third result based on the second result and the extension object.
19. The method of claim 1 , wherein the step of modifying the second result includes the computer-implemented step of: producing the first result based on the extension object.
20. The method of claim 1 , wherein the step of modifying the second result includes the computer-implemented step of: altering how the geometry object is displayed.
21. The method of claim 1 , wherein the step of modifying the second result includes the computer-implemented step of: including specified information when the geometry object is displayed.
22. The method of claim 1 , wherein the step of modifying the second result includes the computer-implemented step of: comparing the first result and the second result.
23. The method of claim 1 , wherein the extension object is a first extension object and the position is a first position, and wherein the method further comprises the computer-implemented steps of: producing a third result by applying to the second result at least one additional component that follows the one or more components in the order sequence; associating a second extension object with a second position in the ordered sequence that precedes said at least one additional component; and based on the second extension object, modifying the third result.
24. The method of claim 1 , wherein the extension object is a first extension object and the position is a first position, and wherein the method further comprises the computer-implemented steps of: associating a second extension object with a second position in the ordered sequence that precedes said at least one component; and based on the second extension object, modifying the second result.
25. The method of claim 24 , wherein the steps of modifying the second result based on the first extension object and modifying the second result based on the second extension object are performed according to a priority ordering of the first extension object and the second extension object.
26. The method of claim 1 , wherein the step of associating the extension object with the position in the ordered sequence comprises the computer-implemented step of: associating the extension object with the position based upon an extension component that is included in the ordered sequence.
27. The method of claim 1 , wherein the step of associating the extension object with the position in the ordered sequence comprises the computer-implemented step of: associating the extension object with the position based upon a base component in the ordered sequence.
28. A method for generating a modified geometry object, the method comprising the computer-implemented steps of: applying an ordered sequence of components to a geometry object, wherein at least one component of the ordered sequence specifies how to modify a first result that is produced based on one or more previous components in the ordered sequence; producing a second result by applying to the first result a first component; after applying the first component, producing a third result based on the second result and an extension object; producing a fourth result by applying to the third result a second component; and after applying the second component, producing a fifth result based on the fourth result and the extension object.
29. The method of claim 28 , further comprising the computer-implemented step of: associating the extension object with a position in the ordered sequence.
30. The method of claim 29 , wherein the first component and second component are applied after the position in the ordered sequence.
31. A computer-readable medium carrying one or more sequences of instructions for generating a modified geometry object, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of: producing a first result by sequentially applying to a geometry object one or more components in an ordered sequence of components; producing a second result by applying to the first result at least one component that follows the one or more components in the ordered sequence; associating an extension object with a position in the ordered sequence that precedes said at least one component; and based on the extension object, modifying the second result.
32. The computer-readable medium of claim 31 , wherein the ordered sequence of components is a stack.
33. The computer-readable medium of claim 32 , wherein the stack is a modifier stack.
34. The computer-readable medium of claim 33 , wherein the modifier stack includes a base object and a plurality of modifiers.
35. The computer-readable medium of claim 31 , wherein the extension object is an extension channel object, and wherein the instructions for associating further comprise instructions which, when executed by one or more processors, cause the one or more processors to carry out the step of: associating the extension channel object with the geometry object at the position in the ordered sequence.
36. The computer-readable medium of claim 31 , further comprising instructions which, when executed by the one or more processors, cause the one or more processors to carry out the steps of: associating an extension channel with the extension object; and based on the extension object, storing in the extension channel one or more parameters for the geometry object.
37. The computer-readable medium of claim 31 , further comprising instructions which, when executed by the one or more processors, cause the one or more processors to carry out the steps of: notifying the extension object that a particular event has occurred; and in response to said notifying, the extension object causing the second result to be modified.
38. The computer-readable medium of claim 37 , wherein the instructions for notifying further comprise instructions which, when executed by one or more processors, cause the one or more processors to carry out the step of: sending a notification to the extension object prior to applying a particular component to the geometry object.
39. The computer-readable medium of claim 37 , wherein the instructions for notifying further comprise instructions which, when executed by one or more processors, cause the one or more processors to carry out the step of: sending a notification to the extension object after applying a particular component to the geometry object.
40. The computer-readable medium of claim 31 , wherein the extension object is a plug-in module and further comprising instructions which, when executed by the one or more processors, cause the one or more processors to carry out the step of: notifying the extension object that a particular event has occurred using a callback function that is associated with the plug-in module.
41. The computer-readable medium of claim 31 , wherein the geometry object is associated with a geometry type, and further comprising instructions which, when executed by the one or more processors, cause the one or more processors to carry out the steps of: prior to associating the extension object with the position, associating a first geometry type with the geometry object; and prior to modifying the second result, changing the geometry type from the first geometry type to a second geometry type.
42. The computer-readable medium of claim 31 , wherein the ordered sequence of components is a stack, and further comprising instructions which, when executed by the one or more processors, cause the one or more processors to carry out the steps of: generating an editable geometry object based on the stack; prior to generating the editable geometry object, disabling the extension object; and after generating the editable geometry object, enabling the extension object.
43. The computer-readable medium of claim 31 , further comprising instructions which, when executed by the one or more processors, cause the one or more processors to carry out the step of: evaluating the extension object after applying each component of a plurality of components in the ordered sequence.
44. The computer-readable medium of claim 43 , further comprising instructions which, when executed by the one or more processors, cause the one or more processors to carry out the steps of: storing first data that describes at least one criterion that is associated with the extension object; storing second data that describes at least one action that is associated with the at least one criterion; and as each component of the plurality of components is applied, determining whether the at least one criterion is satisfied; and when the at least one criterion is satisfied, modifying the second result based on the at least one action.
45. The computer-readable medium of claim 44 , wherein the at least one criterion includes that a particular component of the plurality of components is going to be applied.
46. The computer-readable medium of claim 44 , wherein the at least one criterion includes that a particular component of the plurality of components has been applied.
47. The computer-readable medium of claim 44 , wherein the at least one criterion includes a constraint on a property of the geometry object.
48. The computer-readable medium of claim 31 , wherein the instructions for modifying the second result further comprise instructions which, when executed by one or more processors, cause the one or more processors to carry out the step of: producing a third result based on the second result and the extension object.
49. The computer-readable medium of claim 31 , wherein the instructions for modifying the second result further comprise instructions which, when executed by one or more processors, cause the one or more processors to carry out the step of: producing the first result based on the extension object.
50. The computer-readable medium of claim 31 , wherein the instructions for modifying the second result further comprise instructions which, when executed by one or more processors, cause the one or more processors to carry out the step of: altering how the geometry object is displayed.
51. The computer-readable medium of claim 31 , wherein the instructions for modifying the second result further comprise instructions which, when executed by one or more processors, cause the one or more processors to carry out the step of: including specified information when the geometry object is displayed.
52. The computer-readable medium of claim 31 , wherein the instructions for modifying the second result further comprise instructions which, when executed by one or more processors, cause the one or more processors to carry out the step of: comparing the first result and the second result.
53. The computer-readable medium of claim 31 , wherein the extension object is a first extension object and the position is a first position, and further comprising instructions which, when executed by the one or more processors, cause the one or more processors to carry out the steps of: producing a third result by applying to the second result at least one additional component that follows the one or more components in the order sequence; associating a second extension object with a second position in the ordered sequence that precedes said at least one additional component; and based on the second extension object, modifying the third result.
54. The computer-readable medium of claim 31 , wherein the extension object is a first extension object and the position is a first position, and further comprising instructions which, when executed by the one or more processors, cause the one or more processors to carry out the steps of: associating a second extension object with a second position in the ordered sequence that precedes said at least one component; and based on the second extension object, modifying the second result.
55. The computer-readable medium of claim 54 , wherein the steps of modifying the second result based on the first extension object and modifying the second result based on the second extension object are performed according to a priority ordering of the first extension object and the second extension object.
56. The computer-readable medium of claim 31 , wherein the instructions for associating the extension object with the position in the ordered sequence further comprise instructions which, when executed by one or more processors, cause the one or more processors to carry out the step of: associating the extension object with the position based upon an extension component that is included in the ordered sequence.
57. The computer-readable medium of claim 31 , wherein the instructions for associating the extension object with the position in the ordered sequence further comprise instructions which, when executed by one or more processors, cause the one or more processors to carry out the step of: associating the extension object with the position based upon a base component in the ordered sequence.
58. A computer-readable medium carrying one or more sequences of instructions for generating a modified geometry object, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of: applying an ordered sequence of components to a geometry object, wherein at least one component of the ordered sequence specifies how to modify a first result that is produced based on one or more previous components in the ordered sequence; producing a second result by applying to the first result a first component; after applying the first component, producing a third result based on the second result and an extension object; producing a fourth result by applying to the third result a second component; and after applying the second component, producing a fifth result based on the fourth result and the extension object.
59. The computer-readable medium of claim 58 , further comprising instructions which, when executed by the one or more processors, cause the one or more processors to carry out the steps of: associating the extension object with a position in the ordered sequence.
60. The computer-readable medium of claim 59 , wherein the first component and second component are applied after the position in the ordered sequence.
61. A system for generating a modified geometry object, comprising: a geometry object; an ordered sequence of components, wherein at least one component of the ordered sequence specifies how to modify a result that is produced based on one or more components in the ordered sequence; an extension object that is associated with a position in the ordered sequence; wherein: at least one component of the ordered sequence is applied to the geometry object after the position in the ordered sequence; and based on the extension object, the result is modified after applying the at least one component.
62. The system of claim 61 , further comprising: a notification mechanism that informs the extension object when one or more events have occurred; and wherein the result is modified in response to the extension object being informed by the notification mechanism.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
August 21, 2001
March 30, 2004
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.