  COMMAND CDEFORM
-----------------------------------------------------------------
    Purpose: Deform a curve of an object to fit a curve of another
             object. This the "Allround-effect" of Dust. You can
             create morphs in high-quality, animated boolean
             effects, ... using this command.
      Usage: CDEFORM(<src-object>,<dest-object>,<sg1>,<sg2>,<round>[,2 control-curves])

             <sg1> and <sg2> are the names of two subgroups defining
             the curve. Both objects have to contain these subgroups.
             The curves are build from the list of boundary-edges.
             All boundary-edges which are found in both subgroups
             are taken to build the curve.
             If you are able to define the curve using one subgroup
             then specify "" or "NONE" for the second one.
             If your second subgroup is the whole object specify
             "MAIN" or "DEFAULT" without defining this subgroup.

             The <round>-parameter specifies which points are
             interpolated and which are taken directly from the
             destination-object. Interpolated points which have
             a relative distance less than <round> from
             a destination point are turned in this destination-point.
             Values from 0.0 (interpolate all points) to 1.0 (interpolate
             no points) are possible.


             The optional 4 parametes "2 control-curves" are the
             names of 4 subgroups which define two control-curves
             which are taken to search the startpoint for closed
             curves.

   Examples: cdeform(1,2,G1,G2,0.0)
             cdeform(1,2,G1,,0.2)
             cdeform(1,2,G1,MAIN,0.1)

      Notes: 1. You may ask: What are curves in my polygon-object ?
                In fact Dust moves some points of the source object
                to the location of some points of the destination-
                object. To get a smooth behavior without turning
                polygons sorted curves are needed. If the point-count
                of the source-object is greater than the one of the
                destination-object the remaining points are interpolated
                linear using this curves.
             2. Both curves must be of the same type (open or closed)
             3. Now you can morph a closed head into a sphere,
                a face into a plane, a torus with 12x5 points into
                a torus with 12*24 points in the highest quality
                you can imagine.
             4. In the most cases you will need two subgroups to define
                your curve exactly.
             5. If you deform some neighbour-curves it can happen
                that the faces become turned. In this case you have two
                choices:
                 a) use the STARTPCORR-parameter
                     Example:
                     You morphed four curves:
                      CDEFORM(1,2,G1,"",0.0)
                      CDEFORM(1,2,G2,"",0.0)
                      CDEFORM(1,2,G3,"",0.0)
                      CDEFORM(1,2,G4,"",0.0)
                     The triangles between the 2nd and the 3rd curve
                     are turned in the same direction, the triangles between
                     the 3rd and the 4th curve are turned in the opposite
                     direction. Then try the STARTPCORR-parameter on the
                     3rd curve:
                     SET(STARTPCORR,0)
                     CDEFORM(1,2,G1,"",0.0)
                     SET(STARTPCORR,0)
                     CDEFORM(1,2,G2,"",0.0)
                     SET(STARTPCORR,1)
                     CDEFORM(1,2,G3,"",0.0)
                     SET(STARTPCORR,0)
                     CDEFORM(1,2,G4,"",0.0)
                     If the result are now better try a higher value to find
                     the optimum otherwise use negative values.
                 b) use control-curves
                     The control curves always are the neighbour and
                     the previous neighbour-curve:
                      CDEFORM(1,2,G1,"",0.0)
                      CDEFORM(1,2,G2,"",0.0)
                      CDEFORM(1,2,G3,"",0.0,G2,"",G1,"")
                      CDEFORM(1,2,G4,"",0.0)
                    No doubt, the control-curves are the better choice
                    but always you need 2 previous curves !
              6. see also CDEFORMINTERP, EXPANDSG, SHRINKSG and
                 PREFS (INTERPMODE, FORCESWAP, STARTPCORR)
