public abstract class FileSinkImages extends java.lang.Object implements FileSink
Given a prefix "dir/prefix_" and an output policy, this sink will output graph in an image file which name is prefix + a growing counter.
Then images can be processed to produce a movie. For example, with mencoder, the following produce high quality movie :
#!/bin/bash EXT=png BITRATE=2M FPS=15 PREFIX=$1 OUTPUT=$2 ffmpeg -framerate $FPS -i "$PREFIX%06d.$EXT" -b:v $BITRATE -r $FPS -an $OUTPUT
Modifier and Type | Class and Description |
---|---|
static class |
FileSinkImages.LayoutPolicy
Layout policy.
|
static class |
FileSinkImages.Option |
static class |
FileSinkImages.OutputPolicy
Output policy.
|
static class |
FileSinkImages.OutputType
Output image type.
|
static class |
FileSinkImages.Quality
Defines the quality of the rendering.
|
Modifier and Type | Method and Description |
---|---|
void |
addFilter(Filter filter)
Add a filter.
|
void |
begin(java.io.OutputStream stream)
Begin the output of the given stream of graph events.
|
void |
begin(java.lang.String prefix)
Begin the output of the given stream of graph events.
|
void |
begin(java.io.Writer writer)
Begin the output of the given stream of graph events.
|
static FileSinkImages |
createDefault()
Create a FileSinkImages object according to the UI module specified in "org.graphstream.ui" property.
|
void |
edgeAdded(java.lang.String sourceId,
long timeId,
java.lang.String edgeId,
java.lang.String fromNodeId,
java.lang.String toNodeId,
boolean directed)
An edge was inserted in graph.
|
void |
edgeAttributeAdded(java.lang.String sourceId,
long timeId,
java.lang.String edgeId,
java.lang.String attribute,
java.lang.Object value)
A edge attribute was added.
|
void |
edgeAttributeChanged(java.lang.String sourceId,
long timeId,
java.lang.String edgeId,
java.lang.String attribute,
java.lang.Object oldValue,
java.lang.Object newValue)
A edge attribute was changed.
|
void |
edgeAttributeRemoved(java.lang.String sourceId,
long timeId,
java.lang.String edgeId,
java.lang.String attribute)
A edge attribute was removed.
|
void |
edgeRemoved(java.lang.String sourceId,
long timeId,
java.lang.String edgeId)
An edge of graph was removed.The nodes the edge connects may already have
been removed from the graph.
|
void |
end()
End the writing process started with
FileSink.begin(OutputStream) or
FileSink.begin(String) . |
void |
flush()
Ensure all data sent to the output are correctly written.
|
Point3 |
getViewCenter() |
double |
getViewPercent() |
void |
graphAttributeAdded(java.lang.String sourceId,
long timeId,
java.lang.String attribute,
java.lang.Object value)
A graph attribute was added.
|
void |
graphAttributeChanged(java.lang.String sourceId,
long timeId,
java.lang.String attribute,
java.lang.Object oldValue,
java.lang.Object newValue)
A graph attribute was changed.
|
void |
graphAttributeRemoved(java.lang.String sourceId,
long timeId,
java.lang.String attribute)
A graph attribute was removed.
|
void |
graphCleared(java.lang.String sourceId,
long timeId)
The whole graph was cleared.
|
static void |
main(java.lang.String... args) |
void |
nodeAdded(java.lang.String sourceId,
long timeId,
java.lang.String nodeId)
A node was inserted in the given graph.
|
void |
nodeAttributeAdded(java.lang.String sourceId,
long timeId,
java.lang.String nodeId,
java.lang.String attribute,
java.lang.Object value)
A node attribute was added.
|
void |
nodeAttributeChanged(java.lang.String sourceId,
long timeId,
java.lang.String nodeId,
java.lang.String attribute,
java.lang.Object oldValue,
java.lang.Object newValue)
A node attribute was changed.
|
void |
nodeAttributeRemoved(java.lang.String sourceId,
long timeId,
java.lang.String nodeId,
java.lang.String attribute)
A node attribute was removed.
|
void |
nodeRemoved(java.lang.String sourceId,
long timeId,
java.lang.String nodeId)
A node was removed from the graph.
|
void |
outputNewImage()
Produce a new image.
|
void |
outputNewImage(java.lang.String filename) |
void |
removeFilter(Filter filter)
Remove a filter.
|
void |
setAutofit(boolean on) |
void |
setClearImageBeforeOutputEnabled(boolean on) |
void |
setGraphViewport(double minx,
double miny,
double maxx,
double maxy) |
void |
setLayoutPolicy(FileSinkImages.LayoutPolicy policy)
Set the layout policy.
|
void |
setLayoutStabilizationLimit(double limit)
Set the stabilization limit of the layout used to compute coordinates of
nodes.
|
void |
setLayoutStepAfterStabilization(int sas)
Set the amount of steps after the stabilization of the algorithm.
|
void |
setLayoutStepPerFrame(int spf)
Set the amount of step before output a new image.
|
void |
setOutputPolicy(FileSinkImages.OutputPolicy policy)
Set the output policy.
|
void |
setOutputRunnerDelay(long delay) |
void |
setOutputRunnerEnabled(boolean on) |
void |
setOutputType(FileSinkImages.OutputType outputType)
Set the output type.
|
void |
setQuality(FileSinkImages.Quality q)
Enable high-quality rendering and anti-aliasing.
|
void |
setResolution(int width,
int height)
Set a custom resolution.
|
void |
setResolution(Resolution r)
Set resolution of images.
|
void |
setStyleSheet(java.lang.String styleSheet)
Defines style of the graph as a css stylesheet.
|
void |
setViewCenter(double x,
double y) |
void |
setViewPercent(double zoom) |
void |
stabilizeLayout(double limit) |
void |
stepBegins(java.lang.String sourceId,
long timeId,
double step)
Since dynamic graphs are based on discrete event modifications, the notion of
step is defined to simulate elapsed time between events.
|
static void |
usage() |
void |
writeAll(Graph g,
java.io.OutputStream stream)
Write the current graph state in one big non-interruptible operation.
|
void |
writeAll(Graph g,
java.lang.String filename)
Write the current graph state in one big non-interruptible operation.
|
void |
writeAll(Graph g,
java.io.Writer writer)
Write the current graph state in one big non-interruptible operation.
|
public static FileSinkImages createDefault()
public void setQuality(FileSinkImages.Quality q)
public void setStyleSheet(java.lang.String styleSheet)
styleSheet
- the style sheetpublic void setResolution(Resolution r)
r
- resolutionpublic void setResolution(int width, int height)
width
- height
- public void setOutputPolicy(FileSinkImages.OutputPolicy policy)
policy
- policy defining when images are producedpublic void setOutputType(FileSinkImages.OutputType outputType)
outputType
- type of outputted imagespublic void setLayoutPolicy(FileSinkImages.LayoutPolicy policy)
policy
- policy defining how the layout is computedpublic void setLayoutStepPerFrame(int spf)
spf
- step per framepublic void setLayoutStepAfterStabilization(int sas)
sas
- step after stabilization.public void setLayoutStabilizationLimit(double limit)
Layout.setStabilizationLimit(double)
for
more informations about this limit.limit
- public void addFilter(Filter filter)
filter
- the filter to addpublic void removeFilter(Filter filter)
filter
- the filter to removepublic void setOutputRunnerEnabled(boolean on)
public void setOutputRunnerDelay(long delay)
public void stabilizeLayout(double limit)
public Point3 getViewCenter()
public void setViewCenter(double x, double y)
public double getViewPercent()
public void setViewPercent(double zoom)
public void setGraphViewport(double minx, double miny, double maxx, double maxy)
public void setClearImageBeforeOutputEnabled(boolean on)
public void setAutofit(boolean on)
public void outputNewImage()
public void outputNewImage(java.lang.String filename)
public void begin(java.io.OutputStream stream) throws java.io.IOException
FileSink
Source
or you can directly use
the methods inherited from Sink
. Once the writing is started using
begin(), you must close it using FileSink.end()
when done to ensure data is
correctly stored in the file.public void begin(java.io.Writer writer) throws java.io.IOException
FileSink
Source
or you can directly use
the methods inherited from Sink
. Once the writing is started using
begin(), you must close it using FileSink.end()
when done to ensure data is
correctly stored in the file.public void begin(java.lang.String prefix) throws java.io.IOException
FileSink
Source
or you can directly use
the methods inherited from Sink
. Once the writing is started using
begin(), you must close it using FileSink.end()
when done to ensure data is
correctly stored in the file.public void flush() throws java.io.IOException
FileSink
public void end() throws java.io.IOException
FileSink
FileSink.begin(OutputStream)
or
FileSink.begin(String)
.public void writeAll(Graph g, java.io.OutputStream stream) throws java.io.IOException
FileSink
FileSink.begin(Writer)
or FileSink.begin(OutputStream)
or
FileSink.begin(String)
as soon as the graph appears (or any source of graph
event, any descendant of Source
will do).public void writeAll(Graph g, java.io.Writer writer) throws java.io.IOException
FileSink
FileSink.begin(Writer)
or FileSink.begin(OutputStream)
or
FileSink.begin(String)
as soon as the graph appears (or any source of graph
event, any descendant of Source
will do).public void writeAll(Graph g, java.lang.String filename) throws java.io.IOException
FileSink
FileSink.begin(OutputStream)
or FileSink.begin(String)
as soon as the
graph appears (or any source of graph event, any descendant of Source
will do).public void edgeAttributeAdded(java.lang.String sourceId, long timeId, java.lang.String edgeId, java.lang.String attribute, java.lang.Object value)
AttributeSink
edgeAttributeAdded
in interface AttributeSink
sourceId
- Identifier of the graph where the change occurred.edgeId
- Identifier of the edge whose attribute changed.attribute
- The attribute name.value
- The attribute new value.Sink
public void edgeAttributeChanged(java.lang.String sourceId, long timeId, java.lang.String edgeId, java.lang.String attribute, java.lang.Object oldValue, java.lang.Object newValue)
AttributeSink
edgeAttributeChanged
in interface AttributeSink
sourceId
- Identifier of the graph where the change occurred.edgeId
- Identifier of the edge whose attribute changed.attribute
- The attribute name.oldValue
- The attribute old value.newValue
- The attribute new value.Sink
public void edgeAttributeRemoved(java.lang.String sourceId, long timeId, java.lang.String edgeId, java.lang.String attribute)
AttributeSink
edgeAttributeRemoved
in interface AttributeSink
sourceId
- Identifier of the graph where the attribute was removed.edgeId
- Identifier of the edge whose attribute was removed.attribute
- The removed attribute name.Sink
public void graphAttributeAdded(java.lang.String sourceId, long timeId, java.lang.String attribute, java.lang.Object value)
AttributeSink
graphAttributeAdded
in interface AttributeSink
sourceId
- Identifier of the graph where the attribute changed.attribute
- The attribute name.value
- The attribute new value.Sink
public void graphAttributeChanged(java.lang.String sourceId, long timeId, java.lang.String attribute, java.lang.Object oldValue, java.lang.Object newValue)
AttributeSink
graphAttributeChanged
in interface AttributeSink
sourceId
- Identifier of the graph where the attribute changed.attribute
- The attribute name.oldValue
- The attribute old value.newValue
- The attribute new value.Sink
public void graphAttributeRemoved(java.lang.String sourceId, long timeId, java.lang.String attribute)
AttributeSink
graphAttributeRemoved
in interface AttributeSink
sourceId
- Identifier of the graph where the attribute was removed.attribute
- The removed attribute name.Sink
public void nodeAttributeAdded(java.lang.String sourceId, long timeId, java.lang.String nodeId, java.lang.String attribute, java.lang.Object value)
AttributeSink
nodeAttributeAdded
in interface AttributeSink
sourceId
- Identifier of the graph where the change occurred.nodeId
- Identifier of the node whose attribute changed.attribute
- The attribute name.value
- The attribute new value.Sink
public void nodeAttributeChanged(java.lang.String sourceId, long timeId, java.lang.String nodeId, java.lang.String attribute, java.lang.Object oldValue, java.lang.Object newValue)
AttributeSink
nodeAttributeChanged
in interface AttributeSink
sourceId
- Identifier of the graph where the change occurred.nodeId
- Identifier of the node whose attribute changed.attribute
- The attribute name.oldValue
- The attribute old value.newValue
- The attribute new value.Sink
public void nodeAttributeRemoved(java.lang.String sourceId, long timeId, java.lang.String nodeId, java.lang.String attribute)
AttributeSink
nodeAttributeRemoved
in interface AttributeSink
sourceId
- Identifier of the graph where the attribute was removed.nodeId
- Identifier of the node whose attribute was removed.attribute
- The removed attribute name.Sink
public void edgeAdded(java.lang.String sourceId, long timeId, java.lang.String edgeId, java.lang.String fromNodeId, java.lang.String toNodeId, boolean directed)
ElementSink
edgeAdded
in interface ElementSink
sourceId
- Identifier of the graph where the edge was added.edgeId
- Identifier of the added edge.fromNodeId
- Identifier of the first node of the edge.toNodeId
- Identifier of the second node of the edge.directed
- If true, the edge is directed.Sink
public void edgeRemoved(java.lang.String sourceId, long timeId, java.lang.String edgeId)
ElementSink
edgeRemoved
in interface ElementSink
sourceId
- The graph where the edge will be removed.edgeId
- The edge that will be removed.Sink
public void graphCleared(java.lang.String sourceId, long timeId)
ElementSink
graphCleared
in interface ElementSink
sourceId
- The graph cleared.Sink
public void nodeAdded(java.lang.String sourceId, long timeId, java.lang.String nodeId)
ElementSink
nodeAdded
in interface ElementSink
sourceId
- Identifier of the graph where the node was added.nodeId
- Identifier of the added node.Sink
public void nodeRemoved(java.lang.String sourceId, long timeId, java.lang.String nodeId)
ElementSink
nodeRemoved
in interface ElementSink
sourceId
- Identifier of the graph where the node will be removed.nodeId
- Identifier of the removed node.Sink
public void stepBegins(java.lang.String sourceId, long timeId, double step)
ElementSink
Since dynamic graphs are based on discrete event modifications, the notion of step is defined to simulate elapsed time between events. So a step is a event that occurs in the graph, it does not modify it but it gives a kind of timestamp that allow the tracking of the progress of the graph over the time.
This kind of event is useful for dynamic algorithms that listen to the dynamic graph and need to measure the time in the graph's evolution.
stepBegins
in interface ElementSink
sourceId
- Identifier of the graph where the step starts.timeId
- A numerical value that may give a timestamp to track the evolution
of the graph over the time.Sink
public static void usage()
public static void main(java.lang.String... args) throws java.io.IOException
java.io.IOException