36 lines
1.1 KiB
C++
36 lines
1.1 KiB
C++
// LayoutData.h
|
|
#pragma once
|
|
#include <QMap>
|
|
#include <QPointF>
|
|
#include <QRectF>
|
|
|
|
class DiagramEditorBaseBlock;
|
|
class DiagramEditorStructContainer;
|
|
|
|
struct ContainerLayout {
|
|
double width = 0;
|
|
double height = 0;
|
|
double maxUpHeight = 0; // 上间隔最大高度
|
|
double maxDownHeight = 0; // 下间隔最大高度
|
|
double startX = 0; // 容器起始X
|
|
double startY = 0; // 容器起始Y
|
|
double midUpY = 0; // 母线1中心Y
|
|
double midDownY = 0; // 母线2中心Y
|
|
QMap<DiagramEditorBaseBlock*, QPointF> blockPositions; // 设备位置
|
|
};
|
|
|
|
struct RowLayout {
|
|
int level = 0;
|
|
double topY = 0; // 行顶部Y
|
|
double height = 0; // 行高度
|
|
double width = 0; // 行宽度
|
|
QList<ContainerLayout*> containers;
|
|
bool isTransformerRow = false;
|
|
};
|
|
|
|
struct LayoutResult {
|
|
QMap<int, RowLayout> rows; // 各层级布局
|
|
QMap<DiagramEditorBaseBlock*, QPointF> allBlockPositions; // 所有设备位置
|
|
QMap<DiagramEditorStructContainer*, ContainerLayout> containerLayouts; // 容器布局
|
|
};
|