Please check if the PR fulfills these requirements
[x] The commit message follows our guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)
Does this PR already have an issue describing the problem?
No
What kind of change does this PR introduce?
Bug fix
What is the current behavior?
One-leg intern cells, which are intern cells which are displayed as a single vertical line, forces the corresponding busbars to be parallel, which used to lead to unexpected behaviour (mixing components on one of the two bars). Since PR #573, an exception is thrown.
Example of one-leg intern cell from unit tests:
What is the new behavior (if this is a feature change)?
Wannabe one-leg intern cells are detected when organizing blocks like previously but the corresponding shape is now MAYBE_ONE_LEG
Then, when building the LegBusSets, the maybe-one-leg cell is
either integrated in an existing LegBusSet if all its busNodes are contained in that one, its shape is then confirmed ONE_LEG
or split into two LegBlocks based on the LegBusSets it is attached to and its shape is either marked UNDEFINED or MAYBE_FLAT
or split into two LegBlocks based on the sectionIndex of their BusNode and its shape is either marked UNDEFINED or MAYBE_FLAT
or marked as ONE_LEG
Later, when creating subsections, if we detect that the maybe-one-leg cell which was split into two parts is fully included in a subsection, we finally set its shape to ONE_LEG
Note that when splitting in two parts the subBlocks of the internCell, we favour the splitting based on LegBusSets as they can deal with complex subsections which contain more than one sectionIndex (e.g., two parallel busbars with different lengths).
Does this PR introduce a breaking change or deprecate an API?
Please check if the PR fulfills these requirements
Does this PR already have an issue describing the problem? No
What kind of change does this PR introduce? Bug fix
What is the current behavior? One-leg intern cells, which are intern cells which are displayed as a single vertical line, forces the corresponding busbars to be parallel, which used to lead to unexpected behaviour (mixing components on one of the two bars). Since PR #573, an exception is thrown.
Example of one-leg intern cell from unit tests:
What is the new behavior (if this is a feature change)?
MAYBE_ONE_LEG
ONE_LEG
UNDEFINED
orMAYBE_FLAT
UNDEFINED
orMAYBE_FLAT
ONE_LEG
ONE_LEG
Note that when splitting in two parts the subBlocks of the internCell, we favour the splitting based on LegBusSets as they can deal with complex subsections which contain more than one sectionIndex (e.g., two parallel busbars with different lengths).
Does this PR introduce a breaking change or deprecate an API?