21#ifndef HURRICANE_COMPONENT_H
22#define HURRICANE_COMPONENT_H
25#include "hurricane/Points.h"
26#include "hurricane/Go.h"
27#include "hurricane/Components.h"
28#include "hurricane/Hook.h"
29#include "hurricane/Hooks.h"
30#include "hurricane/Interval.h"
43 class Component :
public Go {
45 static FastRTTI _fastRTTI;
47 static inline const FastRTTI& fastRTTI ();
48 virtual const FastRTTI& vfastRTTI ()
const;
53 class Points_Contour :
public PointHC {
55 class Locator :
public PointHL {
63 virtual string _getString ()
const;
65 const Component* _component;
69 inline Points_Contour (
const Component* );
70 inline Points_Contour (
const Points_Contour& );
73 virtual string _getString ()
const;
75 const Component* _component;
79 class BodyHook :
public Hook {
80 friend class Component;
85 virtual bool isMaster ()
const {
return true;};
86 virtual string _getTypeName ()
const {
return "Component::BodyHook"; };
87 virtual string _getString ()
const;
88 static Hook* _compToHook ( Component* );
90 BodyHook ( Component* );
94 Component (
Net* ,
bool inPlugCreate =
false );
97 virtual bool isConvex ()
const;
98 virtual bool isPolygon45 ()
const;
99 virtual bool isManhattanized ()
const;
100 virtual bool isNonRectangle ()
const;
111 virtual size_t getPointsSize ()
const;
112 virtual Point getPoint (
size_t )
const;
115 inline Points getContour ()
const;
116 virtual Points getMContour ()
const;
122 virtual void invalidate (
bool propagateFlag =
true );
123 virtual void forceId (
unsigned int id );
128 virtual void _postCreate ();
129 virtual void _preDestroy ();
131 virtual void _toJson ( JsonWriter* )
const;
132 virtual void _toJsonSignature ( JsonWriter* )
const;
133 virtual string _getString ()
const;
134 virtual Record* _getRecord ()
const;
135 Component* _getNextOfNetComponentSet ()
const {
return _nextOfNetComponentSet;};
136 void _setNet (
Net* );
137 void _setRubber (
Rubber* );
138 void _setNextOfNetComponentSet (
Component* component ) { _nextOfNetComponentSet = component; };
143 Component* _nextOfNetComponentSet;
147 inline const FastRTTI& Component::fastRTTI () {
return _fastRTTI; }
150 inline Points Component::getContour ()
const {
return Points_Contour(
this); }
153 inline Component::Points_Contour::Locator::Locator (
const Locator &locator )
155 , _component(locator._component)
156 , _iPoint (locator._iPoint)
160 inline Component::Points_Contour::Points_Contour (
const Component* component )
162 , _component(component)
166 inline Component::Points_Contour::Points_Contour (
const Points_Contour& other )
168 , _component(other._component)
178 class JsonComponent :
public JsonEntity {
180 JsonComponent (
unsigned long flags );
184 typedef std::set<Component*,DBo::CompareById> ComponentSet;
BasicLayer description (API).
Definition BasicLayer.h:42
Box description (API).
Definition Box.h:30
The model (API).
Definition Cell.h:64
virtual Collection< Point > * getClone() const=0
virtual Locator< Point > * getLocator() const=0
Definition Component.h:79
Component description (API).
Definition Component.h:43
Net * getNet() const
Definition Component.h:102
Hook * getBodyHook()
Definition Component.h:104
virtual DbU::Unit getX() const =0
Components getConnexComponents() const
virtual DbU::Unit getY() const =0
Go Inherit
Definition Component.h:50
virtual Hooks getHooks() const
virtual Point getPosition() const
Definition Component.h:108
virtual const Layer * getLayer() const =0
virtual Box getBoundingBox(const BasicLayer *) const =0
Rubber * getRubber() const
Definition Component.h:103
static ComponentFilter getIsUnderFilter(const Box &area)
Components getSlaveComponents() const
std::int64_t Unit
Definition DbU.h:67
virtual Box getBoundingBox() const =0
virtual Cell * getCell() const =0
virtual void materialize()=0
virtual void unmaterialize()=0
Hook description (API).
Definition Hook.h:34
virtual Component * getComponent() const =0
virtual bool isMaster() const =0
Layer description (API).
Definition Layer.h:120
Locator description (API).
Definition Locator.h:33
virtual Point getElement() const=0
virtual bool isValid() const=0
virtual void progress()=0
virtual Locator< Point > * getClone() const=0
Net description (API).
Definition Net.h:46
Point description (API).
Definition Point.h:30
Rubber description (API).
Definition Rubber.h:36
Contains Almost Everything.
Definition BasicLayer.h:39
GenericFilter< Component * > ComponentFilter
Definition Components.h:51
GenericCollection< Hook * > Hooks
Definition Hooks.h:35
GenericCollection< Component * > Components
Definition Components.h:35