コード例 #1
0
ファイル: MetaForm.cs プロジェクト: secondii/Yutai
        private static void AddObjectsPath(ArrayList arr)
        {
            int j;
            int count;

            for (int i = 0; i < arr.Count; i++)
            {
                switch ((arr[i] as MetaForm.ObjectEnt).type)
                {
                case MetaForm.ObjTypeRecord.objCloseLine:
                {
                    count = (arr[i] as MetaForm.ObjectEnt).points.Count - 1;
                    for (j = 0; j <= count; j++)
                    {
                        if (j < count)
                        {
                            MetaForm.DrawLine((PointF)(arr[i] as MetaForm.ObjectEnt).points[j],
                                              (PointF)(arr[i] as MetaForm.ObjectEnt).points[j + 1]);
                        }
                    }
                    j--;
                    if ((arr[i] as MetaForm.ObjectEnt).compobj != -1)
                    {
                        int item = (arr[i] as MetaForm.ObjectEnt).compobj;
                        int num  = i;
                        while ((arr[num] as MetaForm.ObjectEnt).compobj != -1)
                        {
                            item = (arr[num] as MetaForm.ObjectEnt).compobj;
                            num--;
                        }
                        if (j > count)
                        {
                            break;
                        }
                        MetaForm.DrawLine((PointF)(arr[i] as MetaForm.ObjectEnt).points[j],
                                          (PointF)(arr[item] as MetaForm.ObjectEnt).points[0]);
                        break;
                    }
                    else
                    {
                        if (j > count)
                        {
                            break;
                        }
                        MetaForm.DrawLine((PointF)(arr[i] as MetaForm.ObjectEnt).points[j],
                                          (PointF)(arr[i] as MetaForm.ObjectEnt).points[0]);
                        break;
                    }
                }

                case MetaForm.ObjTypeRecord.objCloseBezier:
                {
                    MetaForm.AddPolyBez((arr[i] as MetaForm.ObjectEnt).points);
                    j = (arr[i] as MetaForm.ObjectEnt).points.Count - 1;
                    if ((arr[i] as MetaForm.ObjectEnt).compobj != -1)
                    {
                        int item1 = (arr[i] as MetaForm.ObjectEnt).compobj;
                        int num1  = i;
                        while ((arr[num1] as MetaForm.ObjectEnt).compobj != -1)
                        {
                            item1 = (arr[num1] as MetaForm.ObjectEnt).compobj;
                            num1--;
                        }
                        MetaForm.DrawLine((PointF)(arr[i] as MetaForm.ObjectEnt).points[j],
                                          (PointF)(arr[item1] as MetaForm.ObjectEnt).points[0]);
                        break;
                    }
                    else
                    {
                        MetaForm.DrawLine((PointF)(arr[i] as MetaForm.ObjectEnt).points[j],
                                          (PointF)(arr[i] as MetaForm.ObjectEnt).points[0]);
                        break;
                    }
                }

                case MetaForm.ObjTypeRecord.objBezier:
                {
                    MetaForm.AddPolyBez((arr[i] as MetaForm.ObjectEnt).points);
                    break;
                }

                case MetaForm.ObjTypeRecord.objLine:
                {
                    count = (arr[i] as MetaForm.ObjectEnt).points.Count - 1;
                    for (j = 0; j <= count; j++)
                    {
                        if (j < count)
                        {
                            MetaForm.DrawLine((PointF)(arr[i] as MetaForm.ObjectEnt).points[j],
                                              (PointF)(arr[i] as MetaForm.ObjectEnt).points[j + 1]);
                        }
                    }
                    break;
                }
                }
            }
        }