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); } }
public ConstraintOperationResult CanAddConstraintHorizontalEdge() { var constraint = new HorizontalEdgeConstraint(); var e = addingEdgeConstraintOrVerticeState.selectedEdge; // firstly checks with startY var canAccStart = e.CanAddConstraintAndApply(constraint, e.start.X, e.start.Y, e.end.X, e.start.Y); if (canAccStart.Success) { return(canAccStart); } //then check accorindg to endX var canAccEnd = e.CanAddConstraintAndApply(constraint, e.start.X, e.end.Y, e.end.X, e.end.Y); if (canAccEnd.Success) { return(canAccStart); } return(new ConstraintOperationResult(false, ConstraintOperationKind.AddAndApplyWithCheck)); }