# Hurricane VLSI Database

Slice.h
1 // ****************************************************************************************************
2 // File: ./hurricane/Slice.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_SLICE
21 #define HURRICANE_SLICE
22
23 #include "hurricane/QuadTree.h"
24 #include "hurricane/Components.h"
25 #include "hurricane/Markers.h"
26 #include "hurricane/Transformation.h"
27
28 namespace Hurricane {
29
30 class Cell;
31 class Layer;
32 class BasicLayer;
33
34
35
36 // ****************************************************************************************************
37 // Slice declaration
38 // ****************************************************************************************************
39
40 class Slice {
41 // ********
42
43 // Attributes
44 // **********
45
46 private: Cell* _cell;
47 private: const Layer* _layer;
48 private: QuadTree _quadTree;
49 private: Slice* _nextOfCellSliceMap;
50
51 // Constructors
52 // ************
53
54 protected: Slice(Cell* cell, const Layer* layer);
55
56 private: Slice(const Slice& slice); // not implemented to forbid copy construction
57
58 // Destructor
59 // **********
60
61 protected: ~Slice();
62
63 // Operators
64 // *********
65
66 private: Slice& operator=(const Slice& slice); // not implemented to forbid assignment
67
68 // Accessors
69 // *********
70
71 public: Cell* getCell() const {return _cell;};
72 public: const Layer* getLayer() const {return _layer;};
73 public: const Box& getBoundingBox() const {return _quadTree.getBoundingBox();};
74 public: Gos getGos() const {return _quadTree.getGos();};
75 public: Gos getGosUnder(const Box& area) const {return _quadTree.getGosUnder(area);};
76 public: Components getComponents() const;
77 public: Components getComponentsUnder(const Box& area) const;
78 public: Markers getMarkers() const;
79 public: Markers getMarkersUnder(const Box& area) const;
80
81 // Predicates
82 // **********
83
84 public: bool isEmpty() const {return _quadTree.isEmpty();};
85
86 // Others
87 // ******
88
89 public: static Slice* _create(Cell* cell, const Layer* layer);
90
91 public: void _destroy();
92
93 public: string _getTypeName() const { return _TName("Slice"); };
94 public: string _getString() const;
95 public: Record* _getRecord() const;
96 public: QuadTree* _getQuadTree() {return &_quadTree;};
97 public: Slice* _getNextOfCellSliceMap() const {return _nextOfCellSliceMap;};
98
99 public: void _setNextOfCellSliceMap(Slice* slice) {_nextOfCellSliceMap = slice;};
100
101 };
102
103
104 } // End of Hurricane namespace.
105
106
107 INSPECTOR_P_SUPPORT(Hurricane::Slice);
108
109
110 #endif // HURRICANE_SLICE
111
112
113 // ****************************************************************************************************
114 // Copyright (c) BULL S.A. 2000-2018, All Rights Reserved
115 // ****************************************************************************************************
Hurricane::Slice::getBoundingBox
const Box & getBoundingBox() const
Definition: Slice.h:73
Hurricane::Slice::getComponentsUnder
Components getComponentsUnder(const Box &area) const
Hurricane::Cell
The model (API).
Definition: Cell.h:66
Hurricane::QuadTree::isEmpty
bool isEmpty() const
Definition: QuadTree.h:96
Hurricane::Slice::getGos
Gos getGos() const
Definition: Slice.h:74
Hurricane::QuadTree::getGosUnder
Gos getGosUnder(const Box &area) const
Hurricane::QuadTree::getGos
Gos getGos() const
Hurricane::GenericCollection
Generic Collection auto-pointer.
Definition: Collection.h:28
Hurricane::Box
Box description (API)
Definition: Box.h:31
Hurricane::Layer
Layer description (API)
Definition: Layer.h:52
Hurricane::Slice::getLayer
const Layer * getLayer() const
Definition: Slice.h:72
Hurricane::Slice::getCell
Cell * getCell() const
Definition: Slice.h:71
Hurricane::Slice
Slice description (API)
Definition: Slice.h:40
Hurricane::QuadTree::getBoundingBox
const Box & getBoundingBox() const
Hurricane
The namespace dedicated to Hurricane.
Definition: Generalities.dox:5
Hurricane::QuadTree
QuadTree description (API)
Definition: QuadTree.h:35
Hurricane::Components
GenericCollection< Component * > Components
Definition: Components.h:27
Hurricane::Slice::getComponents
Components getComponents() const

Generated by doxygen 1.8.14 on Sun Mar 8 2020 | Return to top of page

Hurricane VLSI Database | Copyright © 2000-2016 Bull S.A. All rights reserved