Фикс с удалением ограничений

А ещё сделали так, чтобы линия не могла быть горизонтальной и вертикальной одновременно
This commit is contained in:
2025-12-15 11:55:32 +03:00
parent d8487951e0
commit eb946e2e6a
2 changed files with 114 additions and 14 deletions

View File

@@ -54,6 +54,8 @@ private:
Point* findPointAt(QPointF, qreal tolerance = 5.0);
bool areCoincident(Point*, Point*);
bool areHorizontalVertical(Point*, Point*, bool);
bool isLineHorizontal(Line* line); // проверяет, горизонтальна ли линия
bool isLineVertical(Line* line); // проверяет, вертикальна ли линия
// ====================== Параллельность ======================
bool areAlreadyParallel(Line* l1, Line* l2); // проверка на дубликат
@@ -62,6 +64,8 @@ private:
Line* draggedLine{ nullptr };
QPointF dragOffset;
// ====================== Работа с парами ограничений ======================
void remove_constraints();
// ====================== Данные сцены ======================
System sys; // геометрический солвер
QVector<Line*> lines; // завершённые линии
@@ -80,4 +84,10 @@ private:
int obj_count{ 0 }; // тег для новых объектов
int constraints_count{ 0 }; // тег для новых ограничений
struct LastConstraint {
Mode mode{ Mode::None };
std::variant<LinePair, PointPair> data;
};
LastConstraint lastConstraint;
};