Пример #1
0
 private void AddAutoConstraints(Vertex v1, Vertex v2)
 {
     if (Math.Abs(v1.X - v2.X) < 5)
     {
         var constraint = new VerticalEdgeConstraint(v1, v2);
         constraints.Add(constraint);
         constraint.TryRepairConstraint(this);
     }
     if (Math.Abs(v1.Y - v2.Y) < 5)
     {
         var constraint = new HorizontalEdgeConstraint(v1, v2);
         constraints.Add(constraint);
         constraint.TryRepairConstraint(this);
     }
 }
Пример #2
0
        public ConstraintOperationResult CanAddConstraintVerticalEdge()
        {
            var constraint = new VerticalEdgeConstraint();
            var e          = addingEdgeConstraintOrVerticeState.selectedEdge;

            // firstly checks with startX
            var canAccStart = e.CanAddConstraintAndApply(constraint, e.start.X, e.start.Y, e.start.X, e.end.Y);

            if (canAccStart.Success)
            {
                return(canAccStart);
            }

            //then check accorindg to endX
            var canAccEnd = e.CanAddConstraintAndApply(constraint, e.end.X, e.start.Y, e.end.X, e.end.Y);

            if (canAccEnd.Success)
            {
                return(canAccStart);
            }

            return(new ConstraintOperationResult(false, ConstraintOperationKind.AddAndApplyWithCheck));
        }