UpdateSession description (API) More...
Additional Inherited Members | |
Property Collection |
UpdateSession description (API)
Here is only an outline of the UpdateSession mechanism. The classes involved are:
When a Go is to be displayed, it has to be inserted inside one of the QuadTree of it's owner Cell. QuadTree allows fast geometric queries which are used extensively to perform the display. If a Go is not inserted in a QuadTree it will not be displayed at all or be included in any geometric query. When we insert a Go in a QuadTree, we talk about materialization. So a Go can be in two states: materialized or unmaterialized. The default behavior is to materialize a Go as soon as it is created.
Now comes the UpdateSession mechanism. When the characteristics of a Go are changed, it may be needed to update it's position inside the QuadTree, or even to change of QuadTree (in case of a Layer change). Basically, the mechanism proceed in three stages:
invalidate()
method is called, that unmaterialize() it, then adds it to the current UpdateSession. This is done by adding the UpdateSession, as a property, to the Go. The Go owner (it's Cell) is also notified a Cell::Flags::CellAboutToChange
.Cell::Flags::CellChanged
.It is very important to notice that the Cells gets change notifications only when a Go is changed, not when it is created. If we want the Cell to be notified, we must invalidate it manually. This is particularly critical when working with ExtensionGo.
Generated by doxygen 1.9.1 on Thu Aug 11 2022 | Return to top of page |
Hurricane VLSI Database | Copyright © 2000-2020 Bull S.A. All rights reserved |