public IList <MotionObject> EditObject(IList <MotionObjectInfo> targetInfoList, IList <ProcParam <MotionProcEnv> > args, ReadOnlyMotionFrame frame, bool previewMode) { SingleSelectParameter mode = args[0] as SingleSelectParameter; List <MotionObject> ret = new List <MotionObject>(); foreach (MotionObjectInfo info in targetInfoList) { LineObject line = frame[info] as LineObject; if (line != null) { switch (mode.Value) { case 0: ret.Add(new LineObject(line.Position + line.Edge, -line.Edge)); break; case 1: ret.Add(new LineObject(line.Position, -line.Edge)); break; default: ret.Add((LineObject)line.Clone()); break; } } else { ret.Add(null); } } return(ret); }