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 
25 namespace Hurricane {
26 
27 class BasicLayer;
28 class QuadTree;
29 
30 // ****************************************************************************************************
31 // Go declaration
32 // ****************************************************************************************************
33 
34 class 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 
100 INSPECTOR_P_SUPPORT(Hurricane::Go);
101 
102 
103 // ****************************************************************************************************
104 // Copyright (c) BULL S.A. 2000-2018, All Rights Reserved
105 // ****************************************************************************************************
DataBase object root class (API).
Definition: DBo.h:45
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.1 on Wed Nov 20 2024 Return to top of page
Hurricane VLSI Database Copyright © 2000-2020 Bull S.A. All rights reserved