Esempio n. 1
0
 public void mergeAllFigure()
 {
     drawingFigures.Clear();
     foreach (Figure f in drawnFigures)
     {
         if (!(f is MergedFigure))
         {
             drawingFigures.Add(f);
         }
     }
     mergeFigure();
 }
Esempio n. 2
0
        /**
         * @brief 입력으로 받은 파일이름으로 입력받은 그룹에 해당하는 figure만 저장하기 위해 오버로딩된 메서드이다.
         * @details 도형이 잘리지 않도록 하기 위해서 View의 크기에 맞게 잘라서 저장된다. 저장하는 파일 경로가 각 객체의 groupName에 저장된다.
         * @author 김효상
         * @date 2017-07-31
         * @param fileName 저장하고자 하는 파일이름
         * @param groupName 저장하고자 하는 그룹의 이름
         */
        public String SaveDocument(string fileName, string groupName)
        {
            View ptemp = ((View)viewList[0]);
            int  W     = ptemp.Width;
            int  H     = ptemp.Height;

            this.fileName = fileName;
            Stream          streamWrite = File.Create(fileName);
            BinaryFormatter binaryWrite = new BinaryFormatter();
            FigureList      groupList   = new FigureList();

            foreach (Figure figure in drawnFigures)
            {
                if (figure.groupName.Equals(groupName))
                {
                    figure.groupName = Path.GetFullPath(fileName);
                    groupList.Add(figure);
                }
            }
            binaryWrite.Serialize(streamWrite, groupList);
            streamWrite.Close();
            innerNeedSave = false;

            return(fileName);
        }
Esempio n. 3
0
        /**
         * @brief FigureList 상대좌표계 복제
         * @author 김민규
         * @date 2017-2-7
         * @param magnificationRatio 확대 비율
         * @param screenPos 화면의 현재 위치
         * @return FigureList 똑같은 값을 가지는 새로운 FigureList를 생성해 반환한다.
         */
        public virtual FigureList RelativeClone(int magnificationRatio, Pos screenPos)
        {
            FigureList list = new FigureList();

            for (int i = 0; i < this.Count; i++)
            {
                list.Add((Figure)this[i].RelativeClone(magnificationRatio, screenPos));
            }
            return(list);
        }
Esempio n. 4
0
        /**
         * @brief FigureList 복제
         * @author 김민규
         * @date 2017-1-27
         * @return object 똑같은 값을 가지는 새로운 FigureList를 생성해 반환한다.
         */
        public virtual object Clone()
        {
            FigureList list = new FigureList();

            for (int i = 0; i < this.Count; i++)
            {
                list.Add((Figure)this[i].Clone());
            }
            return(list);
        }
Esempio n. 5
0
 /**
  * @brief 여러개의 도형을 복사, 붙여넣기, 잘라내기 할 수 있도록 하였다.
  * @details figList로 부터 도형정보를 얻어 clippedfigure에 넣음. select box사용중일 때도 복사, 붙여넣기 가능함.
  * @author 박성식
  * @date 16-17-13
  */
 public void copy()
 {
     // 현재 선택모드이고.
     if (currentTool == FIGURE.ARROW || currentTool == FIGURE.BOX)
     {
         // 그려진 객체가 있다면
         if (drawingFigures.Count > 0)
         {
             clipboardFigure.Clear();
             // 클립보드객체에 복사한다.
             int cnt = drawingFigures.Count;
             for (int i = 0; i < cnt; i++)
             {
                 clipboardFigure.Add((Figure)drawingFigures[i].Clone());
                 ((Figure)clipboardFigure[clipboardFigure.Count - 1]).moveAndResize(5, 5);
             }
         }
     }
 }
Esempio n. 6
0
        /**
         * @brief 선택된 객체가 맨 앞으로 가지 않고 Z값을 준수하도록 더 앞 객체의 리스트를 불러온다.
         * @author 김민규
         * @date 2017-1-27
         * @param currentFigure 비교할 객체
         * @return FigureList 더 높은 Z값을 가지는 오브젝트의 리스트
         */
        public FigureList getHigherZFigures(Figure currentFigure)
        {
            FigureList higherZFigures     = new FigureList();
            int        currentFigureIndex = drawnFigures.IndexOf(currentFigure);

            for (int currentIndex = currentFigureIndex + 1; currentIndex < drawnFigures.Count; currentIndex++)
            {
                higherZFigures.Add(drawnFigures[currentIndex]);
            }
            return(higherZFigures);
        }
Esempio n. 7
0
 /**
  * @brief objList에 Figure를 추가한다.
  * @details Document의 objList에 새로운 도형을 추가하기 위해서 사용된다.
  * @param figure 추가하고자 하는 Figure
  */
 public void addFigure(Figure figure)
 {
     drawnFigures.Add(figure);
 }