summaryrefslogtreecommitdiff
path: root/src/graphicsscene.cpp
diff options
context:
space:
mode:
authorNikita Kostovsky <nikita@kostovsky.me>2026-01-07 02:10:04 +0100
committerNikita Kostovsky <nikita@kostovsky.me>2026-01-07 02:10:04 +0100
commit55e79f0d7179f5105eff11897bb3926a8f7b36cb (patch)
tree718dbc278b82d41f1f5b38967cdb99b27e717ea8 /src/graphicsscene.cpp
parentd3f97c3929c525890be9984a03464754b2daf6bc (diff)
add x start/end range; implement export to .scadHEADmaster
Diffstat (limited to 'src/graphicsscene.cpp')
-rw-r--r--src/graphicsscene.cpp47
1 files changed, 27 insertions, 20 deletions
diff --git a/src/graphicsscene.cpp b/src/graphicsscene.cpp
index d7e0bba..0bb8e32 100644
--- a/src/graphicsscene.cpp
+++ b/src/graphicsscene.cpp
@@ -209,7 +209,7 @@ GraphicsScene::GraphicsScene(QObject* parent)
QBrush{Qt::green, Qt::DiagCrossPattern}
);
m_xzDebugItem->setOpacity(0.1);
- m_xzDebugItem->setParentItem(m_laserBodyItem);
+ // m_xzDebugItem->setParentItem(m_laserBodyItem);
}
void GraphicsScene::update(OpticalDesign* design)
@@ -589,6 +589,7 @@ void GraphicsScene::update(OpticalDesign* design)
design->get_laserBodyLengthMm()
)
);
+ m_laserBodyItem->setPos(QPointF{design->get_laserZOffsetMm(), 0.});
m_scannerBodyFrontWallItem->setRect(
orphex::scannerBodyFrontWallRect(
@@ -604,32 +605,38 @@ void GraphicsScene::update(OpticalDesign* design)
}
{
- const auto item = m_actualRangeItem;
- const auto line = item->line();
- const auto x1 = item->mapToScene(line.p1()).x();
- const auto x2 = item->mapToScene(line.p2()).x();
+ const auto zRangeItem = m_actualRangeItem;
+ const auto line = zRangeItem->line();
+
+ const auto zBase = zRangeItem->mapToScene(line.p1()).x();
+ const auto zEnd = zRangeItem->mapToScene(line.p2()).x();
+
+ const auto xStartRight =
+ imageToObject(m_xzSensorItem->rect().topLeft()).y();
+ const auto xStartLeft =
+ imageToObject(m_xzSensorItem->rect().bottomLeft()).y();
+
+ const auto xEndRight =
+ imageToObject(m_xzSensorItem->rect().topRight()).y();
+ const auto xEndLeft =
+ imageToObject(m_xzSensorItem->rect().bottomRight()).y();
+
+ design->set_actualXStartMm(-(xStartRight - xStartLeft));
+ design->set_actualXEndMm(-(xEndRight - xEndLeft));
+
QPolygonF xzActualRangePolygon{QList<QPointF>{
- QPointF{x1, imageToObject(m_xzSensorItem->rect().topLeft()).y()},
- QPointF{x1, imageToObject(m_xzSensorItem->rect().bottomLeft()).y()},
- QPointF{
- x2,
- imageToObject(m_xzSensorItem->rect().bottomRight()).y()
- },
- QPointF{x2, imageToObject(m_xzSensorItem->rect().topRight()).y()},
+ QPointF{zBase, xStartRight},
+ QPointF{zBase, xStartLeft},
+ QPointF{zEnd, xEndLeft},
+ QPointF{zEnd, xEndRight},
}};
m_xzActualRangeAreaItem->setPolygon(xzActualRangePolygon);
m_xzDebugItem->setPolygon(
QPolygonF{QList<QPointF>{
QPointF{0., 0.},
- QPointF{
- x1,
- imageToObject(m_xzSensorItem->rect().topLeft()).y()
- },
- QPointF{
- x1,
- imageToObject(m_xzSensorItem->rect().bottomLeft()).y()
- },
+ QPointF{zBase, xStartRight},
+ QPointF{zBase, xStartLeft},
}}
);
}