ctioga2 0.5 → 0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Changelog +17 -0
- data/lib/ctioga2/commands/general-commands.rb +12 -2
- data/lib/ctioga2/commands/general-types.rb +24 -1
- data/lib/ctioga2/commands/interpreter.rb +7 -2
- data/lib/ctioga2/data/backends/backends/math.rb +5 -3
- data/lib/ctioga2/data/backends/backends/text.rb +2 -4
- data/lib/ctioga2/data/dataset.rb +2 -2
- data/lib/ctioga2/graphics/elements/curve2d.rb +20 -27
- data/lib/ctioga2/graphics/elements/region.rb +6 -3
- data/lib/ctioga2/graphics/generator.rb +4 -3
- data/lib/ctioga2/graphics/legends/provider.rb +2 -2
- data/lib/ctioga2/graphics/styles.rb +1 -0
- data/lib/ctioga2/graphics/styles/axes.rb +20 -2
- data/lib/ctioga2/graphics/styles/drawable.rb +2 -6
- data/lib/ctioga2/graphics/styles/factory.rb +7 -9
- data/lib/ctioga2/graphics/styles/plot.rb +57 -2
- data/lib/ctioga2/graphics/styles/sets.rb +3 -1
- data/lib/ctioga2/graphics/styles/texts.rb +44 -2
- data/lib/ctioga2/graphics/styles/ticks.rb +109 -0
- data/lib/ctioga2/graphics/types.rb +2 -17
- data/lib/ctioga2/graphics/types/dimensions.rb +2 -2
- data/lib/ctioga2/graphics/types/fill.rb +126 -0
- data/lib/ctioga2/log.rb +20 -1
- data/lib/ctioga2/metabuilder/types/lists.rb +10 -4
- data/lib/ctioga2/plotmaker.rb +40 -3
- data/lib/ctioga2/utils.rb +97 -4
- metadata +85 -83
data/Changelog
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
ctioga2 (0.6)
|
2
|
+
|
3
|
+
* Fix various problems related to file names and directories
|
4
|
+
* Using command files, path of data files are now taken to be relative
|
5
|
+
to the directory in which the command file is located
|
6
|
+
* It is now possible to use the ruby construct ( ? : ) in datasets/text
|
7
|
+
files
|
8
|
+
* Implement the impulses path style
|
9
|
+
* Greater control on how to close paths for filling
|
10
|
+
* Increase the default size of the text significantly + a
|
11
|
+
--set-global-font command to change the default text size
|
12
|
+
* Control the position of ticks and the text of tick labels
|
13
|
+
* It is now possible to use abs(x) in formulas, rather than the old
|
14
|
+
x.abs version (which is still usable !)
|
15
|
+
|
16
|
+
-- Vincent <vincent.fourmond@9online.fr> Wed 4 Sep 22:18:46 CEST 2013
|
17
|
+
|
1
18
|
ctioga2 (0.5)
|
2
19
|
|
3
20
|
* Choose the side of axis ticks
|
@@ -17,7 +17,7 @@ require 'ctioga2/commands/parsers/file'
|
|
17
17
|
|
18
18
|
module CTioga2
|
19
19
|
|
20
|
-
Version::register_svn_info('$Revision:
|
20
|
+
Version::register_svn_info('$Revision: 497 $', '$Date: 2013-09-04 22:07:55 +0200 (Wed, 04 Sep 2013) $')
|
21
21
|
|
22
22
|
module Commands
|
23
23
|
|
@@ -57,13 +57,23 @@ EOH
|
|
57
57
|
# Includes a file
|
58
58
|
RunCommandFile =
|
59
59
|
Cmd.new("include", '-f', "--file",
|
60
|
-
[ CmdArg.new('file')
|
60
|
+
[ CmdArg.new('file')],
|
61
|
+
{'log' => CmdArg.new('boolean') }
|
62
|
+
) do |plotmaker, file, opts|
|
63
|
+
if opts['log']
|
64
|
+
tg = file.sub(/(\.ct2)?$/, '-log.txt')
|
65
|
+
Log::log_to(tg, "ctioga2 version '#{CTioga2::Version::version}' starting at #{Time.now} to process file: #{file}")
|
66
|
+
end
|
61
67
|
plotmaker.interpreter.run_command_file(file)
|
62
68
|
end
|
63
69
|
|
64
70
|
RunCommandFile.describe("Runs given command file", <<EOH, GeneralGroup)
|
65
71
|
Reads the file and runs commands found in them, using the ctioga language.
|
72
|
+
|
66
73
|
> ctioga2 -f my_file.ct2
|
74
|
+
|
75
|
+
If the @/log@ is on, then all messages are written to a -log.txt file
|
76
|
+
instead of to the terminal.
|
67
77
|
EOH
|
68
78
|
|
69
79
|
# Evaluate a series of commands.
|
@@ -15,7 +15,7 @@ require 'ctioga2/utils'
|
|
15
15
|
|
16
16
|
module CTioga2
|
17
17
|
|
18
|
-
Version::register_svn_info('$Revision:
|
18
|
+
Version::register_svn_info('$Revision: 484 $', '$Date: 2013-09-02 22:44:42 +0200 (Mon, 02 Sep 2013) $')
|
19
19
|
|
20
20
|
module Commands
|
21
21
|
|
@@ -50,6 +50,29 @@ EOD
|
|
50
50
|
A floating-point number.
|
51
51
|
EOD
|
52
52
|
|
53
|
+
|
54
|
+
FloatList = CmdType.new('float-list',
|
55
|
+
{
|
56
|
+
:type => :array,
|
57
|
+
:subtype => :float,
|
58
|
+
:separator => /\s+|\s*,\s*/,
|
59
|
+
:separator_out => " "
|
60
|
+
}, <<EOD)
|
61
|
+
A list of space-separated or comma-separated floating point numbers.
|
62
|
+
EOD
|
63
|
+
|
64
|
+
TextList = CmdType.new('text-list',
|
65
|
+
{
|
66
|
+
:type => :array,
|
67
|
+
:subtype => :string,
|
68
|
+
:separator => /\s*,\s*/,
|
69
|
+
:alternative_separator => /\s*\|\|\s*/,
|
70
|
+
:separator_out => ","
|
71
|
+
}, <<EOD)
|
72
|
+
A list of comma-separated texts. If you must include a comma inside the
|
73
|
+
texts, then use @||@ as a separator.
|
74
|
+
EOD
|
75
|
+
|
53
76
|
IntegerType = CmdType.new('integer', :integer, <<EOD)
|
54
77
|
An integer.
|
55
78
|
EOD
|
@@ -21,7 +21,7 @@ require 'ctioga2/commands/doc/doc'
|
|
21
21
|
|
22
22
|
module CTioga2
|
23
23
|
|
24
|
-
Version::register_svn_info('$Revision:
|
24
|
+
Version::register_svn_info('$Revision: 492 $', '$Date: 2013-09-03 21:54:09 +0200 (Tue, 03 Sep 2013) $')
|
25
25
|
|
26
26
|
# This module contains the real core of ctioga2: a set of classes
|
27
27
|
# that implement the concept of commands. Each command translates
|
@@ -210,7 +210,12 @@ module CTioga2
|
|
210
210
|
if ! @plotmaker_target.figure_name
|
211
211
|
@plotmaker_target.figure_name = file.gsub(/\.[^.]+$/,'')
|
212
212
|
end
|
213
|
-
|
213
|
+
dir = File::dirname(file)
|
214
|
+
base = File::basename(file)
|
215
|
+
|
216
|
+
Dir::chdir(dir) do
|
217
|
+
@file_parser.run_command_file(base, self)
|
218
|
+
end
|
214
219
|
end
|
215
220
|
|
216
221
|
# Parses and runs the given string.
|
@@ -21,7 +21,7 @@ require 'Dobjects/Function'
|
|
21
21
|
|
22
22
|
module CTioga2
|
23
23
|
|
24
|
-
Version::register_svn_info('$Revision:
|
24
|
+
Version::register_svn_info('$Revision: 451 $', '$Date: 2013-08-29 01:28:30 +0200 (Thu, 29 Aug 2013) $')
|
25
25
|
|
26
26
|
module Data
|
27
27
|
|
@@ -64,8 +64,10 @@ EOD
|
|
64
64
|
set = $1
|
65
65
|
range = $2
|
66
66
|
end
|
67
|
-
name = "
|
68
|
-
|
67
|
+
name = "#{set}"
|
68
|
+
|
69
|
+
|
70
|
+
if set.split_at_toplevel(/:/).size > 1 # parametric
|
69
71
|
if range
|
70
72
|
set_param_from_string(:t_range, range)
|
71
73
|
end
|
@@ -25,7 +25,7 @@ require 'stringio'
|
|
25
25
|
|
26
26
|
module CTioga2
|
27
27
|
|
28
|
-
Version::register_svn_info('$Revision:
|
28
|
+
Version::register_svn_info('$Revision: 493 $', '$Date: 2013-09-03 22:11:38 +0200 (Tue, 03 Sep 2013) $')
|
29
29
|
|
30
30
|
|
31
31
|
module Data
|
@@ -183,10 +183,8 @@ EOD
|
|
183
183
|
return IO.popen(method % file)
|
184
184
|
end
|
185
185
|
end
|
186
|
-
return File::open(file)
|
187
186
|
end
|
188
|
-
|
189
|
-
return nil
|
187
|
+
return File::open(file)
|
190
188
|
end
|
191
189
|
|
192
190
|
# A line is invalid if it is blank or starts
|
data/lib/ctioga2/data/dataset.rb
CHANGED
@@ -18,7 +18,7 @@ require 'ctioga2/data/indexed-dtable'
|
|
18
18
|
|
19
19
|
module CTioga2
|
20
20
|
|
21
|
-
Version::register_svn_info('$Revision:
|
21
|
+
Version::register_svn_info('$Revision: 451 $', '$Date: 2013-08-29 01:28:30 +0200 (Thu, 29 Aug 2013) $')
|
22
22
|
|
23
23
|
|
24
24
|
# \todo now, port the backend infrastructure...
|
@@ -87,7 +87,7 @@ module CTioga2
|
|
87
87
|
def self.dataset_from_spec(name, spec)
|
88
88
|
specs = []
|
89
89
|
i = 0
|
90
|
-
for s in spec.
|
90
|
+
for s in spec.split_at_toplevel(/:/)
|
91
91
|
if s =~ /^(x|y\d*|z)(#{DataColumn::ColumnSpecsRE})=(.*)/i
|
92
92
|
which, mod, s = $1.downcase,($2 && $2.downcase) || "value",$3
|
93
93
|
|
@@ -19,7 +19,7 @@ require 'Dobjects/Function'
|
|
19
19
|
|
20
20
|
module CTioga2
|
21
21
|
|
22
|
-
Version::register_svn_info('$Revision:
|
22
|
+
Version::register_svn_info('$Revision: 474 $', '$Date: 2013-08-31 15:05:39 +0200 (Sat, 31 Aug 2013) $')
|
23
23
|
|
24
24
|
module Graphics
|
25
25
|
|
@@ -99,11 +99,17 @@ module CTioga2
|
|
99
99
|
|
100
100
|
for func in @path_elements
|
101
101
|
case @curve_style.path_style
|
102
|
-
when
|
102
|
+
when /^splines/
|
103
103
|
for f in func.split_monotonic
|
104
104
|
new_f = f.bound_values(*bnds.extrema)
|
105
105
|
t.append_interpolant_to_path(new_f.make_interpolant)
|
106
106
|
end
|
107
|
+
when /^impulses/
|
108
|
+
# We draw lines from y = 0
|
109
|
+
for x,y in func
|
110
|
+
t.move_to_point(x, 0)
|
111
|
+
t.append_point_to_path(x, y)
|
112
|
+
end
|
107
113
|
else
|
108
114
|
f = func.bound_values(*bnds.extrema)
|
109
115
|
t.move_to_point(f.x.first, f.y.first)
|
@@ -119,10 +125,15 @@ module CTioga2
|
|
119
125
|
# which is the same as the _y0_ attribute of a CurveFillStyle.
|
120
126
|
#
|
121
127
|
# It must not be _false_
|
122
|
-
|
123
|
-
|
128
|
+
#
|
129
|
+
# @todo Make sure this is called only on sub-plots when
|
130
|
+
# splitting on NaN !
|
131
|
+
def make_closed_path(t, close_type = nil)
|
124
132
|
make_path(t)
|
125
|
-
|
133
|
+
close_type ||= @curve_style.fill.close_type
|
134
|
+
bnds = parent.get_el_boundaries(self)
|
135
|
+
close_type.close_path(t, bnds, @function[0],
|
136
|
+
@function[@function.size - 1])
|
126
137
|
end
|
127
138
|
|
128
139
|
# Strokes the path.
|
@@ -145,14 +156,6 @@ module CTioga2
|
|
145
156
|
end
|
146
157
|
end
|
147
158
|
|
148
|
-
# A function to close the path created by make_path.
|
149
|
-
# Overridden in the histogram code.
|
150
|
-
def close_path(t, y0)
|
151
|
-
t.append_point_to_path(@function.x.last, y0)
|
152
|
-
t.append_point_to_path(@function.x.first, y0)
|
153
|
-
t.close_path
|
154
|
-
end
|
155
|
-
|
156
159
|
# Returns the AxisSyle objects for the X and Y axes as an array.
|
157
160
|
def get_axes
|
158
161
|
return [
|
@@ -164,11 +167,13 @@ module CTioga2
|
|
164
167
|
# Draws the filled region according to the :fill_type element
|
165
168
|
# of the style pseudo-hash. It can be:
|
166
169
|
def draw_fill(t)
|
167
|
-
return unless @curve_style.fill
|
170
|
+
return unless (@curve_style.fill &&
|
171
|
+
@curve_style.fill.close_type &&
|
172
|
+
@curve_style.fill.close_type.fill?)
|
168
173
|
t.context do
|
169
174
|
# Remember: first setup_fill, then draw path, then do_fill
|
170
175
|
@curve_style.fill.setup_fill(t)
|
171
|
-
make_closed_path(t
|
176
|
+
make_closed_path(t)
|
172
177
|
@curve_style.fill.do_fill(t)
|
173
178
|
end
|
174
179
|
end
|
@@ -197,18 +202,6 @@ module CTioga2
|
|
197
202
|
end
|
198
203
|
end
|
199
204
|
|
200
|
-
protected
|
201
|
-
|
202
|
-
# Converts the value of a fill value into a number (or nil)
|
203
|
-
def fill_value_to_y(fv)
|
204
|
-
return nil unless fv
|
205
|
-
case fv
|
206
|
-
when :bottom,:top
|
207
|
-
bnds = parent.get_el_boundaries(self)
|
208
|
-
return bnds.send(fv)
|
209
|
-
end
|
210
|
-
return fv
|
211
|
-
end
|
212
205
|
|
213
206
|
end
|
214
207
|
end
|
@@ -17,7 +17,7 @@ require 'ctioga2/log'
|
|
17
17
|
|
18
18
|
module CTioga2
|
19
19
|
|
20
|
-
Version::register_svn_info('$Revision:
|
20
|
+
Version::register_svn_info('$Revision: 474 $', '$Date: 2013-08-31 15:05:39 +0200 (Sat, 31 Aug 2013) $')
|
21
21
|
|
22
22
|
module Graphics
|
23
23
|
|
@@ -122,14 +122,17 @@ module CTioga2
|
|
122
122
|
:below => :bottom
|
123
123
|
}
|
124
124
|
end
|
125
|
+
closer = Types::FillUntil.new
|
125
126
|
# We clip for the first ones...
|
126
127
|
for c in @curves[0..-2]
|
127
|
-
|
128
|
+
closer.type = conversion[c.curve_style.region_position]
|
129
|
+
c.make_closed_path(t, closer)
|
128
130
|
t.clip
|
129
131
|
end
|
130
132
|
# We don't clip on the last one !
|
131
133
|
c = @curves.last
|
132
|
-
|
134
|
+
closer.type = conversion[c.curve_style.region_position]
|
135
|
+
c.make_closed_path(t, closer)
|
133
136
|
end
|
134
137
|
|
135
138
|
end
|
@@ -18,7 +18,7 @@ require 'ctioga2/graphics/coordinates'
|
|
18
18
|
|
19
19
|
module CTioga2
|
20
20
|
|
21
|
-
Version::register_svn_info('$Revision:
|
21
|
+
Version::register_svn_info('$Revision: 481 $', '$Date: 2013-09-01 12:08:37 +0200 (Sun, 01 Sep 2013) $')
|
22
22
|
|
23
23
|
module Graphics
|
24
24
|
|
@@ -165,8 +165,9 @@ EOH
|
|
165
165
|
end
|
166
166
|
|
167
167
|
ContourPlotCommand.describe('select contour plots',
|
168
|
-
|
169
|
-
|
168
|
+
<<EOH, PlotTypesGroup)
|
169
|
+
Switch to contour plots for later curves. Contour plots need three
|
170
|
+
columns (X,Y,Z). They have major and minor lines.
|
170
171
|
EOH
|
171
172
|
|
172
173
|
XYPlotCommand =
|
@@ -16,7 +16,7 @@ require 'ctioga2/log'
|
|
16
16
|
|
17
17
|
module CTioga2
|
18
18
|
|
19
|
-
Version::register_svn_info('$Revision:
|
19
|
+
Version::register_svn_info('$Revision: 471 $', '$Date: 2013-08-31 14:11:01 +0200 (Sat, 31 Aug 2013) $')
|
20
20
|
|
21
21
|
module Graphics
|
22
22
|
|
@@ -45,7 +45,7 @@ module CTioga2
|
|
45
45
|
@current_legend = nil
|
46
46
|
return l
|
47
47
|
elsif @auto_legend
|
48
|
-
return dataset.name
|
48
|
+
return "\\texttt{#{Utils::tex_quote_string(dataset.name)}}"
|
49
49
|
else
|
50
50
|
return nil
|
51
51
|
end
|
@@ -28,6 +28,7 @@ require 'ctioga2/graphics/styles/contour'
|
|
28
28
|
require 'ctioga2/graphics/styles/errorbar'
|
29
29
|
|
30
30
|
require 'ctioga2/graphics/styles/sets'
|
31
|
+
require 'ctioga2/graphics/styles/ticks'
|
31
32
|
|
32
33
|
require 'ctioga2/graphics/styles/axes'
|
33
34
|
require 'ctioga2/graphics/styles/map-axes'
|
@@ -17,7 +17,7 @@ require 'ctioga2/log'
|
|
17
17
|
# This module contains all the classes used by ctioga
|
18
18
|
module CTioga2
|
19
19
|
|
20
|
-
Version::register_svn_info('$Revision:
|
20
|
+
Version::register_svn_info('$Revision: 483 $', '$Date: 2013-09-02 22:10:14 +0200 (Mon, 02 Sep 2013) $')
|
21
21
|
|
22
22
|
module Graphics
|
23
23
|
|
@@ -56,6 +56,9 @@ module CTioga2
|
|
56
56
|
# The label of the axis, if there is one
|
57
57
|
sub_style :axis_label, TextLabel
|
58
58
|
|
59
|
+
# The axis ticks and labels
|
60
|
+
sub_style :ticks, AxisTicks
|
61
|
+
|
59
62
|
# Whether the axis should be log scale or not
|
60
63
|
typed_attribute :log, 'boolean'
|
61
64
|
|
@@ -74,6 +77,12 @@ module CTioga2
|
|
74
77
|
|
75
78
|
typed_attribute :ticks_side, 'ticks-side'
|
76
79
|
|
80
|
+
# @todo Add a 'slave' attribute: axes would be created as
|
81
|
+
# slaves to another one until:
|
82
|
+
# * a curve is added to it
|
83
|
+
# * a transform is set
|
84
|
+
# * ticks are set
|
85
|
+
|
77
86
|
|
78
87
|
# Creates a new AxisStyle object at the given location with
|
79
88
|
# the given style.
|
@@ -86,6 +95,7 @@ module CTioga2
|
|
86
95
|
@axis_label = TextLabel.new(label)
|
87
96
|
@log = false
|
88
97
|
@ticks_side = {}
|
98
|
+
@ticks = AxisTicks.new
|
89
99
|
end
|
90
100
|
|
91
101
|
# Draws the axis within the current plot. Boundaries are the
|
@@ -99,6 +109,12 @@ module CTioga2
|
|
99
109
|
# a transformation)
|
100
110
|
def draw_axis(t)
|
101
111
|
spec = get_axis_specification(t)
|
112
|
+
|
113
|
+
info = t.axis_information(spec)
|
114
|
+
|
115
|
+
# Merge in the specs
|
116
|
+
spec.merge!(@ticks.ticks_specs(t, info, @transform))
|
117
|
+
|
102
118
|
# Add tick label style:
|
103
119
|
spec.merge!(@tick_label_style.hash_for_tioga(t))
|
104
120
|
|
@@ -143,6 +159,8 @@ minor_tick_length minor_tick_width)
|
|
143
159
|
if @background_lines
|
144
160
|
# First, getting major ticks location from tioga
|
145
161
|
info = t.axis_information(get_axis_specification(t))
|
162
|
+
|
163
|
+
tick_info = @ticks.ticks_specs(t, info, @transform)
|
146
164
|
|
147
165
|
if info['vertical']
|
148
166
|
x0 = t.bounds_left
|
@@ -153,7 +171,7 @@ minor_tick_length minor_tick_width)
|
|
153
171
|
end
|
154
172
|
t.context do
|
155
173
|
@background_lines.set_stroke_style(t)
|
156
|
-
values =
|
174
|
+
values = tick_info['major_ticks']
|
157
175
|
for val in values
|
158
176
|
if info['vertical']
|
159
177
|
t.stroke_line(x0, val, x1, val)
|
@@ -17,7 +17,7 @@ require 'ctioga2/log'
|
|
17
17
|
# This module contains all the classes used by ctioga
|
18
18
|
module CTioga2
|
19
19
|
|
20
|
-
Version::register_svn_info('$Revision:
|
20
|
+
Version::register_svn_info('$Revision: 466 $', '$Date: 2013-08-31 13:10:38 +0200 (Sat, 31 Aug 2013) $')
|
21
21
|
|
22
22
|
module Graphics
|
23
23
|
|
@@ -154,11 +154,7 @@ module CTioga2
|
|
154
154
|
# how the fill should be applied to curves.
|
155
155
|
class CurveFillStyle < FillStyle
|
156
156
|
|
157
|
-
|
158
|
-
# fill ? A float, or:
|
159
|
-
# * :top, :bottom
|
160
|
-
# * false, nil to disable filling altogether
|
161
|
-
typed_attribute :y0, 'fill-until'
|
157
|
+
typed_attribute :close_type, 'fill-until'
|
162
158
|
|
163
159
|
end
|
164
160
|
|
@@ -17,7 +17,7 @@ require 'ctioga2/log'
|
|
17
17
|
# This module contains all the classes used by ctioga
|
18
18
|
module CTioga2
|
19
19
|
|
20
|
-
Version::register_svn_info('$Revision:
|
20
|
+
Version::register_svn_info('$Revision: 489 $', '$Date: 2013-09-03 01:03:12 +0200 (Tue, 03 Sep 2013) $')
|
21
21
|
|
22
22
|
module Graphics
|
23
23
|
|
@@ -105,16 +105,10 @@ module CTioga2
|
|
105
105
|
|
106
106
|
|
107
107
|
# Creates a new parameter for the style factory.
|
108
|
-
#
|
109
|
-
# \todo add a way to add some more text to the description;
|
110
|
-
# possibly a self.describe_parameter function ?
|
111
|
-
#
|
112
|
-
# @todo Remove completely the 'type' argument
|
113
108
|
def self.define_parameter(target, name, sets, description,
|
114
109
|
short_option = nil, disable_cmds = false)
|
115
110
|
# We define two new types:
|
116
111
|
# - first, the color-or-auto type:
|
117
|
-
# base_type = Commands::CommandType.get_type(type)
|
118
112
|
base_type = CurveStyle.attribute_type(target)
|
119
113
|
|
120
114
|
if ! Commands::Interpreter.type("#{base_type.name}-or-auto")
|
@@ -251,7 +245,8 @@ module CTioga2
|
|
251
245
|
@override_parameters = {
|
252
246
|
'line_style' => LineStyles::Solid,
|
253
247
|
'marker_marker' => false,
|
254
|
-
'marker_scale' => 0.5
|
248
|
+
'marker_scale' => 0.5,
|
249
|
+
'fill_color' => '=color'.to_sym
|
255
250
|
}
|
256
251
|
@parameters_carrays = {}
|
257
252
|
for target, param in self.class.parameters
|
@@ -353,7 +348,7 @@ module CTioga2
|
|
353
348
|
nil, "Y axis", nil, true
|
354
349
|
|
355
350
|
# Now, fill style
|
356
|
-
define_parameter '
|
351
|
+
define_parameter 'fill_close_type', 'fill',
|
357
352
|
{}, "Fill until", nil
|
358
353
|
|
359
354
|
simple_parameter 'fill_color', "fill color", Sets::ColorSets
|
@@ -454,6 +449,9 @@ module CTioga2
|
|
454
449
|
for k,v in h
|
455
450
|
v.to_s =~ /^(?:=|->)(\S+)/
|
456
451
|
target = $1
|
452
|
+
if CurveStyleFactory.name_to_target[target]
|
453
|
+
target = CurveStyleFactory.name_to_target[target]
|
454
|
+
end
|
457
455
|
if tv.key? target
|
458
456
|
tv[k] = tv[target]
|
459
457
|
h.delete(k)
|