CRIMP
Changes On Branch feature-dataflow-internals
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch feature-dataflow-internals Excluding Merge-Ins

This is equivalent to a diff from b585eded7d to a7afa4138d

2013-02-01
08:28
Documentation: Updated location of critcl. Leaf check-in: a7afa4138d user: andreask tags: feature-dataflow-internals
2011-12-06
23:21
Integrated the completed reader for PCX images with trunk. check-in: a4d8d55b97 user: andreask tags: trunk
2011-11-25
00:20
Placeholder for fits image reader Leaf check-in: 974e8bf888 user: andreask tags: image-io-fits
00:16
Placeholder for xpm image reader Leaf check-in: 694125dd1e user: andreask tags: image-io-xpm
00:16
Placeholder for xbm image reader Leaf check-in: 5006dcd412 user: andreask tags: image-io-xbm
00:16
Placeholder for tiff image reader Leaf check-in: dfbe0604ae user: andreask tags: image-io-tiff
00:16
Placeholder for tga image reader Leaf check-in: c4ae400cb9 user: andreask tags: image-io-tga
00:15
Placeholder for sun image reader check-in: d8d7b08e80 user: andreask tags: image-io-sun
00:15
Placeholder for sgi image reader check-in: 39d26f9ff1 user: andreask tags: image-io-sgi
00:15
Placeholder for raw image reader Leaf check-in: 653f65df03 user: andreask tags: image-io-raw
00:15
Placeholder for pixmap image reader Leaf check-in: 175111ff36 user: andreask tags: image-io-pixmap
00:15
Placeholder for jpeg image reader Leaf check-in: 80caf509c2 user: andreask tags: image-io-jpeg
00:14
Placeholder for ico image reader Leaf check-in: fc5420bf05 user: andreask tags: image-io-ico
00:12
Placeholder for DTED image reader Leaf check-in: 687cbe62e6 user: andreask tags: image-io-dted
00:11
Placeholder for gif image reader Leaf check-in: 99a39dbf53 user: andreask tags: image-io-gif
00:03
Incomplete start of work on a reader for PCX image files. check-in: f9976a0e1f user: andreask tags: image-io-pcx
2011-11-23
07:56
Pull in latest trunk changes check-in: 3929d0be5b user: andreask tags: feature-dataflow-internals
04:37
Merged [b585eded7d], scaling of integer divisions. check-in: 4354b78718 user: andreask tags: infinite-plane
04:33
Modified the division operator involving grey8 to scale the result up by MAXVAL_GREY8. Without such scaling the result is mostly zero, which is not really wanted. check-in: b585eded7d user: andreask tags: trunk
02:46
Modified the 'cut' command to restrict the x/y similar to how it restricts the w/h. Documented this. Updated the embedded documentation. check-in: a2dbe0b802 user: andreask tags: trunk

Changes to doc/crimp_installer.man.
59
60
61
62
63
64
65
66

67
68
69
70
71
72
73
59
60
61
62
63
64
65

66
67
68
69
70
71
72
73







-
+








(Disclosure: I, Andreas Kupries, work for ActiveState, maintaining
ActiveTcl and TclDevKit).


[subsection CriTcl]

The tool [uri http://jcw.github.com/critcl critcl] is required to
The tool [uri http://andreas-kupries.github.com/critcl critcl] is required to
build CRIMP, either as an application found in the PATH, or as a Tcl
package available to the [cmd tclsh] used to run CRIMP's
[sectref {Build & Installation}] process.

[para] Version 3 is required, or higher

[para]
97
98
99
100
101
102
103
104

105
106
107
108
109
110
111
97
98
99
100
101
102
103

104
105
106
107
108
109
110
111







-
+








[para] On unix it may be necessary to make [cmd tclsh] available under
the name of [cmd tclkit] for the starkit to work.

[para]

When not using a starkit, you have to get and install the sources per
the instructions at the site, i.e. [uri http://jcw.github.com/critcl].
the instructions at the site, i.e. [uri http://andreas-kupries.github.com/critcl].


[section {Build & Installation}]

To install CRIMP simply run

[example {
Added doc/figures/flow_pimage.dia.















































































































1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
# -*- tcl -*- tcl.tk//DSL diagram//EN//1.0
source [file join [file dirname [file normalize [info script]]] dsl_ctypes.inc]
set boxwidth [45 mm]

## ====================================================================

allocated struct image {
    field int         refCount
    field Tcl_Obj*    meta
    # Pixel structure information
    field image_type* itype
    # Location of the image in the infinite 2D-plane.
    field int         x
    field int         y
    # Dimensions of the image (bounding box)
    field int         w
    field int         h
    # The whole geometry could be put into a separate, inlined
    # structure. Another point is the possibility of extending it to
    # cover higher-dimensional structures. Example: A stack of
    # multi-channel volumes --> 5D.

    # Operation dependent information.
    field ClientData  ops_data
    field image_ops*  ops
    # Exposed image parameters of the operation, can be nothing.
    field int          nparam
    field image\[...\] "param\n  (Integrated)" \
	height [14 mm]
}

pointer {image meta} w w {
    allocated type Tcl_Obj
}

pointer {image itype} e {
    static struct image_type {
	field char*  name
	field int    size
	field int    channels
	field char** cname
    }

    pointer {image_type name} e {
	static cstring
    }

    pointer {image_type cname} e e e {
	set cname [static carray char* channels]
	pointer {cname [1]} e {static cstring}
    }
}

pointer {image ops} e e s s s {
    static struct ops_type {
	field char*  name
	sep
	field funptr_init  initialize()
	field funptr_fini  finalize()
	field funptr_next  next()
	field funptr_skip  skip()
	field funptr_whole whole()
	move
	sep
	field funptr_cons  cons()
	field funptr_dest  dest()
    } with Ln

    pointer {ops_type name} e {
	static cstring
    }

    group {
	east
	arrow <- from [$sep2 e]
	text "Tcl commands"
    }
}

pointer {image ops_data} w {
    allocated struct image_physical {
	field char*      curr_pixel
	field image_mem  imem
    } with Le

    pointer {image_physical imem} s s {
	allocated struct image_memory {
	    field int   refCount
	    field char* pixels
	} with Ln

	pointer {image_memory pixels} w {
	    allocated type memoryblock
	}
    }

    xpointer {image_physical curr_pixel} w \
	then \
	[[$memoryblock n] | [$image_physical curr_pixel w]] \
	to [$memoryblock n]
}

return

# Scratch
if 0 {
    # Iterator strides, in bytes. Derived from the image dimensions
    # and type (#channels, size/channel).
    field int   dx
    field int   dy
}
Added doc/figures/flow_pimage.png.

cannot compute difference between binary files

Added doc/figures/preflow_structures.dia.










































1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
# -*- tcl -*- tcl.tk//DSL diagram//EN//1.0
source [file join [file dirname [file normalize [info script]]] dsl_ctypes.inc]

## ====================================================================

allocated struct image {
    field Tcl_Obj*    meta
    field image_type* itype
    # Dimensions of the image
    field int         w
    field int         h
    # Integrated memory area for pixels.
    field char\[...\] "pixels\n  (Integrated)" \
	height [14 mm]
}

pointer {image meta} w w {
    allocated type Tcl_Obj
}

pointer {image itype} e {
    static struct image_type {
	field char*  name
	field int    size
	field int    channels
	field char** cname
    }

    pointer {image_type name} e {
	static cstring
    }

    pointer {image_type cname} e {
	set cname [static carray char* channels]

	pointer {cname [1]} e {
	    static cstring
	}
    }
}

return
Added doc/figures/preflow_structures.png.

cannot compute difference between binary files

Added doc/figures/preflow_structures.txt.













1
2
3
4
5
6
7
8
9
10
11
12
13
+
+
+
+
+
+
+
+
+
+
+
+
+
              image
-------       ------------------
Tcl_Obj <----* Tcl_Obj*    meta
-------        image_type* itype *---> image_type
               int         w           -----------------
               int         h            char*  name  *------> "...\0"
               char[...]   pixel        int    size
              -------------------       int    channels       -------------------
                                        char** cname *------>  cname[0]
                                       -----------------       cname[1] *------> "...\0"
                                                                ...
                                                               cname[channels-1]
                                                              -------------------
Changes to doc/figures/structures.dia.
1
2

3
4
5
6

7
8



9

10
11




12
13







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

34

35
36
37
38
39
40
41

































42
1
2
3
4
5
6
7
8
9
10
11
12
13

14
15
16
17
18
19
20


21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

47
48
49







50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83


+




+


+
+
+
-
+


+
+
+
+
-
-
+
+
+
+
+
+
+



















-
+

+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

# -*- tcl -*- tcl.tk//DSL diagram//EN//1.0
source [file join [file dirname [file normalize [info script]]] dsl_ctypes.inc]
set boxwidth [45 mm]

## ====================================================================

allocated struct image {
    field int         refCount
    field Tcl_Obj*    meta
    field image_type* itype
    # Location of the image in the infinite 2D-plane.
    field int         x 
    field int         y
    # Dimensions of the image
    # Dimensions of the physical image (bounding box)
    field int         w
    field int         h
    # The whole geometry could be put into a separate, inlined
    # structure. Another point is the possibility of extending it to
    # cover higher-dimensional structures. Example: A stack of
    # multi-channel volumes --> 5D.
    # Integrated memory area for pixels.
    field char\[...\] "pixels\n  (Integrated)" \

    # Operation dependent information.
    field ClientData ops_data
    field image_ops* ops
    # Exposed image parameters of the operation, can be nothing.
    field int          nparam
    field image\[...\] "param\n  (Integrated)" \
	height [14 mm]
}

pointer {image meta} w w {
    allocated type Tcl_Obj
}

pointer {image itype} e {
    static struct image_type {
	field char*  name
	field int    size
	field int    channels
	field char** cname
    }

    pointer {image_type name} e {
	static cstring
    }

    pointer {image_type cname} e {
    pointer {image_type cname} e e e {
	set cname [static carray char* channels]
	pointer {cname [1]} e {static cstring}

	pointer {cname [1]} e {
	    static cstring
	}
    }
}

    }
}

pointer {image ops} e e s s s {
    static struct ops_type {
	field char*  name
	sep
	field funptr_init  initialize()
	field funptr_fini  finalize()
	field funptr_next  next()
	field funptr_skip  skip()
	field funptr_whole whole()
	move
	sep
	field funptr_cons  cons()
	field funptr_dest  dest()
    } with Ln

    pointer {ops_type name} e {
	static cstring
    }

    group {
	east
	arrow <- from [$sep2 e]
	text "Tcl commands"
    }
}

pointer {image ops_data} w w {
    allocated type ClientData
}

return
Changes to doc/figures/structures.png.

cannot compute difference between binary files