LibreOffice Module basegfx (master) 1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
basegfx::B2DPolyPolygon Class Reference

#include <b2dpolypolygon.hxx>

Collaboration diagram for basegfx::B2DPolyPolygon:
[legend]

Public Member Functions

 B2DPolyPolygon ()
 
 B2DPolyPolygon (const B2DPolyPolygon &rPolyPolygon)
 
 B2DPolyPolygon (B2DPolyPolygon &&rPolyPolygon)
 
 B2DPolyPolygon (const B2DPolygon &rPolygon)
 
 ~B2DPolyPolygon ()
 
B2DPolyPolygonoperator= (const B2DPolyPolygon &rPolyPolygon)
 
B2DPolyPolygonoperator= (B2DPolyPolygon &&rPolyPolygon)
 
void makeUnique ()
 unshare this poly-polygon (and all included polygons) with all internally shared instances More...
 
bool operator== (const B2DPolyPolygon &rPolyPolygon) const
 
bool operator!= (const B2DPolyPolygon &rPolyPolygon) const
 
sal_uInt32 count () const
 
B2DPolygon const & getB2DPolygon (sal_uInt32 nIndex) const
 
void setB2DPolygon (sal_uInt32 nIndex, const B2DPolygon &rPolygon)
 
bool areControlPointsUsed () const
 
void insert (sal_uInt32 nIndex, const B2DPolygon &rPolygon, sal_uInt32 nCount=1)
 
void append (const B2DPolygon &rPolygon, sal_uInt32 nCount=1)
 
void reserve (sal_uInt32 nCount)
 
B2DPolyPolygon getDefaultAdaptiveSubdivision () const
 Default adaptive subdivision access. More...
 
B2DRange getB2DRange () const
 Get the B2DRange (Rectangle dimensions) of this B2DPolyPolygon. More...
 
void insert (sal_uInt32 nIndex, const B2DPolyPolygon &rPolyPolygon)
 
void append (const B2DPolyPolygon &rPolyPolygon)
 
void remove (sal_uInt32 nIndex, sal_uInt32 nCount=1)
 
void clear ()
 
bool isClosed () const
 
void setClosed (bool bNew)
 
void flip ()
 
bool hasDoublePoints () const
 
void removeDoublePoints ()
 
void transform (const basegfx::B2DHomMatrix &rMatrix)
 
const B2DPolygonbegin () const
 
const B2DPolygonend () const
 
B2DPolygonbegin ()
 
B2DPolygonend ()
 
template<class T >
std::shared_ptr< T > getSystemDependentData () const
 
template<class T , class... Args>
std::shared_ptr< T > addOrReplaceSystemDependentData (Args &&... args) const
 

Private Member Functions

void addOrReplaceSystemDependentDataInternal (SystemDependentData_SharedPtr &rData) const
 
SystemDependentData_SharedPtr getSystemDependantDataInternal (size_t hash_code) const
 

Private Attributes

o3tl::cow_wrapper< ImplB2DPolyPolygon, o3tl::ThreadSafeRefCountingPolicympPolyPolygon
 

Detailed Description

Definition at line 36 of file b2dpolypolygon.hxx.

Constructor & Destructor Documentation

◆ B2DPolyPolygon() [1/4]

basegfx::B2DPolyPolygon::B2DPolyPolygon ( )
default

◆ B2DPolyPolygon() [2/4]

basegfx::B2DPolyPolygon::B2DPolyPolygon ( const B2DPolyPolygon rPolyPolygon)
default

◆ B2DPolyPolygon() [3/4]

basegfx::B2DPolyPolygon::B2DPolyPolygon ( B2DPolyPolygon &&  rPolyPolygon)
default

◆ B2DPolyPolygon() [4/4]

basegfx::B2DPolyPolygon::B2DPolyPolygon ( const B2DPolygon rPolygon)
explicit

Definition at line 220 of file b2dpolypolygon.cxx.

◆ ~B2DPolyPolygon()

basegfx::B2DPolyPolygon::~B2DPolyPolygon ( )
default

Member Function Documentation

◆ addOrReplaceSystemDependentData()

template<class T , class... Args>
std::shared_ptr< T > basegfx::B2DPolyPolygon::addOrReplaceSystemDependentData ( Args &&...  args) const
inline

Definition at line 131 of file b2dpolypolygon.hxx.

References args.

◆ addOrReplaceSystemDependentDataInternal()

void basegfx::B2DPolyPolygon::addOrReplaceSystemDependentDataInternal ( SystemDependentData_SharedPtr rData) const
private

Definition at line 420 of file b2dpolypolygon.cxx.

References mpPolyPolygon.

◆ append() [1/2]

void basegfx::B2DPolyPolygon::append ( const B2DPolygon rPolygon,
sal_uInt32  nCount = 1 
)

Definition at line 284 of file b2dpolypolygon.cxx.

References mpPolyPolygon, and nCount.

Referenced by basegfx::utils::adaptiveSubdivideByAngle(), basegfx::utils::adaptiveSubdivideByDistance(), basegfx::utils::addPointsAtCutsAndTouches(), basegfx::utils::ImplB2DClipState::addPolyPolygon(), basegfx::unotools::UnoPolyPolygon::addPolyPolygon(), basegfx::utils::applyLineDashing(), basegfx::utils::clipPolygonOnParallelAxis(), basegfx::utils::clipPolyPolygonOnParallelAxis(), basegfx::utils::clipPolyPolygonOnPolyPolygon(), basegfx::utils::clipPolyPolygonOnRange(), basegfx::utils::createAreaGeometry(), basegfx::utils::createAreaGeometryForLineStartEnd(), basegfx::utils::createB2DPolyPolygonFromB3DPolyPolygon(), basegfx::utils::createNonzeroConform(), basegfx::utils::createSevenSegmentPolyPolygon(), basegfx::utils::distort(), basegfx::utils::expandToCurve(), basegfx::unotools::UnoPolyPolygon::getSubsetPolyPolygon(), basegfx::utils::growInNormalDirection(), basegfx::utils::importFromSvgD(), basegfx::utils::interpolate(), basegfx::utils::ImplB2DClipState::makeNull(), basegfx::utils::mergeToSinglePolyPolygon(), basegfx::utils::number2PolyPolygon(), basegfx::unotools::polyPolygonFromBezier2DSequenceSequence(), basegfx::unotools::polyPolygonFromPoint2DSequenceSequence(), basegfx::utils::reSegmentPolyPolygon(), basegfx::utils::simplifyCurveSegments(), basegfx::utils::snapPointsOfHorizontalOrVerticalEdges(), basegfx::utils::solvePolygonOperationAnd(), basegfx::utils::solvePolygonOperationDiff(), basegfx::utils::solvePolygonOperationOr(), basegfx::utils::solvePolygonOperationXor(), basegfx::utils::stripDispensablePolygons(), basegfx::utils::stripNeutralPolygons(), basegfx::utils::UnoPointSequenceSequenceToB2DPolyPolygon(), and basegfx::utils::UnoPolyPolygonBezierCoordsToB2DPolyPolygon().

◆ append() [2/2]

void basegfx::B2DPolyPolygon::append ( const B2DPolyPolygon rPolyPolygon)

Definition at line 331 of file b2dpolypolygon.cxx.

References count(), and mpPolyPolygon.

◆ areControlPointsUsed()

bool basegfx::B2DPolyPolygon::areControlPointsUsed ( ) const

◆ begin() [1/2]

B2DPolygon * basegfx::B2DPolyPolygon::begin ( )

Definition at line 410 of file b2dpolypolygon.cxx.

References mpPolyPolygon.

◆ begin() [2/2]

const B2DPolygon * basegfx::B2DPolyPolygon::begin ( ) const

Definition at line 400 of file b2dpolypolygon.cxx.

References mpPolyPolygon.

Referenced by basegfx::ImplB2DPolyPolygon::insert(), and basegfx::utils::isInside().

◆ clear()

void basegfx::B2DPolyPolygon::clear ( )

◆ count()

sal_uInt32 basegfx::B2DPolyPolygon::count ( ) const

Definition at line 249 of file b2dpolypolygon.cxx.

References mpPolyPolygon.

Referenced by basegfx::utils::addPointsAtCuts(), basegfx::utils::addPointsAtCutsAndTouches(), append(), basegfx::utils::applyLineDashing(), areControlPointsUsed(), basegfx::utils::B2DPolyPolygonToUnoPointSequenceSequence(), basegfx::utils::B2DPolyPolygonToUnoPolyPolygonBezierCoords(), basegfx::utils::clipPolygonOnParallelAxis(), basegfx::utils::clipPolygonOnPolyPolygon(), basegfx::utils::clipPolygonOnRange(), basegfx::utils::clipPolyPolygonOnParallelAxis(), basegfx::utils::clipPolyPolygonOnPolyPolygon(), basegfx::utils::clipPolyPolygonOnRange(), basegfx::utils::ImplB2DClipState::commitPendingPolygons(), basegfx::utils::ImplB2DClipState::commitPendingRanges(), basegfx::utils::correctOrientations(), basegfx::utils::correctOutmostPolygon(), basegfx::utils::createAreaGeometryForLineStartEnd(), basegfx::utils::createNonzeroConform(), basegfx::utils::exportToSvgD(), flip(), getB2DRange(), getDefaultAdaptiveSubdivision(), basegfx::unotools::UnoPolyPolygon::getNumberOfPolygons(), basegfx::utils::getSmallestDistancePointToPolyPolygon(), basegfx::unotools::UnoPolyPolygon::getSubsetPolyPolygon(), hasDoublePoints(), basegfx::utils::importFromSvgD(), insert(), basegfx::utils::interpolate(), basegfx::utils::ImplB2DClipState::isCleared(), isClosed(), basegfx::utils::isInside(), basegfx::utils::ImplB2DClipState::isNull(), basegfx::utils::ImplB2DClipState::isNullClipPoly(), basegfx::utils::isRectangle(), basegfx::utils::solveCrossovers(), basegfx::utils::solvePolygonOperationAnd(), basegfx::utils::solvePolygonOperationDiff(), basegfx::utils::solvePolygonOperationOr(), basegfx::utils::solvePolygonOperationXor(), basegfx::utils::stripDispensablePolygons(), transform(), and basegfx::triangulator::triangulate().

◆ end() [1/2]

B2DPolygon * basegfx::B2DPolyPolygon::end ( )

Definition at line 415 of file b2dpolypolygon.cxx.

References mpPolyPolygon.

◆ end() [2/2]

const B2DPolygon * basegfx::B2DPolyPolygon::end ( ) const

Definition at line 405 of file b2dpolypolygon.cxx.

References mpPolyPolygon.

Referenced by basegfx::ImplB2DPolyPolygon::insert(), and basegfx::utils::isInside().

◆ flip()

void basegfx::B2DPolyPolygon::flip ( )

◆ getB2DPolygon()

B2DPolygon const & basegfx::B2DPolyPolygon::getB2DPolygon ( sal_uInt32  nIndex) const

◆ getB2DRange()

B2DRange basegfx::B2DPolyPolygon::getB2DRange ( ) const

◆ getDefaultAdaptiveSubdivision()

B2DPolyPolygon basegfx::B2DPolyPolygon::getDefaultAdaptiveSubdivision ( ) const

Default adaptive subdivision access.

For details refer to B2DPolygon::getDefaultAdaptiveSubdivision()

Returns
The default subdivision of this polygon

Definition at line 296 of file b2dpolypolygon.cxx.

References a, basegfx::ImplB2DPolyPolygon::append(), count(), getB2DPolygon(), basegfx::B2DPolygon::getDefaultAdaptiveSubdivision(), mpPolyPolygon, and basegfx::ImplB2DPolyPolygon::reserve().

◆ getSystemDependantDataInternal()

SystemDependentData_SharedPtr basegfx::B2DPolyPolygon::getSystemDependantDataInternal ( size_t  hash_code) const
private

Definition at line 425 of file b2dpolypolygon.cxx.

References mpPolyPolygon.

◆ getSystemDependentData()

template<class T >
std::shared_ptr< T > basegfx::B2DPolyPolygon::getSystemDependentData ( ) const
inline

Definition at line 125 of file b2dpolypolygon.hxx.

◆ hasDoublePoints()

bool basegfx::B2DPolyPolygon::hasDoublePoints ( ) const

Definition at line 375 of file b2dpolypolygon.cxx.

References a, count(), getB2DPolygon(), and basegfx::B2DPolygon::hasDoublePoints().

Referenced by removeDoublePoints().

◆ insert() [1/2]

void basegfx::B2DPolyPolygon::insert ( sal_uInt32  nIndex,
const B2DPolygon rPolygon,
sal_uInt32  nCount = 1 
)

◆ insert() [2/2]

void basegfx::B2DPolyPolygon::insert ( sal_uInt32  nIndex,
const B2DPolyPolygon rPolyPolygon 
)

Definition at line 325 of file b2dpolypolygon.cxx.

References count(), mpPolyPolygon, and nIndex.

◆ isClosed()

bool basegfx::B2DPolyPolygon::isClosed ( ) const

Definition at line 348 of file b2dpolypolygon.cxx.

References a, count(), getB2DPolygon(), and basegfx::B2DPolygon::isClosed().

Referenced by setClosed().

◆ makeUnique()

void basegfx::B2DPolyPolygon::makeUnique ( )

unshare this poly-polygon (and all included polygons) with all internally shared instances

Definition at line 231 of file b2dpolypolygon.cxx.

References mpPolyPolygon.

◆ operator!=()

bool basegfx::B2DPolyPolygon::operator!= ( const B2DPolyPolygon rPolyPolygon) const

Definition at line 244 of file b2dpolypolygon.cxx.

◆ operator=() [1/2]

B2DPolyPolygon & basegfx::B2DPolyPolygon::operator= ( B2DPolyPolygon &&  rPolyPolygon)
default

◆ operator=() [2/2]

B2DPolyPolygon & basegfx::B2DPolyPolygon::operator= ( const B2DPolyPolygon rPolyPolygon)
default

◆ operator==()

bool basegfx::B2DPolyPolygon::operator== ( const B2DPolyPolygon rPolyPolygon) const

Definition at line 236 of file b2dpolypolygon.cxx.

References mpPolyPolygon.

◆ remove()

void basegfx::B2DPolyPolygon::remove ( sal_uInt32  nIndex,
sal_uInt32  nCount = 1 
)

◆ removeDoublePoints()

void basegfx::B2DPolyPolygon::removeDoublePoints ( )

Definition at line 386 of file b2dpolypolygon.cxx.

References hasDoublePoints(), and mpPolyPolygon.

◆ reserve()

void basegfx::B2DPolyPolygon::reserve ( sal_uInt32  nCount)

◆ setB2DPolygon()

void basegfx::B2DPolyPolygon::setB2DPolygon ( sal_uInt32  nIndex,
const B2DPolygon rPolygon 
)

◆ setClosed()

void basegfx::B2DPolyPolygon::setClosed ( bool  bNew)

◆ transform()

void basegfx::B2DPolyPolygon::transform ( const basegfx::B2DHomMatrix rMatrix)

Member Data Documentation

◆ mpPolyPolygon

o3tl::cow_wrapper<ImplB2DPolyPolygon, o3tl::ThreadSafeRefCountingPolicy> basegfx::B2DPolyPolygon::mpPolyPolygon
private

The documentation for this class was generated from the following files: