Polylines with PointType points. More...
#include <ogdf/basic/geometry.h>
Public Member Functions | |
GenericPolyline () | |
Creates an empty polyline. More... | |
GenericPolyline (const GenericPolyline< PointType > &pl) | |
Copy constructor. More... | |
GenericPolyline (const List< PointType > &pl) | |
Creates a polyline using the list of points pl . More... | |
double | length () const |
Returns the Euclidean length of the polyline. More... | |
void | normalize (double minAngle=Math::pi) |
Deletes all redundant points on the polyline that lie on a (nearly) straight line given by their adjacent points. More... | |
void | normalize (PointType src, PointType tgt, double minAngle=Math::pi) |
Deletes all redundant points on the polyline that lie on a (nearly) straight line given by their adjacent points. More... | |
GenericPolyline< PointType > & | operator= (const GenericPolyline &pl) |
Assignment operator. More... | |
DPoint | position (const double fraction, double len=-1.0) const |
Returns a point on the polyline which is fraction * len away from the start point. More... | |
void | unify () |
Deletes all successive points with equal coordinates. More... | |
Public Member Functions inherited from ogdf::List< PointType > | |
List () | |
Constructs an empty doubly linked list. More... | |
List (const List< PointType > &L) | |
Constructs a doubly linked list that is a copy of L . More... | |
List (List< PointType > &&L) noexcept | |
Constructs a doubly linked list containing the elements of L (move semantics). More... | |
List (std::initializer_list< PointType > init) | |
Constructs a doubly linked list containing the elements in init . More... | |
int | size () const |
Returns the number of elements in the list. More... | |
const ListPure< PointType > & | getListPure () const |
Conversion to const ListPure. More... | |
List< PointType > & | operator= (const List< PointType > &L) |
Assignment operator. More... | |
List< PointType > & | operator= (List< PointType > &&L) |
Assignment operator (move semantics). More... | |
bool | operator== (const List< PointType > &L) const |
Equality operator. More... | |
bool | operator!= (const List< PointType > &L) const |
Inequality operator. More... | |
iterator | pushFront (const PointType &x) |
Adds element x at the beginning of the list. More... | |
iterator | emplaceFront (Args &&... args) |
Adds a new element at the beginning of the list. More... | |
iterator | pushBack (const PointType &x) |
Adds element x at the end of the list. More... | |
iterator | emplaceBack (Args &&... args) |
Adds a new element at the end of the list. More... | |
iterator | insert (const PointType &x, iterator it, Direction dir=Direction::after) |
Inserts element x before or after it . More... | |
iterator | insertBefore (const PointType &x, iterator it) |
Inserts element x before it . More... | |
iterator | insertAfter (const PointType &x, iterator it) |
Inserts element x after it . More... | |
void | popFront () |
Removes the first element from the list. More... | |
PointType | popFrontRet () |
Removes the first element from the list and returns it. More... | |
void | popBack () |
Removes the last element from the list. More... | |
PointType | popBackRet () |
Removes the last element from the list and returns it. More... | |
void | del (iterator it) |
Removes it from the list. More... | |
bool | removeFirst (const PointType &x) |
Removes the first occurrence of x (if any) from the list. More... | |
void | clear () |
Removes all elements from the list. More... | |
void | moveToFront (iterator it, List< PointType > &L2) |
Moves it to the begin of the list. More... | |
void | moveToBack (iterator it, List< PointType > &L2) |
Moves it to the end of the list. More... | |
void | moveToSucc (iterator it, List< PointType > &L2, iterator itBefore) |
Moves it after itBefore . More... | |
void | moveToPrec (iterator it, List< PointType > &L2, iterator itAfter) |
Moves it before itAfter . More... | |
void | conc (List< PointType > &L2) |
Appends L2 to this list and makes L2 empty. More... | |
void | concFront (List< PointType > &L2) |
Prepends L2 to this list and makes L2 empty. More... | |
void | swap (List< PointType > &other) |
Exchanges the contents of this list and other in constant time. More... | |
void | split (iterator it, List< PointType > &L1, List< PointType > &L2, Direction dir=Direction::before) |
Splits the list at element it into lists L1 and L2 . More... | |
Protected Member Functions | |
void | normalizeUnified (double minAngle) |
Deletes all redundant points on the polyline that lie on a (nearly) straight line given by their adjacent points. More... | |
Polylines with PointType points.
This class represents polylines by a list of PointType points. Such polylines are, e.g., used in layouts for representing bend point lists. Note that in this case, only the bend points are in the list and neither the start nor the end point.
Definition at line 254 of file geometry.h.
|
inline |
Creates an empty polyline.
Definition at line 257 of file geometry.h.
|
inline |
Creates a polyline using the list of points pl
.
Definition at line 260 of file geometry.h.
|
inline |
Copy constructor.
Definition at line 263 of file geometry.h.
|
inline |
Returns the Euclidean length of the polyline.
Definition at line 272 of file geometry.h.
|
inline |
Deletes all redundant points on the polyline that lie on a (nearly) straight line given by their adjacent points.
How straight the line has to be depends on minAngle
. If this parameter is omitted, only points on completely straight lines are removed.
In each iteration look at three points of the polyline, the middle one being a candidate for deletion. If it is deleted, advance in the polyline by one point. If it is not deleted, go back in the polyline by one point (the deletion might have lead to a greater angle between the points before and behind the deleted one). Repeat this process until the end of the polyline is reached.
minAngle | in [0..Pi] is a lower bound for the smaller angle between two line segments such that the Point between them is still removed. |
Definition at line 421 of file geometry.h.
|
inline |
Deletes all redundant points on the polyline that lie on a (nearly) straight line given by their adjacent points.
How straight the line has to be depends on minAngle
. If this parameter is omitted, only points on completely straight lines are removed.
In each iteration look at three points of the polyline, the middle one being a candidate for deletion. If it is deleted, advance in the polyline by one point. If it is not deleted, go back in the polyline by one point (the deletion might have lead to a greater angle between the points before and behind the deleted one). Repeat this process until the end of the polyline is reached.
minAngle | in [0..Pi] is a lower bound for the smaller angle between two line segments such that the Point between them is still removed. |
src | is used as a point that comes before all points in this polyline. |
tgt | is used as a point that comes after all points in this polyline. |
Definition at line 431 of file geometry.h.
|
inlineprotected |
Deletes all redundant points on the polyline that lie on a (nearly) straight line given by their adjacent points.
How straight the line has to be depends on minAngle
. If this parameter is omitted, only points on completely straight lines are removed.
In each iteration look at three points of the polyline, the middle one being a candidate for deletion. If it is deleted, advance in the polyline by one point. If it is not deleted, go back in the polyline by one point (the deletion might have lead to a greater angle between the points before and behind the deleted one). Repeat this process until the end of the polyline is reached.
minAngle | in [0..Pi] is a lower bound for the smaller angle between two line segments such that the Point between them is still removed. |
Definition at line 371 of file geometry.h.
|
inline |
Assignment operator.
Definition at line 266 of file geometry.h.
|
inline |
Returns a point on the polyline which is fraction
* len
away from the start point.
fraction | defines the fraction of len to be considered. |
len | is the given length, or the length of the polyline if len < 0. |
Definition at line 297 of file geometry.h.
|
inline |
Deletes all successive points with equal coordinates.
Definition at line 350 of file geometry.h.