Тест на перпендикулярность

This commit is contained in:
2025-12-15 20:44:23 +03:00
parent cc1f891d90
commit 68451b4261
2 changed files with 56 additions and 1 deletions

View File

@@ -30,7 +30,8 @@ enum class Mode : int
Parallel = 2, ///< Режим задания параллельности
Coincedent = 3, ///< Режим задания совпадения точек
Horizontal = 4, ///< Режим задания горизонтальности
Vertical = 5 ///< Режим задания вертикальности
Vertical = 5, ///< Режим задания вертикальности
Perpendicular = 6
};
/// Удобный тип для хранения пары параллельных линий (порядок не важен)
@@ -94,6 +95,8 @@ private:
/// Проверить, являются ли две линии уже параллельными (дубликат ограничения)
bool areAlreadyParallel(Line* line1, Line* line2);
bool areAlreadyPerpendicular(Line* line1, Line* line2);
// ====================== Методы работы с ограничениями ======================
/// Удалить последние добавленные ограничения при ошибке солвера
@@ -115,6 +118,7 @@ private:
// ====================== Коллекции ограничений ======================
std::set<LinePair> parallelPairs; ///< Пары параллельных линий
std::set<LinePair> perpendicularPairs;
std::set<PointPair> P2Ppairs; ///< Пары совпадающих точек
std::set<PointPair> HORIZ_pairs; ///< Пары точек горизонтальных линий
std::set<PointPair> VERT_pairs; ///< Пары точек вертикальных линий