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); }