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


Generated by doxygen 1.9.1 on Thu Aug 11 2022 Return to top of page
Hurricane VLSI Database Copyright © 2000-2020 Bull S.A. All rights reserved