WaveSimHierarchy Module
The collapsed design hierarchy the wave selector shows. A design whose sheets instantiate one another multiplies out: seven sheets of a few instances each is tens of thousands of instances, and a selector with one entry per instance grows with that rather than with the design somebody wrote. So the hierarchy shown has one node per SHEET at each point in the tree, and the user says which instance of it they mean. This module works out, once per render, everything both panes of the selector need: which nodes there are, which instances each one could show, and which one it is showing. Both panes read the same answer, so they cannot disagree about it.
Types
| Type | Description |
Functions and values
| Function or value | Description |
|
|
Full Usage:
getSelectorHierarchy fs ws
Parameters:
FastSimulation
ws : WaveSimModel
Returns: SelectorHierarchy
|
|
Full Usage:
labelPathOf fs instance
Parameters:
FastSimulation
instance : InstancePath
Returns: string
|
|
Full Usage:
nodeOf hierarchy sheet
Parameters:
SelectorHierarchy
sheet : SheetTree
Returns: SelectorNode option
|
|
|
|
|
|
Full Usage:
selectorInstances fs ws
Parameters:
FastSimulation
ws : WaveSimModel
Returns: InstancePath list
|
The slice the selector takes through the design's instances: the instance each sheet is showing, top sheet first, every sheet of the design and one entry per place in the tree it appears. Which instance that is, is the user's choice wherever they have made one - the same SelectedSheetInstance chain the pills resolve, validated the same way - and the alphabetically first otherwise. A node the user has not opened is included: it is showing an instance like any other, it is simply not drawn until they open it. This is what "everything the selector is currently pointed at" means for a question asked of the whole design rather than of one node, such as which Viewers to select when nothing has been chosen. It is a fact about the SHEETS - one instance each - so it costs the design and not the expansion.
|