GridFrame/diagramCavas/include/diagramEditor/layoutData.h

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; // 容器布局
};