From: ian Date: Fri, 22 Oct 2004 14:31:10 +0000 (+0000) Subject: segment encoding seems right so far ... X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=9a0acd73c4e235a5351449e5c91372872b15a505;p=trains.git segment encoding seems right so far ... --- diff --git a/layout/layout b/layout/layout index 8249624..217ec66 100755 --- a/layout/layout +++ b/layout/layout @@ -623,6 +623,7 @@ sub segment_used_len ($) { $segments[1] -= $used; return if $segments[1] > 0; @segments= @segments[2..$#segments]; + o("% segments @segments\n"); } sub parametric_segment ($$$$$) { @@ -664,8 +665,8 @@ print DEBUG "ps $p0 $p1 $lenperp ($ppu)\n"; $red += 128; $red += 32 if $segments[0] =~ m/^\-/; $red %= 64; - $red /= 64.0; $red <<= 2; + $red /= 64.0; $red= sprintf("%f", $red); o(" $red $subsegcmap{$csegbare} setrgbcolor\n"); } else { diff --git a/layout/ours.m4 b/layout/ours.m4 index 1381446..3cbdf55 100644 --- a/layout/ours.m4 +++ b/layout/ours.m4 @@ -37,7 +37,7 @@ layer 0 abs midx_x_m 930 700 90 part midx_x cross_peco_s m -segment -X1 200 X3 +segment -X1 165 -X3 extend midx_x_tr -top_0rm_b parallel demos!right_main_up 315 segment X7 @@ -83,20 +83,24 @@ extend bot_0lm_a -bot_0rm_c upto demo_bot_0rm_c layer = part bot_0rm pt_main_r c + +segment -X7 extend -top_0rm_c top_0rme upto bot_0rm_c + +segment / + join bot_0rm_b midx_x_br 315 +segment -X7 extend top_0rme top_0rme1 ang 9 315 - extend top_0rme1 rim_0t uptoang -90 315 +segment / + rel rim_0t rim_2t 0 -37 rel rim_2t rim_3t 0 -37 -segment X7 200 X9 join top_0lm_a -top_0rm_a 450 -segment / - #---------- box layer l* @@ -158,7 +162,9 @@ join bot_3lk -leb_3k 315 arcline join bot_23lj_a bot_2lk 450 join bot_2lk -leb_2k 352 +segment -X7 20 -X9 join rim_0t bot_0rm_c 315 arcline +segment / join rim_2t bot_2rk 352 arcline diff --git a/layout/segcmapassign b/layout/segcmapassign index f97d9c8..1ab9030 100755 --- a/layout/segcmapassign +++ b/layout/segcmapassign @@ -41,6 +41,8 @@ # # BLUE # 8 bits segment main IN REVERSE ORDER +# +# The unknown/unidentified segment is 00 0000 0000, with feature 000000. use strict; use IO::Handle; @@ -69,12 +71,12 @@ while (<>) { } sub reverse_bits_in_byte ($) { - my ($b) = @_; - my ($c); - $c = (($b >> 1) & 0x55) | (($b << 1) & 0xaa); - $c |= (($b >> 2) & 0x33) | (($b << 2) & 0xcc); - $c |= (($b >> 4) & 0x0f) | (($b << 4) & 0xf0); - return $c; + my ($a) = @_; + my ($b,$c,$d); + $b = (($a >> 1) & 0x55) | (($a << 1) & 0xaa); + $c = (($b >> 2) & 0x33) | (($b << 2) & 0xcc); + $d = (($c >> 4) & 0x0f) | (($c << 4) & 0xf0); + return $d; } sub cssnmap ($$$$) {