rename inner and outer radius

This commit is contained in:
Vogel, Rick 2023-07-17 10:41:29 +02:00
parent 5d973ea508
commit 53b139820a
2 changed files with 17 additions and 21 deletions

View File

@ -29,18 +29,17 @@ using R = LevelingSensorSkinlet::NodeRole;
using namespace QskSGNode; using namespace QskSGNode;
float LevelingSensorSkinlet::radius2(const QskSkinnable* const skinnable) float LevelingSensorSkinlet::outerRadius(const QskSkinnable* const skinnable)
{ {
// outer radius
const auto* const sensor = static_cast<const Q*>(skinnable); const auto* const sensor = static_cast<const Q*>(skinnable);
const auto contentsRect = sensor->contentsRect(); const auto contentsRect = sensor->contentsRect();
return 0.5f * qMin(contentsRect.width(), contentsRect.height()); return 0.5f * qMin(contentsRect.width(), contentsRect.height());
} }
float LevelingSensorSkinlet::radius1(const QskSkinnable* const skinnable) float LevelingSensorSkinlet::innerRadius(const QskSkinnable* const skinnable)
{ {
const auto scale = skinnable->strutSizeHint(Q::Horizon); const auto scale = skinnable->strutSizeHint(Q::Horizon);
return radius2(skinnable) * scale.width(); return outerRadius(skinnable) * scale.width();
} }
QPointF LevelingSensorSkinlet::center(const QskSkinnable* const skinnable) QPointF LevelingSensorSkinlet::center(const QskSkinnable* const skinnable)
@ -72,7 +71,7 @@ template<>
Q_REQUIRED_RESULT QRectF LevelingSensorSkinlet::subControlRect<R::OuterDisk>(const LevelingSensor* const sensor, Q_REQUIRED_RESULT QRectF LevelingSensorSkinlet::subControlRect<R::OuterDisk>(const LevelingSensor* const sensor,
const QRectF& contentsRect) const const QRectF& contentsRect) const
{ {
const auto radius = radius2(sensor); const auto radius = outerRadius(sensor);
const auto scale = sensor->strutSizeHint(Q::OuterDisk); const auto scale = sensor->strutSizeHint(Q::OuterDisk);
const auto width = 2 * radius * scale.width(); const auto width = 2 * radius * scale.width();
const auto height = width; const auto height = width;
@ -86,7 +85,7 @@ Q_REQUIRED_RESULT QRectF LevelingSensorSkinlet::subControlRect<R::Horizon>(const
const QRectF& contentsRect) const const QRectF& contentsRect) const
{ {
const auto scale = sensor->strutSizeHint(Q::Horizon); const auto scale = sensor->strutSizeHint(Q::Horizon);
const auto width = 2 * radius1(sensor) * scale.width(); const auto width = 2 * innerRadius(sensor) * scale.width();
const auto height = width; const auto height = width;
return { return {
center(sensor).x() - width / 2, center(sensor).x() - width / 2,
@ -132,7 +131,7 @@ QSGNode* LevelingSensorSkinlet::updateSubNode<R::OuterDisk>(const LevelingSensor
auto* const root = ensure<QSGTransformNode, par<1, QskBoxNode>>::node(node); auto* const root = ensure<QSGTransformNode, par<1, QskBoxNode>>::node(node);
auto* const bNode = static_cast<QskBoxNode*>(root->firstChild()); auto* const bNode = static_cast<QskBoxNode*>(root->firstChild());
const auto size = radius2(sensor) * sensor->strutSizeHint(Q::OuterDisk).width(); const auto size = outerRadius(sensor) * sensor->strutSizeHint(Q::OuterDisk).width();
updateBoxNode(sensor, bNode, { 0, 0, 2 * size, 2 * size }, boxShapeMetrics, boxBorderMetrics, boxBorderColors, boxGradient); updateBoxNode(sensor, bNode, { 0, 0, 2 * size, 2 * size }, boxShapeMetrics, boxBorderMetrics, boxBorderColors, boxGradient);
const auto cX = center(sensor).x(); const auto cX = center(sensor).x();
@ -153,7 +152,7 @@ QSGNode* LevelingSensorSkinlet::updateSubNode<R::Horizon>(const LevelingSensor*
const quint8 nodeRole, QSGNode* const node) const const quint8 nodeRole, QSGNode* const node) const
{ {
const auto subControl = Q::Horizon; const auto subControl = Q::Horizon;
const auto r1 = radius1(sensor); const auto r1 = innerRadius(sensor);
const auto cX = center(sensor).x(); const auto cX = center(sensor).x();
const auto cY = center(sensor).y(); const auto cY = center(sensor).y();
const auto rX = sensor->rotation().x(); const auto rX = sensor->rotation().x();
@ -203,7 +202,7 @@ QSGNode* LevelingSensorSkinlet::updateSubNode<R::TickmarksX>(const LevelingSenso
const auto rY = sensor->rotation().y(); const auto rY = sensor->rotation().y();
const auto rZ = sensor->arcMetricsHint(subControl).startAngle(); const auto rZ = sensor->arcMetricsHint(subControl).startAngle();
const auto r1 = radius1(sensor); const auto r1 = innerRadius(sensor);
const auto r3 = r1 * scale.height(); const auto r3 = r1 * scale.height();
const auto sX = r1 / sensor->angle().x(); const auto sX = r1 / sensor->angle().x();
@ -236,7 +235,7 @@ QSGNode* LevelingSensorSkinlet::updateSubNode<R::TickmarksY>(const LevelingSenso
const auto color = sensor->color(subControl); const auto color = sensor->color(subControl);
const auto scale = sensor->strutSizeHint(subControl); const auto scale = sensor->strutSizeHint(subControl);
const auto r1 = radius1(sensor); const auto r1 = innerRadius(sensor);
const auto r3 = r1 * scale.width(); const auto r3 = r1 * scale.width();
const auto rX = 0.00; const auto rX = 0.00;
@ -278,8 +277,8 @@ QSGNode* LevelingSensorSkinlet::updateSubNode<R::TickmarksZ>(const LevelingSenso
const auto color = sensor->color(subControl); const auto color = sensor->color(subControl);
const auto scale = sensor->strutSizeHint(subControl); const auto scale = sensor->strutSizeHint(subControl);
const auto r1 = radius1(sensor); const auto r1 = innerRadius(sensor);
const auto r2 = radius2(sensor); const auto r2 = outerRadius(sensor);
const auto r3 = qvariant_cast<QVector3D>(sensor->effectiveSkinHint(subControl)) * (r2 - r1) + QVector3D{r1, r1, r1}; const auto r3 = qvariant_cast<QVector3D>(sensor->effectiveSkinHint(subControl)) * (r2 - r1) + QVector3D{r1, r1, r1};
auto* const transform = ensure<QSGTransformNode, par<1,RadialTickmarksNode>>::node(node); auto* const transform = ensure<QSGTransformNode, par<1,RadialTickmarksNode>>::node(node);
@ -302,7 +301,7 @@ QSGNode* LevelingSensorSkinlet::updateSubNode<R::TickmarksXLabels>(const Levelin
{ {
const auto subControl = Q::TickmarksXLabels; const auto subControl = Q::TickmarksXLabels;
const auto r1 = radius1(sensor); const auto r1 = innerRadius(sensor);
const auto r3 = static_cast<float>(r1 * sensor->strutSizeHint(Q::TickmarksX).height()); const auto r3 = static_cast<float>(r1 * sensor->strutSizeHint(Q::TickmarksX).height());
const auto sX = r1 / sensor->angle().x(); const auto sX = r1 / sensor->angle().x();
const auto sY = r1 / sensor->angle().y(); const auto sY = r1 / sensor->angle().y();
@ -326,7 +325,7 @@ QSGNode* LevelingSensorSkinlet::updateSubNode<R::TickmarksYLabels>(const Levelin
const quint8 nodeRole, QSGNode* const node) const const quint8 nodeRole, QSGNode* const node) const
{ {
const auto subControl = Q::TickmarksYLabels; const auto subControl = Q::TickmarksYLabels;
const auto r1 = radius1(sensor); const auto r1 = innerRadius(sensor);
const auto r3 = static_cast<float>(r1 * sensor->strutSizeHint(Q::TickmarksY).width()); const auto r3 = static_cast<float>(r1 * sensor->strutSizeHint(Q::TickmarksY).width());
const auto cX = static_cast<float>(center(sensor).x()); const auto cX = static_cast<float>(center(sensor).x());
const auto cY = static_cast<float>(center(sensor).y()); const auto cY = static_cast<float>(center(sensor).y());
@ -348,7 +347,7 @@ QSGNode* LevelingSensorSkinlet::updateSubNode<R::TickmarksZLabels>(const Levelin
const auto subControl = Q::TickmarksZLabels; const auto subControl = Q::TickmarksZLabels;
auto* const tNode = ensure<QSGTransformNode, par<1,RadialTickmarksLabelsNode>>::node(node); auto* const tNode = ensure<QSGTransformNode, par<1,RadialTickmarksLabelsNode>>::node(node);
auto* const lNode = static_cast<RadialTickmarksLabelsNode*>(tNode->firstChild()); auto* const lNode = static_cast<RadialTickmarksLabelsNode*>(tNode->firstChild());
const auto r1 = radius1(sensor); const auto r1 = innerRadius(sensor);
const auto r3 = static_cast<float>(r1 * sensor->strutSizeHint(subControl).width()); const auto r3 = static_cast<float>(r1 * sensor->strutSizeHint(subControl).width());
const auto cX = static_cast<float>(center(sensor).x()); const auto cX = static_cast<float>(center(sensor).x());
const auto cY = static_cast<float>(center(sensor).y()); const auto cY = static_cast<float>(center(sensor).y());
@ -364,7 +363,7 @@ QSGNode* LevelingSensorSkinlet::updateSubNode<R::HorizonClip>(const LevelingSens
{ {
const auto cX = center(sensor).x(); const auto cX = center(sensor).x();
const auto cY = center(sensor).y(); const auto cY = center(sensor).y();
const auto r1 = radius1(sensor); const auto r1 = innerRadius(sensor);
auto* const clipNode = ensure<PolygonClipNode>::node(node); auto* const clipNode = ensure<PolygonClipNode>::node(node);
clipNode->setGeometryProperties(r1, cX, cY); clipNode->setGeometryProperties(r1, cX, cY);

View File

@ -31,11 +31,8 @@ public:
Q_INVOKABLE LevelingSensorSkinlet(QskSkin* skin = nullptr); Q_INVOKABLE LevelingSensorSkinlet(QskSkin* skin = nullptr);
~LevelingSensorSkinlet() override = default; ~LevelingSensorSkinlet() override = default;
/// @returns Returns the inner radius of the @p skinnable static Q_REQUIRED_RESULT float outerRadius(const QskSkinnable* const skinnable);
static Q_REQUIRED_RESULT float radius2(const QskSkinnable* const skinnable); static Q_REQUIRED_RESULT float innerRadius(const QskSkinnable* const skinnable);
/// @returns Returns the outer radius of the @p skinnable
static Q_REQUIRED_RESULT float radius1(const QskSkinnable* const skinnable);
/// @returns Returns the center point of the control
static Q_REQUIRED_RESULT QPointF center(const QskSkinnable* const skinnable); static Q_REQUIRED_RESULT QPointF center(const QskSkinnable* const skinnable);
protected: protected: