本文整理汇总了C++中Doc::mask方法的典型用法代码示例。如果您正苦于以下问题:C++ Doc::mask方法的具体用法?C++ Doc::mask怎么用?C++ Doc::mask使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Doc
的用法示例。
在下文中一共展示了Doc::mask方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setMaskPosition
void SetMaskPosition::setMaskPosition(const gfx::Point& pos)
{
Doc* doc = document();
doc->mask()->setOrigin(pos.x, pos.y);
doc->resetTransformation();
doc->notifySelectionChanged();
}
示例2: clear
void ClearMask::clear()
{
Cel* cel = this->cel();
Image* image = m_dstImage->image();
Doc* doc = static_cast<Doc*>(cel->document());
Mask* mask = doc->mask();
doc::algorithm::fill_selection(image, m_offset, mask, m_bgcolor);
}
示例3: onUndo
void ReselectMask::onUndo()
{
Doc* doc = document();
m_oldMask.reset(doc->isMaskVisible() ? new Mask(*doc->mask()): nullptr);
doc->setMaskVisible(false);
doc->notifySelectionChanged();
}
示例4: WithCel
ClearMask::ClearMask(Cel* cel)
: WithCel(cel)
{
Doc* doc = static_cast<Doc*>(cel->document());
// If the mask is empty or is not visible then we have to clear the
// entire image in the cel.
if (!doc->isMaskVisible()) {
m_seq.add(new cmd::ClearCel(cel));
return;
}
Image* image = cel->image();
assert(image);
if (!image)
return;
Mask* mask = doc->mask();
m_offset = mask->bounds().origin() - cel->position();
gfx::Rect bounds =
image->bounds().createIntersection(
gfx::Rect(
m_offset.x, m_offset.y,
mask->bounds().w, mask->bounds().h));
if (bounds.isEmpty())
return;
m_dstImage.reset(new WithImage(image));
m_bgcolor = doc->bgColor(cel->layer());
m_boundsX = bounds.x;
m_boundsY = bounds.y;
m_copy.reset(crop_image(image,
bounds.x, bounds.y, bounds.w, bounds.h, m_bgcolor));
}