Hurricane VLSI Database
hurricane
src
hurricane
hurricane
Rubber.h
1
// ****************************************************************************************************
2
// File: ./hurricane/Rubber.h
3
// Authors: R. Escassut
4
// Copyright (c) BULL S.A. 2000-2018, All Rights Reserved
5
//
6
// This file is part of Hurricane.
7
//
8
// Hurricane is free software: you can redistribute it and/or modify it under the terms of the GNU
9
// Lesser General Public License as published by the Free Software Foundation, either version 3 of the
10
// License, or (at your option) any later version.
11
//
12
// Hurricane is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
13
// the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU
14
// General Public License for more details.
15
//
16
// You should have received a copy of the Lesser GNU General Public License along with Hurricane. If
17
// not, see <http://www.gnu.org/licenses/>.
18
// ****************************************************************************************************
19
20
#ifndef HURRICANE_RUBBER_H
21
#define HURRICANE_RUBBER_H
22
23
#include "hurricane/Go.h"
24
#include "hurricane/Hooks.h"
25
#include "hurricane/Rubbers.h"
26
27
namespace
Hurricane
{
28
29
class
Net
;
30
31
32
// ****************************************************************************************************
33
// Rubber declaration
34
// ****************************************************************************************************
35
36
class
Rubber :
public
Go {
37
// *********************
38
39
// Types
40
// *****
41
42
public
:
typedef
Go
Inherit
;
43
44
45
// Attributes
46
// **********
47
48
private
:
Net
* _net;
49
private
:
Hook
* _hook;
50
private
:
unsigned
_count;
51
private
:
Box
_boundingBox;
52
private
: Rubber* _nextOfNetRubberSet;
53
54
// Constructors
55
// ************
56
57
protected
: Rubber(
Net
* net,
Hook
* hook);
58
59
// Destructor
60
// **********
61
62
public
:
virtual
void
destroy();
63
64
// Accessors
65
// *********
66
67
public
:
virtual
Cell
* getCell()
const
;
68
public
:
Net
*
getNet
()
const
{
return
_net;};
69
public
:
Hook
*
getHook
()
const
{
return
_hook;};
70
public
:
unsigned
getCount
()
const
{
return
_count;};
71
public
:
Point
getCenter
()
const
;
72
public
:
Point
getBarycenter()
const
;
73
public
:
virtual
Box
getBoundingBox()
const
;
74
public
:
Hooks
getHooks
()
const
;
75
76
// Updators
77
// ********
78
79
public
:
virtual
void
materialize();
80
public
:
virtual
void
unmaterialize();
81
public
:
virtual
void
translate(
const
DbU::Unit
& dx,
const
DbU::Unit
& dy);
82
public
:
virtual
void
invalidate(
bool
propagateFlag =
true
);
83
84
// Others
85
// ******
86
87
public
:
static
Rubber* _create(
Hook
* hook);
88
protected
:
virtual
void
_postCreate();
89
90
public
:
void
_destroy();
91
protected
:
virtual
void
_preDestroy();
92
93
public
:
virtual
string
_getTypeName()
const
{
return
_TName(
"Rubber"
);};
94
public
:
virtual
string
_getString()
const
;
95
public
:
virtual
Record* _getRecord()
const
;
96
public
:
Rubber
* _getNextOfNetRubberSet()
const
{
return
_nextOfNetRubberSet;};
97
98
public
:
void
_setNet(Net* net);
99
public
:
void
_setHook(Hook* hook);
100
public
:
void
_setNextOfNetRubberSet(Rubber* rubber) {_nextOfNetRubberSet = rubber;};
101
102
public
:
void
_capture();
103
public
:
void
_release();
104
105
};
106
107
108
}
// End of Hurricane namespace.
109
110
111
INSPECTOR_P_SUPPORT(
Hurricane::Rubber
);
112
113
114
#endif
// HURRICANE_RUBBER_H
115
116
117
// ****************************************************************************************************
118
// Copyright (c) BULL S.A. 2000-2018, All Rights Reserved
119
// ****************************************************************************************************
Hurricane::Box
Box description (API)
Definition
Box.h:29
Hurricane::Cell
The model (API).
Definition
Cell.h:64
Hurricane::DbU::Unit
std::int64_t Unit
Definition
DbU.h:67
Hurricane::Hook
Hook description (API)
Definition
Hook.h:34
Hurricane::Net
Net description (API)
Definition
Net.h:46
Hurricane::Point
Point description (API)
Definition
Point.h:30
Hurricane::Rubber
Rubber description (API)
Definition
Rubber.h:36
Hurricane::Rubber::getCenter
Point getCenter() const
Hurricane::Rubber::getNet
Net * getNet() const
Definition
Rubber.h:68
Hurricane::Rubber::getCount
unsigned getCount() const
Definition
Rubber.h:70
Hurricane::Rubber::getHooks
Hooks getHooks() const
Hurricane::Rubber::getHook
Hook * getHook() const
Definition
Rubber.h:69
Hurricane::Rubber::Inherit
Go Inherit
Definition
Rubber.h:42
Hurricane
Contains Almost Everything.
Definition
BasicLayer.h:39
Hurricane::Hooks
GenericCollection< Hook * > Hooks
Definition
Hooks.h:35
Generated by doxygen 1.13.2 on Sun Mar 9 2025
Return to top of page
Hurricane VLSI Database
Copyright © 2000-2020 Bull S.A. All rights reserved