Upload
luiz-miguel-melo
View
239
Download
0
Embed Size (px)
Citation preview
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 1/21
Netron Graph Library v2.1 White Paper
Published: September 2004Reviewed and updated: November 2004
Francois M.Vanderseypen, Ph.D.
THE NETRON PROJECT MAKES NO WARRANTIES,EXPRESS, IMPLIED OR STATUTORY,
AS TO THE INFORMATION IN THIS DOCUMENT.
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 2/21
Netron Graph Library v2.1 White Paper
Content
• Summary of features
• What's in the box?
• Features, overview and screen shots o Biotron application o Automatron application
o Generic graph application o Graph analysis application o Groogler II application
• Setup notes
• FAQ
• Tutorials
• Help and documentation
• NAF integration
• Changes since v2.0
• Features of v3.0 • License
Abstract
The Netron graph library has, since the first release, been improved in manyways both in its scope, stability, ease of use and speed. Substantial effort hasgone into debugging and speed improvements, in making the graph control easyto use and still open to advanced needs. You can now use the graph library indiverse ways and in a variety of applications (in all .Net programming languages)with a minimum of code. You'll find in the graph library and the included sample
application a source of inspiration or new ways to display data in your ownapplications.
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 3/21
Netron Graph Library v2.1 White Paper
Summary of essential features
- Solid open source C# code, totally free- Fully CLS compliant, can be used in any .Net language- Easy to use- Visual Studio toolbox controls- Drag-drop support- Extensive code comments, tutorials, complete applications and documentation
online- Integrates into the Netron framework (NAF) but can be used outside it too- Programming interface to handle graphs, node and connections- Interactive editing and context menu's- Plugable and extensible model (uses .Net reflection) of shapes, connections andshape libraries- Layout algorithms- Support for visual data flow programming paradigm and developmentenvironments
- Support for GraphML- Zoom in and out of the canvas- Continuously improved and used in our own applications- Fully supports the CLR and 100% managed code, no extra assemblies required- Full interactive access to traditional graph algorithms (Dijkstra, Floy, Prim,...)- Ships with advanced applications showing in detail how to use in real-worldapplications
Solid open source code
The source code was written and architectured with care and contains a lot ofcoding comments in case you want to tweak the library or simply understand themechanics. You can find extensive help, tutorials and other stuff online on the
Netron site. Support is available via the forums on the Netron site, we would beglad to hear from you and receive some feedback to improve the library.
Ease of use
You can get a graph application working with just a few lines of code using thesupplied shape libraries and controls:
...
graphControl1.LoadLibraries();
graphControl1.OnNewConnection+=
new NewConnection(graphControl1_OnNewConnection);
. . .
There are a lot of properties available at design-time (see fig.1) to customize the
graph control, many events to attach handlers to. You can use the supplied shapelibraries or create your own custom shapes with ease. You can have a graphapplication up-and-running in no time.
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 4/21
Netron Graph Library v2.1 White Paper
Figure 1: Properties and events of the graph control
True owner-drawn .Net controls
The graph components (see fig.2) can be added in your Visual Studio toolbox andused likeany other element of your toolkit. If you add the Netron graph library to yourtoolbox you will see:
• the graph control, i.e. the actual graph canvas
• the shape viewer, from which you can select and drag-drop shapes. Itacts as a library for your application. Both the graph control and shapeviewer load their content either via the config file or via code.
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 5/21
Netron Graph Library v2.1 White Paper
• the mini-map, which acts as a birds-eye view (see fig.3) on the graphcontrol which is especially useful when you zoom in or zoom out .
Figure 2: the graph library in the Visual Studio toolbox
Drag-drop support
Shapes can be added via drag-and-drop, via the programming model or via thecontext menu. On all levels you decide what's happening, how and when, via theaccessible events, design-time properties and extensible architecture.
Figure 3: mini-map and context menu of the canvas
Integrates into NAF
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 6/21
Netron Graph Library v2.1 White Paper
NAF is the bigger collection of Netron controls all integrated in a neatand rock-solid programming model called the Netron Application Framework.You can benefit from the integration or use the control in your own applications.
Programming interface
You can access all the essential elements of a graph, the graph control andshapes via code. Of course, since the code is yours you are free to add andamplifythe coding model.
...
Shape shape = t hi s. gr aphCont r ol 1. AddShape( "Si mpl eShape" , newPoi nt F(80, 20) ) ;shape. Text = "Not e t hat ' I t em 1' cannot be moved. Thi s i s set i n t he code. \ n You can di sabl e shape
moves gl obal l y i n \ n t he canvas pr opert i es ( see ' Al l owShapeMove' ) " ;shape. FitSize( f al se) ;
Shape shape1 = gr aphCont r ol 1. AddNode( " I t em1") ; Set Shape( shape1) ;Shape shape2 = gr aphCont r ol 1. AddNode( " I t em2") ; Set Shape( shape2) ;shape1. Mobile=f al se;Connect( shape1, shape2) ;. . .
Extensible
The object model is written in such a way that you can inherit and plug intoalmost everywhere your own code and objects.
• You can use the default behavior and elements of shapes or override themand create new behaviors.
• You can attach event handler to the supplied events and react tograph events in function of your application
• You can define custom shapes and connections (UDC: user definedconnections, see fig.4)
• You can plug into the layout algorithms
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 7/21
Netron Graph Library v2.1 White Paper
Figure 4: user defined connections
Layout algorithms
Layout algorithms try to organize graphs in a visually pleasing way. The Netron
graph control contains the spring embedder algorithm and the tree or rectangularalgorithm. In future version more algorithms will be supplied and more graphmathematics will be fused into the graph control.
Visual programming
The graph control supports the visual programming paradigm. This means thatyou can write highly interactive diagrams whereby data 'flows' between nodes
over connections. You can create dynamic simulation models, query analyzers,XML viewers, UML applications or node based programming languages.
In addition
- Hot keys: among other, fine positioning of shapes via arrow keys- Canvas grid and snap-to-grid features- Open/save (extensible serialization)- Printing, print preview- Save diagrams as JPG images- design-time and run-time properties accessible via the Microsoft property grid- VB.Net and C# code samples
What's in the box?
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 8/21
Netron Graph Library v2.1 White Paper
If you start up the Visual Studio solution under the 'GraphApplications' directory,you will see the following list of projects. See also the Setup topic below.
the AutomataShapes library is a collection of graph shapes for theAutomatron application
the Automatron application shows some advanced custom shapes
the BasiShapes library is a collection of general purpose graph shapes
the Biotron application (aka Visual Logo) shows how to implement the visualprogramming paradigm with the graph library
the BiotronCore library contains the essential classes and interface of theBiotron application
the BiotronShapes library is a collection of graph shapes to give life to thebionts of the Biotron application
the GenericGraphApplication application is a simple demonstration of thegraph library accessing some of its most basic properties and features
the GraphAnalysis application shows how you can benefit from the graph
library and the data structures library to do some traditional graph analysis
the GrooglerII application is an example of how you can use the graph layoutalgorithm to represent and lay out knowledge graphs
the NetronDataStructures library is a collection of well-known datastructures (queue, graph, stack, linked list and so on)
the NetronGraphLib library is the actual graph assembly with the graphcontrol and other elements related to it
the NetronMaths library is a collection of classes related to mathematicaloperations
Features, overview & screen shots
The Netron graph library is a generic graph library with an emphasis on usingshapes for programming (the 'visual programming' paradigm) and representation
of knowledge. In this release some examples were included to show how andwhat you can do. These examples are certainly not market-ready application but
invite you to explore and hopefully engage you in using the Netron graph library.
The Biotron application
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 9/21
Netron Graph Library v2.1 White Paper
Origin and purpose
The biotron application combines various ideas:
• using graphs to model behavior and mimic neural data flow
• decentralized organization of particles
• the possibility to use the graph control to implement data simulations
• the possibility to re-cast a simple (textual) programming language likeLOGO into a true visual programming interface
You can find in the Netron downloads the #Logo application, a C# implementationof LOGO. The Biotron application is very similar but replaces the need to parseprogramming code and to compile it via C# (or any other .Net language)
altogether. No, lexical analysis or parsing is necessary with the Biotron, whichmakes extensions of the model much easier. Simply, by adding shapes (with acertain logic encoded therein) you can extend the capabilities of the simulations.
What can you do with it?
By combining various Biotron (graph) shapes and connecting them you can modelthe behavior of particles (called in this context 'bionts'). This kind of visual
modeling is very common in 3D applications where it is used to create complexparticle effects like fire, water flow, storms and so on (see Alias Maya, Cinema4D, 3D Studio MAX...).
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 10/21
Netron Graph Library v2.1 White Paper
How does it work?
The graph control is used to support the graphical modeling and the built-inautomata mechanism is attached to arrays, representing the particles. The arrayis passed as a data token from one shape to another and a simple drawing canvastakes care of the painting of the individual particles (bionts).
You can extend this idea in many ways but it should give you an ideas how toprogram similar applications.
Various examples are included in the application under the 'Examples' menu item.They show how to use the Biotron shapes and deliver pretty pictures as well, likethe famous Wolfram fractals or colorful noise patterns.
You can find more information in the online help and documentation page of thisapplication.
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 11/21
The Automatron application
Origin and purpose
The automatron application allows you to model cellular automata in a graphical
fashion using graphs to model iterative phenomena. This application shows:
• how to create custom (advanced) shapes • how to enable scripting in shapes (i.e. emitting C# code in shapes)
• how to connect the property grid to shapes properties
• how to use bitmaps and other .Net elements in .Net
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 12/21
Netron Graph Library v2.1 White Paper
What can you do with it?
The Automatron comes with a set of custom shapes you can drop on the canvas.These shapes allow a wide variety of mathematical and visual operations. Theapplication comes with a set of examples to show how to use the shapes andwhat you can do. The result of an Automatron graph is always a certaincalculation which eventually can be outputted to a bitmap or line-graph. In tocontrast to the Biotron application, this application does not trigger or move otherthings although it's very easy to attach additional code or UI elements to theAutomatron shapes.
You can combine shapes and nodes any ways you like. Simply drag-drop a shapefrom the library onto the canvas and drag connections between the connectors.
Click on 'run' in the menu and see what happens. By doule-clicking the shapes (orchoose 'properties' from the context menu) you can access the individual
properties and tweak the behavior of the shapes.
How does it work?
The graph control's built-in data flow mechanism is used to make things work.The underlying automata is pulsating at the specified rate (accessible via the
properties of the graph) and at each pulse each graph shape performs a certainupdate. Some shape process incoming data and pass it over to the nextconnected shape(s), other are using the incoming data to draw it on a bitmap.
You can extend this idea in many ways but it should give you an ideas how toprogram similar applications (sound modeling applications, for example).
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 13/21
Netron Graph Library v2.1 White Paper
You can find more information in the online help and documentation page of thisapplication, where you'll also find a detaild overview of the Automatron shapesand how to use them together.
The generic graph application
Origin and purpose
This demo application shows how:
you can use various design-time and run-time properties of the graphcontrol
the other GUI controls can be combined, how the mini-map can beconnected with the main canvas control
you can attach even handlers and use the programming (object) model ofthe graph and shapes
You can also follow the online quickstart tutorial to see in details how you canbuild a graph application from scratch with just a dozen lines of code.
What can I do with it?
This application is in the first place a drawing application with which you cancreate basic diagrams and flowcharts (similar to Microsoft Visio). It is fairly easyto extend the shipped drawing shapes with your own, see the online tutorial 'How to implement and use automata shapes' for details.
Some advanced features like the data flow and the layout algorithm are not usedby this application, if you wish to try these out see (respectively) the Biotron
application above and the Groogler application below.
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 14/21
Netron Graph Library v2.1 White Paper
You can find more information in the online help and documentation page of thisapplication.
How does it work?
This application uses only the basic features of the graph control. How the graphcontrol is coded lies beyond the scope of this document, you can find moreinformation on the bits-and-bytes of the graph library in the Netron site.
The graph analysis application
Origin and purpose
This application shows how to use the various traditional graph algorithms fromthe new Netron data structures library and how the results can be shown
interactively using the graph library.
The Netron graph library can be used for doing traditional graph analysis, i.e.testing graph-like structures for:
• shortest path
• connectedness
• cyclic property
• Hamiltonian property
and so on. Since the graph data structure (as well as other) is widely used andemphasis was put on data flow aspects of the graph library, the graph analysis
part was taken to a separate assembly called the 'NetronDataStructures'. The
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 15/21
Netron Graph Library v2.1 White Paper
graph analysis application shows you how you can combine the aforementionedlibrary and the graph control to explore graphs and their mathematical properties.
What can I do with it?
This application and the algorithms behind require some mathematicalbackground though the basic ideas are simple to grasp. It would require atextbook to explain all the machinery behind and the current assemblies are byno means complete since the field of graph theory is really a world on its own.Despite this, this current version should allow a wider audience of users to usethe graph control and to implement more refined layout algorithms since these
algorithms often depend on the precise mathematical form of graphs.
Recently a lot of research is going on in graph theory and random networks inparticular. The so-called small-world phenomenon, also called six degrees offreedom, pervades both technology and natures: the way our brain is connected,the way the internet hangs together, the social relationships of people...it seemsto underly a lot of systems. In this graph analysis demo you can experiment withvarious random graph algorithm, among which the Watts-Strogatz small-worldalgorithm.
You can find more information in the online help and documentation page of thisapplication.
How does it work?
The Netron data structures contains a lot of structures, among which the 'graph'
class and the 'algorithms' class. First, a random graph is generated correspondingto a random adjacency matrix. This matrix is used to feed the graph class and thealgorithm class, containing the various graph algorithms. Once, these class have
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 16/21
Netron Graph Library v2.1 White Paper
outputted their calculations, a loop is going over the newly created adjacencymatrix to draw the directed graph. In this way, both libraries (the graph libraryand the data structures) are independent and can be used independently of each
other.
How the algorithms work and the theory behind it lies outside the scope of thisdocument but you will find more information on the Netron site.
The groogler application
Origin and purpose
The Groogler application displays search results in a graph. It is very similar tovarious freely available Java applets and uses the a graph layout algorithm to
separate search results appropriately. This kind of layout of knowledge elementsis popular in knowledge management application, ontologies, memes applicationsand so on.
GrooglerII is a follow up of the original Groogler application. The originalapplication was using the free Google webservice to display search results in agraphical way. GrooglerII continues this idea but uses a PHP webservice attachedto the Netron site to show in a graphical way the inter-relations of the Wiki words.This example nicely shows at the same time that inter-operation between
different technologies (here PHP on Linux and a .Net client) does work viawebservices. If you are interested in the implementation of the PHP webservice,
please give me a sign.
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 17/21
Netron Graph Library v2.1 White Paper
What can I do with it?
This application allows you to search the Netron site and explore the relationshipsbetween the various topics. You can start with one term and continue to expand itdirectly in the graph by reight-clicking and selecting the 'expand' item. You cango directly to the corresponding webpage by means of the 'browse' menu item.
Of course, you can use this method with any webservice, actually any dataserviceincluding data base recordsets, XML data, indes service and so on.
The original Groogler application (using the Google webservice)is still available inthe downloads of Netron, though it uses a previous version of the graph library itis still a useful example.
You can find more information in the online help and documentation page of thisapplication.
Setup notes
The zip-file contains a Visual Studio 2003 solution (there are various utilities onthe net to downgrade VS files, e.g. this one one the CodeProject site) with theabove mentioned projects running on (at least) Microsoft .Net 1.1. You canstart up the individual applications from the bin-directories or re-compile the
solution. Of course, you need to set or change the start-up project if you intend
to go through the application in debug-mode. A Visual Studio solution called
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 18/21
Netron Graph Library v2.1 White Paper
'GraphApplications.sln' resides under the 'GraphApplications' directory if youwish to load all the applications and the graph library at once.
For more information on the individual projects and how they are linked together
see the overview above or visit the Netron site .
The code was successfully tested on .Net 1.1 with service pack 1. However, notests were performed on the Mono platform, or operating system prior toWindows XP. If you experience problems, please let us know.
FAQ
An up-to-date list of frequently asked questions can be found on the Netron site:
http://netron.sourceforge.net/ewiki/netron.php?id=NetronGraphLibFAQ
Here's a selection of questions:
1. How do I add the graph control in the Visual Studio toolbox?
2. There are no shapes available in the shape viewer, how does one addshape libraries?
3. How can I drag and drop shapes in the control? 4. What are the hotkeys? 5. What is GraphML? 6. Can I access the shape and graph properties at run-time? 7. What are the design-time properties of the control?
8. What is the spring embedder layout algorithm?
9. What is the spring rectangular layout algorithm? 10. What is the NAF enabled graph control? 11. How can I remove the NAF specific code from the graph control? 12. What are the advantages of using the graph control inside the NAF
framework? 13. Can I print diagrams? 14. Can I use it as a server control in ASP.Net?
You are invited to post additional questions (or answers) directly on the websiteor via the forums.
Tutorials
An up-to-date list of tutorials can be found on the Netron site:
http://netron.sourceforge.net/ewiki/netron.php?id=NetronGraphLibTutorials
A complete overview of the Netron graph library and additional tutorials willappear on the CodeProject website soon after this v2 release. Of course, you arewelcome to publish your own findings with respect to this library on the site ofyour choice. Send me small note if you do, I'd be happy to see how the Netronlibrary is used in your work.
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 19/21
Netron Graph Library v2.1 White Paper
Help and documentation
For each of the shipped application there is a manual in the Netron site, pleasepoint your browser to the following links (which can be accessed inside the
application via the 'Help' menu item):
• the GrooglerII application
• the generic graph application
• the graph analysis application
• the Automatron application
• the Biotron application
To keep the size of the released zip low documentation was not generated butyou should have little problems to generate help files NDoc or any otherdocumentation tool.
NAF integration
The Netron Application Framework (NAF) went into its fourth preview just beforedevelopment on the graph library (re)started. This v2 of the graph library
integrates perfectly into NAF and cooperates via the NAF mechanism with theother components. The integration can be switched on or off with just a fewmodification, see this item in the FAQ list in particular. An official release of theNetron framework is planned after the release of this v2.
Changes since v2.0
Besides the bug fixes there have been substancial improvements since version2.0:
• custom connections can now be added and developed in very much thesame way you add custom shapes to the library. Various examples have
been added in the SpecialShapes library to demonstrate the ease withwhich you can create fancy connections.
• complete GraphML export, which was an under-developed features inv2.0. You can see it in action in the generic application, it looks very muchlike SOAP serialization but the GraphML format is the W3C standard for
representations of graphs as XML (see the GraphML organizationhowever).
• shape controls are a new addition, they allow you to have combo-boxes,textboxes etc. inside a shape and hence inline editing. See the
SpecialShapes library or the generic application for examples.
• various shapes events and delegates allowing you to add actions and havecontrol over the internals of the graph lib
• VB.Net example, this demonstrates the graph control in Visual Basic.Net,same ease, same power, just a different language. Often VB.Netdevelopers get stuck since C# and VB.Net differ in little details, this codeshould give them a jump-start.
• improved class structure and renaming: because of the CLS compliance
field had to be renamed, the Tracker has become the base class for othertracking classes, painting of shapes and connection goes via a different
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 20/21
Netron Graph Library v2.1 White Paper
mechanism...many improvements to make the library more flexible andeasy to plug into your own applications
• this-and-that in the examples (GrooglerII, Generic app,..) to reflect the
changes in the base library or to show how new features should be used.
Furthermore, the architecture paper is continually being improved (currentlyversion 0.3) and is your technical guide to the Netron graph library.
Features of v3.0
Features under consideration for version 3.0 include:
• grouping of shapes
• collapse/expand groups of shapes to handle large amounts of shapes l
• layers
• bi-directional GraphML; inport/export of GraphML data• .Net 2.0 compatible:re-writing of the data structures with generics, ...
• additional graph layout algorithms
• additional examples
• UML shape library
• the Biotron application will be extended a lot
• installation/setups, GAC controls, Visual Studio integrated help, an overallmore professional toolbox control
Of course, all of this will remain free and your feedback/suggestions are very
welcome.
License
The Netron license can be found on the Netron site at the wiki NetronLicense andis, for your convenience, reproduced here. You need to include the full textsomewhere in you code is you make use of the library. If you have questionsregarding this license agreement, send a note to
Copyright © Francois Vanderseypen "The Netron Project".
All rights reserved.
NO WARRANTY
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE
PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN
WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS"WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD
THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIROR CORRECTION.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANYCOPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
8/13/2019 Netron Graph Library V2.1 White Paper
http://slidepdf.com/reader/full/netron-graph-library-v21-white-paper 21/21
Netron Graph Library v2.1 White Paper
SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO
USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDEREDINACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM
TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Permission is granted to anyone to use this software for any purpose, including commercial
applications, and to alter it and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the
original software. If you use this software in a product, an acknowledgment in the productdocumentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as beingthe original software.
3. This notice may not be removed or altered from any source distribution.
Copyright © Lutz Roeder.
All rights reserved.
This software is provided 'as-is', without any express or implied warranty. In no event will the authorsbe held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercialapplications, and to alter it and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote theoriginal software. If you use this software in a product, an acknowledgment in the product
documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being
the original software.
3. This notice may not be removed or altered from any source distribution.
Please visit the Netron site for up to date information, while the latest source code can be downloaded
from the Sourceforge CVS .
Ad Maiorem Dei Gloriam