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 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
108INSPECTOR_P_SUPPORT(Hurricane::Go);
109
110
111// ****************************************************************************************************
112// Copyright (c) BULL S.A. 2000-2018, All Rights Reserved
113// ****************************************************************************************************
BasicLayer description (API)
Definition BasicLayer.h:42
std::int64_t Unit
Definition DbU.h:67
Go description (API)
Definition Go.h:34
bool isMaterialized() const
Definition Go.h:69
static bool autoMaterializationIsDisabled()
static void disableAutoMaterialization()
static void enableAutoMaterialization()
virtual void materialize()=0
virtual void translate(const DbU::Unit &dx, const DbU::Unit &dy)=0
virtual void unmaterialize()=0
virtual void invalidate(bool propagateFlag=true)
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.13.2 on Fri Sep 27 2024 Return to top of page
Hurricane VLSI Database Copyright © 2000-2020 Bull S.A. All rights reserved