LibreOffice Module basegfx (master) 1
Namespaces | Functions
b2drangeclipper.cxx File Reference
#include <osl/diagnose.h>
#include <basegfx/range/b2drange.hxx>
#include <basegfx/range/b2drangeclipper.hxx>
#include <basegfx/polygon/b2dpolypolygon.hxx>
#include <basegfx/range/b2drectangle.hxx>
#include <o3tl/vector_pool.hxx>
#include <algorithm>
#include <cassert>
#include <list>
#include <iterator>
Include dependency graph for b2drangeclipper.cxx:

Go to the source code of this file.

Namespaces

namespace  basegfx
 
namespace  basegfx::utils
 

Functions

B2DPolyPolygon basegfx::utils::solveCrossovers (const std::vector< B2DRange > &rRanges, const std::vector< B2VectorOrientation > &rOrientations)
 Extract poly-polygon w/o self-intersections from poly-range. More...
 

Variable Documentation

◆ maPoints

std::vector<B2DPoint> maPoints
private

Container for the actual polygon points.

Definition at line 505 of file b2drangeclipper.cxx.

◆ mbIsFinished

bool mbIsFinished
private

When true, this polygon is 'done', i.e. nothing must be added anymore.

Definition at line 508 of file b2drangeclipper.cxx.

◆ meEdgeDirection

EdgeDirection meEdgeDirection
private

'left' or 'right'

'up' or 'down'

Definition at line 121 of file b2drangeclipper.cxx.

◆ meEdgeType

EdgeType meEdgeType
private

'upper' or 'lower' edge of original rectangle.

Definition at line 205 of file b2drangeclipper.cxx.

◆ mfInvariantCoord

double mfInvariantCoord
private

The invariant coordinate value of this edge (e.g.

the common y value, for a horizontal edge)

Definition at line 96 of file b2drangeclipper.cxx.

◆ mfPos

double mfPos
private

position of the event, in the direction of the line sweep

Definition at line 191 of file b2drangeclipper.cxx.

◆ mnIdx

std::ptrdiff_t mnIdx
private

current index into vector pool

Definition at line 502 of file b2drangeclipper.cxx.

◆ mnPolygonIdx

std::ptrdiff_t mnPolygonIdx
private

Index of the polygon this edge is currently involved with.

Note that this can change for some kinds of edge intersection, as the algorithm tends to swap associated polygons there.

-1 denotes no assigned polygon

Definition at line 118 of file b2drangeclipper.cxx.

◆ mpAssociatedRect

const B2DRectangle* mpAssociatedRect
private

Associated rectangle.

Rectangle this event is generated for.

This on the one hand saves some storage space (the vector of rectangles is persistent, anyway), and on the other hand provides an identifier to match active edges and x events (see below)

Ptr because class needs to be assignable

This on the one hand saves some storage space (the vector of rectangles is persistent, anyway), and on the other hand provides an identifier to match active edges and events (see below)

Ptr because class needs to be assignable

Definition at line 107 of file b2drangeclipper.cxx.

◆ mpLeadingRightEdge

ActiveEdge* mpLeadingRightEdge
private

Refers to the current leading edge element of this polygon, or NULL.

The leading edge denotes the 'front' of the polygon vertex sequence, i.e. the coordinates at the polygon's leading edge are returned from maPoints.front()

Definition at line 499 of file b2drangeclipper.cxx.