20 #ifndef INCLUDED_VCL_REGION_HXX
21 #define INCLUDED_VCL_REGION_HXX
43 friend class ::OutputDevice;
44 friend class ::vcl::Window;
45 friend class ::Bitmap;
48 std::optional< basegfx::B2DPolyPolygon >
50 std::optional< tools::PolyPolygon >
52 std::shared_ptr< RegionBand >
66 explicit Region(
bool bIsNull =
false);
76 const
std::optional<
basegfx::B2DPolyPolygon>& getB2DPolyPolygon()
const {
return mpB2DPolyPolygon; }
77 const std::optional<tools::PolyPolygon>&
getPolyPolygon()
const {
return mpPolyPolygon; }
88 void Scale(
double fScaleX,
double fScaleY );
99 bool IsNull()
const {
return mbIsNull;}
104 bool IsRectangle()
const;
110 bool Contains(
const Point& rPoint )
const;
117 bool operator==( const
vcl::
Region& rRegion ) const;
135 template<
typename charT,
typename traits >
137 std::basic_ostream<charT, traits> & stream,
const Region& rRegion)
140 return stream <<
"EMPTY";
142 return stream <<
"B2DPolyPolygon("
146 return stream <<
"PolyPolygon("
151 stream <<
"RegionBand(";
156 for (
size_t i = 0;
i < rects.size(); ++
i)
157 stream <<
"[" <<
i <<
"] " << rects[
i];
165 #endif // INCLUDED_VCL_REGION_HXX
std::basic_ostream< charT, traits > & operator<<(std::basic_ostream< charT, traits > &stream, const Region &rRegion)
const RegionBand * getRegionBand() const
std::vector< tools::Rectangle > RectangleVector
std::shared_ptr< RegionBand > mpRegionBand
std::optional< tools::PolyPolygon > mpPolyPolygon
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
SvStream & ReadRegion(SvStream &rIStrm, vcl::Region &rRegion)
std::optional< basegfx::B2DPolyPolygon > mpB2DPolyPolygon
const std::optional< basegfx::B2DPolyPolygon > & getB2DPolyPolygon() const
bool operator==(const vcl::Region &rRegion) const
void GetRegionRectangles(RectangleVector &rTarget) const
bool HasPolyPolygonOrB2DPolyPolygon() const
const std::optional< tools::PolyPolygon > & getPolyPolygon() const
SvStream & WriteRegion(SvStream &rOStrm, const vcl::Region &rRegion)