xrvg 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +8 -0
- data/README +1 -1
- data/Rakefile +36 -6
- data/examples/arciterate1.rb +13 -0
- data/examples/arcrecurse1.rb +30 -0
- data/examples/arcrecurse2.rb +37 -0
- data/examples/circleiterate1.rb +9 -0
- data/examples/circleiterate2.rb +11 -0
- data/examples/circleiterate3.rb +13 -0
- data/examples/circlerecurse1.rb +27 -0
- data/examples/circlerecurse2.rb +27 -0
- data/examples/circlerecurseall.rb +29 -0
- data/examples/euclideangeo.rb +11 -0
- data/examples/evolution1.rb +8 -0
- data/examples/evolution2.rb +9 -0
- data/examples/evolution3.rb +10 -0
- data/examples/fuseaugeo.rb +16 -0
- data/examples/gradientgeo.rb +21 -0
- data/examples/interbeziergeo1.rb +14 -0
- data/examples/interbeziergeo2.rb +17 -0
- data/examples/interbeziergeo3.rb +17 -0
- data/examples/offsetgeo.rb +16 -0
- data/lib/bezier.rb +37 -3
- data/lib/bezierbuilders.rb +17 -1
- data/lib/beziermotifs.rb +11 -4
- data/lib/bezierspline.rb +23 -1
- data/lib/beziertools.rb +48 -14
- data/lib/color.rb +55 -8
- data/lib/fitting.rb +2 -2
- data/lib/geometry2D.rb +10 -3
- data/lib/geovariety.rb +128 -0
- data/lib/interbezier.rb +4 -4
- data/lib/interpolation.rb +30 -17
- data/lib/parametriclength.rb +3 -2
- data/lib/render.rb +1 -2
- data/lib/samplation.rb +121 -19
- data/lib/shape.rb +2 -2
- data/lib/spiral.rb +72 -0
- data/lib/utils.rb +97 -76
- data/lib/xrvg.rb +3 -3
- data/test/test_bezier.rb +17 -2
- data/test/test_bezierbuilders.rb +1 -1
- data/test/test_beziertools.rb +7 -0
- data/test/test_color.rb +12 -0
- data/test/test_geovariety.rb +105 -0
- data/test/test_interpolation.rb +2 -1
- data/test/test_render.rb +0 -4
- data/test/test_sample.rb +28 -0
- data/test/test_spiral.rb +22 -0
- data/test/test_utils.rb +65 -40
- metadata +26 -2
@@ -0,0 +1,105 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'geovariety'
|
3
|
+
|
4
|
+
|
5
|
+
class GeoVarietor
|
6
|
+
include GeoVariety
|
7
|
+
end
|
8
|
+
|
9
|
+
class GeoVarietyTest < Test::Unit::TestCase
|
10
|
+
|
11
|
+
def test_abstract
|
12
|
+
assert_raise(NotImplementedError){GeoVarietor[].point(V2D::O)}
|
13
|
+
assert_raise(NotImplementedError){GeoVarietor[].line(0.0,1.0,0.5)}
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class InterBezierTest2 < Test::Unit::TestCase
|
18
|
+
|
19
|
+
def test_point
|
20
|
+
bezier1 = Bezier.raw( V2D::O, V2D::X, V2D::O, V2D::X )
|
21
|
+
center = V2D::O
|
22
|
+
bezier2 = Bezier.raw( center, center, center, center )
|
23
|
+
interbezier = InterBezier.new( :bezierlist, [0.0, bezier1, 1.0, bezier2] )
|
24
|
+
assert( V2D.vequal?( interbezier.sample( 0.5 ).point( 0.5 ), interbezier.point( V2D[0.5,0.5] ) ) )
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_line
|
28
|
+
bezier1 = Bezier.raw( V2D::O, V2D::X, V2D::O, V2D::X )
|
29
|
+
center = V2D::O
|
30
|
+
bezier2 = Bezier.raw( center, center, center, center )
|
31
|
+
interbezier = InterBezier.new( :bezierlist, [0.0, bezier1, 1.0, bezier2] )
|
32
|
+
raw = interbezier.sample( 0.5 ).subbezier( 0.3, 0.7 )
|
33
|
+
geo = interbezier.line( 0.3, 0.7, 0.5 )
|
34
|
+
[raw.pointlist, geo.pointlist].forzip do |p1,p2|
|
35
|
+
assert( V2D.vequal?( p1, p2 ) )
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_bezier
|
40
|
+
bezier1 = Bezier.raw( V2D::O, V2D::X, V2D::O, V2D::X )
|
41
|
+
center = V2D::O
|
42
|
+
bezier2 = Bezier.raw( center, center, center, center )
|
43
|
+
interbezier = InterBezier.new( :bezierlist, [0.0, bezier1, 1.0, bezier2] )
|
44
|
+
|
45
|
+
geo = interbezier.bezier( (V2D[0.0,0.5]..V2D[1.0,0.5]), bezier1 )
|
46
|
+
raw = LinearBezier[ :support, [V2D::O, V2D::X * 0.5] ]
|
47
|
+
[raw.pointlist, geo.pointlist].forzip do |p1,p2|
|
48
|
+
assert( V2D.vequal?( p1, p2 ) )
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
class OffsetVarietyTest < Test::Unit::TestCase
|
55
|
+
|
56
|
+
def test_point
|
57
|
+
offsetvariety = OffsetVariety[ :support, LinearBezier.buildwithangle( 0.0 ), :ampl, 1.0 ]
|
58
|
+
assert( V2D.vequal?( V2D[0.5,0.0], offsetvariety.point( V2D[0.5,0.5] ) ) )
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_line
|
62
|
+
offsetvariety = OffsetVariety[ :support, LinearBezier.buildwithangle( 0.0 ), :ampl, 1.0 ]
|
63
|
+
geo = offsetvariety.line( 0.25, 0.75, 0.75 )
|
64
|
+
raw = LinearBezier[ :support, [V2D[0.25,0.5], V2D[0.75,0.5]] ]
|
65
|
+
[raw.pointlist, geo.pointlist].forzip do |p1,p2|
|
66
|
+
assert( V2D.vequal?( p1, p2 ) )
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_bezier
|
71
|
+
offsetvariety = OffsetVariety[ :support, LinearBezier.buildwithangle( 0.0 ), :ampl, 1.0 ]
|
72
|
+
geo = offsetvariety.bezier( (V2D[0.25,0.75]..V2D[0.75,0.75]), LinearBezier.buildwithangle( 0.0 ) )
|
73
|
+
raw = LinearBezier[ :support, [V2D[0.25,0.5], V2D[0.75,0.5]] ]
|
74
|
+
[raw.pointlist, geo.pointlist].forzip do |p1,p2|
|
75
|
+
assert( V2D.vequal?( p1, p2 ) )
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
class FuseauVarietyTest < Test::Unit::TestCase
|
81
|
+
|
82
|
+
def test_point
|
83
|
+
offsetvariety = FuseauVariety[ :support, LinearBezier.buildwithangle( 0.0 ), :ampl, 1.0 ]
|
84
|
+
assert( V2D.vequal?( V2D[0.5,0.0], offsetvariety.point( V2D[0.5,0.5] ) ) )
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_line
|
88
|
+
offsetvariety = FuseauVariety[ :support, LinearBezier.buildwithangle( 0.0 ), :ampl, 1.0 ]
|
89
|
+
geo = offsetvariety.line( 0.25, 0.75, 0.5 )
|
90
|
+
raw = LinearBezier[ :support, [V2D[0.0,0.0], V2D[1.0,0.0]] ].subbezier( 0.25, 0.75 )
|
91
|
+
[raw.pointlist, geo.pointlist].forzip do |p1,p2|
|
92
|
+
assert( V2D.vequal?( p1, p2 ) )
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_bezier
|
97
|
+
offsetvariety = FuseauVariety[ :support, LinearBezier.buildwithangle( 0.0 ), :ampl, 1.0 ]
|
98
|
+
geo = offsetvariety.bezier( (V2D[0.25,0.5]..V2D[0.75,0.5]), LinearBezier.buildwithangle( 0.0 ) )
|
99
|
+
raw = LinearBezier[ :support, [V2D[0.25,0.0], V2D[0.75,0.0]] ]
|
100
|
+
[raw.pointlist, geo.pointlist].forzip do |p1,p2|
|
101
|
+
assert( V2D.vequal?( p1, p2 ) )
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
data/test/test_interpolation.rb
CHANGED
@@ -4,7 +4,7 @@ require 'interpolation'
|
|
4
4
|
class InterpolatorTest < Test::Unit::TestCase
|
5
5
|
|
6
6
|
def test_quadtree
|
7
|
-
quad =
|
7
|
+
quad = BinaryTree.new( [0.0,1.0, 0.2,0.0, 0.6,1.0, 0.8,0.0, 1.0,1.0] )
|
8
8
|
assert_equal( [0.2,0.0, 0.6,1.0], quad.range( 0.5 ) )
|
9
9
|
assert_equal( [0.0,1.0, 0.2,0.0], quad.range( 0.0 ) )
|
10
10
|
assert_equal( [0.8,0.0, 1.0,1.0], quad.range( 1.0 ) )
|
@@ -22,6 +22,7 @@ class InterpolatorTest < Test::Unit::TestCase
|
|
22
22
|
end
|
23
23
|
def test_interpolation
|
24
24
|
assert_raise(NotImplementedError) {A[].samplelist}
|
25
|
+
assert_equal( :linear, A[].interpoltype )
|
25
26
|
end
|
26
27
|
|
27
28
|
end
|
data/test/test_render.rb
CHANGED
@@ -4,7 +4,6 @@ require 'render'
|
|
4
4
|
class SVGRenderTest < Test::Unit::TestCase
|
5
5
|
|
6
6
|
def test_render
|
7
|
-
require 'shape'
|
8
7
|
if File.exist?( "svgrender.svg" )
|
9
8
|
File.delete( "svgrender.svg" )
|
10
9
|
end
|
@@ -15,7 +14,6 @@ class SVGRenderTest < Test::Unit::TestCase
|
|
15
14
|
end
|
16
15
|
|
17
16
|
def test_render2
|
18
|
-
require 'shape'
|
19
17
|
if File.exist?( "svgrender.svg" )
|
20
18
|
File.delete( "svgrender.svg" )
|
21
19
|
end
|
@@ -29,7 +27,6 @@ class SVGRenderTest < Test::Unit::TestCase
|
|
29
27
|
end
|
30
28
|
|
31
29
|
def test_render3
|
32
|
-
require 'shape'
|
33
30
|
if File.exist?( "svgrender.svg" )
|
34
31
|
File.delete( "svgrender.svg" )
|
35
32
|
end
|
@@ -40,7 +37,6 @@ class SVGRenderTest < Test::Unit::TestCase
|
|
40
37
|
end
|
41
38
|
|
42
39
|
def test_render4
|
43
|
-
require 'shape'
|
44
40
|
if File.exist?( "svgrender.svg" )
|
45
41
|
File.delete( "svgrender.svg" )
|
46
42
|
end
|
data/test/test_sample.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'xrvg'
|
3
|
+
include XRVG
|
4
|
+
|
5
|
+
class STest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def test_sample
|
8
|
+
# assert_equal( [0.0, 0.571428571428571, 0.857142857142857, 1.0], (0.0..1.0).geofull(2.0).samples( 4 ) )
|
9
|
+
assert_equal( [0.0, 0.5, 0.75], [(0.0..0.75)].geofull(2.0).samples( 3 ) )
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_sin
|
13
|
+
[[0.0,0.0], (0.0..1.0).sin().samples( 2 )].forzip do |exp, real|
|
14
|
+
assert( exp.fequal?( real ) )
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_random
|
19
|
+
result = (0.0..1.0).random.samples( 10 )
|
20
|
+
assert_not_equal( result, result.sort )
|
21
|
+
result = (0.0..1.0).random(:sort,true).samples( 10 )
|
22
|
+
assert_equal( result, result.sort )
|
23
|
+
result = (0.0..1.0).random(:mindiff, 0.01).samples( 10 )
|
24
|
+
assert_not_equal( result, result.sort )
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
|
data/test/test_spiral.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
# require 'XRVG'
|
3
|
+
# include XRVG
|
4
|
+
|
5
|
+
class SpiralTest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def test_abstract
|
8
|
+
assert_raise(NotImplementedError) {GSpiral.new.compute_radius( 0.0,0.0,0.0,0.0)}
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_all
|
12
|
+
spiral = SpiralLog[]
|
13
|
+
# assert_equal( V2D::O, spiral.point( 1.0 ) )
|
14
|
+
assert_equal( V2D::X, spiral.point( 0.0 ) )
|
15
|
+
spiral = SpiralLinear[]
|
16
|
+
assert_equal( V2D::X, spiral.point( 0.0 ) )
|
17
|
+
|
18
|
+
assert_raise(NotImplementedError) {GSpiral.new.maxangle( 0.0,0.0,0.0)}
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
data/test/test_utils.rb
CHANGED
@@ -1,39 +1,7 @@
|
|
1
1
|
require 'test/unit'
|
2
|
-
require '
|
2
|
+
require 'xrvg'
|
3
|
+
include XRVG
|
3
4
|
|
4
|
-
class IntegerTest < Test::Unit::TestCase
|
5
|
-
|
6
|
-
def test_denum!
|
7
|
-
assert_equal( [10.0, 20.0, 30.0], (10.0..30.0).samples( 3 ) )
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_numsplit!
|
11
|
-
assert_equal( [0.0, 5.0, 10.0], (0.0..10.0).samples( 3 ) )
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_itergeo!
|
15
|
-
# assert_equal( [1.0, 0.246596963941606, 0.0608100626252179], (1.0..0.0).geo(2.8).samples(3) )
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_randsplit1!
|
19
|
-
result = 3.randsplit!
|
20
|
-
assert_equal( 1.0, result[0] + result[1] + result[2] )
|
21
|
-
assert_equal( [], 3.randsplit!( 4.0 ) )
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_randsplitsum!
|
25
|
-
result = 3.randsplitsum!
|
26
|
-
puts "test_randsplitsum! result #{result.join(" ")}"
|
27
|
-
result.each_cons(2) {|min, max| assert( min <= max )}
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_randsplitsum2!
|
31
|
-
result = 3.randsplitsum!(0.3)
|
32
|
-
puts "test_randsplitsum! minsize result #{result.join(" ")}"
|
33
|
-
result.each_cons(2) {|min, max| assert( min <= max )}
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
37
5
|
|
38
6
|
class StringTest < Test::Unit::TestCase
|
39
7
|
|
@@ -151,9 +119,20 @@ class ArrayTest < Test::Unit::TestCase
|
|
151
119
|
|
152
120
|
def test_range
|
153
121
|
assert_equal( (1.0..5.0), [5.0,3.0,1.0].range )
|
122
|
+
assert_equal( (1.0..2.0), [V2D[2.0,1.0], V2D[1.0,2.0]].range( :x ) )
|
123
|
+
end
|
124
|
+
|
125
|
+
def test_sample
|
126
|
+
assert_equal( [0.0, 0.5, 0.75], [(0.0..0.75)].geofull(2.0).samples( 3 ) )
|
154
127
|
end
|
155
128
|
|
129
|
+
def test_choice
|
130
|
+
assert_equal( 0.0, [0.0,0.0,0.0].choice )
|
131
|
+
end
|
156
132
|
|
133
|
+
def test_shuffle
|
134
|
+
assert_not_equal( [0.0, 0.1, 0.2, 0.5, 1.0], [0.0,0.1, 0.2, 0.5,1.0].shuffle )
|
135
|
+
end
|
157
136
|
end
|
158
137
|
|
159
138
|
class FloatTest < Test::Unit::TestCase
|
@@ -163,14 +142,17 @@ class FloatTest < Test::Unit::TestCase
|
|
163
142
|
end
|
164
143
|
|
165
144
|
def test_complement
|
166
|
-
assert_equal( 0.75, 0.
|
145
|
+
assert_equal( 0.75, (0.0..1.0).complement( 0.25 ) )
|
146
|
+
end
|
147
|
+
|
148
|
+
def test_fequal
|
149
|
+
assert( 0.25.fequal?( 0.26,0.02) )
|
150
|
+
assert_equal( false, 0.25.fequal?( 0.26,0.01) )
|
167
151
|
end
|
168
152
|
|
169
|
-
def
|
170
|
-
assert_equal(
|
171
|
-
|
172
|
-
r = 0.25.randsplit
|
173
|
-
assert_equal( 0.25, r[0] + r[1] )
|
153
|
+
def test_sort_float_list
|
154
|
+
assert_equal( [0.25], Float.sort_float_list([0.26,0.25], 0.02 ) )
|
155
|
+
assert_equal( [0.25,0.26], Float.sort_float_list([0.26,0.25], 0.01 ) )
|
174
156
|
end
|
175
157
|
|
176
158
|
def test_float_include
|
@@ -195,6 +177,20 @@ class RangeTest < Test::Unit::TestCase
|
|
195
177
|
assert_not_equal( [0.0, 1.0], (0.0..1.0).ssort.random.samples(2))
|
196
178
|
end
|
197
179
|
|
180
|
+
def test_random
|
181
|
+
result = Range.O.random(:mindiff,0.0).samples( 3 )
|
182
|
+
# what kinf of test ?
|
183
|
+
assert_raise(RuntimeError) {Range.O.random(:mindiff,6.0).samples( 3 )}
|
184
|
+
assert_equal( [0.0,1.0,2.0], (0.0..2.0).random(:mindiff,0.5,:sort,true).samples( 3 ) )
|
185
|
+
assert_not_equal( [0.0, 1.0], (0.0..1.0).random.samples(2))
|
186
|
+
assert_equal( [0.0, 0.5, 1.0], (0.0..1.0).random(:mindiff,0.5,:sort,true).samples(3))
|
187
|
+
assert_raise(RuntimeError) {(0.0..1.0).random(:mindiff,0.6).samples(3)}
|
188
|
+
end
|
189
|
+
|
190
|
+
def test_shuffle
|
191
|
+
assert_not_equal( [0.0, 0.25, 0.5, 0.75, 1.0], (0.0..1.0).shuffle.samples(5))
|
192
|
+
assert_equal( [0.0, 0.25, 0.5, 0.75, 1.0], (0.0..1.0).ssort.shuffle.samples(5))
|
193
|
+
end
|
198
194
|
|
199
195
|
def test_samplesblock
|
200
196
|
result = []
|
@@ -209,6 +205,31 @@ class RangeTest < Test::Unit::TestCase
|
|
209
205
|
assert_equal( [(0.0..0.5), (0.5..1.0)], (0.0..1.0).splits(2) )
|
210
206
|
end
|
211
207
|
|
208
|
+
def test_modulo
|
209
|
+
assert_equal( -0.5, (-1.0..1.5).modulo( 2.0 ) )
|
210
|
+
end
|
211
|
+
|
212
|
+
def test_modulos
|
213
|
+
assert_equal( [(0.2..0.3)], (0.0..1.0).modulos( (0.2..0.3) ) )
|
214
|
+
assert_equal( [(0.3..0.2)], (0.0..1.0).modulos( (0.3..0.2) ) )
|
215
|
+
[(0.0..1.0).modulos( (1.1..0.2) ), [(0.1..0.0), (1.0..0.2)]].forzip do |res, exp|
|
216
|
+
assert( res.begin.fequal?( exp.begin ) )
|
217
|
+
assert( res.end.fequal?( exp.end ) )
|
218
|
+
end
|
219
|
+
[(0.0..1.0).modulos( (0.2..1.1) ), [(0.2..1.0), (0.0..0.1)]].forzip do |res, exp|
|
220
|
+
assert( res.begin.fequal?( exp.begin ) )
|
221
|
+
assert( res.end.fequal?( exp.end ) )
|
222
|
+
end
|
223
|
+
[(0.0..1.0).modulos( (0.2..2.1) ), [(0.2..1.0), (0.0..1.0), (0.0..0.1)]].forzip do |res, exp|
|
224
|
+
assert( res.begin.fequal?( exp.begin ) )
|
225
|
+
assert( res.end.fequal?( exp.end ) )
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
def test_size
|
230
|
+
assert_equal( 1.2, (2.0..0.8).size )
|
231
|
+
end
|
232
|
+
|
212
233
|
def test_splitblock
|
213
234
|
result = []
|
214
235
|
(0.0..1.0).splits(2) do |subrange|
|
@@ -331,6 +352,10 @@ class SampleTest < Test::Unit::TestCase
|
|
331
352
|
assert_equal( 1.0, (0.0..1.0).geo(100.0).sample( 1.0 ) )
|
332
353
|
end
|
333
354
|
|
355
|
+
def test_geofull
|
356
|
+
assert_equal( [0.0,2.0/3.0,1.0], (0.0..1.0).geofull(2.0).samples( 3 ))
|
357
|
+
end
|
358
|
+
|
334
359
|
def test_alternate
|
335
360
|
assert_equal( [1.0,1.5], (1.0..0.0).alternate.samples( [0.0,0.5] ) )
|
336
361
|
assert_equal( [0.0,-0.5], AlternateFilter[(0.0..1.0)].samples( [0.0,0.5] ) )
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: xrvg
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0.
|
7
|
-
date: 2008-
|
6
|
+
version: 0.0.6
|
7
|
+
date: 2008-08-06 00:00:00 +02:00
|
8
8
|
summary: Ruby vector graphics library
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -40,27 +40,48 @@ files:
|
|
40
40
|
- lib/fitting.rb
|
41
41
|
- lib/frame.rb
|
42
42
|
- lib/geometry2D.rb
|
43
|
+
- lib/geovariety.rb
|
43
44
|
- lib/interbezier.rb
|
44
45
|
- lib/interpolation.rb
|
45
46
|
- lib/parametriclength.rb
|
46
47
|
- lib/render.rb
|
47
48
|
- lib/samplation.rb
|
48
49
|
- lib/shape.rb
|
50
|
+
- lib/spiral.rb
|
49
51
|
- lib/style.rb
|
50
52
|
- lib/trace.rb
|
51
53
|
- lib/utils.rb
|
52
54
|
- lib/xrvg.rb
|
55
|
+
- examples/arciterate1.rb
|
56
|
+
- examples/arcrecurse1.rb
|
57
|
+
- examples/arcrecurse2.rb
|
53
58
|
- examples/bezierbasic.rb
|
54
59
|
- examples/bezierbasicvector.rb
|
60
|
+
- examples/circleiterate1.rb
|
61
|
+
- examples/circleiterate2.rb
|
62
|
+
- examples/circleiterate3.rb
|
63
|
+
- examples/circlerecurse1.rb
|
64
|
+
- examples/circlerecurse2.rb
|
65
|
+
- examples/circlerecurseall.rb
|
66
|
+
- examples/euclideangeo.rb
|
67
|
+
- examples/evolution1.rb
|
68
|
+
- examples/evolution2.rb
|
69
|
+
- examples/evolution3.rb
|
55
70
|
- examples/foreach.rb
|
71
|
+
- examples/fuseaugeo.rb
|
56
72
|
- examples/geodash.rb
|
57
73
|
- examples/geodash2.rb
|
74
|
+
- examples/gradientgeo.rb
|
58
75
|
- examples/hellocrown.rb
|
59
76
|
- examples/hellocrown2.rb
|
60
77
|
- examples/hellocrownrecurse.rb
|
61
78
|
- examples/helloworldcompact.rb
|
62
79
|
- examples/helloworldexpanded.rb
|
80
|
+
- examples/interbeziergeo1.rb
|
81
|
+
- examples/interbeziergeo2.rb
|
82
|
+
- examples/interbeziergeo3.rb
|
63
83
|
- examples/multibezierbasic.rb
|
84
|
+
- examples/offsetgeo.rb
|
64
85
|
- examples/palette_circle.rb
|
65
86
|
- examples/randomdash.rb
|
66
87
|
- examples/range_examples.rb
|
@@ -79,11 +100,14 @@ test_files:
|
|
79
100
|
- test/test_fitting.rb
|
80
101
|
- test/test_frame.rb
|
81
102
|
- test/test_geometry2D.rb
|
103
|
+
- test/test_geovariety.rb
|
82
104
|
- test/test_interbezier.rb
|
83
105
|
- test/test_interpolation.rb
|
84
106
|
- test/test_parametric_length.rb
|
85
107
|
- test/test_render.rb
|
108
|
+
- test/test_sample.rb
|
86
109
|
- test/test_shape.rb
|
110
|
+
- test/test_spiral.rb
|
87
111
|
- test/test_style.rb
|
88
112
|
- test/test_trace.rb
|
89
113
|
- test/test_utils.rb
|