33#include "hurricane/Component.h"
34#include "hurricane/Occurrence.h"
35#include "hurricane/Pin.h"
53 static const uint32_t IsOnSegment = (1 << 4);
54 static const uint32_t IsOnPad = (1 << 5);
56 static const uint32_t HSmall = (1 << 6);
57 static const uint32_t VSmall = (1 << 7);
58 static const uint32_t VLarge = (1 << 8);
59 static const uint32_t Punctual = (1 << 9);
60 static const uint32_t M1Offgrid = (1 << 10);
61 static const uint32_t UserCenter = (1 << 11);
62 static const uint32_t SizeFlags = HSmall|VSmall|VLarge|Punctual|M1Offgrid;
63 static const uint32_t SelectedComponent = (1 << 11);
64 static const uint32_t RotateBottomMetal = (1 << 12);
71 inline bool isAtTopLevel ()
const;
72 inline bool isHSmall ()
const;
73 inline bool isVSmall ()
const;
74 inline bool isVLarge ()
const;
75 inline bool isPunctual ()
const;
76 inline bool isM1Offgrid ()
const;
77 inline bool rotateBottomMetal ()
const;
78 inline bool hasUserCenter ()
const;
79 inline bool hasSelectedComponent ()
const;
80 inline Point getUserCenter ()
const;
90 virtual Point getPosition ()
const;
97 std::string getStringFlags ()
const;
102 inline void setUserCenter (
const Point& );
105 inline void unsetFlags (
uint32_t );
108 T* _getEntityAs ()
const;
110 virtual std::string _getTypeName ()
const {
return _TName(
"RoutingPad");};
111 virtual std::string _getString ()
const;
112 virtual Record* _getRecord ()
const;
114 virtual void _postCreate ();
115 virtual void _preDestroy ();
126 inline bool RoutingPad::isAtTopLevel ()
const {
return _occurrence.
getPath().
isEmpty(); }
127 inline bool RoutingPad::isHSmall ()
const {
return (_flags & HSmall); }
128 inline bool RoutingPad::isVSmall ()
const {
return (_flags & VSmall); }
129 inline bool RoutingPad::isVLarge ()
const {
return (_flags & VLarge); }
130 inline bool RoutingPad::isPunctual ()
const {
return (_flags & Punctual); }
131 inline bool RoutingPad::isM1Offgrid ()
const {
return (_flags & M1Offgrid); }
132 inline bool RoutingPad::rotateBottomMetal ()
const {
return (_flags & RotateBottomMetal); }
133 inline bool RoutingPad::hasSelectedComponent ()
const {
return (_flags & SelectedComponent); }
134 inline bool RoutingPad::hasUserCenter ()
const {
return (_flags & UserCenter); }
135 inline Point RoutingPad::getUserCenter ()
const {
return (hasUserCenter()) ? _userCenter :
getCenter(); }
136 inline uint32_t RoutingPad::getFlags ()
const {
return _flags; }
138 inline void RoutingPad::setFlags (
uint32_t flags ) { _flags |= flags; }
139 inline void RoutingPad::unsetFlags ( uint32_t flags ) { _flags &= ~flags; }
140 inline void RoutingPad::setUserCenter (
const Point& center ) { _flags |= UserCenter; _userCenter = center; }
144 inline T* RoutingPad::_getEntityAs ()
const
146 if (not _occurrence.
isValid())
return nullptr;
147 return dynamic_cast<T*
>( _occurrence.
getEntity() );
154 class JsonRoutingPad :
public JsonComponent {
156 static void initialize ();
157 JsonRoutingPad (
unsigned long flags );
158 virtual std::string getTypeName ()
const;
159 virtual JsonRoutingPad* clone (
unsigned long flags )
const;
160 virtual void toData ( JsonStack& );
BasicLayer description (API)
Definition BasicLayer.h:42
Box description (API)
Definition Box.h:30
Component description (API)
Definition Component.h:43
std::int64_t Unit
Definition DbU.h:67
Generic Collection auto-pointer.
Definition Collection.h:235
Layer description (API)
Definition Layer.h:120
Net description (API)
Definition Net.h:46
Occurrence description (API)
Definition Occurrence.h:39
Entity * getEntity() const
Definition Occurrence.h:68
bool isValid() const
Definition Occurrence.h:81
Path getPath() const
Definition Occurrence.h:69
Pin description (API)
Definition Pin.h:41
Point description (API)
Definition Point.h:30
RoutingPad description (API)
Definition RoutingPad.h:46
static const uint32_t LowestLayer
Definition RoutingPad.h:51
static RoutingPad * create(Pin *)
void restorePlugOccurrence()
Occurrence getOccurrence() const
Definition RoutingPad.h:137
virtual Box getBoundingBox() const
Occurrence getPlugOccurrence()
DbU::Unit getTargetX() const
DbU::Unit getTargetY() const
virtual void translate(const DbU::Unit &dx, const DbU::Unit &dy)
Component Inherit
Definition RoutingPad.h:48
virtual DbU::Unit getX() const
DbU::Unit getSourceY() const
bool isPlacedOccurrence(uint32_t flags) const
virtual const Layer * getLayer() const
Point getTargetPosition() const
static const uint32_t HighestLayer
Definition RoutingPad.h:50
static const uint32_t ShowWarning
Definition RoutingPad.h:52
void setExternalComponent(Component *)
static const uint32_t ComponentSelection
Definition RoutingPad.h:55
Point getSourcePosition() const
virtual Point getCenter() const
static const uint32_t BiggestArea
Definition RoutingPad.h:49
DbU::Unit getSourceX() const
virtual DbU::Unit getY() const
Component * setOnBestComponent(uint32_t flags)
Contains Almost Everything.
Definition BasicLayer.h:39