internal override RigidBodyBase Clone(int newstrokeid)
    {
        // Instantiate a clone as the most-derived type.
        EllipticalBody clone = (EllipticalBody)this.MemberwiseClone();

        // Sever ties to the original's gp and rgn caches.
        clone.gp       = null;
        clone.rgncache = null;

        // Set the new stroke id.
        clone.strokeid = newstrokeid;

        // Move it down, and to the right a bit.
        using (Matrix m = new Matrix())
        {
            m.Translate(1000f, 1000f);
            clone.Transform(m);
        }

        return(clone);
    }