Esempio n. 1
0
        private void UpdateSegList()
        {
            SegList.Clear();

            for (int i = 0; i < mHeModel.FaceStore.Count; i++)
            {
                HeFace f = mHeModel.FaceStore[i];

                HalfEdge head = f.Head;

                HalfEdge c = head;


                for (; ;)
                {
                    HalfEdge next = c.Next;

                    SegList.Add(new IndexPair(c.Vertex, next.Vertex));

                    c = next;

                    if (c == head)
                    {
                        break;
                    }
                }
            }
        }
Esempio n. 2
0
        public void Clear()
        {
            var ary = new FlexArray <int>();

            ary.Count.Is(0);
            ary.Clear();
            ary.Count.Is(0);

            ary.Add(10);
            ary[0] = 10;
            ary[0].Is(10);
            ary.Clear();
            ary.Count.Is(0);
            ary[0].Is(default(int));

            ary.Add(10);
            ary.Add(20);
            ary.Clear();
            ary.Count.Is(0);
            ary[0].Is(default(int));
            ary[1].Is(default(int));
        }
Esempio n. 3
0
        protected void DrawFigures(DrawContext dc)
        {
            if (dc == null)
            {
                return;
            }

            DrawParams pale_dp    = default;
            DrawParams test_dp    = default;
            DrawParams current_dp = default;
            DrawParams measure_dp = default;

            DrawParams empty_dp = default;

            empty_dp.Empty = true;

            pale_dp.LinePen   = dc.GetPen(DrawTools.PEN_PALE_FIGURE);
            pale_dp.EdgePen   = dc.GetPen(DrawTools.PEN_PALE_FIGURE);
            pale_dp.FillBrush = DrawBrush.NullBrush;
            pale_dp.TextBrush = dc.GetBrush(DrawTools.BRUSH_PALE_TEXT);

            test_dp.LinePen   = dc.GetPen(DrawTools.PEN_TEST_FIGURE);
            test_dp.EdgePen   = dc.GetPen(DrawTools.PEN_TEST_FIGURE);
            test_dp.FillBrush = DrawBrush.NullBrush;
            test_dp.TextBrush = dc.GetBrush(DrawTools.BRUSH_TEXT);

            current_dp.LinePen   = dc.GetPen(DrawTools.PEN_FIGURE_HIGHLIGHT);
            current_dp.EdgePen   = dc.GetPen(DrawTools.PEN_FIGURE_HIGHLIGHT);
            current_dp.FillBrush = DrawBrush.NullBrush;
            current_dp.TextBrush = dc.GetBrush(DrawTools.BRUSH_TEXT);

            measure_dp.LinePen   = dc.GetPen(DrawTools.PEN_MEASURE_FIGURE);
            measure_dp.EdgePen   = dc.GetPen(DrawTools.PEN_MEASURE_FIGURE);
            measure_dp.FillBrush = DrawBrush.NullBrush;
            measure_dp.TextBrush = dc.GetBrush(DrawTools.BRUSH_TEXT);

            AlphaFigList.Clear();
            AlphaFigListCurrentLayer.Clear();

            lock (DB)
            {
                foreach (CadLayer layer in mDB.LayerList)
                {
                    if (!layer.Visible)
                    {
                        continue;
                    }

                    // Skip current layer.
                    // It will be drawn at the end of this loop.
                    if (layer == CurrentLayer)
                    {
                        continue;
                    }

                    foreach (CadFigure fig in layer.FigureList)
                    {
                        if (fig.Type == CadFigure.Types.DIMENTION_LINE)
                        {
                            AlphaFigList.Add(fig);
                            continue;
                        }

                        if (fig.Current)
                        {
                            fig.DrawEach(dc, current_dp);
                        }
                        else
                        {
                            fig.DrawEach(dc, pale_dp);
                        }
                    }
                }

                // Draw current layer at last
                if (CurrentLayer != null && CurrentLayer.Visible)
                {
                    foreach (CadFigure fig in CurrentLayer.FigureList)
                    {
                        if (fig.Type == CadFigure.Types.DIMENTION_LINE)
                        {
                            AlphaFigListCurrentLayer.Add(fig);
                            continue;
                        }

                        if (fig.Current)
                        {
                            fig.DrawEach(dc, current_dp);
                        }
                        else
                        {
                            fig.DrawEach(dc);
                        }
                    }
                }

                foreach (CadFigure fig in TempFigureList)
                {
                    if (fig.Type == CadFigure.Types.DIMENTION_LINE)
                    {
                        continue;
                    }

                    fig.DrawEach(dc, test_dp);
                }

                if (MeasureFigureCreator != null)
                {
                    if (MeasureFigureCreator.Figure.Type != CadFigure.Types.DIMENTION_LINE)
                    {
                        MeasureFigureCreator.Figure.Draw(dc, measure_dp);
                    }
                }

                // Alpha指定があるFigureを描画
                foreach (CadFigure fig in AlphaFigList)
                {
                    if (fig.Current)
                    {
                        fig.DrawEach(dc, current_dp);
                    }
                    else
                    {
                        fig.DrawEach(dc, pale_dp);
                    }
                }

                foreach (CadFigure fig in AlphaFigListCurrentLayer)
                {
                    if (fig.Current)
                    {
                        fig.DrawEach(dc, current_dp);
                    }
                    else
                    {
                        fig.DrawEach(dc);
                    }
                }


                foreach (CadFigure fig in TempFigureList)
                {
                    if (fig.Type != CadFigure.Types.DIMENTION_LINE)
                    {
                        continue;
                    }

                    fig.DrawEach(dc, test_dp);
                }

                if (MeasureFigureCreator != null)
                {
                    if (MeasureFigureCreator.Figure.Type == CadFigure.Types.DIMENTION_LINE)
                    {
                        MeasureFigureCreator.Figure.Draw(dc, measure_dp);
                    }
                }
            }
        }
Esempio n. 4
0
 public void Clear()
 {
     VertexStore.Clear();
     FaceStore.Clear();
     NormalStore.Clear();
 }