Patent ID: 7936352

Claim:
A computer-implemented method for deforming a three-dimensional computer-generated model to cause a change of shape of the three-dimensional model, the method comprising: in response to a user directly manipulating a three-dimensional model, deriving a sequence of smooth three-dimensional mapping functions from a functional library that supports user interactive deformation of one or more surfaces, wherein each smooth three-dimensional mapping function defines a deformation and at least one smooth three-dimensional mapping function is non-affine; constructing a collection of warp surfaces, each warp surface being implemented as a mathematical composition of a respective sequence of smooth three-dimensional mapping functions and a respective original surface definition, wherein the mathematical composition is expressed as f n ∘f n-1 ∘ . . . ∘f 1 ∘s(u, v), where f 1 . . . f n represents the respective sequence of smooth three-dimensional mapping functions and s(u, v) represents the respective original surface definition; using the collection of warp surfaces to represent the three-dimensional model being deformed by the user; wherein: for each warp surface, applying the respective sequence of smooth three-dimensional mapping functions to the respective original surface definition, the respective original surface definition being used for each warp surface instead of a changed original surface definition; and the collection of warp surfaces allows the three-dimensional model to be deformed interactively while maintaining accuracy and precision as the three-dimensional model is deformed by the user; preserving smoothness to a lowest degree of smoothness of the sequence of smooth three-dimensional mapping functions; the representing being performed in a storage device such that representation of the three-dimensional model is stored as one or more warp surfaces, each warp surface maintaining accuracy and precision of the three-dimensional model; and the constructing and using being performed by a processor.