Change encoding
And add fix button
This commit is contained in:
32
Canvas.h
32
Canvas.h
@@ -1,4 +1,4 @@
|
||||
#pragma once
|
||||
#pragma once
|
||||
|
||||
#include <QWidget>
|
||||
#include <QMouseEvent>
|
||||
@@ -9,7 +9,7 @@
|
||||
#include <QDebug>
|
||||
#endif
|
||||
|
||||
// GCS — ãåîìåòðè÷åñêèé ñîëâåð èç FreeCAD
|
||||
// GCS — геометрический солвер из FreeCAD
|
||||
#include "GCS/Geo.h"
|
||||
#include "GCS/GCS.h"
|
||||
using namespace GCS;
|
||||
@@ -22,11 +22,11 @@ enum class Mode : int
|
||||
Coincedent = 3
|
||||
};
|
||||
|
||||
// Óäîáíûé òèï äëÿ õðàíåíèÿ ïàðû ïàðàëëåëüíûõ ëèíèé (ïîðÿäîê íå âàæåí)
|
||||
// Удобный тип для хранения пары параллельных линий (порядок не важен)
|
||||
using LinePair = std::pair<Line*, Line*>;
|
||||
|
||||
// ===================================================================
|
||||
// Îñíîâíîé êëàññ õîëñòà
|
||||
// Основной класс холста
|
||||
// ===================================================================
|
||||
|
||||
class Canvas : public QWidget
|
||||
@@ -44,26 +44,26 @@ protected:
|
||||
void paintEvent(QPaintEvent* event) override;
|
||||
|
||||
private:
|
||||
// ====================== Ïîèñê è âûáîð ======================
|
||||
Line* findAt(QPointF&); // èùåò ëèíèþ ïîä êóðñîðîì
|
||||
// ====================== Поиск и выбор ======================
|
||||
Line* findAt(QPointF&); // ищет линию под курсором
|
||||
Point* findPointAt(QPointF, qreal tolerance = 10.0);
|
||||
|
||||
// ====================== Ïàðàëëåëüíîñòü ======================
|
||||
// ====================== Параллельность ======================
|
||||
LinePair makeOrderedPair(Line* l1, Line* l2);
|
||||
bool areAlreadyParallel(Line* l1, Line* l2); // ïðîâåðêà íà äóáëèêàò
|
||||
bool areAlreadyParallel(Line* l1, Line* l2); // проверка на дубликат
|
||||
|
||||
// ====================== Äàííûå ñöåíû ======================
|
||||
System sys; // ãåîìåòðè÷åñêèé ñîëâåð
|
||||
QVector<Line*> lines; // çàâåðø¸ííûå ëèíèè
|
||||
QVector<Point> points; // âñå òî÷êè (äëÿ óäîáíîãî äîñòóïà)
|
||||
std::vector<double*> params; // âñå ïàðàìåòðû, ïåðåäàâàåìûå â ñîëâåð
|
||||
// ====================== Данные сцены ======================
|
||||
System sys; // геометрический солвер
|
||||
QVector<Line*> lines; // завершённые линии
|
||||
QVector<Point> points; // все точки (для удобного доступа)
|
||||
std::vector<double*> params; // все параметры, передаваемые в солвер
|
||||
|
||||
std::set<LinePair> parallelPairs; // óæå çàïàðàëëåëåííûå ïàðû (çàùèòà îò äóáëåé)
|
||||
std::set<LinePair> parallelPairs; // уже запараллеленные пары (защита от дублей)
|
||||
|
||||
Line* current_line{ nullptr };
|
||||
Point* firstPoint{ nullptr };
|
||||
Mode mode{ Mode::None };
|
||||
|
||||
int obj_count{ 0 }; // òåã äëÿ íîâûõ îáúåêòîâ
|
||||
int constraints_count{ 0 }; // òåã äëÿ íîâûõ îãðàíè÷åíèé
|
||||
int obj_count{ 0 }; // тег для новых объектов
|
||||
int constraints_count{ 0 }; // тег для новых ограничений
|
||||
};
|
||||
Reference in New Issue
Block a user