A deformation of a surface. These come in two types: a deformation that modifies only the shape of a surface, leaving the normal vectors to be recalculated automatically, or a deformation that modified both the shape and the normal vectors explicitly.
For example, the deformation function of type
(Point3D -> Ponit3D)
depends on automatic differentiation to determine the new surface normals.
On the other hand, an affine transformation applied as a deformation can quickly and correctly compute the new surface normals.
Finally, one might want to construct a deformation that modifies the surface normals while leaving the shape intact -- this is perfectly legal.
A convenienve class to convert common descriptions of deformations into the canonical representation.