Фикс с удалением ограничений
А ещё сделали так, чтобы линия не могла быть горизонтальной и вертикальной одновременно
This commit is contained in:
10
Canvas.h
10
Canvas.h
@@ -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;
|
||||
};
|
||||
Reference in New Issue
Block a user