[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:002075] Re: DCLExt::color_bar



堀之内さま:

神代です.

At Thu, 20 Jan 2005 20:53:48 +0900, Takeshi Horinouchi wrote:

>> 2つ目は,実際にはそれほど困らないので,急ぎではないです.
>> GGraph::color_bar で直接オプション指定をしたときにはじかれちゃうだけで,
>> GGraph::tone のあとにオプションなしで呼べば前の設定が引き継がれるので.
>> 普通はそう使うことが多いですよね.
>> 時間があればやってみますです.
> 
> 了解です。

やってみました.以下のような感じでどうでしょう.
つまり,levels オプションがあれば ue_set_tone を呼ぶ.その後の処理は
levels オプションがなかった場合と同様,ueqtlv で値を吸い上げる.


diff -uNrb gphys-0.3.5_orig/lib/numru/ggraph.rb gphys-0.3.5/lib/numru/ggraph.rb
--- gphys-0.3.5_orig/lib/numru/ggraph.rb        2005-01-29 19:45:50.000000000 +0
900
+++ gphys-0.3.5/lib/numru/ggraph.rb     2005-01-29 20:05:30.000000000 +0900
@@ -1519,19 +1519,9 @@
       miss = DCL::glrget("rmiss")

       if !levels.nil? then
-
-        nlevel = levels.length
-        levels = NArray.to_na(levels) if levels.class==Array
-        if patterns.length != (nlevel-1) then
-          raise "patterns.length must be equal levels.length - 1\n"
+        ue_set_tone(levels,patterns)
         end

-        DCL::ueitlv
-        DCL::uestln(levels,patterns)
-        nton = patterns.length
-
-      else
-
         nton = DCL::ueqntl
         if nton==0 then
           raise "no tone patern was set\n"
         end
         lev1 = Array.new
         lev2 = Array.new
         patterns = Array.new
         for n in 0..nton-1
           tlev1,tlev2,ipat = DCL::ueqtlv(n+1)
           lev1.push(tlev1)
           lev2.push(tlev2)
           patterns.push(ipat)
         end

         #levels = lev1+lev2
         #levels = levels.uniq.sort
         #levels.delete(miss)
         #if levels.ne(levels.sort).any? then
         #  raise "levels is not in order\n"
         #end

         levels = lev1.push(lev2[-1])
         levels = NArray.to_na(levels)
         patterns = NArray.to_na(patterns)

-      end
-
       vx1, vx2, vy1, vy2 = DCL.sgqvpt

       vwidth = opt["vwidth"]