protected override Status FixImpl(CheckResult checkResult, out List <ObjectId> resultIds)
        {
            resultIds = new List <ObjectId>();
            var result = checkResult as MissingVertexInPolygonCheckResult;

            if (result == null)
            {
                return(Status.Rejected);
            }

            // Fix 就是 在缺点的地方添加顶点
            using (var tr = Document.Database.TransactionManager.StartTransaction())
            {
                var entity = tr.GetObject(result.ObjectId, OpenMode.ForWrite) as Curve;
                if (entity != null)
                {
                    foreach (var position in result.MissingPositions)
                    {
                        AddVertex.AddVertexFromPolyline(tr, entity, position);
                    }
                }

                tr.Commit();
            }
            return(Status.Fixed);
        }
        private void addVertex()
        {
            process.Start();
            AddVertex addVertex = new AddVertex();

            addVertex.Show();
        }
Пример #3
0
        public bool FixAll()
        {
            var database = Editor.Document.Database;

            using (var transaction = database.TransactionManager.StartTransaction())
            {
                foreach (var missingVertexInfo in MissingVertexInfos)
                {
                    var curve = transaction.GetObject(missingVertexInfo.PolylineId, OpenMode.ForWrite) as Curve;
                    foreach (var position in missingVertexInfo.Positions)
                    {
                        AddVertex.AddVertexFromPolyline(transaction, curve, position);
                    }
                }
                transaction.Commit();
            }
            return(true);
        }
Пример #4
0
        private void ChangeButtonColors()
        {
            //powrót wszystkich przycisków do default
            AddVertex.ClearValue(BackgroundProperty);
            AddEdge.ClearValue(BackgroundProperty);
            DeleteElements.ClearValue(BackgroundProperty);
            MoveElements.ClearValue(BackgroundProperty);

            //zmiana koloru odpowiedniego przycisku oraz typu kursora nad poszczególnymi obiektami
            if (vertexFlag)
            {
                AddVertex.Background = Brushes.LightGreen;
                DrawSpace.Cursor     = Cursors.Pen;
                foreach (var item in graph.Edges)
                {
                    item.Cursor = Cursors.Arrow;
                }
                foreach (var item in graph.Vertices)
                {
                    item.Cursor = Cursors.Arrow;
                }
            }
            if (edgeFlag)
            {
                AddEdge.Background = Brushes.LightGreen;
                DrawSpace.Cursor   = Cursors.Arrow;
                foreach (var item in graph.Edges)
                {
                    item.Cursor = Cursors.Arrow;
                }
                foreach (var item in graph.Vertices)
                {
                    item.Cursor = Cursors.Hand;
                }
            }
            if (deleteFlag)
            {
                DeleteElements.Background = Brushes.LightGreen;
                DrawSpace.Cursor          = Cursors.Arrow;
                foreach (var item in graph.Edges)
                {
                    item.Cursor = Cursors.No;
                }
                foreach (var item in graph.Vertices)
                {
                    item.Cursor = Cursors.No;
                }
            }
            if (moveFlag)
            {
                MoveElements.Background = Brushes.LightGreen;
                DrawSpace.Cursor        = Cursors.Arrow;
                foreach (var item in graph.Edges)
                {
                    item.Cursor = Cursors.Arrow;
                }
                foreach (var item in graph.Vertices)
                {
                    item.Cursor = Cursors.SizeAll;
                }
            }
        }