public override List <CamViewState.SelObj> CloneObjects(IEnumerable <CamViewState.SelObj> objEnum) { List <SelObj> result = new List <SelObj>(); if (objEnum.OfType <SelShape>().Any()) { ShapeInfo[] selShapes = objEnum.OfType <SelShape>().Select(s => (s.ActualObject as ShapeInfo).Clone()).ToArray(); CreateRigidBodyShapeAction cloneAction = new CreateRigidBodyShapeAction(this.selectedBody, selShapes); UndoRedoManager.Do(cloneAction); result.AddRange(cloneAction.Result.Select(s => SelShape.Create(s))); } return(result); }
public override List <ObjectEditorSelObj> CloneObjects(IEnumerable <ObjectEditorSelObj> objEnum) { if (objEnum == null || !objEnum.Any()) { return(base.CloneObjects(objEnum)); } List <ObjectEditorSelObj> result = new List <ObjectEditorSelObj>(); if (objEnum.OfType <RigidBodyEditorSelShape>().Any()) { ShapeInfo[] selShapes = objEnum.OfType <RigidBodyEditorSelShape>().Select(s => (s.ActualObject as ShapeInfo).DeepClone()).ToArray(); CreateRigidBodyShapeAction cloneAction = new CreateRigidBodyShapeAction(this.selectedBody, selShapes); UndoRedoManager.Do(cloneAction); result.AddRange(cloneAction.Result.Select(s => RigidBodyEditorSelShape.Create(s))); } return(result); }