20#ifndef LIBREPCB_CORE_BOARDDESIGNRULECHECKMESSAGES_H
21#define LIBREPCB_CORE_BOARDDESIGNRULECHECKMESSAGES_H
26#include "../../../rulecheck/rulecheckmessage.h"
27#include "../../../types/length.h"
41class BI_NetLineAnchor;
50class 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;
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;
The Board Item Base (BI_Base) class.
Definition: bi_base.h:45
The BI_Device class.
Definition: bi_device.h:57
The BI_Hole class.
Definition: bi_hole.h:46
Definition: bi_netline.h:46
The BI_NetLine class.
Definition: bi_netline.h:71
The BI_NetPoint class.
Definition: bi_netpoint.h:46
The BI_NetSegment class.
Definition: bi_netsegment.h:52
The BI_Plane class.
Definition: bi_plane.h:52
The BI_Polygon class.
Definition: bi_polygon.h:46
The BI_StrokeText class.
Definition: bi_stroketext.h:49
The BI_Via class.
Definition: bi_via.h:44
The BI_Zone class.
Definition: bi_zone.h:46
The Circle class.
Definition: circle.h:46
The ComponentInstance class.
Definition: componentinstance.h:54
The DrcMsgCopperBoardClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:321
DrcMsgCopperBoardClearanceViolation(const DrcMsgCopperBoardClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:353
static QString getPolygonDescription() noexcept
Definition: boarddesignrulecheckmessages.cpp:754
static QString getPolygonMessage(const UnsignedLength &minClearance) noexcept
Definition: boarddesignrulecheckmessages.cpp:747
DrcMsgCopperBoardClearanceViolation()=delete
virtual ~DrcMsgCopperBoardClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:356
The DrcMsgCopperCopperClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:289
static void serializeObject(SExpression &node, const BI_Base &item, const Polygon *polygon, const Circle *circle)
Definition: boarddesignrulecheckmessages.cpp:533
DrcMsgCopperCopperClearanceViolation(const DrcMsgCopperCopperClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:301
static QString getObjectName(const NetSignal *net, const BI_Base &item, const Polygon *polygon, const Circle *circle)
Definition: boarddesignrulecheckmessages.cpp:501
static QString getLayerName(const QVector< const Layer * > &layers)
Definition: boarddesignrulecheckmessages.cpp:492
DrcMsgCopperCopperClearanceViolation()=delete
virtual ~DrcMsgCopperCopperClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:304
The DrcMsgCopperHoleClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:370
DrcMsgCopperHoleClearanceViolation(const DrcMsgCopperHoleClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:382
DrcMsgCopperHoleClearanceViolation()=delete
virtual ~DrcMsgCopperHoleClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:385
The DrcMsgCopperInKeepoutZone class.
Definition: boarddesignrulecheckmessages.h:399
DrcMsgCopperInKeepoutZone()=delete
DrcMsgCopperInKeepoutZone(const DrcMsgCopperInKeepoutZone &other) noexcept
Definition: boarddesignrulecheckmessages.h:429
virtual ~DrcMsgCopperInKeepoutZone() noexcept
Definition: boarddesignrulecheckmessages.h:431
The DrcMsgDeviceInCourtyard class.
Definition: boarddesignrulecheckmessages.h:510
virtual ~DrcMsgDeviceInCourtyard() noexcept
Definition: boarddesignrulecheckmessages.h:520
DrcMsgDeviceInCourtyard()=delete
DrcMsgDeviceInCourtyard(const DrcMsgDeviceInCourtyard &other) noexcept
Definition: boarddesignrulecheckmessages.h:518
The DrcMsgDeviceInKeepoutZone class.
Definition: boarddesignrulecheckmessages.h:550
DrcMsgDeviceInKeepoutZone()=delete
virtual ~DrcMsgDeviceInKeepoutZone() noexcept
Definition: boarddesignrulecheckmessages.h:562
DrcMsgDeviceInKeepoutZone(const DrcMsgDeviceInKeepoutZone &other) noexcept
Definition: boarddesignrulecheckmessages.h:560
The DrcMsgDisabledLayer class.
Definition: boarddesignrulecheckmessages.h:854
DrcMsgDisabledLayer(const DrcMsgDisabledLayer &other) noexcept
Definition: boarddesignrulecheckmessages.h:861
virtual ~DrcMsgDisabledLayer() noexcept
Definition: boarddesignrulecheckmessages.h:863
DrcMsgDisabledLayer()=delete
The DrcMsgDrillBoardClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:474
DrcMsgDrillBoardClearanceViolation()=delete
virtual ~DrcMsgDrillBoardClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:496
DrcMsgDrillBoardClearanceViolation(const DrcMsgDrillBoardClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:493
The DrcMsgDrillDrillClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:447
virtual ~DrcMsgDrillDrillClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:460
DrcMsgDrillDrillClearanceViolation(const DrcMsgDrillDrillClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:457
DrcMsgDrillDrillClearanceViolation()=delete
The DrcMsgEmptyNetSegment class.
Definition: boarddesignrulecheckmessages.h:192
virtual ~DrcMsgEmptyNetSegment() noexcept
Definition: boarddesignrulecheckmessages.h:201
DrcMsgEmptyNetSegment(const DrcMsgEmptyNetSegment &other) noexcept
Definition: boarddesignrulecheckmessages.h:199
DrcMsgEmptyNetSegment()=delete
The DrcMsgExposureInKeepoutZone class.
Definition: boarddesignrulecheckmessages.h:578
DrcMsgExposureInKeepoutZone(const DrcMsgExposureInKeepoutZone &other) noexcept
Definition: boarddesignrulecheckmessages.h:607
virtual ~DrcMsgExposureInKeepoutZone() noexcept
Definition: boarddesignrulecheckmessages.h:609
DrcMsgExposureInKeepoutZone()=delete
The DrcMsgForbiddenSlot class.
Definition: boarddesignrulecheckmessages.h:741
DrcMsgForbiddenSlot()=delete
DrcMsgForbiddenSlot(const DrcMsgForbiddenSlot &other) noexcept
Definition: boarddesignrulecheckmessages.h:753
virtual ~DrcMsgForbiddenSlot() noexcept
Definition: boarddesignrulecheckmessages.h:755
The DrcMsgForbiddenVia class.
Definition: boarddesignrulecheckmessages.h:769
virtual ~DrcMsgForbiddenVia() noexcept
Definition: boarddesignrulecheckmessages.h:779
DrcMsgForbiddenVia(const DrcMsgForbiddenVia &other) noexcept
Definition: boarddesignrulecheckmessages.h:777
DrcMsgForbiddenVia()=delete
The DrcMsgInvalidPadConnection class.
Definition: boarddesignrulecheckmessages.h:721
DrcMsgInvalidPadConnection(const DrcMsgInvalidPadConnection &other) noexcept
Definition: boarddesignrulecheckmessages.h:729
virtual ~DrcMsgInvalidPadConnection() noexcept
Definition: boarddesignrulecheckmessages.h:731
DrcMsgInvalidPadConnection()=delete
The DrcMsgMinimumAnnularRingViolation class.
Definition: boarddesignrulecheckmessages.h:625
virtual ~DrcMsgMinimumAnnularRingViolation() noexcept
Definition: boarddesignrulecheckmessages.h:640
DrcMsgMinimumAnnularRingViolation(const DrcMsgMinimumAnnularRingViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:637
DrcMsgMinimumAnnularRingViolation()=delete
The DrcMsgMinimumBoardOutlineInnerRadiusViolation class.
Definition: boarddesignrulecheckmessages.h:171
DrcMsgMinimumBoardOutlineInnerRadiusViolation(const DrcMsgMinimumBoardOutlineInnerRadiusViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:179
virtual ~DrcMsgMinimumBoardOutlineInnerRadiusViolation() noexcept
Definition: boarddesignrulecheckmessages.h:182
DrcMsgMinimumBoardOutlineInnerRadiusViolation()=delete
The DrcMsgMinimumDrillDiameterViolation class.
Definition: boarddesignrulecheckmessages.h:650
DrcMsgMinimumDrillDiameterViolation()=delete
DrcMsgMinimumDrillDiameterViolation(const DrcMsgMinimumDrillDiameterViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:669
virtual ~DrcMsgMinimumDrillDiameterViolation() noexcept
Definition: boarddesignrulecheckmessages.h:672
The DrcMsgMinimumSlotWidthViolation class.
Definition: boarddesignrulecheckmessages.h:687
virtual ~DrcMsgMinimumSlotWidthViolation() noexcept
Definition: boarddesignrulecheckmessages.h:706
DrcMsgMinimumSlotWidthViolation(const DrcMsgMinimumSlotWidthViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:703
DrcMsgMinimumSlotWidthViolation()=delete
The DrcMsgMinimumTextHeightViolation class.
Definition: boarddesignrulecheckmessages.h:231
DrcMsgMinimumTextHeightViolation(const DrcMsgMinimumTextHeightViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:240
virtual ~DrcMsgMinimumTextHeightViolation() noexcept
Definition: boarddesignrulecheckmessages.h:243
DrcMsgMinimumTextHeightViolation()=delete
The DrcMsgMinimumWidthViolation class.
Definition: boarddesignrulecheckmessages.h:253
virtual ~DrcMsgMinimumWidthViolation() noexcept
Definition: boarddesignrulecheckmessages.h:279
DrcMsgMinimumWidthViolation(const DrcMsgMinimumWidthViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:277
DrcMsgMinimumWidthViolation()=delete
The DrcMsgMissingBoardOutline class.
Definition: boarddesignrulecheckmessages.h:113
DrcMsgMissingBoardOutline() noexcept
Definition: boarddesignrulecheckmessages.cpp:156
virtual ~DrcMsgMissingBoardOutline() noexcept
Definition: boarddesignrulecheckmessages.h:121
DrcMsgMissingBoardOutline(const DrcMsgMissingBoardOutline &other) noexcept
Definition: boarddesignrulecheckmessages.h:119
The DrcMsgMissingConnection class.
Definition: boarddesignrulecheckmessages.h:86
static void serializeAnchor(SExpression &node, const BI_NetLineAnchor &anchor)
Definition: boarddesignrulecheckmessages.cpp:133
static QString getAnchorName(const BI_NetLineAnchor &anchor)
Definition: boarddesignrulecheckmessages.cpp:114
DrcMsgMissingConnection(const DrcMsgMissingConnection &other) noexcept
Definition: boarddesignrulecheckmessages.h:96
DrcMsgMissingConnection()=delete
virtual ~DrcMsgMissingConnection() noexcept
Definition: boarddesignrulecheckmessages.h:98
The DrcMsgMissingDevice class.
Definition: boarddesignrulecheckmessages.h:67
DrcMsgMissingDevice()=delete
DrcMsgMissingDevice(const DrcMsgMissingDevice &other) noexcept
Definition: boarddesignrulecheckmessages.h:74
virtual ~DrcMsgMissingDevice() noexcept
Definition: boarddesignrulecheckmessages.h:76
The DrcMsgMultipleBoardOutlines class.
Definition: boarddesignrulecheckmessages.h:131
virtual ~DrcMsgMultipleBoardOutlines() noexcept
Definition: boarddesignrulecheckmessages.h:139
DrcMsgMultipleBoardOutlines(const QVector< Path > &locations) noexcept
Definition: boarddesignrulecheckmessages.cpp:171
DrcMsgMultipleBoardOutlines(const DrcMsgMultipleBoardOutlines &other) noexcept
Definition: boarddesignrulecheckmessages.h:137
The DrcMsgOpenBoardOutlinePolygon class.
Definition: boarddesignrulecheckmessages.h:149
DrcMsgOpenBoardOutlinePolygon(const DrcMsgOpenBoardOutlinePolygon &other) noexcept
Definition: boarddesignrulecheckmessages.h:157
virtual ~DrcMsgOpenBoardOutlinePolygon() noexcept
Definition: boarddesignrulecheckmessages.h:160
DrcMsgOpenBoardOutlinePolygon()=delete
The DrcMsgOverlappingDevices class.
Definition: boarddesignrulecheckmessages.h:530
DrcMsgOverlappingDevices()=delete
virtual ~DrcMsgOverlappingDevices() noexcept
Definition: boarddesignrulecheckmessages.h:540
DrcMsgOverlappingDevices(const DrcMsgOverlappingDevices &other) noexcept
Definition: boarddesignrulecheckmessages.h:538
The DrcMsgSilkscreenClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:793
DrcMsgSilkscreenClearanceViolation()=delete
DrcMsgSilkscreenClearanceViolation(const DrcMsgSilkscreenClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:802
virtual ~DrcMsgSilkscreenClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:805
The DrcMsgUnconnectedJunction class.
Definition: boarddesignrulecheckmessages.h:211
virtual ~DrcMsgUnconnectedJunction() noexcept
Definition: boarddesignrulecheckmessages.h:221
DrcMsgUnconnectedJunction()=delete
DrcMsgUnconnectedJunction(const DrcMsgUnconnectedJunction &other) noexcept
Definition: boarddesignrulecheckmessages.h:219
The DrcMsgUnusedLayer class.
Definition: boarddesignrulecheckmessages.h:873
DrcMsgUnusedLayer(const DrcMsgUnusedLayer &other) noexcept
Definition: boarddesignrulecheckmessages.h:880
virtual ~DrcMsgUnusedLayer() noexcept
Definition: boarddesignrulecheckmessages.h:882
DrcMsgUnusedLayer()=delete
The DrcMsgUselessVia class.
Definition: boarddesignrulecheckmessages.h:835
virtual ~DrcMsgUselessVia() noexcept
Definition: boarddesignrulecheckmessages.h:844
DrcMsgUselessVia()=delete
DrcMsgUselessVia(const DrcMsgUselessVia &other) noexcept
Definition: boarddesignrulecheckmessages.h:842
The DrcMsgUselessZone class.
Definition: boarddesignrulecheckmessages.h:815
DrcMsgUselessZone()=delete
DrcMsgUselessZone(const DrcMsgUselessZone &other) noexcept
Definition: boarddesignrulecheckmessages.h:823
virtual ~DrcMsgUselessZone() noexcept
Definition: boarddesignrulecheckmessages.h:825
The Hole class.
Definition: hole.h:45
The Layer class provides all supported geometry layers.
Definition: layer.h:40
The Length class is used to represent a length (for example 12.75 millimeters)
Definition: length.h:83
The NetSignal class.
Definition: netsignal.h:50
The PadHole class.
Definition: padhole.h:44
The Polygon class.
Definition: polygon.h:45
The RuleCheckMessage class.
Definition: rulecheckmessage.h:45
const QString & getDescription() const noexcept
Definition: rulecheckmessage.h:64
RuleCheckMessage()=delete
const QString & getMessage() const noexcept
Definition: rulecheckmessage.h:63
The SExpression class.
Definition: sexpression.h:69
The Uuid class is a replacement for QUuid to get UUID strings without {} braces.
Definition: uuid.h:58
The Zone class.
Definition: zone.h:43
Definition: occmodel.cpp:77
type_safe::constrained_type< Length, PositiveLengthConstraint, PositiveLengthVerifier > PositiveLength
Definition: length.h:812
type_safe::constrained_type< Path, NonEmptyPathConstraint, NonEmptyPathVerifier > NonEmptyPath
Definition: path.h:221
type_safe::constrained_type< Length, UnsignedLengthConstraint, UnsignedLengthVerifier > UnsignedLength
Definition: length.h:696