Files
hfut-bishe/client/gui/editor/EntityCutoutUtils.h
T
2026-05-14 22:12:40 +08:00

22 lines
872 B
C++

#pragma once
#include <QImage>
#include <QPointF>
#include <QPainterPath>
#include <QRect>
#include <QSize>
#include <QVector>
namespace entity_cutout {
QPainterPath pathFromWorldPolygon(const QVector<QPointF>& poly);
QPointF polygonCentroid(const QVector<QPointF>& poly);
QRect clampRectToImage(const QRect& r, const QSize& size);
QImage extractEntityImage(const QImage& bg, const QVector<QPointF>& polyWorld, QPointF& outTopLeftWorld);
void applyBlackFillToBackground(QImage& bgCutout, const QVector<QPointF>& polyWorld);
/// 子图左上角与 cropWorldRect.topLeft() 对齐(世界坐标);将 holePolysWorld 内像素置黑,供分割/吸附与画布一致。
void applyBlackHolesToImageRegion(QImage& regionPremul, const QRect& cropWorldRect,
const QVector<QVector<QPointF>>& holePolysWorld);
} // namespace entity_cutout