Brief Description of the Algorithm

Bus topology is well-known in network management and telecommunications fields. The Bus Layout class can display these topologies nicely. It represents the “bus” as a “serpent” polyline. The width of the “serpent” is user-defined (via the width of the Layout Region parameter) and the height is computed so that enough space is available for all the nodes.

Code Sample

Below is a code sample using the IlvBusLayout class:

// ...

IlvGrapher* grapher = new IlvGrapher(display);

 

// ... Fill in the grapher with nodes and links here

 

// Create the bus node; the number of points and

// the coordinates are not important

IlvPoint point(10,10);

IlvPolyline* bus = new IlvPolyline(display, 1, &point);

grapher->addNode(bus);

 

// ... Fill in the grapher with links between each node

// and the bus here

 

IlvBusLayout* layout = new IlvBusLayout();

layout->attach(grapher);

 

// Specify the bus node

layout->setBus(bus);

 

IlvGraphLayoutReport* layoutReport = layout->performLayout();

if (layoutReport->getCode() != IlvLayoutReportLayoutDone)

IlvWarning("Layout not done. Error code = %d\n", layoutReport->getCode());

// ...

// If the grapher is not anymore subject of layout:

layout->detach();

 

// Once the layout algorithm is not anymore needed:

delete layout;