Abstract class that serves as a base class for anything that draws an igraph.Graph.
||Abstract method, must be implemented in derived classes.|
||Helper method that ensures that layout is an instance of
Abstract method, must be implemented in derived classes.
- If layout is a string, it is assumed to be a name of an igraph layout, and it will be passed on to the layout method of the given graph if graph is not None.
- If layout is None, the layout method of graph will be invoked with no parameters, which will call the default layout algorithm.
- Otherwise, layout will be passed on to the constructor of
Layout. This handles lists of lists, lists of tuples and such.
If layout is already a
Layout instance, it will still be copied and a copy will be returned. This is because graph drawers are allowed to transform the layout for their purposes, and we don't want the transformation to propagate back to the caller.