20#ifndef LIBREPCB_CORE_NETSEGMENTSIMPLIFIER_H
21#define LIBREPCB_CORE_NETSEGMENTSIMPLIFIER_H
26#include "../types/point.h"
113 const
Layer* end) noexcept;
165 const
Layer* layer) noexcept;
167 const
Point& p2) noexcept;
The Junction class represents the connection point between netlines or traces.
Definition junction.h:47
The Layer class provides all supported geometry layers.
Definition layer.h:42
The Length class is used to represent a length (for example 12.75 millimeters)
Definition length.h:82
Algorithm to clean/simplify net segment lines.
Definition netsegmentsimplifier.h:55
bool mergeNextLines() noexcept
Definition netsegmentsimplifier.cpp:321
const Anchor * findAnchor(const Point &pos, const Layer *layer) noexcept
Definition netsegmentsimplifier.cpp:395
QSet< int > mPinsOrPads
Definition netsegmentsimplifier.h:176
QSet< int > getConnectedFixedAnchors() const noexcept
Definition netsegmentsimplifier.cpp:142
QHash< Point, QVector< Anchor > > mAnchorMap
Definition netsegmentsimplifier.h:175
bool mModified
Definition netsegmentsimplifier.h:177
void splitLinesAtAnchors() noexcept
Definition netsegmentsimplifier.cpp:211
Result simplify() noexcept
Perform the simplification.
Definition netsegmentsimplifier.cpp:68
void removeRedundantLines() noexcept
Definition netsegmentsimplifier.cpp:302
static bool isAnchorOnLayer(const Anchor &anchor, const Layer *layer) noexcept
Definition netsegmentsimplifier.cpp:405
NetSegmentSimplifier() noexcept
Default constructor.
Definition netsegmentsimplifier.cpp:39
QMap< int, Line > mLines
Definition netsegmentsimplifier.h:171
int mNextFreeLineId
Definition netsegmentsimplifier.h:172
int addAnchor(AnchorType type, const Point &pos, const Layer *start, const Layer *end) noexcept
Add a line anchor.
Definition netsegmentsimplifier.cpp:50
void removeDuplicateJunctions() noexcept
Definition netsegmentsimplifier.cpp:275
static bool isStraightLine(const Point &p0, const Point &p1, const Point &p2) noexcept
Definition netsegmentsimplifier.cpp:412
int addLine(int p1, int p2, const Layer *layer, const Length &width) noexcept
Add a line between two anchors.
Definition netsegmentsimplifier.cpp:58
QList< Anchor > mAnchors
Definition netsegmentsimplifier.h:170
void addJunctionsAtLineIntersections() noexcept
Definition netsegmentsimplifier.cpp:151
AnchorType
Definition netsegmentsimplifier.h:60
The Point class is used to represent a point/coordinate/vector, for example (1.2mm; 5....
Definition point.h:78
The Via class represents a via of a board.
Definition via.h:55
Definition occmodel.cpp:77
Definition netsegmentsimplifier.h:147
Point pos
Definition netsegmentsimplifier.h:150
Definition netsegmentsimplifier.h:66
int p2
Definition netsegmentsimplifier.h:69
bool modified
Definition netsegmentsimplifier.h:72
int p1
Definition netsegmentsimplifier.h:68
Length width
Definition netsegmentsimplifier.h:71
const Layer * layer
Definition netsegmentsimplifier.h:70
Definition netsegmentsimplifier.h:74
QList< Line > lines
Definition netsegmentsimplifier.h:75
QMap< int, Point > newJunctions
Definition netsegmentsimplifier.h:76
bool modified
Definition netsegmentsimplifier.h:78
QSet< int > disconnectedFixedAnchors
Definition netsegmentsimplifier.h:77