Version 0 of DataflowCanvas

Updated 2009-02-18 22:15:18 by FF

FF - 2009-02-18 - This widget is a canvas specialized for dataflow [L1 ] software. It features high level operations, as adding, moving, editing, removing, connecting and track objects. Other relevant features include: OO-design (by using the new TclOO, completion, gui objects, (minimal) internal dataflow capability.

The class loading mechanism is defined in DataflowCanvas::enumClasses. By default it looks for subclasses of DataflowClass, so it is possible to add classes which specify how many inlet/outlets object instances will have, and manage their initialization parameters.

http://dev.gentoo.org/~mescalinum/tclwiki-img/DataflowCanvas01.png


Example: we are going to create a + class, which performs the f(x, y) = x + y function, so it has two inlets (inbound connections), and one outlet (outgoing conn.).

oo::class create + {
    superclass DataflowClass
    method setup {args} {
        my variable state
        set state {0 0}
        return {inlets 2 outlets 1}
    }
    method inlet {n args} {
        my variable state
        lset state $n $args
        if {$n == 0} {
            my outlet 0 [expr [join $state +]]
        }
    }
}

The resulting patch:

http://dev.gentoo.org/~mescalinum/tclwiki-img/DataflowCanvas02.png

entry and scale classes (found in source distribution) have been used to interact with the object


Drawing Diagrams may be related to this package


enter categories here