20 #ifndef LIBREPCB_CORE_BOARDDESIGNRULECHECKMESSAGES_H 21 #define LIBREPCB_CORE_BOARDDESIGNRULECHECKMESSAGES_H 26 #include "../../../rulecheck/rulecheckmessage.h" 27 #include "../../../types/length.h" 38 class BI_FootprintPad;
41 class BI_NetLineAnchor;
50 class ComponentInstance;
95 const QVector<Path>& locations);
156 const QVector<Path>& locations) noexcept;
178 const UnsignedLength& minRadius,
const QVector<Path>& locations) noexcept;
218 const QVector<Path>& locations) noexcept;
239 const QVector<Path>& locations) noexcept;
261 const QVector<Path>& locations) noexcept;
264 const QVector<Path>& locations) noexcept;
267 const QVector<Path>& locations) noexcept;
270 const QVector<Path>& locations) noexcept;
273 const QVector<Path>& locations) noexcept;
276 const QVector<Path>& locations) noexcept;
299 const QVector<const Layer*>& layers,
const Length& minClearance,
300 const QVector<Path>& locations);
307 static QString getLayerName(
const QVector<const Layer*>& layers);
329 const QVector<Path>& locations) noexcept;
332 const QVector<Path>& locations) noexcept;
335 const QVector<Path>& locations) noexcept;
338 const QVector<Path>& locations) noexcept;
341 const QVector<Path>& locations) noexcept;
345 const QVector<Path>& locations) noexcept;
349 const QVector<Path>& locations) noexcept;
352 const QVector<Path>& locations) noexcept;
359 static QString getPolygonMessage(
const UnsignedLength& minClearance) noexcept;
360 static QString getPolygonDescription() noexcept;
378 const QVector<Path>& locations) noexcept;
381 const QVector<Path>& locations) noexcept;
408 const QVector<Path>& locations) noexcept;
412 const QVector<Path>& locations) noexcept;
416 const QVector<Path>& locations) noexcept;
420 const QVector<Path>& locations) noexcept;
424 const QVector<Path>& locations) noexcept;
428 const QVector<Path>& locations) noexcept;
434 void addZoneApprovalNodes(
const BI_Zone* boardZone,
436 const Zone* deviceZone) noexcept;
456 const QVector<Path>& locations);
482 const QVector<Path>& locations) noexcept;
486 const QVector<Path>& locations) noexcept;
489 const QVector<Path>& locations) noexcept;
492 const QVector<Path>& locations) noexcept;
517 const QVector<Path>& locations) noexcept;
537 const QVector<Path>& locations) noexcept;
559 const QVector<Path>& locations) noexcept;
565 void addZoneApprovalNodes(
const BI_Zone* boardZone,
567 const Zone* deviceZone) noexcept;
586 const Zone* deviceZone,
588 const QVector<Path>& locations) noexcept;
592 const QVector<Path>& locations) noexcept;
596 const QVector<Path>& locations) noexcept;
601 const QVector<Path>& locations) noexcept;
606 const QVector<Path>& locations) noexcept;
612 void addZoneApprovalNodes(
const BI_Zone* boardZone,
614 const Zone* deviceZone) noexcept;
633 const QVector<Path>& locations) noexcept;
636 const QVector<Path>& locations) noexcept;
658 const QVector<Path>& locations) noexcept;
661 const QVector<Path>& locations) noexcept;
664 const QVector<Path>& locations) noexcept;
668 const QVector<Path>& locations) noexcept;
675 static QString determineMessage(
const PositiveLength& actualDiameter,
677 static QString determineDescription(
bool isVia,
bool isPad) noexcept;
695 const QVector<Path>& locations) noexcept;
698 const QVector<Path>& locations) noexcept;
702 const QVector<Path>& locations) noexcept;
709 static QString determineMessage(
const PositiveLength& actualWidth,
711 static QString determineDescription(
bool isPad) noexcept;
728 const QVector<Path>& locations) noexcept;
748 const QVector<Path>& locations) noexcept;
750 const QVector<Path>& locations) noexcept;
752 const QVector<Path>& locations) noexcept;
758 static QString determineMessage(
const NonEmptyPath& path) noexcept;
759 static QString determineDescription(
const NonEmptyPath& path) noexcept;
776 const QVector<Path>& locations) noexcept;
782 static QString determineMessage(
const BI_Via& via) noexcept;
783 static QString determineDescription(
const BI_Via& via) noexcept;
801 const QVector<Path>& locations) noexcept;
822 const QVector<Path>& locations) noexcept;
virtual ~DrcMsgCopperHoleClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:385
The BI_NetLine class.
Definition: bi_netline.h:71
virtual ~DrcMsgCopperCopperClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:304
DrcMsgExposureInKeepoutZone(const DrcMsgExposureInKeepoutZone &other) noexcept
Definition: boarddesignrulecheckmessages.h:607
The DrcMsgUnconnectedJunction class.
Definition: boarddesignrulecheckmessages.h:211
The DrcMsgEmptyNetSegment class.
Definition: boarddesignrulecheckmessages.h:192
DrcMsgInvalidPadConnection(const DrcMsgInvalidPadConnection &other) noexcept
Definition: boarddesignrulecheckmessages.h:729
DrcMsgMinimumBoardOutlineInnerRadiusViolation(const DrcMsgMinimumBoardOutlineInnerRadiusViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:179
virtual ~DrcMsgDrillDrillClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:460
virtual ~DrcMsgSilkscreenClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:805
DrcMsgMinimumDrillDiameterViolation(const DrcMsgMinimumDrillDiameterViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:669
The DrcMsgCopperBoardClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:321
DrcMsgDeviceInCourtyard(const DrcMsgDeviceInCourtyard &other) noexcept
Definition: boarddesignrulecheckmessages.h:518
DrcMsgMinimumTextHeightViolation(const DrcMsgMinimumTextHeightViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:240
DrcMsgMissingDevice()=delete
DrcMsgOpenBoardOutlinePolygon(const DrcMsgOpenBoardOutlinePolygon &other) noexcept
Definition: boarddesignrulecheckmessages.h:157
virtual ~DrcMsgForbiddenVia() noexcept
Definition: boarddesignrulecheckmessages.h:779
The DrcMsgDeviceInKeepoutZone class.
Definition: boarddesignrulecheckmessages.h:550
virtual ~DrcMsgDrillBoardClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:496
DrcMsgMinimumWidthViolation(const DrcMsgMinimumWidthViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:277
RuleCheckMessage()=delete
Definition: occmodel.cpp:76
The BI_Device class.
Definition: bi_device.h:57
virtual ~DrcMsgMissingDevice() noexcept
Definition: boarddesignrulecheckmessages.h:76
The BI_Hole class.
Definition: bi_hole.h:46
The Hole class.
Definition: hole.h:45
The DrcMsgInvalidPadConnection class.
Definition: boarddesignrulecheckmessages.h:721
The Layer class provides all supported geometry layers.
Definition: layer.h:40
DrcMsgMissingDevice(const DrcMsgMissingDevice &other) noexcept
Definition: boarddesignrulecheckmessages.h:74
virtual ~DrcMsgUselessVia() noexcept
Definition: boarddesignrulecheckmessages.h:844
DrcMsgMissingConnection(const DrcMsgMissingConnection &other) noexcept
Definition: boarddesignrulecheckmessages.h:96
The DrcMsgMinimumSlotWidthViolation class.
Definition: boarddesignrulecheckmessages.h:687
virtual ~DrcMsgMissingConnection() noexcept
Definition: boarddesignrulecheckmessages.h:98
type_safe::constrained_type< Path, NonEmptyPathConstraint, NonEmptyPathVerifier > NonEmptyPath
Definition: path.h:219
virtual ~DrcMsgOpenBoardOutlinePolygon() noexcept
Definition: boarddesignrulecheckmessages.h:160
The DrcMsgOpenBoardOutlinePolygon class.
Definition: boarddesignrulecheckmessages.h:149
DrcMsgMissingBoardOutline(const DrcMsgMissingBoardOutline &other) noexcept
Definition: boarddesignrulecheckmessages.h:119
virtual ~DrcMsgInvalidPadConnection() noexcept
Definition: boarddesignrulecheckmessages.h:731
DrcMsgUselessZone(const DrcMsgUselessZone &other) noexcept
Definition: boarddesignrulecheckmessages.h:823
virtual ~DrcMsgOverlappingDevices() noexcept
Definition: boarddesignrulecheckmessages.h:540
The DrcMsgMinimumBoardOutlineInnerRadiusViolation class.
Definition: boarddesignrulecheckmessages.h:170
The PadHole class.
Definition: padhole.h:44
The DrcMsgMissingDevice class.
Definition: boarddesignrulecheckmessages.h:67
Definition: bi_netline.h:46
virtual ~DrcMsgEmptyNetSegment() noexcept
Definition: boarddesignrulecheckmessages.h:201
DrcMsgCopperBoardClearanceViolation(const DrcMsgCopperBoardClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:353
virtual ~DrcMsgDeviceInCourtyard() noexcept
Definition: boarddesignrulecheckmessages.h:520
DrcMsgEmptyNetSegment(const DrcMsgEmptyNetSegment &other) noexcept
Definition: boarddesignrulecheckmessages.h:199
The DrcMsgMinimumAnnularRingViolation class.
Definition: boarddesignrulecheckmessages.h:625
The DrcMsgCopperInKeepoutZone class.
Definition: boarddesignrulecheckmessages.h:399
virtual ~DrcMsgCopperInKeepoutZone() noexcept
Definition: boarddesignrulecheckmessages.h:431
virtual ~DrcMsgExposureInKeepoutZone() noexcept
Definition: boarddesignrulecheckmessages.h:609
DrcMsgDrillBoardClearanceViolation(const DrcMsgDrillBoardClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:493
virtual ~DrcMsgMinimumWidthViolation() noexcept
Definition: boarddesignrulecheckmessages.h:279
virtual ~DrcMsgForbiddenSlot() noexcept
Definition: boarddesignrulecheckmessages.h:755
DrcMsgForbiddenVia(const DrcMsgForbiddenVia &other) noexcept
Definition: boarddesignrulecheckmessages.h:777
The DrcMsgUselessVia class.
Definition: boarddesignrulecheckmessages.h:835
The Board Item Base (BI_Base) class.
Definition: bi_base.h:45
DrcMsgOverlappingDevices(const DrcMsgOverlappingDevices &other) noexcept
Definition: boarddesignrulecheckmessages.h:538
const QString & getDescription() const noexcept
Definition: rulecheckmessage.h:64
The DrcMsgMinimumWidthViolation class.
Definition: boarddesignrulecheckmessages.h:253
The DrcMsgMinimumDrillDiameterViolation class.
Definition: boarddesignrulecheckmessages.h:650
The BI_NetSegment class.
Definition: bi_netsegment.h:52
The DrcMsgExposureInKeepoutZone class.
Definition: boarddesignrulecheckmessages.h:578
virtual ~DrcMsgUnconnectedJunction() noexcept
Definition: boarddesignrulecheckmessages.h:221
DrcMsgCopperInKeepoutZone(const DrcMsgCopperInKeepoutZone &other) noexcept
Definition: boarddesignrulecheckmessages.h:429
The BI_StrokeText class.
Definition: bi_stroketext.h:49
virtual ~DrcMsgMinimumDrillDiameterViolation() noexcept
Definition: boarddesignrulecheckmessages.h:672
The Circle class.
Definition: circle.h:46
The BI_Plane class.
Definition: bi_plane.h:52
The BI_NetPoint class.
Definition: bi_netpoint.h:46
DrcMsgCopperHoleClearanceViolation(const DrcMsgCopperHoleClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:382
DrcMsgMultipleBoardOutlines(const DrcMsgMultipleBoardOutlines &other) noexcept
Definition: boarddesignrulecheckmessages.h:137
virtual ~DrcMsgMissingBoardOutline() noexcept
Definition: boarddesignrulecheckmessages.h:121
The DrcMsgMinimumTextHeightViolation class.
Definition: boarddesignrulecheckmessages.h:231
const QString & getMessage() const noexcept
Definition: rulecheckmessage.h:63
The DrcMsgCopperCopperClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:289
The NetSignal class.
Definition: netsignal.h:50
The DrcMsgOverlappingDevices class.
Definition: boarddesignrulecheckmessages.h:530
virtual ~DrcMsgCopperBoardClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:356
The DrcMsgMissingConnection class.
Definition: boarddesignrulecheckmessages.h:86
The Zone class.
Definition: zone.h:43
virtual ~DrcMsgMultipleBoardOutlines() noexcept
Definition: boarddesignrulecheckmessages.h:139
The ComponentInstance class.
Definition: componentinstance.h:54
DrcMsgUselessVia(const DrcMsgUselessVia &other) noexcept
Definition: boarddesignrulecheckmessages.h:842
The DrcMsgDeviceInCourtyard class.
Definition: boarddesignrulecheckmessages.h:510
type_safe::constrained_type< Length, PositiveLengthConstraint, PositiveLengthVerifier > PositiveLength
Definition: length.h:785
The BI_Polygon class.
Definition: bi_polygon.h:46
The DrcMsgSilkscreenClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:793
The RuleCheckMessage class.
Definition: rulecheckmessage.h:45
The DrcMsgMultipleBoardOutlines class.
Definition: boarddesignrulecheckmessages.h:131
The DrcMsgMissingBoardOutline class.
Definition: boarddesignrulecheckmessages.h:113
The DrcMsgUselessZone class.
Definition: boarddesignrulecheckmessages.h:815
DrcMsgCopperCopperClearanceViolation(const DrcMsgCopperCopperClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:301
The DrcMsgCopperHoleClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:370
virtual ~DrcMsgMinimumTextHeightViolation() noexcept
Definition: boarddesignrulecheckmessages.h:243
DrcMsgSilkscreenClearanceViolation(const DrcMsgSilkscreenClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:802
The DrcMsgDrillDrillClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:447
The BI_Zone class.
Definition: bi_zone.h:46
virtual ~DrcMsgMinimumSlotWidthViolation() noexcept
Definition: boarddesignrulecheckmessages.h:706
virtual ~DrcMsgMinimumAnnularRingViolation() noexcept
Definition: boarddesignrulecheckmessages.h:640
The Uuid class is a replacement for QUuid to get UUID strings without {} braces.
Definition: uuid.h:56
The Length class is used to represent a length (for example 12.75 millimeters)
Definition: length.h:82
The DrcMsgForbiddenVia class.
Definition: boarddesignrulecheckmessages.h:769
The Polygon class.
Definition: polygon.h:45
virtual ~DrcMsgDeviceInKeepoutZone() noexcept
Definition: boarddesignrulecheckmessages.h:562
The DrcMsgDrillBoardClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:474
DrcMsgMinimumAnnularRingViolation(const DrcMsgMinimumAnnularRingViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:637
virtual ~DrcMsgMinimumBoardOutlineInnerRadiusViolation() noexcept
Definition: boarddesignrulecheckmessages.h:182
DrcMsgDeviceInKeepoutZone(const DrcMsgDeviceInKeepoutZone &other) noexcept
Definition: boarddesignrulecheckmessages.h:560
DrcMsgMinimumSlotWidthViolation(const DrcMsgMinimumSlotWidthViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:703
The DrcMsgForbiddenSlot class.
Definition: boarddesignrulecheckmessages.h:741
The SExpression class.
Definition: sexpression.h:66
DrcMsgDrillDrillClearanceViolation(const DrcMsgDrillDrillClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:457
DrcMsgUnconnectedJunction(const DrcMsgUnconnectedJunction &other) noexcept
Definition: boarddesignrulecheckmessages.h:219
The BI_Via class.
Definition: bi_via.h:44
virtual ~DrcMsgUselessZone() noexcept
Definition: boarddesignrulecheckmessages.h:825
type_safe::constrained_type< Length, UnsignedLengthConstraint, UnsignedLengthVerifier > UnsignedLength
Definition: length.h:670
DrcMsgForbiddenSlot(const DrcMsgForbiddenSlot &other) noexcept
Definition: boarddesignrulecheckmessages.h:753