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
26namespace Hurricane {
27
28class Cell;
29class Layer;
30class BasicLayer;
31
32
33
34// ****************************************************************************************************
35// Slice declaration
36// ****************************************************************************************************
37
38class 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
105INSPECTOR_P_SUPPORT(Hurricane::Slice);
106
107
108// ****************************************************************************************************
109// Copyright (c) BULL S.A. 2000-2018, All Rights Reserved
110// ****************************************************************************************************
BasicLayer description (API)
Definition BasicLayer.h:42
Box description (API)
Definition Box.h:30
The model (API).
Definition Cell.h:64
std::int64_t Unit
Definition DbU.h:67
Layer description (API)
Definition Layer.h:120
QuadTree description (API)
Definition QuadTree.h:33
Gos getGosUnder(const Box &area, DbU::Unit threshold=0) const
Slice description (API)
Definition Slice.h:38
Gos getGos() const
Definition Slice.h:72
Components getComponents() const
const Box & getBoundingBox() const
Definition Slice.h:71
const Layer * getLayer() const
Definition Slice.h:70
Cell * getCell() const
Definition Slice.h:69
Components getComponentsUnder(const Box &area, DbU::Unit threshold=0) const
Contains Almost Everything.
Definition BasicLayer.h:39
GenericCollection< Component * > Components
Definition Components.h:35
GenericCollection< Go * > Gos
Definition Gos.h:35


Generated by doxygen 1.13.2 on Fri Sep 27 2024 Return to top of page
Hurricane VLSI Database Copyright © 2000-2020 Bull S.A. All rights reserved