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  private:
37  static FastRTTI _fastRTTI;
38  public:
39  static inline const FastRTTI& fastRTTI ();
40  virtual const FastRTTI& vfastRTTI () const;
41 
42 // Friends
43 // *******
44 
45  friend class QuadTree;
46 
47 // Types
48 // *****
49 
50  public: typedef Entity Inherit;
51 
52 // Attributes
53 // **********
54 
55  private: QuadTree* _quadTree;
56  private: Go* _nextOfQuadTreeGoSet;
57 
58 // Constructors
59 // ************
60 
61  protected: Go();
62  protected: virtual ~Go();
63 
64 // Predicates
65 // **********
66 
67  public: static bool autoMaterializationIsDisabled();
68 
69  public: bool isMaterialized() const {return (_quadTree != NULL);};
70 
71 // Updators
72 // ********
73 
74  public: static void enableAutoMaterialization();
75  public: static void disableAutoMaterialization();
76 
77  public: virtual void materialize() = 0;
78  public: virtual void unmaterialize() = 0;
79 
80  public: virtual void invalidate(bool propagateFlag = true);
81  // implementation located on file UpdateSession.cpp to access local variables
82 
83  public: virtual void translate(const DbU::Unit& dx, const DbU::Unit& dy) = 0;
84  public: virtual void translate(const Point& );
85 
86 // Others
87 // ******
88 
89  protected: virtual void _postCreate();
90 
91  protected: virtual void _preDestroy();
92 
93  public: virtual string _getString() const;
94  public: virtual Record* _getRecord() const;
95  public: Go* _getNextOfQuadTreeGoSet() const {return _nextOfQuadTreeGoSet;};
96 
97  public: void _setNextOfQuadTreeGoSet(Go* go) {_nextOfQuadTreeGoSet = go;};
98 
99 };
100 
101 
102  inline const FastRTTI& Go::fastRTTI () { return _fastRTTI; }
103 
104 
105 } // End of Hurricane namespace.
106 
107 
108 INSPECTOR_P_SUPPORT(Hurricane::Go);
109 
110 
111 // ****************************************************************************************************
112 // Copyright (c) BULL S.A. 2000-2018, All Rights Reserved
113 // ****************************************************************************************************
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:69
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 Fri Sep 27 2024 Return to top of page
Hurricane VLSI Database Copyright © 2000-2020 Bull S.A. All rights reserved