Uma maneira alternativa de forçar um grupo de nós para estarem
no mesmo nível é especificar uma restrição de difusão de grupo com um tamanho
de difusão de zero (0). Em geral, a restrição de difusão de grupo força um
grupo de nós para k+1 níveis subsequentes. O número k é
o tamanho de difusão. It does not select the lowest or highest level
index of the group, but requires only that the nodes are placed no
more than k levels
apart. Portanto, se k=0, todos os nós do grupo serão
posicionados no mesmo nível.
Para ilustrar a restrição de difusão de grupo geral
nos nós com IDs “nodeA’, “nodeB” e “nodeC”:
Para usar a restrição de difusão de grupo, chame:
var nodeGroup = new ibm_ilog.graphlayout.hierarchical.HierarchicalNodeGroup(); nodeGroup.add(nodeA); nodeGroup.add(nodeB); nodeGroup.add(nodeC); layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalGroupSpreadConstraint(nodeGroup, 2));
A restrição será atendida se o índice de nível mais alto
para
nodeA
, nodeB
e nodeC
tiver no máximo dois níveis
além do menor índice de nível dos nós. Por exemplo, a restrição será
atendida se os índices de níveis para nodeA
, nodeB
e nodeC
forem 1, 2, 3 ou se forem 7,
8, 9 ou se forem 16, 14, 15.
A restrição também será atendida
se todos os três nós forem posicionados no nível 5, ou se dois dos nós forem
posicionados no nível 15 e o terceiro nó no nível 13. A restrição não será
atendida se os índices de níveis para nodeA
, nodeB
e nodeC
forem 3, 5, 6, porque, neste caso,
o índice mais alto (6) estará mais de dois níveis distante do índice
mais baixo (3).