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 Punctual = (1 << 8);
59 static const uint32_t M1Offgrid = (1 << 9);
60 static const uint32_t UserCenter = (1 << 10);
61 static const uint32_t SizeFlags = HSmall|VSmall|Punctual|M1Offgrid;
62 static const uint32_t SelectedComponent = (1 << 10);
69 inline bool isAtTopLevel ()
const;
70 inline bool isHSmall ()
const;
71 inline bool isVSmall ()
const;
72 inline bool isPunctual ()
const;
73 inline bool isM1Offgrid ()
const;
74 inline bool hasUserCenter ()
const;
75 inline bool hasSelectedComponent ()
const;
76 inline Point getUserCenter ()
const;
77 inline uint32_t getFlags ()
const;
86 virtual Point getPosition ()
const;
93 std::string getStringFlags ()
const;
98 inline void setUserCenter (
const Point& );
100 inline void setFlags ( uint32_t );
101 inline void unsetFlags ( uint32_t );
104 T* _getEntityAs ()
const;
105 virtual void _toJson ( JsonWriter* )
const;
106 virtual std::string _getTypeName ()
const {
return _TName(
"RoutingPad");};
107 virtual std::string _getString ()
const;
108 virtual Record* _getRecord ()
const;
110 virtual void _postCreate ();
111 virtual void _preDestroy ();
122 inline bool RoutingPad::isAtTopLevel ()
const {
return _occurrence.
getPath().
isEmpty(); }
123 inline bool RoutingPad::isHSmall ()
const {
return (_flags & HSmall); }
124 inline bool RoutingPad::isVSmall ()
const {
return (_flags & VSmall); }
125 inline bool RoutingPad::isPunctual ()
const {
return (_flags & Punctual); }
126 inline bool RoutingPad::isM1Offgrid ()
const {
return (_flags & M1Offgrid); }
127 inline bool RoutingPad::hasSelectedComponent ()
const {
return (_flags & SelectedComponent); }
128 inline bool RoutingPad::hasUserCenter ()
const {
return (_flags & UserCenter); }
129 inline Point RoutingPad::getUserCenter ()
const {
return (hasUserCenter()) ? _userCenter :
getCenter(); }
130 inline uint32_t RoutingPad::getFlags ()
const {
return _flags; }
132 inline void RoutingPad::setFlags ( uint32_t flags ) { _flags |= flags; }
133 inline void RoutingPad::unsetFlags ( uint32_t flags ) { _flags &= ~flags; }
134 inline void RoutingPad::setUserCenter (
const Point& center ) { _flags |= UserCenter; _userCenter = center; }
138 inline T* RoutingPad::_getEntityAs ()
const
140 if (not _occurrence.
isValid())
return nullptr;
141 return dynamic_cast<T*
>( _occurrence.
getEntity() );
148 class JsonRoutingPad :
public JsonComponent {
150 static void initialize ();
151 JsonRoutingPad (
unsigned long flags );
152 virtual std::string getTypeName ()
const;
153 virtual JsonRoutingPad* clone (
unsigned long flags )
const;
154 virtual void toData ( JsonStack& );
BasicLayer description (API)
Definition: BasicLayer.h:42
Box description (API)
Definition: Box.h:29
Component description (API)
Definition: Component.h:43
std::int64_t Unit
Definition: DbU.h:67
Layer description (API)
Definition: Layer.h:50
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:131
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