e58a8c6c42989325aaedf4d1747b14938e71b34e
[xscreensaver] / hacks / config / hilbert.xml
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2
3 <screensaver name="hilbert" _label="Hilbert" gl="yes">
4
5   <command arg="-root"/>
6
7   <hgroup>
8    <vgroup>
9
10     <hgroup>
11      <select id="twodee">
12       <option id="random"  _label="2D or 3D"/>
13       <option id="2D"      _label="2D"               arg-set="-mode 2d"/>
14       <option id="3D"      _label="3D"               arg-set="-mode 3d"/>
15      </select>
16
17      <select id="closed">
18       <option id="random"  _label="Open or closed paths"/>
19       <option id="closed"  _label="Closed"           arg-set="-ends closed"/>
20       <option id="open"    _label="Open"             arg-set="-ends open"/>
21      </select>
22     </hgroup>
23
24     <hgroup>
25      <vgroup>
26       <number id="delay" type="slider" arg="-delay %"
27               _label="Frame rate" _low-label="Slow" _high-label="Fast"
28               low="0" high="100000" default="30000"
29               convert="invert"/>
30
31       <number id="speed" type="slider" arg="-speed %"
32               _label="Speed" _low-label="Slow" _high-label="Fast"
33               low="0.02" high="10.0" default="1.0"/>
34      </vgroup>
35
36      <vgroup>
37       <number id="depth" type="slider" arg="-max-depth %"
38               _label="Recursion levels" _low-label="2" _high-label="10"
39               low="2" high="10" default="5"/>
40
41       <number id="thickness" type="slider" arg="-thickness %"
42               _label="Line thickness" _low-label="Thin" _high-label="Thick"
43               low="0.01" high="1.0" default="0.25"/>
44      </vgroup>
45     </hgroup>
46
47     <hgroup>
48      <boolean id="wander"  _label="Wander"          arg-set="-wander"/>
49      <boolean id="spin"    _label="Spin"            arg-unset="-no-spin"/>
50      <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
51      <boolean id="wire"    _label="Wireframe"       arg-set="-wireframe"/>
52     </hgroup>
53
54    </vgroup>
55   </hgroup>
56
57   <_description>
58 This draws the recursive Hilbert space-filling curve, in both 2D and
59 3D variants.  It incrementally animates the growth and recursion to
60 the maximum depth, then unwinds it back.
61
62 The Hilbert path is a single contiguous line that can fill a volume
63 without crossing itself.  As a data structure, Hilbert paths are
64 useful because ordering along the curve preserves locality: points
65 that are close together along the curve are also close together in space.
66 The converse is often, but not always, true.  The coloration
67 reflects this.
68
69 http://en.wikipedia.org/wiki/Hilbert_curve
70
71 Written by Jamie Zawinski; 2011.
72   </_description>
73 </screensaver>