LibreOffice Module vcl (master)
1
|
#include <region.hxx>
Static Public Member Functions | |
static vcl::Region | GetRegionFromPolyPolygon (const tools::PolyPolygon &rPolyPoly) |
Private Member Functions | |
SAL_DLLPRIVATE void | ImplCreatePolyPolyRegion (const tools::PolyPolygon &rPolyPoly) |
SAL_DLLPRIVATE void | ImplCreatePolyPolyRegion (const basegfx::B2DPolyPolygon &rPolyPoly) |
SAL_DLLPRIVATE tools::PolyPolygon | ImplCreatePolyPolygonFromRegionBand () const |
SAL_DLLPRIVATE basegfx::B2DPolyPolygon | ImplCreateB2DPolyPolygonFromRegionBand () const |
Private Attributes | |
std::optional< basegfx::B2DPolyPolygon > | mpB2DPolyPolygon |
std::optional< tools::PolyPolygon > | mpPolyPolygon |
std::shared_ptr< RegionBand > | mpRegionBand |
bool | mbIsNull: 1 |
Friends | |
class | ::OutputDevice |
class | ::vcl::Window |
class | ::Bitmap |
VCL_DLLPUBLIC SvStream & | ReadRegion (SvStream &rIStm, vcl::Region &rRegion) |
VCL_DLLPUBLIC SvStream & | WriteRegion (SvStream &rOStm, const vcl::Region &rRegion) |
Definition at line 40 of file region.hxx.
|
explicit |
Definition at line 311 of file region.cxx.
|
explicit |
Definition at line 316 of file region.cxx.
References false, tools::Rectangle::IsEmpty(), and mpRegionBand.
|
explicit |
Definition at line 322 of file region.cxx.
References false, tools::Polygon::GetSize(), and ImplCreatePolyPolyRegion().
|
explicit |
Definition at line 332 of file region.cxx.
References tools::PolyPolygon::Count(), false, and ImplCreatePolyPolyRegion().
|
explicit |
Definition at line 342 of file region.cxx.
References basegfx::B2DPolyPolygon::count(), false, and ImplCreatePolyPolyRegion().
|
default |
|
noexcept |
Definition at line 354 of file region.cxx.
|
default |
bool vcl::Region::Contains | ( | const Point & | rPoint | ) | const |
Definition at line 1343 of file region.cxx.
References RegionBand::Contains().
void vcl::Region::Exclude | ( | const tools::Rectangle & | rRegion | ) |
Definition at line 679 of file region.cxx.
References vcl::unotools::b2DRectangleFromRectangle(), tools::Rectangle::Bottom(), basegfx::B2DPolyPolygon::count(), basegfx::utils::createPolygonFromRect(), tools::Rectangle::IsEmpty(), tools::Rectangle::Left(), basegfx::utils::prepareForPolygonOperation(), tools::Rectangle::Right(), basegfx::utils::solvePolygonOperationDiff(), and tools::Rectangle::Top().
Referenced by ImplStdBorderWindowView::DrawWindow(), vcl::Window::ImplCalcOverlapRegion(), vcl::Window::ImplExcludeWindowRegion(), vcl::Window::ImplPosSizeWindow(), vcl::Window::ImplScroll(), and ImplBorderWindow::InvalidateBorder().
void vcl::Region::Exclude | ( | const vcl::Region & | rRegion | ) |
Definition at line 1049 of file region.cxx.
References basegfx::B2DPolyPolygon::count(), GetAsB2DPolyPolygon(), getRegionBand(), HasPolyPolygonOrB2DPolyPolygon(), IsEmpty(), IsNull(), basegfx::utils::prepareForPolygonOperation(), and basegfx::utils::solvePolygonOperationDiff().
basegfx::B2DPolyPolygon vcl::Region::GetAsB2DPolyPolygon | ( | ) | const |
Definition at line 1296 of file region.cxx.
Referenced by clipMetafileContentAgainstOwnRegions(), Exclude(), SvmWriter::GetChecksum(), Intersect(), SalGraphics::mirror(), operator==(), Union(), and XOr().
tools::PolyPolygon vcl::Region::GetAsPolyPolygon | ( | ) | const |
Definition at line 1268 of file region.cxx.
Referenced by operator==(), GDIMetaFile::Rotate(), vcl::WriteRegion(), and MetafileXmlDump::writeXml().
const RegionBand * vcl::Region::GetAsRegionBand | ( | ) | const |
Definition at line 1324 of file region.cxx.
References vcl::ImplCreateRegionBandFromPolyPolygon().
|
inline |
Definition at line 76 of file region.hxx.
Referenced by Intersect(), OutputDevice::LogicToPixel(), vcl::operator<<(), operator==(), OutputDevice::PixelToLogic(), and vcl::WriteRegion().
tools::Rectangle vcl::Region::GetBoundRect | ( | ) | const |
Definition at line 1221 of file region.cxx.
References basegfx::fround(), Range2D< double, DoubleTraits >::getMaxX(), Range2D< double, DoubleTraits >::getMaxY(), Range2D< double, DoubleTraits >::getMinX(), Range2D< double, DoubleTraits >::getMinY(), basegfx::utils::getRange(), and Range2D< double, DoubleTraits >::isEmpty().
Referenced by GDIMetaFile::GetBoundRect(), ToolBox::ImplDrawConstantBackground(), Edit::ImplPaintBorder(), vcl::Window::Invalidate(), ScrollBar::PreNotify(), vcl::Window::PushPaintHelper(), vcl::Window::Show(), and MetafileXmlDump::writeXml().
|
inline |
Definition at line 77 of file region.hxx.
Referenced by Intersect(), OutputDevice::LogicToPixel(), vcl::operator<<(), operator==(), OutputDevice::PixelToLogic(), and vcl::WriteRegion().
|
inline |
Definition at line 78 of file region.hxx.
Referenced by Exclude(), Intersect(), OutputDevice::LogicToPixel(), vcl::operator<<(), operator==(), OutputDevice::PixelToLogic(), Union(), vcl::WriteRegion(), and XOr().
|
static |
Definition at line 1741 of file region.cxx.
References tools::PolyPolygon::Count(), i, vcl::ImplPolygonRectTest(), and XOr().
void vcl::Region::GetRegionRectangles | ( | RectangleVector & | rTarget | ) | const |
Definition at line 1673 of file region.cxx.
References RegionBand::GetRegionRectangles().
Referenced by Printer::DrawDeviceMask(), Printer::ImplPrintTransparent(), vcl::Window::ImplSysObjClip(), OutputDevice::LogicToPixel(), SalGraphics::mirror(), vcl::operator<<(), OutputDevice::PixelToLogic(), and OutputDevice::ReMirror().
|
inline |
Definition at line 107 of file region.hxx.
Referenced by Exclude(), SvmWriter::GetChecksum(), Intersect(), SalGraphics::mirror(), GDIMetaFile::Rotate(), Union(), vcl::WriteRegion(), MetafileXmlDump::writeXml(), and XOr().
|
private |
Definition at line 304 of file region.cxx.
References tools::PolyPolygon::getB2DPolyPolygon().
|
private |
Definition at line 282 of file region.cxx.
References tools::PolyPolygon::Insert(), and rectangle().
|
private |
Definition at line 365 of file region.cxx.
References tools::PolyPolygon::Count(), tools::PolyPolygon::GetBoundRect(), and tools::PolyPolygon::IsRect().
Referenced by Region().
|
private |
Definition at line 391 of file region.cxx.
References basegfx::B2DPolyPolygon::count(), basegfx::B2DPolyPolygon::getB2DRange(), and Range2D< double, DoubleTraits >::isEmpty().
void vcl::Region::Intersect | ( | const tools::Rectangle & | rRegion | ) |
Definition at line 582 of file region.cxx.
References tools::Rectangle::Bottom(), tools::PolyPolygon::Clip(), basegfx::utils::clipPolyPolygonOnRange(), tools::PolyPolygon::Count(), tools::Rectangle::IsEmpty(), tools::Rectangle::Left(), tools::Rectangle::Right(), and tools::Rectangle::Top().
Referenced by GDIMetaFile::Clip(), OutputDevice::ClipToDeviceBounds(), PaintHelper::DoPaint(), OutputDevice::DrawText(), vcl::Window::ExpandPaintClipRegion(), vcl::WindowOutputDevice::GetActiveClipRegion(), vcl::WindowOutputDevice::GetOutputBoundsClipRegion(), vcl::Window::ImplCalcOverlapRegion(), vcl::Window::ImplClipBoundaries(), SVMConverter::ImplConvertFromSVM1(), ToolBox::ImplDrawBackground(), vcl::Window::ImplExcludeWindowRegion(), vcl::Window::ImplIntersectWindowClipRegion(), vcl::Window::ImplIntersectWindowRegion(), vcl::Window::ImplInvalidate(), vcl::Window::ImplMoveInvalidateRegion(), vcl::Window::ImplPaintToDevice(), vcl::Window::ImplPosSizeWindow(), Edit::ImplRepaint(), vcl::Window::ImplScroll(), vcl::Window::ImplSysObjClip(), vcl::WindowOutputDevice::InitClipRegion(), Intersect(), OutputDevice::IntersectClipRegion(), lcl_canPaint(), Overlaps(), and vcl::WindowOutputDevice::SaveBackground().
void vcl::Region::Intersect | ( | const vcl::Region & | rRegion | ) |
Definition at line 927 of file region.cxx.
References basegfx::utils::clipPolyPolygonOnPolyPolygon(), basegfx::B2DPolyPolygon::count(), GetAsB2DPolyPolygon(), getB2DPolyPolygon(), getPolyPolygon(), RegionBand::getRectangleCount(), getRegionBand(), HasPolyPolygonOrB2DPolyPolygon(), Intersect(), IsEmpty(), utl::ConfigManager::IsFuzzing(), and IsNull().
bool vcl::Region::IsEmpty | ( | ) | const |
Definition at line 229 of file region.cxx.
Referenced by clipMetafileContentAgainstOwnRegions(), PaintHelper::DoPaint(), Exclude(), vcl::Window::ExpandPaintClipRegion(), vcl::Window::ImplCalcToTop(), vcl::Window::ImplClipBoundaries(), vcl::Window::ImplInvalidate(), vcl::Window::ImplInvalidateOverlapFrameRegion(), vcl::Window::ImplMoveAllInvalidateRegions(), vcl::Window::ImplPosSizeWindow(), Edit::ImplRepaint(), vcl::Window::ImplScroll(), vcl::Window::ImplSysObjClip(), vcl::Window::ImplValidate(), vcl::WindowOutputDevice::InitClipRegion(), OutputDevice::InitClipRegion(), Intersect(), vcl::Window::Invalidate(), OutputDevice::LogicToPixel(), vcl::operator<<(), operator==(), Overlaps(), OutputDevice::PixelToLogic(), vcl::PDFWriterImpl::playMetafile(), TabControl::PreNotify(), vcl::WindowOutputDevice::SaveBackground(), vcl::Window::SetWindowRegionPixel(), vcl::Window::Show(), Union(), vcl::WriteRegion(), and XOr().
|
inline |
Definition at line 99 of file region.hxx.
Referenced by ImplAnimView::draw(), OutputDevice::DrawText(), ImplAnimView::drawToPos(), Exclude(), Edit::ImplPaintBorder(), Intersect(), OutputDevice::IntersectClipRegion(), vcl::Window::Invalidate(), OutputDevice::LogicToPixel(), operator==(), OutputDevice::PixelToLogic(), OutputDevice::SetClipRegion(), vcl::Window::SetWindowRegionPixel(), Union(), vcl::WriteRegion(), and XOr().
bool vcl::Region::IsRectangle | ( | ) | const |
Definition at line 1398 of file region.cxx.
References basegfx::utils::isRectangle().
void vcl::Region::Move | ( | tools::Long | nHorzMove, |
tools::Long | nVertMove | ||
) |
Definition at line 400 of file region.cxx.
References basegfx::B2DPolyPolygon::count(), tools::PolyPolygon::Count(), basegfx::utils::createTranslateB2DHomMatrix(), tools::PolyPolygon::Move(), RegionBand::Move(), and basegfx::B2DPolyPolygon::transform().
Referenced by vcl::WindowOutputDevice::GetActiveClipRegion(), vcl::Window::GetPaintRegion(), vcl::Window::GetWindowClipRegionPixel(), vcl::Window::ImplMoveAllInvalidateRegions(), vcl::Window::ImplMoveInvalidateRegion(), Edit::ImplPaintBorder(), OutputDevice::ImplPixelToDevicePixel(), vcl::Window::ImplScroll(), vcl::Window::ImplSysObjClip(), Slider::ImplUpdateRects(), MetaClipRegionAction::Move(), MetaISectRegionClipRegionAction::Move(), OutputDevice::MoveClipRegion(), and vcl::WindowOutputDevice::SaveBackground().
|
inline |
Definition at line 118 of file region.hxx.
References operator==().
|
default |
|
noexcept |
Definition at line 1435 of file region.cxx.
Region & vcl::Region::operator= | ( | const tools::Rectangle & | rRect | ) |
Definition at line 1446 of file region.cxx.
References tools::Rectangle::IsEmpty().
bool vcl::Region::operator== | ( | const vcl::Region & | rRegion | ) | const |
Definition at line 1456 of file region.cxx.
References GetAsB2DPolyPolygon(), GetAsPolyPolygon(), getB2DPolyPolygon(), getPolyPolygon(), getRegionBand(), IsEmpty(), and IsNull().
Referenced by operator!=().
bool vcl::Region::Overlaps | ( | const tools::Rectangle & | rRect | ) | const |
Definition at line 1374 of file region.cxx.
References Intersect(), and IsEmpty().
Referenced by OutputDevice::DrawText().
void vcl::Region::Scale | ( | double | fScaleX, |
double | fScaleY | ||
) |
Definition at line 453 of file region.cxx.
References basegfx::B2DPolyPolygon::count(), tools::PolyPolygon::Count(), basegfx::utils::createScaleB2DHomMatrix(), basegfx::fTools::equalZero(), tools::PolyPolygon::Scale(), RegionBand::Scale(), and basegfx::B2DPolyPolygon::transform().
Referenced by MetaClipRegionAction::Scale(), and MetaISectRegionClipRegionAction::Scale().
void vcl::Region::SetEmpty | ( | ) |
Definition at line 1424 of file region.cxx.
Referenced by vcl::Window::ImplMoveAllInvalidateRegions(), SalGraphics::mirror(), and vcl::ReadRegion().
void vcl::Region::SetNull | ( | ) |
Definition at line 1415 of file region.cxx.
Referenced by vcl::Window::GetWindowClipRegionPixel(), and vcl::ReadRegion().
void vcl::Region::Union | ( | const tools::Rectangle & | rRegion | ) |
Definition at line 506 of file region.cxx.
References vcl::unotools::b2DRectangleFromRectangle(), tools::Rectangle::Bottom(), basegfx::B2DPolyPolygon::count(), basegfx::utils::createPolygonFromRect(), tools::Rectangle::IsEmpty(), tools::Rectangle::Left(), basegfx::utils::prepareForPolygonOperation(), tools::Rectangle::Right(), basegfx::utils::solvePolygonOperationOr(), and tools::Rectangle::Top().
Referenced by Bitmap::CreateRegion(), PaintHelper::DoPaint(), vcl::Window::ImplCalcOverlapRegion(), vcl::Window::ImplIntersectAndUnionOverlapWindows(), vcl::Window::ImplIntersectAndUnionOverlapWindows2(), vcl::Window::ImplMoveAllInvalidateRegions(), Edit::ImplRepaint(), vcl::Window::ImplScroll(), Slider::ImplUpdateRects(), OutputDevice::LogicToPixel(), SalGraphics::mirror(), OutputDevice::PixelToLogic(), ScrollBar::PreNotify(), TabControl::PreNotify(), OutputDevice::ReMirror(), and BubbleWindow::Resize().
void vcl::Region::Union | ( | const vcl::Region & | rRegion | ) |
Definition at line 841 of file region.cxx.
References basegfx::B2DPolyPolygon::count(), GetAsB2DPolyPolygon(), getRegionBand(), HasPolyPolygonOrB2DPolyPolygon(), IsEmpty(), IsNull(), basegfx::utils::prepareForPolygonOperation(), and basegfx::utils::solvePolygonOperationOr().
void vcl::Region::XOr | ( | const tools::Rectangle & | rRegion | ) |
Definition at line 758 of file region.cxx.
References vcl::unotools::b2DRectangleFromRectangle(), tools::Rectangle::Bottom(), basegfx::B2DPolyPolygon::count(), basegfx::utils::createPolygonFromRect(), tools::Rectangle::IsEmpty(), tools::Rectangle::Left(), basegfx::utils::prepareForPolygonOperation(), tools::Rectangle::Right(), basegfx::utils::solvePolygonOperationXor(), and tools::Rectangle::Top().
Referenced by GetRegionFromPolyPolygon().
bool vcl::Region::XOr | ( | const vcl::Region & | rRegion | ) |
Definition at line 1132 of file region.cxx.
References basegfx::B2DPolyPolygon::count(), GetAsB2DPolyPolygon(), getRegionBand(), HasPolyPolygonOrB2DPolyPolygon(), IsEmpty(), IsNull(), basegfx::utils::prepareForPolygonOperation(), and basegfx::utils::solvePolygonOperationXor().
|
friend |
Definition at line 45 of file region.hxx.
|
friend |
Definition at line 43 of file region.hxx.
|
friend |
Definition at line 44 of file region.hxx.
|
friend |
Definition at line 1530 of file region.cxx.
|
friend |
Definition at line 1601 of file region.cxx.
|
private |
Definition at line 55 of file region.hxx.
|
private |
Definition at line 49 of file region.hxx.
|
private |
Definition at line 51 of file region.hxx.
Referenced by vcl::ReadRegion().
|
private |
Definition at line 53 of file region.hxx.
Referenced by vcl::ReadRegion(), and Region().