20#ifndef HURRICANE_SEGMENT
21#define HURRICANE_SEGMENT
23#include "hurricane/Component.h"
24#include "hurricane/Segments.h"
33class Segment :
public Component {
41 public:
class SourceHook :
public Hook {
46 public:
typedef Hook Inherit;
48 private: SourceHook(Segment* segment);
50 public:
virtual Component* getComponent()
const;
52 public:
virtual bool isMaster()
const {
return false;};
54 public:
virtual string _getTypeName()
const {
return "Segment::SourceHook"; };
55 public:
virtual string _getString()
const;
56 public:
static Hook* _compToHook(Component*);
59 public:
class TargetHook :
public Hook {
64 public:
typedef Hook Inherit;
66 private: TargetHook(Segment* segment);
68 public:
virtual Component* getComponent()
const;
70 public:
virtual bool isMaster()
const {
return false;};
72 public:
virtual string _getTypeName()
const {
return "Segment::TargetHook"; };
73 public:
virtual string _getString()
const;
74 public:
static Hook* _compToHook(Component*);
82 private:
const Layer* _layer;
88 protected: Segment (
Net* net
98 public:
virtual Hooks getHooks()
const;
99 public:
virtual DbU::Unit getX()
const {
return 0;};
100 public:
virtual DbU::Unit getY()
const {
return 0;};
101 public:
virtual const Layer* getLayer()
const {
return _layer;};
129 protected:
virtual void _preDestroy();
131 public:
virtual void _toJson(JsonWriter*)
const;
132 public:
virtual string _getString()
const;
133 public:
virtual Record* _getRecord()
const;
142class JsonSegment :
public JsonComponent {
145 public: JsonSegment(
unsigned long flags);
std::int64_t Unit
Definition DbU.h:67
Hook description (API)
Definition Hook.h:34
Layer description (API)
Definition Layer.h:50
Net description (API)
Definition Net.h:46
Point description (API)
Definition Point.h:30
Segment description (API)
Definition Segment.h:33
Hook * getSourceHook()
Definition Segment.h:102
Component * getTarget() const
virtual DbU::Unit getLength() const =0
const DbU::Unit & getWidth() const
Definition Segment.h:109
virtual DbU::Unit getTargetY() const =0
DbU::Unit getHalfWidth() const
Definition Segment.h:110
virtual Point getSourcePosition() const
Component Inherit
Definition Segment.h:39
virtual Point getTargetPosition() const
virtual DbU::Unit getSourceY() const =0
Component * getOppositeAnchor(Component *anchor) const
virtual DbU::Unit getTargetX() const =0
Component * getSource() const
virtual DbU::Unit getSourceX() const =0
Hook * getTargetHook()
Definition Segment.h:103
Components getAnchors() const
void setLayer(const Layer *layer)
void setWidth(const DbU::Unit &width)
Hook * getOppositeHook(const Hook *hook) const
Contains Almost Everything.
Definition BasicLayer.h:39
GenericCollection< Hook * > Hooks
Definition Hooks.h:35
GenericCollection< Component * > Components
Definition Components.h:35