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"
48 class Points_Contour :
public PointHC {
54 virtual Point getElement ()
const;
55 virtual PointHL* getClone ()
const;
56 virtual bool isValid ()
const;
57 virtual void progress ();
58 virtual string _getString ()
const;
64 inline Points_Contour (
const Component* );
65 inline Points_Contour (
const Points_Contour& );
66 virtual PointHC* getClone ()
const;
67 virtual PointHL* getLocator ()
const;
68 virtual string _getString ()
const;
80 virtual bool isMaster ()
const {
return true;};
81 virtual string _getTypeName ()
const {
return "Component::BodyHook"; };
82 virtual string _getString ()
const;
92 virtual bool isConvex ()
const;
93 virtual bool isPolygon45 ()
const;
94 virtual bool isManhattanized ()
const;
95 virtual bool isNonRectangle ()
const;
96 virtual Cell* getCell ()
const;
106 virtual size_t getPointsSize ()
const;
107 virtual Point getPoint (
size_t )
const;
108 virtual Box getBoundingBox ()
const = 0;
110 inline Points getContour ()
const;
111 virtual Points getMContour ()
const;
115 virtual void materialize ();
116 virtual void unmaterialize ();
118 virtual void forceId (
unsigned int id );
123 virtual void _postCreate ();
124 virtual void _preDestroy ();
127 virtual void _toJsonSignature (
JsonWriter* )
const;
128 virtual string _getString ()
const;
129 virtual Record* _getRecord ()
const;
130 Component* _getNextOfNetComponentSet ()
const {
return _nextOfNetComponentSet;};
131 void _setNet (
Net* );
132 void _setRubber (
Rubber* );
138 Component* _nextOfNetComponentSet;
142 inline Points Component::getContour ()
const {
return Points_Contour(
this); }
145 inline Component::Points_Contour::Locator::Locator (
const Locator &locator )
147 , _component(locator._component)
148 , _iPoint (locator._iPoint)
152 inline Component::Points_Contour::Points_Contour (
const Component* component )
154 , _component(component)
158 inline Component::Points_Contour::Points_Contour (
const Points_Contour& other )
160 , _component(other._component)
164 double getArea ( Component* component );
170 class JsonComponent :
public JsonEntity {
172 JsonComponent (
unsigned long flags );
176 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
Collection description (API)
Definition Collection.h:39
Definition Component.h:74
Component description (API)
Definition Component.h:43
virtual DbU::Unit getX() const =0
Net * getNet() const
Definition Component.h:97
Hook * getBodyHook()
Definition Component.h:99
virtual Hooks getHooks() const
Go Inherit
Definition Component.h:45
Components getConnexComponents() const
virtual DbU::Unit getY() const =0
static ComponentFilter getIsUnderFilter(const Box &area)
virtual Point getPosition() const
Definition Component.h:103
virtual Box getBoundingBox(const BasicLayer *) const =0
virtual const Layer * getLayer() const =0
Rubber * getRubber() const
Definition Component.h:98
Components getSlaveComponents() const
std::int64_t Unit
Definition DbU.h:67
Generic Collection auto-pointer.
Definition Collection.h:235
Go description (API)
Definition Go.h:34
Hook description (API)
Definition Hook.h:34
Layer description (API)
Definition Layer.h:120
Locator description (API)
Definition Locator.h:33
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