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