LibreOffice Module vcl (master) 1
|
#include <regband.hxx>
Public Member Functions | |
ImplRegionBand (tools::Long nYTop, tools::Long nYBottom) | |
ImplRegionBand (const ImplRegionBand &theSourceBand, const bool bIgnorePoints=true) | |
copy y-band with all data More... | |
~ImplRegionBand () | |
tools::Long | GetXLeftBoundary () const |
tools::Long | GetXRightBoundary () const |
void | OptimizeBand () |
void | ProcessPoints () |
bool | InsertPoint (tools::Long nX, tools::Long nLineID, bool bEndPoint, LineType eLineType) |
void | Union (tools::Long nXLeft, tools::Long nXRight) |
void | Intersect (tools::Long nXLeft, tools::Long nXRight) |
void | Exclude (tools::Long nXLeft, tools::Long nXRight) |
void | XOr (tools::Long nXLeft, tools::Long nXRight) |
void | MoveX (tools::Long nHorzMove) |
void | ScaleX (double fHorzScale) |
bool | Contains (tools::Long nX) |
bool | IsEmpty () const |
bool | operator== (const ImplRegionBand &rRegionBand) const |
ImplRegionBand * | SplitBand (const sal_Int32 nY) |
Split the called band at the given vertical coordinate. More... | |
Public Attributes | |
ImplRegionBand * | mpNextBand |
ImplRegionBand * | mpPrevBand |
ImplRegionBandSep * | mpFirstSep |
ImplRegionBandPoint * | mpFirstBandPoint |
tools::Long | mnYTop |
tools::Long | mnYBottom |
bool | mbTouched: 1 |
Definition at line 57 of file regband.hxx.
ImplRegionBand::ImplRegionBand | ( | tools::Long | nYTop, |
tools::Long | nYBottom | ||
) |
Definition at line 40 of file regband.cxx.
References mbTouched, mnYBottom, mnYTop, mpFirstBandPoint, mpFirstSep, mpNextBand, and mpPrevBand.
Referenced by SplitBand().
ImplRegionBand::ImplRegionBand | ( | const ImplRegionBand & | theSourceBand, |
const bool | bIgnorePoints = true |
||
) |
copy y-band with all data
theSourceBand | The new ImplRegionBand object will be a copy of this band. |
bIgnorePoints | When true (the default) the band points pointed to by mpFirstBandPoint are not copied. When false they are copied. You need the points when you are planning to call ProcessPoints() later on. |
Definition at line 54 of file regband.cxx.
References ImplRegionBandPoint::mbEndPoint, ImplRegionBandSep::mbRemoved, mbTouched, ImplRegionBandPoint::meLineType, ImplRegionBandPoint::mnLineId, ImplRegionBandPoint::mnX, ImplRegionBandSep::mnXLeft, ImplRegionBandSep::mnXRight, mnYBottom, mnYTop, mpFirstBandPoint, mpFirstSep, mpNextBand, ImplRegionBandPoint::mpNextBandPoint, ImplRegionBandSep::mpNextSep, and mpPrevBand.
ImplRegionBand::~ImplRegionBand | ( | ) |
Definition at line 115 of file regband.cxx.
References mpFirstBandPoint, mpFirstSep, ImplRegionBandPoint::mpNextBandPoint, ImplRegionBandSep::mpNextSep, and SAL_WARN_IF.
bool ImplRegionBand::Contains | ( | tools::Long | nX | ) |
Definition at line 802 of file regband.cxx.
References ImplRegionBandSep::mnXLeft, ImplRegionBandSep::mnXRight, mpFirstSep, and ImplRegionBandSep::mpNextSep.
Referenced by RegionBand::Contains().
void ImplRegionBand::Exclude | ( | tools::Long | nXLeft, |
tools::Long | nXRight | ||
) |
Definition at line 481 of file regband.cxx.
References ImplRegionBandSep::mbRemoved, mbTouched, ImplRegionBandSep::mnXLeft, ImplRegionBandSep::mnXRight, mpFirstSep, ImplRegionBandSep::mpNextSep, OptimizeBand(), and SAL_WARN_IF.
Referenced by RegionBand::Exclude().
tools::Long ImplRegionBand::GetXLeftBoundary | ( | ) | const |
Definition at line 816 of file regband.cxx.
References ImplRegionBandSep::mnXLeft, mpFirstSep, and SAL_WARN_IF.
Referenced by RegionBand::GetBoundRect().
tools::Long ImplRegionBand::GetXRightBoundary | ( | ) | const |
Definition at line 823 of file regband.cxx.
References ImplRegionBandSep::mnXRight, mpFirstSep, ImplRegionBandSep::mpNextSep, and SAL_WARN_IF.
Referenced by RegionBand::GetBoundRect().
bool ImplRegionBand::InsertPoint | ( | tools::Long | nX, |
tools::Long | nLineID, | ||
bool | bEndPoint, | ||
LineType | eLineType | ||
) |
Definition at line 192 of file regband.cxx.
References ImplRegionBandPoint::mbEndPoint, ImplRegionBandPoint::meLineType, ImplRegionBandPoint::mnLineId, ImplRegionBandPoint::mnX, mpFirstBandPoint, and ImplRegionBandPoint::mpNextBandPoint.
Referenced by RegionBand::InsertPoint().
void ImplRegionBand::Intersect | ( | tools::Long | nXLeft, |
tools::Long | nXRight | ||
) |
Definition at line 436 of file regband.cxx.
References ImplRegionBandSep::mbRemoved, mbTouched, ImplRegionBandSep::mnXLeft, ImplRegionBandSep::mnXRight, mpFirstSep, ImplRegionBandSep::mpNextSep, OptimizeBand(), and SAL_WARN_IF.
Referenced by RegionBand::Intersect().
|
inline |
Definition at line 111 of file regband.hxx.
References mpFirstBandPoint, and mpFirstSep.
Referenced by RegionBand::OptimizeBandList().
void ImplRegionBand::MoveX | ( | tools::Long | nHorzMove | ) |
Definition at line 300 of file regband.cxx.
References ImplRegionBandSep::mnXLeft, ImplRegionBandSep::mnXRight, mpFirstSep, and ImplRegionBandSep::mpNextSep.
Referenced by RegionBand::Move().
bool ImplRegionBand::operator== | ( | const ImplRegionBand & | rRegionBand | ) | const |
Definition at line 835 of file regband.cxx.
References ImplRegionBandSep::mnXLeft, ImplRegionBandSep::mnXRight, mpFirstSep, and ImplRegionBandSep::mpNextSep.
void ImplRegionBand::OptimizeBand | ( | ) |
Definition at line 325 of file regband.cxx.
References ImplRegionBandSep::mbRemoved, ImplRegionBandSep::mnXLeft, ImplRegionBandSep::mnXRight, mpFirstSep, and ImplRegionBandSep::mpNextSep.
Referenced by Exclude(), Intersect(), Union(), and XOr().
void ImplRegionBand::ProcessPoints | ( | ) |
Definition at line 141 of file regband.cxx.
References ImplRegionBandPoint::mbEndPoint, ImplRegionBandPoint::meLineType, ImplRegionBandPoint::mnX, mpFirstBandPoint, ImplRegionBandPoint::mpNextBandPoint, and Union().
Referenced by RegionBand::processPoints().
void ImplRegionBand::ScaleX | ( | double | fHorzScale | ) |
Definition at line 312 of file regband.cxx.
References FRound(), ImplRegionBandSep::mnXLeft, ImplRegionBandSep::mnXRight, mpFirstSep, and ImplRegionBandSep::mpNextSep.
Referenced by RegionBand::Scale().
ImplRegionBand * ImplRegionBand::SplitBand | ( | const sal_Int32 | nY | ) |
Split the called band at the given vertical coordinate.
After the split the called band will cover the upper part not including nY. The new band will cover the lower part including nY.
nY | The band is split at this y coordinate. The new, lower band will include this very value. |
Definition at line 863 of file regband.cxx.
References ImplRegionBand(), mnYBottom, mnYTop, mpNextBand, and mpPrevBand.
void ImplRegionBand::Union | ( | tools::Long | nXLeft, |
tools::Long | nXRight | ||
) |
Definition at line 364 of file regband.cxx.
References ImplRegionBandSep::mbRemoved, ImplRegionBandSep::mnXLeft, ImplRegionBandSep::mnXRight, mpFirstSep, ImplRegionBandSep::mpNextSep, OptimizeBand(), and SAL_WARN_IF.
Referenced by RegionBand::load(), ProcessPoints(), RegionBand::RegionBand(), and RegionBand::Union().
void ImplRegionBand::XOr | ( | tools::Long | nXLeft, |
tools::Long | nXRight | ||
) |
Definition at line 559 of file regband.cxx.
References ImplRegionBandSep::mbRemoved, ImplRegionBandSep::mnXLeft, ImplRegionBandSep::mnXRight, mpFirstSep, ImplRegionBandSep::mpNextSep, OptimizeBand(), and SAL_WARN_IF.
Referenced by RegionBand::XOr().
bool ImplRegionBand::mbTouched |
Definition at line 67 of file regband.hxx.
Referenced by Exclude(), ImplRegionBand(), RegionBand::Intersect(), and Intersect().
tools::Long ImplRegionBand::mnYBottom |
Definition at line 65 of file regband.hxx.
Referenced by RegionBand::Contains(), RegionBand::Exclude(), RegionBand::GetBoundRect(), RegionBand::GetRegionRectangles(), RegionBand::ImplAddMissingBands(), ImplRegionBand(), RegionBand::InsertBands(), RegionBand::InsertSingleBand(), RegionBand::Intersect(), RegionBand::Move(), RegionBand::operator==(), RegionBand::OptimizeBandList(), RegionBand::save(), RegionBand::Scale(), SplitBand(), RegionBand::Union(), and RegionBand::XOr().
tools::Long ImplRegionBand::mnYTop |
Definition at line 64 of file regband.hxx.
Referenced by RegionBand::Contains(), RegionBand::Exclude(), RegionBand::GetBoundRect(), RegionBand::GetRegionRectangles(), RegionBand::ImplAddMissingBands(), ImplRegionBand(), RegionBand::InsertBands(), RegionBand::InsertPoint(), RegionBand::InsertSingleBand(), RegionBand::Intersect(), RegionBand::Move(), RegionBand::operator==(), RegionBand::OptimizeBandList(), RegionBand::save(), RegionBand::Scale(), SplitBand(), RegionBand::Union(), and RegionBand::XOr().
ImplRegionBandPoint* ImplRegionBand::mpFirstBandPoint |
Definition at line 63 of file regband.hxx.
Referenced by ImplRegionBand(), InsertPoint(), IsEmpty(), ProcessPoints(), and ~ImplRegionBand().
ImplRegionBandSep* ImplRegionBand::mpFirstSep |
Definition at line 62 of file regband.hxx.
Referenced by RegionBand::CheckConsistency(), Contains(), RegionBand::Exclude(), Exclude(), RegionBand::getRectangleCount(), RegionBand::GetRegionRectangles(), GetXLeftBoundary(), GetXRightBoundary(), ImplRegionBand(), RegionBand::Intersect(), Intersect(), IsEmpty(), RegionBand::isSingleRectangle(), MoveX(), operator==(), RegionBand::operator==(), OptimizeBand(), RegionBand::OptimizeBandList(), RegionBand::save(), ScaleX(), RegionBand::Union(), Union(), RegionBand::XOr(), XOr(), and ~ImplRegionBand().
ImplRegionBand* ImplRegionBand::mpNextBand |
Definition at line 60 of file regband.hxx.
Referenced by RegionBand::CheckConsistency(), RegionBand::Contains(), RegionBand::CreateBandRange(), RegionBand::Exclude(), RegionBand::GetBoundRect(), RegionBand::getRectangleCount(), RegionBand::GetRegionRectangles(), RegionBand::ImplAddMissingBands(), ImplRegionBand(), RegionBand::implReset(), RegionBand::InsertBand(), RegionBand::InsertBands(), RegionBand::InsertPoint(), RegionBand::InsertSingleBand(), RegionBand::Intersect(), RegionBand::isSingleRectangle(), RegionBand::load(), RegionBand::Move(), RegionBand::operator=(), RegionBand::operator==(), RegionBand::OptimizeBandList(), RegionBand::processPoints(), RegionBand::save(), RegionBand::Scale(), SplitBand(), RegionBand::Union(), and RegionBand::XOr().
ImplRegionBand* ImplRegionBand::mpPrevBand |
Definition at line 61 of file regband.hxx.
Referenced by RegionBand::CreateBandRange(), ImplRegionBand(), RegionBand::InsertBand(), RegionBand::InsertPoint(), and SplitBand().