($comb / $featv->{Weight}) % $featv->{Posns});
}
o("$delim\n");
+ my $dist= $segr->{Dist}[$comb];
o(sprintf " { %-7s%4d, { ",
'"'.$pi.'",',
- $segr->{Dist}[$comb]);
+ defined($dist) ? $dist : 1);
for ($end=0; $end<2; $end++) {
o(", ") if $end;
o("{");
$otherend= $segr->{Ends}[$comb][!$end];
- defined $otherend or
- die "segment $seg combination $comb end $end undefined\n";
- ($node,$side) = @$otherend;
- $nodeotherside= $nodes{$node}[1-$side];
- if (defined $nodeotherside) {
- $otherseg= $nodeotherside->{Seg};
- $otherbackrelus= $nodeotherside->{End} ^ $end;
- o(sprintf "/*%4s.%d*/ %d,%4s",
- $node,$side,
- $otherbackrelus,
- so_segnum($otherseg));
+ if (!defined $otherend) {
+ die "segment $seg combination $comb end $end undefined\n"
+ if defined $dist;
+ o(" 0,NOTA(Segment)");
} else {
- o(sprintf "/*%5s.%d*/ 0,NOTA(Segment)",
- $node,$side);
+ ($node,$side) = @$otherend;
+ $nodeotherside= $nodes{$node}[1-$side];
+ if (defined $nodeotherside) {
+ $otherseg= $nodeotherside->{Seg};
+ $otherbackrelus= $nodeotherside->{End} ^ $end;
+ o(sprintf "/*%4s.%d*/ %d,%4s",
+ $node,$side,
+ $otherbackrelus,
+ so_segnum($otherseg));
+ } else {
+ o(sprintf "/*%5s.%d*/ 0,NOTA(Segment)",
+ $node,$side);
+ }
}
o(" }");
}