Hurricane VLSI Database


Go.h
1// ****************************************************************************************************
2// File: ./hurricane/Go.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/Entity.h"
22#include "hurricane/Gos.h"
23#include "hurricane/Transformation.h"
24
25namespace Hurricane {
26
27class BasicLayer;
28class QuadTree;
29
30// ****************************************************************************************************
31// Go declaration
32// ****************************************************************************************************
33
34class Go : public Entity {
35// *********************
36
37// Friends
38// *******
39
40 friend class QuadTree;
41
42// Types
43// *****
44
45 public: typedef Entity Inherit;
46
47// Attributes
48// **********
49
50 private: QuadTree* _quadTree;
51 private: Go* _nextOfQuadTreeGoSet;
52
53// Constructors
54// ************
55
56 protected: Go();
57 protected: virtual ~Go();
58
59// Predicates
60// **********
61
62 public: static bool autoMaterializationIsDisabled();
63
64 public: bool isMaterialized() const {return (_quadTree != NULL);};
65
66// Updators
67// ********
68
69 public: static void enableAutoMaterialization();
70 public: static void disableAutoMaterialization();
71
72 public: virtual void materialize() = 0;
73 public: virtual void unmaterialize() = 0;
74
75 public: virtual void invalidate(bool propagateFlag = true);
76 // implementation located on file UpdateSession.cpp to access local variables
77
78 public: virtual void translate(const DbU::Unit& dx, const DbU::Unit& dy) = 0;
79 public: virtual void translate(const Point& );
80
81// Others
82// ******
83
84 protected: virtual void _postCreate();
85
86 protected: virtual void _preDestroy();
87
88 public: virtual string _getString() const;
89 public: virtual Record* _getRecord() const;
90 public: Go* _getNextOfQuadTreeGoSet() const {return _nextOfQuadTreeGoSet;};
91
92 public: void _setNextOfQuadTreeGoSet(Go* go) {_nextOfQuadTreeGoSet = go;};
93
94};
95
96
97} // End of Hurricane namespace.
98
99
100INSPECTOR_P_SUPPORT(Hurricane::Go);
101
102
103// ****************************************************************************************************
104// Copyright (c) BULL S.A. 2000-2018, All Rights Reserved
105// ****************************************************************************************************
std::int64_t Unit
Definition DbU.h:67
Occurrenceable objects root class (API).
Definition Entity.h:37
Go description (API)
Definition Go.h:34
static void disableAutoMaterialization()
bool isMaterialized() const
Definition Go.h:64
static bool autoMaterializationIsDisabled()
virtual void translate(const DbU::Unit &dx, const DbU::Unit &dy)=0
virtual void invalidate(bool propagateFlag=true)
virtual void materialize()=0
static void enableAutoMaterialization()
virtual void unmaterialize()=0
Point description (API)
Definition Point.h:30
QuadTree description (API)
Definition QuadTree.h:33
Contains Almost Everything.
Definition BasicLayer.h:39


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